TCPClient1.elf: file format elf32-littleriscv TCPClient1.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 0x0000d514 memsz 0x0000d514 flags r-x LOAD off 0x0000f000 vaddr 0x20000000 paddr 0x0000d514 align 2**12 filesz 0x000000a0 memsz 0x0002dc68 flags rw- LOAD off 0x0000f800 vaddr 0x2002f800 paddr 0x2002f800 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 0000d314 00000200 00000200 00001200 2**8 CONTENTS, ALLOC, LOAD, READONLY, CODE 3 .fini 00000000 0000d514 0000d514 0000f0a0 2**0 CONTENTS, ALLOC, LOAD, CODE 4 .dalign 00000000 20000000 20000000 0000f0a0 2**0 CONTENTS 5 .dlalign 00000000 0000d514 0000d514 0000f0a0 2**0 CONTENTS 6 .data 000000a0 20000000 0000d514 0000f000 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .bss 0002dbc8 200000a0 0000d5b4 0000f0a0 2**2 ALLOC 8 .stack 00000800 2002f800 2002f800 0000f800 2**0 ALLOC 9 .debug_info 00028d35 00000000 00000000 0000f0a0 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_abbrev 00005e8e 00000000 00000000 00037dd5 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_aranges 00001448 00000000 00000000 0003dc68 2**3 CONTENTS, READONLY, DEBUGGING 12 .debug_ranges 00002018 00000000 00000000 0003f0b0 2**3 CONTENTS, READONLY, DEBUGGING 13 .debug_line 00021534 00000000 00000000 000410c8 2**0 CONTENTS, READONLY, DEBUGGING 14 .debug_str 0000782b 00000000 00000000 000625fc 2**0 CONTENTS, READONLY, DEBUGGING 15 .comment 00000033 00000000 00000000 00069e27 2**0 CONTENTS, READONLY 16 .debug_frame 0000357c 00000000 00000000 00069e5c 2**2 CONTENTS, READONLY, DEBUGGING 17 .debug_loc 0000d0da 00000000 00000000 0006d3d8 2**0 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: 00000000 l d .init 00000000 .init 00000004 l d .vector 00000000 .vector 00000200 l d .text 00000000 .text 0000d514 l d .fini 00000000 .fini 20000000 l d .dalign 00000000 .dalign 0000d514 l d .dlalign 00000000 .dlalign 20000000 l d .data 00000000 .data 200000a0 l d .bss 00000000 .bss 2002f800 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 ./FreeRTOS/portable/GCC/RISC-V/portASM.o 00000264 l .text 00000000 processed_source 00000428 l .text 00000000 chip_specific_stack_frame 00000000 l df *ABS* 00000000 ch32v30x_it.c 00000000 l df *ABS* 00000000 main.c 000006d2 l F .text 00000084 task_business_entry 00000756 l F .text 00000016 ng_timer_callback 0000090e l F .text 00000018 task_wchnet_entry 200000ac l O .bss 00000004 g_ng_timer 2000004c l O .data 00000001 use_buffer_A.6728 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_flash.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 20000030 l O .data 00000010 APBAHBPrescTable 20000054 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 qdx_port.c 00001f1e l F .text 0000003e find_ctx_by_wchnet_id 2000e8c4 l O .bss 000016f8 g_sock_ctx 00001f5c l F .text 0000003a free_sock_ctx 200000d8 l O .bss 00000004 g_wchnet_mutex 00000000 l df *ABS* 00000000 qdx_preprocess.c 2000ffbc l O .bss 0000006e g_PreprocessCfg 2001002c l O .bss 00000400 g_col_sums 200000dc l O .bss 00000001 g_is_initialized 200000e0 l O .bss 00000004 g_preprocess_mutex 00000000 l df *ABS* 00000000 qdx_protocol.c 00000000 l df *ABS* 00000000 qdx_tcp_logic.c 00002c1a l F .text 0000001e tcp_stream_disconnect 00002c38 l F .text 0000006c tcp_send_frame 2001042c l O .bss 000020e4 g_TcpLogic 00002ca4 l F .text 000000aa tcp_send_handshake 00002d4e l F .text 00000030 tcp_send_heartbeat 00002d7e l F .text 00000032 tcp_send_ack.constprop.3 00002db0 l F .text 000005b2 recv_thread_entry 00003362 l F .text 0000012a manager_thread_entry 00000000 l df *ABS* 00000000 heap_4.c 0000376e l F .text 0000004c prvInsertBlockIntoFreeList 20012510 l O .bss 00003000 ucHeap 200000e4 l O .bss 00000004 pxEnd 200000e8 l O .bss 00000004 xBlockAllocatedBit 200000ec l O .bss 00000004 xFreeBytesRemaining 200000f0 l O .bss 00000004 xMinimumEverFreeBytesRemaining 200000f4 l O .bss 00000004 xNumberOfSuccessfulAllocations 200000f8 l O .bss 00000004 xNumberOfSuccessfulFrees 200000fc l O .bss 00000008 xStart 00000000 l df *ABS* 00000000 port.c 20000058 l O .data 00000004 uxCriticalNesting 00000000 l df *ABS* 00000000 list.c 00000000 l df *ABS* 00000000 queue.c 00003bc2 l F .text 0000001e prvIsQueueEmpty 00003be0 l F .text 00000072 prvCopyDataToQueue 00003c52 l F .text 00000028 prvCopyDataFromQueue 00003c7a l F .text 00000076 prvUnlockQueue 00000000 l df *ABS* 00000000 tasks.c 000045a0 l F .text 00000024 prvResetNextTaskUnblockTime 000045c4 l F .text 000000a6 prvAddCurrentTaskToDelayedList 0000466a l F .text 00000052 prvIdleTask 20015550 l O .bss 0000012c pxReadyTasksLists 2001567c l O .bss 00000014 xDelayedTaskList1 20015690 l O .bss 00000014 xDelayedTaskList2 200156a4 l O .bss 00000014 xPendingReadyList 200156b8 l O .bss 00000014 xSuspendedTaskList 200156cc l O .bss 00000014 xTasksWaitingTermination 20000108 l O .bss 00000004 pxDelayedTaskList 2000010c l O .bss 00000004 pxOverflowDelayedTaskList 20000110 l O .bss 00000004 uxCurrentNumberOfTasks 20000114 l O .bss 00000004 uxDeletedTasksWaitingCleanUp 20000118 l O .bss 00000004 uxSchedulerSuspended 2000011c l O .bss 00000004 uxTaskNumber 20000120 l O .bss 00000004 uxTopReadyPriority 20000124 l O .bss 00000004 xIdleTaskHandle 20000128 l O .bss 00000004 xNextTaskUnblockTime 2000012c l O .bss 00000004 xNumOfOverflows 20000130 l O .bss 00000004 xPendedTicks 20000134 l O .bss 00000004 xSchedulerRunning 20000138 l O .bss 00000004 xTickCount 2000013c l O .bss 00000004 xYieldPending 00000000 l df *ABS* 00000000 timers.c 000052ac l F .text 0000005a prvCheckForValidListAndQueue 00005306 l F .text 0000003e prvInsertTimerInActiveList 00005344 l F .text 0000002a prvReloadTimer 0000536e l F .text 00000042 prvProcessExpiredTimer 000053b0 l F .text 00000028 prvSwitchTimerLists 000053d8 l F .text 00000188 prvTimerTask 200156e0 l O .bss 00000014 xActiveTimerList1 200156f4 l O .bss 00000014 xActiveTimerList2 20000140 l O .bss 00000004 pxCurrentTimerList 20000144 l O .bss 00000004 pxOverflowTimerList 20000148 l O .bss 00000004 xLastTime.6646 2000014c l O .bss 00000004 xTimerQueue 20000150 l O .bss 00000004 xTimerTaskHandle 00000000 l df *ABS* 00000000 debug.c 20000154 l O .bss 00000002 p_ms 20000156 l O .bss 00000001 p_us 00000000 l df *ABS* 00000000 dvp.c 20000168 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 00006cf0 l F .text 00000180 find_entry 00006e70 l F .text 000000b2 update_arp_entry 200001a4 l O .bss 00000001 etharp_cached_entry 00000000 l df *ABS* 00000000 ethernetif.c 0000756c l F .text 00000052 low_level_output 00000000 l df *ABS* 00000000 inet.c 00000000 l df *ABS* 00000000 ip.c 200001b0 l O .bss 00000002 ip_id.2947 00000000 l df *ABS* 00000000 ip_addr.c 00000000 l df *ABS* 00000000 ip_frag.c 200001b2 l O .bss 00000002 ip_reass_pbufcount 200001b4 l O .bss 00000004 reassdatagrams 00000000 l df *ABS* 00000000 dhcp.c 000081f0 l F .text 00000016 dhcp_set_state 00008206 l F .text 00000020 dhcp_option 00008226 l F .text 00000012 dhcp_option_byte 00008238 l F .text 00000048 dhcp_option_long 00008280 l F .text 00000034 dhcp_option_trailer 000082b4 l F .text 0000018a dhcp_create_request 0000843e l F .text 0000001e dhcp_delete_request 00000000 l df *ABS* 00000000 init.c 00000000 l df *ABS* 00000000 mem.c 200001b8 l O .bss 00000004 lfree 200001bc l O .bss 00000004 ram 200001c0 l O .bss 00000004 ram_end 00000000 l df *ABS* 00000000 memp.c 2002dc34 l O .bss 00000020 memp_tab 00000000 l df *ABS* 00000000 netif.c 200001cc l O .bss 00000001 netifnum.2482 00000000 l df *ABS* 00000000 pbuf.c 00000000 l df *ABS* 00000000 raw.c 200001d0 l O .bss 00000004 raw_pcbs 00000000 l df *ABS* 00000000 tcp.c 00008efa l F .text 0000005c tcp_new_port 200001e4 l O .bss 00000001 tcp_timer 20000070 l O .data 00000004 iss.3197 20000074 l O .data 00000002 port.3029 00000000 l df *ABS* 00000000 tcp_in.c 00009a12 l F .text 000000ce tcp_oos_insert_segment 00009ae0 l F .text 00000944 tcp_receive 0000a424 l F .text 000000a6 tcp_parseopt.isra.0 2002dc54 l O .bss 00000014 inseg 200001f0 l O .bss 00000004 ackno 200001f4 l O .bss 00000001 flags 200001f8 l O .bss 00000004 iphdr 200001fc l O .bss 00000004 recv_data 20000200 l O .bss 00000001 recv_flags 20000204 l O .bss 00000004 seqno 2000020c l O .bss 00000004 tcphdr 20000210 l O .bss 00000002 tcplen 00000000 l df *ABS* 00000000 tcp_out.c 0000aef8 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 0000c03e l F .text 00000076 icmp_send_response.isra.0 00000000 l df *ABS* 00000000 inet_chksum.c 0000c32c l F .text 0000007e lwip_standard_chksum 00000000 l df *ABS* 00000000 wchprintf.c 00000000 l df *ABS* 00000000 libgcc2.c 00000000 l df *ABS* 00000000 memcpy.c 00000000 l df *ABS* 00000000 memmove.c 00000000 l df *ABS* 00000000 libgcc2.c 00000000 l df *ABS* 00000000 net_dhcp.c 0000c752 w F .text 00000004 printDouble 00000d46 w .text 00000000 EXTI2_IRQHandler 0000cae4 g F .text 00000018 putchar 0000c4b4 g F .text 00000014 inet_chksum 000008a4 g F .text 0000006a WCHNET_HandleGlobalInt 20000157 g O .bss 00000001 Frame_Ready_Flag 00000d46 w .text 00000000 TIM8_TRG_COM_IRQHandler 00008dca g F .text 0000001e raw_bind 00007c96 g F .text 000003dc ip_reass 00000d46 w .text 00000000 TIM8_CC_IRQHandler 00008c22 g F .text 00000058 pbuf_realloc 00000e2c g F .text 00000062 DVP_Cfg 000010b8 g F .text 0000001a FLASH_Unlock 00009776 g F .text 00000010 tcp_next_iss 0000906c g F .text 00000048 tcp_update_rcv_ann_wnd 00005bf6 g F .text 00000016 setRxBuffAddr 00001020 g F .text 00000010 ETH_FlushTransmitFIFO 00001526 g F .text 0000001e RCC_AHBPeriphResetCmd 200001c8 g O .bss 00000004 netif_list 00000d46 w .text 00000000 UART8_IRQHandler 00002392 g F .text 000000f2 qdx_port_tcp_recv 0000b832 g F .text 00000108 tcp_rst 0000cafc g F .text 000003d4 .hidden __divdi3 0000c756 w F .text 00000320 print 00003b06 g F .text 00000042 vPortExitCritical 000055b8 g F .text 00000074 xTimerCreate 20000184 g O .bss 00000004 TCPTimer 000070ec g F .text 000000ce etharp_request 0000ca76 w F .text 00000024 printf 20000840 g .data 00000000 __global_pointer$ 000004ee g F .text 00000028 .hidden __riscv_save_8 00009170 g F .text 00000006 tcp_err 2000008c g O .data 00000004 ip_addr_any 00000d46 w .text 00000000 TIM1_CC_IRQHandler 00002a1c g F .text 00000008 qdx_write_u16_le 0000c3aa g F .text 0000010a inet_chksum_pseudo 00006196 g F .text 00000016 WCHNET_ConfigKeepLive 0000b414 g F .text 00000016 tcp_send_ctrl 0000bfea g F .text 00000030 udp_remove 000005f0 g F .text 00000052 HardFault_Handler 00004544 g F .text 0000005c vQueueWaitForMessageRestricted 000079d6 g F .text 0000015a ip_output_if 00002a24 g F .text 00000014 qdx_write_u32_le 000088c2 g F .text 00000018 memp_free 0000c65c w F .text 000000f2 printInt 00008a94 g F .text 0000004e pbuf_free 0000053a g F .text 0000000c .hidden __riscv_restore_3 00006aa6 g F .text 00000014 WCHNET_GetGlobalInt 00009164 g F .text 00000006 tcp_recv 00000d46 w .text 00000000 TIM6_IRQHandler 00001e3e g F .text 0000006c ETH_Init 00003ab8 g F .text 00000038 SysTick_Handler 00008c96 g F .text 0000001c pbuf_cat 000012f6 g F .text 00000060 NVIC_Init 00002484 g F .text 0000004c qdx_port_tcp_close 00000d46 w .text 00000000 PVD_IRQHandler 000020ae g F .text 0000001c qdx_port_delay_ms 00000d46 w .text 00000000 SDIO_IRQHandler 20000190 g O .bss 00000001 ARP_Retry_Cnt 00006c5c g F .text 00000060 WCHNET_SocketClose 00006b64 g F .text 00000038 CloseUpdConnect 0000cf82 g F .text 00000046 memmove 00007b30 g F .text 00000036 ip_output 00000d46 w .text 00000000 TIM9_BRK_IRQHandler 00000526 g F .text 00000020 .hidden __riscv_restore_10 00001c90 g F .text 00000126 ReInitMACReg 0000bf26 g F .text 0000002e udp_sendto 0000175c g F .text 00000044 ETH_TxPktChainMode 2000018c g O .bss 00000004 phydatatime 00003ff8 g F .text 00000128 xQueueGenericSendFromISR 00000d46 w .text 00000000 DMA2_Channel8_IRQHandler 000005ee g F .text 00000002 NMI_Handler 0000ba4e g F .text 0000005e tcp_keepalive 00000d46 w .text 00000000 CAN2_RX1_IRQHandler 00000d46 w .text 00000000 EXTI3_IRQHandler 000060ea g F .text 000000ac WCHNET_Init 000071ba g F .text 0000007c etharp_tmr 000004ee g F .text 00000028 .hidden __riscv_save_11 00000dda g F .text 0000000a DBGMCU_GetCHIPID 00009786 g F .text 00000134 tcp_alloc 00005afa g F .text 00000014 WCHNET_NetInput 0000d194 g O .text 00000010 MemSize 0000be50 g F .text 000000d6 udp_sendto_if 00001dec g F .text 00000052 WCHNET_ETHIsr 00009160 g F .text 00000004 tcp_arg 20000104 g O .bss 00000004 pxCurrentTCB 00000d46 w .text 00000000 USBHS_IRQHandler 00006f7c g F .text 00000170 etharp_arp_input 00002076 g F .text 0000002a qdx_port_init 200001d4 g O .bss 00000004 tcp_active_pcbs 00001752 g F .text 0000000a USART_GetFlagStatus 00000d46 w .text 00000000 DMA2_Channel9_IRQHandler 20000214 g O .bss 00000004 udp_pcbs 00000d46 w .text 00000000 TIM10_CC_IRQHandler 200000a4 g O .bss 00000006 MACAddr 00007482 g F .text 00000086 ethernet_input 200000a0 g .bss 00000000 _sbss 00000800 g *ABS* 00000000 __stack_size 00008c8c g F .text 0000000a pbuf_ref 000056fe g F .text 00000062 USART_Printf_Init 00006922 g F .text 00000056 WCHNET_SocketSend 200000bc g O .bss 00000004 ChipId 000095ac g F .text 00000030 tcp_recv_null 20000194 g O .bss 00000001 SockNumber 000020ea g F .text 00000016 qdx_port_mutex_unlock 00000d46 w .text 00000000 USBFS_IRQHandler 00004f2a g F .text 00000016 vTaskInternalSetTimeOutState 000094fa g F .text 000000b2 tcp_close 2002db08 g O .bss 0000000c SelARP 000090b4 g F .text 0000003c tcp_recved 00000828 g F .text 0000007c WCHNET_HandleSockInt 0000053a g F .text 0000000c .hidden __riscv_restore_2 00009180 g F .text 0000004e tcp_pcb_purge 20000094 g O .data 00000007 tcp_persist_backoff 00003a28 g F .text 00000090 xPortStartScheduler 00000e8e g F .text 00000014 ETH_DeInit 0000ced0 g F .text 000000b2 memcpy 00008634 g F .text 00000084 mem_free 00004d80 g F .text 00000048 vTaskPlaceOnEventList 200001e0 g O .bss 00000004 tcp_ticks 200001dc g O .bss 00000004 tcp_listen_pcbs 0000b93a g F .text 00000036 tcp_rexmit_rto 20000164 g O .bss 00000004 current_line_idx 00006b9c g F .text 00000038 CloseIPRAWConnect 000039ee w F .text 0000003a vPortSetupTimerInterrupt 00002b96 g F .text 00000084 qdx_build_fragment_frame 00007b66 g F .text 0000004a ip_addr_isbroadcast 0000c74e w F .text 00000004 printLongLongInt 200000b0 g O .bss 00000004 DMARxDescToGet 000098ba g F .text 00000010 tcp_new 20000010 g O .data 00000010 g_TxNetBuffer_B 00000d46 w .text 00000000 EXTI0_IRQHandler 0000155e g F .text 00000024 RCC_ETH1G_125Mcmd 00000d46 w .text 00000000 I2C2_EV_IRQHandler 00005c42 g F .text 0000000e GetChipID 00000d46 w .text 00000000 TIM10_TRG_COM_IRQHandler 00005d1e g F .text 00000042 IPCheckTmr 00001670 g F .text 00000018 TIM_Cmd 0000ca9a g F .text 0000004a puts 00003946 g F .text 000000a8 vPortFree 2002db14 g O .bss 00000018 DHCPCtrl 20000050 g O .data 00000004 SystemCoreClock 20030000 g .stack 00000000 __freertos_irq_stack_top 00008e8a g F .text 00000010 raw_send 0000c4c8 g F .text 0000006a inet_chksum_pbuf 00004286 g F .text 000001bc xQueueSemaphoreTake 0000c0b4 g F .text 00000250 icmp_input 00000004 g .init 00000000 _einit 0000169a g F .text 0000000c TIM_ClearITPendingBit 000035a4 g F .text 0000000e TcpLogic_RegisterConfigCallback 000089be g F .text 0000005a netif_add 000014ea g F .text 0000001e RCC_APB2PeriphClockCmd 000004e6 g F .text 00000030 .hidden __riscv_save_12 0000911a g F .text 0000001e tcp_segs_free 00006a68 g F .text 0000003e WCHNET_QueryGlobalInt 00000d46 w .text 00000000 CAN2_SCE_IRQHandler 00000d46 w .text 00000000 ADC1_2_IRQHandler 0000122e g F .text 000000c0 GPIO_Init 00000d46 w .text 00000000 Break_Point_Handler 000088da g F .text 00000096 netif_set_ipaddr 00000526 g F .text 00000020 .hidden __riscv_restore_11 200000b8 g O .bss 00000004 NVIC_Priority_Group 00000d46 w .text 00000000 SPI1_IRQHandler 00001734 g F .text 00000016 USART_Cmd 00006aba g F .text 0000002a WCHNET_GetSocketInt 0000b42a g F .text 00000030 tcp_write 00000d46 w .text 00000000 TAMPER_IRQHandler 00000516 g F .text 0000000c .hidden __riscv_save_1 000010e0 g F .text 0000000a FLASH_GetUserOptionByte 2002dbd0 g O .bss 0000002c WCHCfg 0000053a g F .text 0000000c .hidden __riscv_restore_0 00003b6e g F .text 00000006 vListInitialiseItem 00009660 g F .text 0000007c tcp_fastsendack 00001aca g F .text 00000094 ETH_RegInit 000004fc g F .text 0000001a .hidden __riscv_save_7 00004120 g F .text 00000166 xQueueReceive 00000d46 w .text 00000000 CAN2_RX0_IRQHandler 20000060 g O .data 00000004 DHCPXid 20015510 g O .bss 00000040 xQueueRegistry 00008f56 g F .text 00000116 tcp_bind 00003b54 g F .text 00000006 vPortClearInterruptMask 0000c318 g F .text 00000014 icmp_time_exceeded 2000015c g O .bss 00000004 Ready_Frame_Count 20006978 g O .bss 000029ac MACRxBuf 00000d46 w .text 00000000 TIM8_UP_IRQHandler 00008072 g F .text 0000017e ip_frag 00001508 g F .text 0000001e RCC_APB1PeriphClockCmd 000065ce g F .text 000000e8 WCHNET_SocketRecv 200000d0 g O .bss 00000004 pDMARxSet 00000d46 w .text 00000000 Ecall_M_Mode_Handler 2002f800 g .stack 00000000 _heap_end 2002db2c g O .bss 00000040 dhcp_host_name 00008e0c g F .text 0000007e raw_sendto 000035c0 g F .text 000001ae TcpLogic_BuildAndSendTemperatureFrame 000056c8 g F .text 00000036 Delay_Us 00000530 g F .text 00000016 .hidden __riscv_restore_5 00000d46 w .text 00000000 DMA2_Channel2_IRQHandler 000014cc g F .text 0000001e RCC_AHBPeriphClockCmd 00000d46 w .text 00000000 DMA1_Channel4_IRQHandler 20015b08 g O .bss 00018000 FrameBuffer 00008cc6 g F .text 0000009c pbuf_copy 0000b970 g F .text 0000007c tcp_rexmit 000037ba g F .text 0000018c pvPortMalloc 00005dce g F .text 00000004 LwipTCPPollCallBack 200000b4 g O .bss 00000004 DMATxDescToSet 00004508 g F .text 0000003c vQueueDelete 00000f4c g F .text 00000014 ETH_MACTransmissionCmd 00003b5a g F .text 00000014 vListInitialise 000010d2 g F .text 0000000e FLASH_Lock 20000048 g O .data 00000004 IPMask 00002032 g F .text 00000022 qdx_port_sock_connect_notify 20000158 g O .bss 00000001 Line_Ready_Flag 00000d46 w .text 00000000 TIM9_UP_IRQHandler 00000530 g F .text 00000016 .hidden __riscv_restore_6 00000d46 w .text 00000000 USART3_IRQHandler 000010ae g F .text 0000000a EXTI_ClearITPendingBit 00004962 g F .text 0000000a xTaskGetTickCount 00003e22 g F .text 000001a8 xQueueGenericSend 00000d46 w .text 00000000 RTC_IRQHandler 200001e8 g O .bss 00000004 tcp_tmp_pcb 2002dc68 g .bss 00000000 _ebss 2000a3bc g O .bss 00001e74 Mem_Heap_Memory 00000d46 w .text 00000000 DMA1_Channel7_IRQHandler 20000174 g O .bss 00000004 DHCPcoarseTimer 00001080 g F .text 0000002e RGMII_TXC_Delay 000024d0 g F .text 00000068 Preprocess_Init 00000d46 w .text 00000000 CAN1_RX1_IRQHandler 000056a2 g F .text 00000026 Delay_Init 000050e0 g F .text 000000ca xTaskPriorityDisinherit 00002b26 g F .text 00000070 qdx_build_frame_inplace 000085f6 g F .text 0000003e mem_init 00001018 g F .text 00000008 ETH_DMAClearITPendingBit 000058cc g F .text 0000005a DVP_IRQHandler 00000d46 w .text 00000000 UART5_IRQHandler 200000cc g O .bss 00000002 gPHYAddress 0000b4ca g F .text 00000368 tcp_output 00004e3e g F .text 000000ec xTaskRemoveFromEventList 000012ee g F .text 00000004 GPIO_SetBits 00000d46 w .text 00000000 TIM4_IRQHandler 20000208 g O .bss 00000004 tcp_input_pcb 00008d62 g F .text 00000068 raw_input 0000b45a g F .text 00000070 tcp_send_empty_ack 000004ee g F .text 00000028 .hidden __riscv_save_9 0000b9ec g F .text 00000062 tcp_rexmit_fast 00000d46 w .text 00000000 DMA2_Channel1_IRQHandler 2000c230 g O .bss 0000261b Memp_Memory 00001062 g F .text 0000001e ETH_DMAITConfig 0000076c g F .text 00000036 OnDetectionResult 0000762e g F .text 00000076 wch_ethernetif_init 00005c50 g F .text 00000074 getTxBuffAddr 000076e4 g F .text 0000000c ntohl 0000100a g F .text 0000000e ETH_SoftwareReset 000004fc g F .text 0000001a .hidden __riscv_save_4 00008a18 g F .text 00000006 netif_set_default 0000609e g F .text 0000004c WCHSocketInit 00000efa g F .text 00000052 ETH_WritePHYRegister 0000bfe4 g F .text 00000006 udp_recv 00000d46 w .text 00000000 I2C1_EV_IRQHandler 20000078 g O .data 00000004 xISRStackTop 00005d60 g F .text 0000002e IPConflictHandle 00008ae2 g F .text 00000140 pbuf_alloc 00005ce6 g F .text 00000038 SelIPARPSend 000044ae g F .text 0000005a vQueueUnregisterQueue 00006978 g F .text 00000052 WCHScokedIntHandle 00001356 g F .text 00000176 RCC_GetClocksFreq 00005290 g F .text 0000001c pvTaskIncrementMutexHeldCount 00000d46 w .text 00000000 DMA1_Channel6_IRQHandler 00000d46 w .text 00000000 UART4_IRQHandler 20000198 g O .bss 00000004 TCPVerifyConnCallback 00000d46 w .text 00000000 DMA2_Channel4_IRQHandler 20000090 g O .data 00000004 ip_addr_broadcast 00007bb0 g F .text 000000e6 ip_reass_tmr 000016a6 g F .text 0000008e USART_Init 00004f40 g F .text 000000ca xTaskCheckForTimeOut 2000006c g O .data 00000004 memp_sizes 000017a0 g F .text 00000020 WCHNET_GetMacAddr 00005032 g F .text 000000ae xTaskPriorityInherit 00000d46 w .text 00000000 TIM3_IRQHandler 00000d46 w .text 00000000 RCC_IRQHandler 20006958 g O .bss 00000020 DMATxDscrTab 00000516 g F .text 0000000c .hidden __riscv_save_3 0000bf66 g F .text 0000007e udp_connect 00000d46 w .text 00000000 TIM1_TRG_COM_IRQHandler 0000d3ac g O .text 00000010 ErrTable 00000d46 w .text 00000000 DMA1_Channel1_IRQHandler 00008970 g F .text 0000004e netif_set_addr 0000845c g F .text 00000182 dhcp_arp_reply 200001a0 g O .bss 00000004 tcpSendAckFlag 00000000 g .init 00000000 _start 00000d46 w .text 00000000 DMA2_Channel7_IRQHandler 00004952 g F .text 00000010 vTaskSuspendAll 20000020 g O .data 00000010 AHBPrescTable 000088a2 g F .text 00000020 memp_malloc 0000baac g F .text 000000d2 tcp_zero_window_probe 00002136 g F .text 0000020e qdx_port_tcp_connect 00001102 g F .text 00000020 FLASH_WaitForLastOperation 200040e8 g O .bss 00002800 g_TxNetBuffer_B_Mem 0000c57c w F .text 000000e0 prints 00005866 g F .text 00000066 DVP_Task 00003ba2 g F .text 00000020 uxListRemove 00000d46 w .text 00000000 EXTI15_10_IRQHandler 00001688 g F .text 00000012 TIM_ITConfig 2002db80 g O .bss 0000000c KeepLiveCfg 000035b2 g F .text 0000000e TcpLogic_RegisterDetectionCallback 00006352 g F .text 000001d2 WCHNET_SocketCreat 0000657c g F .text 00000052 WCHNET_ModifyRecvBuf 2002dbfc g O .bss 00000038 WCHNetIf 200001d8 g O .bss 00000004 tcp_bound_pcbs 000076c0 g F .text 00000024 htonl 000090f0 g F .text 0000002a tcp_seg_free 00004ce6 g F .text 0000009a vTaskSwitchContext 0000352a g F .text 0000007a TcpLogic_Start 20000160 g O .bss 00000004 Ready_Line_Ptr 00004dc8 g F .text 00000076 vTaskPlaceOnEventListRestricted 000069ca g F .text 0000009e LwipRemoveTcpPcb 000012f2 g F .text 00000004 GPIO_ResetBits 0000592c g F .text 00000006 __get_MCAUSE 00000d46 w .text 00000000 TIM7_IRQHandler 000098f8 g F .text 000000e8 tcp_connect 00008782 g F .text 000000d0 mem_malloc 00000d46 w .text 00000000 CAN2_TX_IRQHandler 20000000 g .dalign 00000000 _data_vma 00000de4 g F .text 00000016 DVP_INTCfg 00000d46 w .text 00000000 TIM5_IRQHandler 00001122 g F .text 0000010c FLASH_ProgramOptionByteData 000028e4 g F .text 00000138 Preprocess_CheckInternalTrigger2D 00000fba g F .text 00000050 ETH_DMARxDescChainInit 0000562c g F .text 00000076 xTimerGenericCommand 00000ea2 g F .text 00000058 ETH_ReadPHYRegister 00000642 g F .text 00000054 EXTI9_5_IRQHandler 0000afcc g F .text 00000448 tcp_enqueue 000098ca g F .text 0000002e tcp_eff_send_mss 000062f4 g F .text 0000005e WCHFindCorrectTCBPcb 00002100 g F .text 00000036 qdx_port_thread_create 000004ee g F .text 00000028 .hidden __riscv_save_10 00001eaa g F .text 00000074 ETH_LibInit 00005f70 g F .text 000000d2 WCHSocketTCPReceive 00000d46 w .text 00000000 ETH_WKUP_IRQHandler 0000348c g F .text 0000009e TcpLogic_Init 00000530 g F .text 00000016 .hidden __riscv_restore_4 00005932 g F .text 00000006 __get_MTVAL 00000526 g F .text 00000020 .hidden __riscv_restore_8 00005926 g F .text 00000006 __get_MEPC 000004fc g F .text 0000001a .hidden __riscv_save_6 00008de8 g F .text 0000001e raw_connect 00000d46 w .text 00000000 SPI2_IRQHandler 20000192 g O .bss 00000002 Arp_Entry_timeout 00000546 g F .text 000000a8 memset 00000526 g F .text 00000020 .hidden __riscv_restore_9 00000530 g F .text 00000016 .hidden __riscv_restore_7 00000926 g F .text 000001fe main 200000c8 g O .bss 00000004 LocalTime 20000068 g O .data 00000004 memp_num 00000d46 w .text 00000000 TIM10_BRK_IRQHandler 20000040 g O .data 00000004 GWIPAddr 000007a2 g F .text 00000018 mStopIfError 00000d46 w .text 00000000 TIM9_CC_IRQHandler 00003b74 g F .text 0000002e vListInsert 0000c304 g F .text 00000014 icmp_dest_unreach 00005dd2 g F .text 000000c4 SocketIPRAWReceive 0000916a g F .text 00000006 tcp_sent 00008a1e g F .text 00000008 netif_is_up 00000d46 w .text 00000000 DMA2_Channel5_IRQHandler 00005560 g F .text 00000058 xTimerCreateTimerTask 000076b2 g F .text 0000000e ntohs 00008eca g F .text 00000030 raw_new 20000180 g O .bss 00000004 IPFragTimer 00005d8e g F .text 00000002 NET_TCPError 000075be g F .text 00000070 ethernetif_input 20000000 g O .data 00000010 g_TxNetBuffer_A 00002054 g F .text 00000022 qdx_port_sock_disconnect_notify 00000d46 w .text 00000000 DMA1_Channel5_IRQHandler 00000d46 w .text 00000000 EXTI4_IRQHandler 00008e9a g F .text 00000030 raw_remove 00003db4 g F .text 0000006e xQueueGenericCreate 00000d46 w .text 00000000 USB_LP_CAN1_RX0_IRQHandler 20015908 g O .bss 00000200 DMA_LineBuf1 2002db6c g O .bss 00000014 DNSInf 20015708 g O .bss 00000200 DMA_LineBuf0 00006774 g F .text 000000be SocketUdpSend 0000bdb6 g F .text 0000009a udp_bind 0000963e g F .text 00000022 tcp_tmr 00007236 g F .text 00000118 etharp_query 00001ab8 g F .text 00000012 WCHNET_MainTask 000085de g F .text 00000018 lwip_init 000020a0 g F .text 0000000e qdx_port_get_tick_ms 00005c0c g F .text 00000036 WCHNET_Tx 0000734e g F .text 00000134 etharp_output 00000b24 g F .text 000000f8 SystemInit 00000d46 w .text 00000000 RNG_IRQHandler 0000579e g F .text 000000c8 DVP_Init 200068e8 g O .bss 00000070 DMARxDscrTab 200018e8 g O .bss 00002800 g_TxNetBuffer_A_Mem 0000c532 w F .text 0000004a printchar 00006832 g F .text 000000f0 SocketTcpSend 00004b18 g F .text 00000168 xTaskResumeAll 2000005c g O .data 00000004 uxTopUsedPriority 00000d46 w .text 00000000 USB_HP_CAN1_TX_IRQHandler 0000d414 g O .text 00000100 .hidden __clz_tab 00003b48 g F .text 0000000c xPortSetInterruptMask 000048c0 g F .text 00000092 vTaskStartScheduler 00008c7a g F .text 00000012 pbuf_clen 00000000 g .init 00000000 _sinit 200000c4 g O .bss 00000004 LastQueryPhyTime 00006084 g F .text 0000001a ErrorEncode 000020ca g F .text 0000000e qdx_port_mutex_create 00000300 g .text 00000000 xPortStartFirstTask 0000bf54 g F .text 00000012 udp_send 00000d46 w .text 00000000 DMA1_Channel3_IRQHandler 00002344 g F .text 0000004e qdx_port_tcp_send 00001c78 g F .text 00000018 ETH_Stop 000025d0 g F .text 00000314 Preprocess_Execute 00008e06 g F .text 00000006 raw_recv 200001a8 g O .bss 00000008 frame 0000d184 g O .text 00000010 MemNum 00000696 g F .text 00000008 ETH_IRQHandler 00000d46 w .text 00000000 TIM1_UP_IRQHandler 000091ce g F .text 000002ba tcp_slowtmr 00006bd4 g F .text 00000088 CloseTcpPCB 00005b5c g F .text 0000009a WCHNET_Rx 00001544 g F .text 0000001a RCC_ETH1GCLKConfig 20000044 g O .data 00000004 IPAddr 00000dfa g F .text 00000032 DVP_Mode 00000d46 w .text 00000000 WWDG_IRQHandler 00002a8c g F .text 0000009a qdx_build_frame 00000d46 w .text 00000000 USBHSWakeup_IRQHandler 200000c0 g O .bss 00000002 LastPhyStat 00002538 g F .text 00000098 Preprocess_Settings_Change 00000d46 w .text 00000000 DMA2_Channel11_IRQHandler 00001030 g F .text 00000032 ETH_Start 00000d46 w .text 00000000 Ecall_U_Mode_Handler 0000500a g F .text 0000000c vTaskMissedYield 00007508 g F .text 00000064 ethernetif_init 00000d46 w .text 00000000 DMA2_Channel6_IRQHandler 0000069e g F .text 00000022 TIM2_IRQHandler 20030000 g .stack 00000000 _eusrstack 00000516 g F .text 0000000c .hidden __riscv_save_2 00000200 g .text 00000000 SW_Handler 00004442 g F .text 0000006c vQueueAddToRegistry 200000a0 g O .bss 00000004 sys_tick_ms 00006524 g F .text 00000058 tcp_recved_socket 20009324 g O .bss 00000be8 MACTxBuf 0000496c g F .text 000001ac xTaskIncrementTick 200000d4 g O .bss 00000004 pDMATxSet 00006ae4 g F .text 0000000a WCHNET_GetPHYStatus 00005cc4 g F .text 00000022 IPCheckParaInit 00000d46 w .text 00000000 TIM1_BRK_IRQHandler 0000174a g F .text 00000008 USART_SendData 200001ec g O .bss 00000004 tcp_tw_pcbs 00000d46 w .text 00000000 DMA2_Channel10_IRQHandler 00000d46 w .text 00000000 EXTI1_IRQHandler 0000bb7e g F .text 00000238 udp_input 000020d8 g F .text 00000012 qdx_port_mutex_lock 000004fc g F .text 0000001a .hidden __riscv_save_5 20000178 g O .bss 00000004 DHCPfineTimer 20000188 g O .bss 00000004 TxTimer 00003cf0 g F .text 000000c4 xQueueGenericReset 00005760 g F .text 0000003e _write 200000a0 g .data 00000000 _edata 2002dc68 g .bss 00000000 _end 000076a4 g F .text 0000000e htons 2000017c g O .bss 00000004 DNSTimer 00001b5e g F .text 0000011a ETH_Configuration 20000170 g O .bss 00000004 ArpCheckTime 00001582 g F .text 000000ee TIM_TimeBaseInit 000076f0 g F .text 0000004c ip_route 00000d46 w .text 00000000 RTCAlarm_IRQHandler 000046bc g F .text 00000204 xTaskCreate 0000d514 g .dlalign 00000000 _data_lma 00000d46 w .text 00000000 TIM10_UP_IRQHandler 00000d46 w .text 00000000 TIM9_TRG_COM_IRQHandler 00000d46 w .text 00000000 UART7_IRQHandler 00008a26 g F .text 0000006e pbuf_header 000086b8 g F .text 000000ca mem_realloc 200001c4 g O .bss 00000004 netif_default 00009488 g F .text 00000072 tcp_pcb_remove 00000d46 w .text 00000000 USART2_IRQHandler 00000d46 w .text 00000000 UART6_IRQHandler 000017d0 g F .text 00000154 ETH_RGMIIPinInit 00008cb2 g F .text 00000014 pbuf_chain 20009f0c g O .bss 000004b0 Mem_ArpTable 00001a58 g F .text 00000060 WCHNET_QueryPhySta 2000016c g O .bss 00000004 ARPTimer 000096dc g F .text 0000009a tcp_abandon 20000064 g O .data 00000004 arp_table 00005e96 g F .text 000000da SocketUdpReceive 00000f60 g F .text 00000014 ETH_MACReceptionCmd 00006042 g F .text 00000042 LwipTcpConnectedCallBack 00000c1c g F .text 0000012a SystemCoreClockUpdate 2000e84c g O .bss 00000078 SocketInf 00008852 g F .text 00000050 memp_init 000095dc g F .text 00000062 tcp_fasttmr 000066b6 g F .text 000000be SocketIPRawSend 00002a58 g F .text 00000034 qdx_crc16_modbus 000062f0 g F .text 00000004 WCHNET_GetVer 00000d46 w .text 00000000 I2C2_ER_IRQHandler 00004c80 g F .text 00000066 vTaskDelay 2000019c g O .bss 00000001 phydata 00000d46 w .text 00000000 DMA1_Channel2_IRQHandler 00006f22 g F .text 0000005a etharp_ip_input 00000522 g F .text 00000024 .hidden __riscv_restore_12 00000d46 w .text 00000000 TIM8_BRK_IRQHandler 00005016 g F .text 0000001c xTaskGetSchedulerState 000051aa g F .text 000000e6 vTaskPriorityDisinheritAfterTimeout 00000d48 w .text 00000000 handle_reset 00000d46 w .text 00000000 CAN1_SCE_IRQHandler 20000218 g O .bss 000016d0 SocketRecvBuf 00001924 g F .text 00000134 ETH_PHYLink 00000d46 w .text 00000000 FLASH_IRQHandler 00000516 g F .text 0000000c .hidden __riscv_save_0 00006cbc g F .text 0000000e QueryPingEnable 00009138 g F .text 00000028 tcp_seg_copy 000007ba g F .text 0000006e TIM2_Init 00000d46 w .text 00000000 USART1_IRQHandler 00009176 g F .text 0000000a tcp_poll 00000400 g .text 00000000 pxPortInitialiseStack 00000d46 w .text 00000000 SPI3_IRQHandler 0000c01a g F .text 00000024 udp_new 00002a42 g F .text 00000016 qdx_read_u32_le 00000d46 w .text 00000000 I2C1_ER_IRQHandler 00002a38 g F .text 0000000a qdx_read_u16_le 2000007c g O .data 00000006 ethbroadcast 0000d3dc g O .text 0000000d tcp_backoff 000017c0 g F .text 00000010 WCHNET_TimeIsr 00003af0 g F .text 00000016 vPortEnterCritical 0000053a g F .text 0000000c .hidden __riscv_restore_1 2002db8c g O .bss 00000044 NetInf 00005d90 g F .text 0000003e LwipTCPSendCallBack 00006ce4 g F .text 0000000c LwipArpCheck 00006aee g F .text 00000076 WCHNET_SocketConnect 000010ea g F .text 00000018 FLASH_GetBank1Status 00001db6 g F .text 00000036 WCHNET_RecProcess 0000a4ca g F .text 00000a2e tcp_input 00003fca g F .text 0000002e xQueueCreateMutex 000099e0 g F .text 00000032 RemoveTimeWaiTCP 0000773c g F .text 0000029a ip_input 000006c0 g F .text 00000012 OnConfigUpdate 20000084 g O .data 00000006 ethzero 00000d46 w .text 00000000 USBWakeUp_IRQHandler 00001f96 g F .text 0000009c qdx_port_sock_recv_notify 000061ac g F .text 00000144 WCHNET_ConfigLIB 00006cca g F .text 0000001a LwipUnreachPort 20000191 g O .bss 00000001 ARP_Retry_Period 00000d46 w .text 00000000 DMA2_Channel3_IRQHandler 00005b0e g F .text 0000004e WCHNET_PhyStatus 00005938 g F .text 000001c2 WCHNET_PeriodicHandle 00000f74 g F .text 00000046 ETH_DMATxDescChainInit Disassembly of section .init: 00000000 <_sinit>: _start(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:17 .section .init,"ax",@progbits .global _start .align 1 _start: j handle_reset 0: 5490006f j d48 Disassembly of section .vector: 00000004 <_vector_base>: ... _vector_base(): c: 05ee slli a1,a1,0x1b e: 0000 unimp 10: 05f0 addi a2,sp,716 12: 0000 unimp 14: 0000 unimp 16: 0000 unimp 18: 0d46 slli s10,s10,0x11 ... 22: 0000 unimp 24: 0d46 slli s10,s10,0x11 26: 0000 unimp 28: 0d46 slli s10,s10,0x11 ... 32: 0000 unimp 34: 3ab8 lbu a4,19(a3) 36: 0000 unimp 38: 0000 unimp 3a: 0000 unimp 3c: 0200 addi s0,sp,256 3e: 0000 unimp 40: 0000 unimp 42: 0000 unimp 44: 0d46 slli s10,s10,0x11 46: 0000 unimp 48: 0d46 slli s10,s10,0x11 4a: 0000 unimp 4c: 0d46 slli s10,s10,0x11 4e: 0000 unimp 50: 0d46 slli s10,s10,0x11 52: 0000 unimp 54: 0d46 slli s10,s10,0x11 56: 0000 unimp 58: 0d46 slli s10,s10,0x11 5a: 0000 unimp 5c: 0d46 slli s10,s10,0x11 5e: 0000 unimp 60: 0d46 slli s10,s10,0x11 62: 0000 unimp 64: 0d46 slli s10,s10,0x11 66: 0000 unimp 68: 0d46 slli s10,s10,0x11 6a: 0000 unimp 6c: 0d46 slli s10,s10,0x11 6e: 0000 unimp 70: 0d46 slli s10,s10,0x11 72: 0000 unimp 74: 0d46 slli s10,s10,0x11 76: 0000 unimp 78: 0d46 slli s10,s10,0x11 7a: 0000 unimp 7c: 0d46 slli s10,s10,0x11 7e: 0000 unimp 80: 0d46 slli s10,s10,0x11 82: 0000 unimp 84: 0d46 slli s10,s10,0x11 86: 0000 unimp 88: 0d46 slli s10,s10,0x11 8a: 0000 unimp 8c: 0d46 slli s10,s10,0x11 8e: 0000 unimp 90: 0d46 slli s10,s10,0x11 92: 0000 unimp 94: 0d46 slli s10,s10,0x11 96: 0000 unimp 98: 0d46 slli s10,s10,0x11 9a: 0000 unimp 9c: 0d46 slli s10,s10,0x11 9e: 0000 unimp a0: 0642 slli a2,a2,0x10 a2: 0000 unimp a4: 0d46 slli s10,s10,0x11 a6: 0000 unimp a8: 0d46 slli s10,s10,0x11 aa: 0000 unimp ac: 0d46 slli s10,s10,0x11 ae: 0000 unimp b0: 0d46 slli s10,s10,0x11 b2: 0000 unimp b4: 069e slli a3,a3,0x7 b6: 0000 unimp b8: 0d46 slli s10,s10,0x11 ba: 0000 unimp bc: 0d46 slli s10,s10,0x11 be: 0000 unimp c0: 0d46 slli s10,s10,0x11 c2: 0000 unimp c4: 0d46 slli s10,s10,0x11 c6: 0000 unimp c8: 0d46 slli s10,s10,0x11 ca: 0000 unimp cc: 0d46 slli s10,s10,0x11 ce: 0000 unimp d0: 0d46 slli s10,s10,0x11 d2: 0000 unimp d4: 0d46 slli s10,s10,0x11 d6: 0000 unimp d8: 0d46 slli s10,s10,0x11 da: 0000 unimp dc: 0d46 slli s10,s10,0x11 de: 0000 unimp e0: 0d46 slli s10,s10,0x11 e2: 0000 unimp e4: 0d46 slli s10,s10,0x11 e6: 0000 unimp e8: 0d46 slli s10,s10,0x11 ea: 0000 unimp ec: 0d46 slli s10,s10,0x11 ee: 0000 unimp f0: 0d46 slli s10,s10,0x11 f2: 0000 unimp f4: 0d46 slli s10,s10,0x11 f6: 0000 unimp f8: 0d46 slli s10,s10,0x11 fa: 0000 unimp fc: 0d46 slli s10,s10,0x11 fe: 0000 unimp 100: 0d46 slli s10,s10,0x11 102: 0000 unimp 104: 0000 unimp 106: 0000 unimp 108: 0d46 slli s10,s10,0x11 10a: 0000 unimp 10c: 0d46 slli s10,s10,0x11 10e: 0000 unimp 110: 0d46 slli s10,s10,0x11 112: 0000 unimp 114: 0d46 slli s10,s10,0x11 116: 0000 unimp 118: 0d46 slli s10,s10,0x11 11a: 0000 unimp 11c: 0d46 slli s10,s10,0x11 11e: 0000 unimp 120: 0d46 slli s10,s10,0x11 122: 0000 unimp 124: 0d46 slli s10,s10,0x11 126: 0000 unimp 128: 0d46 slli s10,s10,0x11 12a: 0000 unimp 12c: 0d46 slli s10,s10,0x11 12e: 0000 unimp 130: 0d46 slli s10,s10,0x11 132: 0000 unimp 134: 0d46 slli s10,s10,0x11 136: 0000 unimp 138: 0696 slli a3,a3,0x5 13a: 0000 unimp 13c: 0d46 slli s10,s10,0x11 13e: 0000 unimp 140: 0d46 slli s10,s10,0x11 142: 0000 unimp 144: 0d46 slli s10,s10,0x11 146: 0000 unimp 148: 0d46 slli s10,s10,0x11 14a: 0000 unimp 14c: 0d46 slli s10,s10,0x11 14e: 0000 unimp 150: 0d46 slli s10,s10,0x11 152: 0000 unimp 154: 0d46 slli s10,s10,0x11 156: 0000 unimp 158: 0d46 slli s10,s10,0x11 15a: 0000 unimp 15c: 58cc lw a1,52(s1) 15e: 0000 unimp 160: 0d46 slli s10,s10,0x11 162: 0000 unimp 164: 0d46 slli s10,s10,0x11 166: 0000 unimp 168: 0d46 slli s10,s10,0x11 16a: 0000 unimp 16c: 0d46 slli s10,s10,0x11 16e: 0000 unimp 170: 0d46 slli s10,s10,0x11 172: 0000 unimp 174: 0d46 slli s10,s10,0x11 176: 0000 unimp 178: 0d46 slli s10,s10,0x11 17a: 0000 unimp 17c: 0d46 slli s10,s10,0x11 17e: 0000 unimp 180: 0d46 slli s10,s10,0x11 182: 0000 unimp 184: 0d46 slli s10,s10,0x11 186: 0000 unimp 188: 0d46 slli s10,s10,0x11 18a: 0000 unimp 18c: 0d46 slli s10,s10,0x11 18e: 0000 unimp 190: 0d46 slli s10,s10,0x11 192: 0000 unimp 194: 0d46 slli s10,s10,0x11 196: 0000 unimp 198: 0d46 slli s10,s10,0x11 19a: 0000 unimp 19c: 0d46 slli s10,s10,0x11 19e: 0000 unimp 1a0: 0d46 slli s10,s10,0x11 ... Disassembly of section .text: 00000200 : SW_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:118 .extern xISRStackTop /*-----------------------------------------------------------*/ .align 8 .func SW_Handler: addi sp, sp, -portCONTEXT_SIZE 200: f8810113 addi sp,sp,-120 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:119 store_x x1, 1 * portWORD_SIZE( sp ) 204: c206 sw ra,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:120 store_x x5, 2 * portWORD_SIZE( sp ) 206: c416 sw t0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:121 store_x x6, 3 * portWORD_SIZE( sp ) 208: c61a sw t1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:122 store_x x7, 4 * portWORD_SIZE( sp ) 20a: c81e sw t2,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:123 store_x x8, 5 * portWORD_SIZE( sp ) 20c: ca22 sw s0,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:124 store_x x9, 6 * portWORD_SIZE( sp ) 20e: cc26 sw s1,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:125 store_x x10, 7 * portWORD_SIZE( sp ) 210: ce2a sw a0,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:126 store_x x11, 8 * portWORD_SIZE( sp ) 212: d02e sw a1,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:127 store_x x12, 9 * portWORD_SIZE( sp ) 214: d232 sw a2,36(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:128 store_x x13, 10 * portWORD_SIZE( sp ) 216: d436 sw a3,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:129 store_x x14, 11 * portWORD_SIZE( sp ) 218: d63a sw a4,44(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:130 store_x x15, 12 * portWORD_SIZE( sp ) 21a: d83e sw a5,48(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:131 store_x x16, 13 * portWORD_SIZE( sp ) 21c: da42 sw a6,52(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:132 store_x x17, 14 * portWORD_SIZE( sp ) 21e: dc46 sw a7,56(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:133 store_x x18, 15 * portWORD_SIZE( sp ) 220: de4a sw s2,60(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:134 store_x x19, 16 * portWORD_SIZE( sp ) 222: c0ce sw s3,64(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:135 store_x x20, 17 * portWORD_SIZE( sp ) 224: c2d2 sw s4,68(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:136 store_x x21, 18 * portWORD_SIZE( sp ) 226: c4d6 sw s5,72(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:137 store_x x22, 19 * portWORD_SIZE( sp ) 228: c6da sw s6,76(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:138 store_x x23, 20 * portWORD_SIZE( sp ) 22a: c8de sw s7,80(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:139 store_x x24, 21 * portWORD_SIZE( sp ) 22c: cae2 sw s8,84(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:140 store_x x25, 22 * portWORD_SIZE( sp ) 22e: cce6 sw s9,88(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:141 store_x x26, 23 * portWORD_SIZE( sp ) 230: ceea sw s10,92(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:142 store_x x27, 24 * portWORD_SIZE( sp ) 232: d0ee sw s11,96(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:143 store_x x28, 25 * portWORD_SIZE( sp ) 234: d2f2 sw t3,100(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:144 store_x x29, 26 * portWORD_SIZE( sp ) 236: d4f6 sw t4,104(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:145 store_x x30, 27 * portWORD_SIZE( sp ) 238: d6fa sw t5,108(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:146 store_x x31, 28 * portWORD_SIZE( sp ) 23a: d8fe sw t6,112(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:148 csrr t0, mstatus /* Required for MPIE bit. */ 23c: 300022f3 csrr t0,mstatus D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:149 store_x t0, 29 * portWORD_SIZE( sp ) 240: da96 sw t0,116(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:153 portasmSAVE_ADDITIONAL_REGISTERS /* Defined in freertos_risc_v_chip_specific_extensions.h to save any registers unique to the RISC-V implementation. */ load_x t0, pxCurrentTCB /* Load pxCurrentTCB. */ 242: 20000297 auipc t0,0x20000 246: ec22a283 lw t0,-318(t0) # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:154 store_x sp, 0( t0 ) /* Write sp to first TCB member. */ 24a: 0022a023 sw sp,0(t0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:156 csrr a1, mepc 24e: 341025f3 csrr a1,mepc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:157 store_x a1, 0( sp ) /* Save updated exception return address. */ 252: c02e sw a1,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:159 addi a1, x0, 0x20 254: 02000593 li a1,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:160 csrs 0x804, a1 258: 8045a073 csrs 0x804,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:162 load_x sp, xISRStackTop /* Switch to ISR stack before function call. */ 25c: 8381a103 lw sp,-1992(gp) # 20000078 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:163 jal vTaskSwitchContext 260: 287040ef jal ra,4ce6 00000264 : processed_source(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:166 processed_source: load_x t1, pxCurrentTCB /* Load pxCurrentTCB. */ 264: 20000317 auipc t1,0x20000 268: ea032303 lw t1,-352(t1) # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:167 load_x sp, 0( t1 ) /* Read sp from first TCB member. */ 26c: 00032103 lw sp,0(t1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:170 /* Load mret with the address of the next instruction in the task to run next. */ load_x t0, 0( sp ) 270: 4282 lw t0,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:171 csrw mepc, t0 272: 34129073 csrw mepc,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:176 portasmRESTORE_ADDITIONAL_REGISTERS /* Defined in freertos_risc_v_chip_specific_extensions.h to restore any registers unique to the RISC-V implementation. */ /* Load mstatus with the interrupt enable bits used by the task. */ load_x t0, 29 * portWORD_SIZE( sp ) 276: 52d6 lw t0,116(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:177 csrw mstatus, t0 /* Required for MPIE bit. */ 278: 30029073 csrw mstatus,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:179 load_x x1, 1 * portWORD_SIZE( sp ) 27c: 4092 lw ra,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:180 load_x x5, 2 * portWORD_SIZE( sp ) /* t0 */ 27e: 42a2 lw t0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:181 load_x x6, 3 * portWORD_SIZE( sp ) /* t1 */ 280: 4332 lw t1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:182 load_x x7, 4 * portWORD_SIZE( sp ) /* t2 */ 282: 43c2 lw t2,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:183 load_x x8, 5 * portWORD_SIZE( sp ) /* s0/fp */ 284: 4452 lw s0,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:184 load_x x9, 6 * portWORD_SIZE( sp ) /* s1 */ 286: 44e2 lw s1,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:185 load_x x10, 7 * portWORD_SIZE( sp ) /* a0 */ 288: 4572 lw a0,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:186 load_x x11, 8 * portWORD_SIZE( sp ) /* a1 */ 28a: 5582 lw a1,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:187 load_x x12, 9 * portWORD_SIZE( sp ) /* a2 */ 28c: 5612 lw a2,36(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:188 load_x x13, 10 * portWORD_SIZE( sp ) /* a3 */ 28e: 56a2 lw a3,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:189 load_x x14, 11 * portWORD_SIZE( sp ) /* a4 */ 290: 5732 lw a4,44(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:190 load_x x15, 12 * portWORD_SIZE( sp ) /* a5 */ 292: 57c2 lw a5,48(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:191 load_x x16, 13 * portWORD_SIZE( sp ) /* a6 */ 294: 5852 lw a6,52(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:192 load_x x17, 14 * portWORD_SIZE( sp ) /* a7 */ 296: 58e2 lw a7,56(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:193 load_x x18, 15 * portWORD_SIZE( sp ) /* s2 */ 298: 5972 lw s2,60(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:194 load_x x19, 16 * portWORD_SIZE( sp ) /* s3 */ 29a: 4986 lw s3,64(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:195 load_x x20, 17 * portWORD_SIZE( sp ) /* s4 */ 29c: 4a16 lw s4,68(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:196 load_x x21, 18 * portWORD_SIZE( sp ) /* s5 */ 29e: 4aa6 lw s5,72(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:197 load_x x22, 19 * portWORD_SIZE( sp ) /* s6 */ 2a0: 4b36 lw s6,76(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:198 load_x x23, 20 * portWORD_SIZE( sp ) /* s7 */ 2a2: 4bc6 lw s7,80(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:199 load_x x24, 21 * portWORD_SIZE( sp ) /* s8 */ 2a4: 4c56 lw s8,84(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:200 load_x x25, 22 * portWORD_SIZE( sp ) /* s9 */ 2a6: 4ce6 lw s9,88(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:201 load_x x26, 23 * portWORD_SIZE( sp ) /* s10 */ 2a8: 4d76 lw s10,92(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:202 load_x x27, 24 * portWORD_SIZE( sp ) /* s11 */ 2aa: 5d86 lw s11,96(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:203 load_x x28, 25 * portWORD_SIZE( sp ) /* t3 */ 2ac: 5e16 lw t3,100(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:204 load_x x29, 26 * portWORD_SIZE( sp ) /* t4 */ 2ae: 5ea6 lw t4,104(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:205 load_x x30, 27 * portWORD_SIZE( sp ) /* t5 */ 2b0: 5f36 lw t5,108(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:206 load_x x31, 28 * portWORD_SIZE( sp ) /* t6 */ 2b2: 5fc6 lw t6,112(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:207 addi sp, sp, portCONTEXT_SIZE 2b4: 07810113 addi sp,sp,120 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:209 mret 2b8: 30200073 mret 2bc: 00000013 nop 2c0: 00000013 nop 2c4: 00000013 nop 2c8: 00000013 nop 2cc: 00000013 nop 2d0: 00000013 nop 2d4: 00000013 nop 2d8: 00000013 nop 2dc: 00000013 nop 2e0: 00000013 nop 2e4: 00000013 nop 2e8: 00000013 nop 2ec: 00000013 nop 2f0: 00000013 nop 2f4: 00000013 nop 2f8: 00000013 nop 2fc: 00000013 nop 00000300 : xPortStartFirstTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:224 When entering the interrupt function of C code, the compiler automatically presses the stack into the task stack. We can only change the SP value used by the calling function after switching the interrupt stack.This problem can be solved by modifying the interrupt to the assembly entry, and there is no need to reserve 512 bytes. You only need to switch the interrupt stack at the beginning of the interrupt function */ lw t0, xISRStackTop 300: 8381a283 lw t0,-1992(gp) # 20000078 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:225 addi t0, t0, -512 304: e0028293 addi t0,t0,-512 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:226 csrw mscratch,t0 308: 34029073 csrw mscratch,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:228 load_x sp, pxCurrentTCB /* Load pxCurrentTCB. */ 30c: 20000117 auipc sp,0x20000 310: df812103 lw sp,-520(sp) # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:229 load_x sp, 0( sp ) /* Read sp from first TCB member. */ 314: 4102 lw sp,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:231 load_x x1, 0( sp ) /* Note for starting the scheduler the exception return address is used as the function return address. */ 316: 4082 lw ra,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:235 portasmRESTORE_ADDITIONAL_REGISTERS /* Defined in freertos_risc_v_chip_specific_extensions.h to restore any registers unique to the RISC-V implementation. */ load_x x6, 3 * portWORD_SIZE( sp ) /* t1 */ 318: 4332 lw t1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:236 load_x x7, 4 * portWORD_SIZE( sp ) /* t2 */ 31a: 43c2 lw t2,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:237 load_x x8, 5 * portWORD_SIZE( sp ) /* s0/fp */ 31c: 4452 lw s0,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:238 load_x x9, 6 * portWORD_SIZE( sp ) /* s1 */ 31e: 44e2 lw s1,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:239 load_x x10, 7 * portWORD_SIZE( sp ) /* a0 */ 320: 4572 lw a0,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:240 load_x x11, 8 * portWORD_SIZE( sp ) /* a1 */ 322: 5582 lw a1,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:241 load_x x12, 9 * portWORD_SIZE( sp ) /* a2 */ 324: 5612 lw a2,36(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:242 load_x x13, 10 * portWORD_SIZE( sp ) /* a3 */ 326: 56a2 lw a3,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:243 load_x x14, 11 * portWORD_SIZE( sp ) /* a4 */ 328: 5732 lw a4,44(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:244 load_x x15, 12 * portWORD_SIZE( sp ) /* a5 */ 32a: 57c2 lw a5,48(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:245 load_x x16, 13 * portWORD_SIZE( sp ) /* a6 */ 32c: 5852 lw a6,52(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:246 load_x x17, 14 * portWORD_SIZE( sp ) /* a7 */ 32e: 58e2 lw a7,56(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:247 load_x x18, 15 * portWORD_SIZE( sp ) /* s2 */ 330: 5972 lw s2,60(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:248 load_x x19, 16 * portWORD_SIZE( sp ) /* s3 */ 332: 4986 lw s3,64(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:249 load_x x20, 17 * portWORD_SIZE( sp ) /* s4 */ 334: 4a16 lw s4,68(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:250 load_x x21, 18 * portWORD_SIZE( sp ) /* s5 */ 336: 4aa6 lw s5,72(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:251 load_x x22, 19 * portWORD_SIZE( sp ) /* s6 */ 338: 4b36 lw s6,76(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:252 load_x x23, 20 * portWORD_SIZE( sp ) /* s7 */ 33a: 4bc6 lw s7,80(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:253 load_x x24, 21 * portWORD_SIZE( sp ) /* s8 */ 33c: 4c56 lw s8,84(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:254 load_x x25, 22 * portWORD_SIZE( sp ) /* s9 */ 33e: 4ce6 lw s9,88(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:255 load_x x26, 23 * portWORD_SIZE( sp ) /* s10 */ 340: 4d76 lw s10,92(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:256 load_x x27, 24 * portWORD_SIZE( sp ) /* s11 */ 342: 5d86 lw s11,96(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:257 load_x x28, 25 * portWORD_SIZE( sp ) /* t3 */ 344: 5e16 lw t3,100(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:258 load_x x29, 26 * portWORD_SIZE( sp ) /* t4 */ 346: 5ea6 lw t4,104(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:259 load_x x30, 27 * portWORD_SIZE( sp ) /* t5 */ 348: 5f36 lw t5,108(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:260 load_x x31, 28 * portWORD_SIZE( sp ) /* t6 */ 34a: 5fc6 lw t6,112(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:262 load_x x5, 29 * portWORD_SIZE( sp ) /* Initial mstatus into x5 (t0) */ 34c: 52d6 lw t0,116(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:263 addi x5, x5, 0x08 /* Set MIE bit so the first task starts with interrupts enabled - required as returns with ret not eret. */ 34e: 02a1 addi t0,t0,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:264 csrrw x0, mstatus, x5 /* Interrupts enabled from here! */ 350: 30029073 csrw mstatus,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:265 load_x x5, 2 * portWORD_SIZE( sp ) /* Initial x5 (t0) value. */ 354: 42a2 lw t0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:267 addi sp, sp, portCONTEXT_SIZE 356: 07810113 addi sp,sp,120 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:268 ret 35a: 8082 ret 35c: 00000013 nop 360: 00000013 nop 364: 00000013 nop 368: 00000013 nop 36c: 00000013 nop 370: 00000013 nop 374: 00000013 nop 378: 00000013 nop 37c: 00000013 nop 380: 00000013 nop 384: 00000013 nop 388: 00000013 nop 38c: 00000013 nop 390: 00000013 nop 394: 00000013 nop 398: 00000013 nop 39c: 00000013 nop 3a0: 00000013 nop 3a4: 00000013 nop 3a8: 00000013 nop 3ac: 00000013 nop 3b0: 00000013 nop 3b4: 00000013 nop 3b8: 00000013 nop 3bc: 00000013 nop 3c0: 00000013 nop 3c4: 00000013 nop 3c8: 00000013 nop 3cc: 00000013 nop 3d0: 00000013 nop 3d4: 00000013 nop 3d8: 00000013 nop 3dc: 00000013 nop 3e0: 00000013 nop 3e4: 00000013 nop 3e8: 00000013 nop 3ec: 00000013 nop 3f0: 00000013 nop 3f4: 00000013 nop 3f8: 00000013 nop 3fc: 00000013 nop 00000400 : pxPortInitialiseStack(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:338 */ .align 8 .func pxPortInitialiseStack: csrr t0, mstatus /* Obtain current mstatus value. */ 400: 300022f3 csrr t0,mstatus D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:339 andi t0, t0, ~0x8 /* Ensure interrupts are disabled when the stack is restored within an ISR. Required when a task is created after the schedulre has been started, otherwise interrupts would be disabled anyway. */ 404: ff72f293 andi t0,t0,-9 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:340 addi t1, x0, 0x788 /* Generate the value 0x7880, which are the MPIE, MPP and FS bits to set in mstatus. */ 408: 78800313 li t1,1928 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:341 slli t1, t1, 4 40c: 0312 slli t1,t1,0x4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:342 or t0, t0, t1 /* Set MPIE and MPP bits in mstatus value. */ 40e: 0062e2b3 or t0,t0,t1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:344 addi a0, a0, -portWORD_SIZE 412: 1571 addi a0,a0,-4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:345 store_x t0, 0(a0) /* mstatus onto the stack. */ 414: 00552023 sw t0,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:346 addi a0, a0, -(22 * portWORD_SIZE) /* Space for registers x11-x31. */ 418: fa850513 addi a0,a0,-88 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:347 store_x a2, 0(a0) /* Task parameters (pvParameters parameter) goes into register X10/a0 on the stack. */ 41c: c110 sw a2,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:348 addi a0, a0, -(6 * portWORD_SIZE) /* Space for registers x5-x9. */ 41e: 1521 addi a0,a0,-24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:349 store_x x0, 0(a0) /* Return address onto the stack, could be portTASK_RETURN_ADDRESS */ 420: 00052023 sw zero,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:350 addi t0, x0, portasmADDITIONAL_CONTEXT_SIZE /* The number of chip specific additional registers. */ 424: 00000293 li t0,0 00000428 : chip_specific_stack_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:352 chip_specific_stack_frame: /* First add any chip specific registers to the stack frame being created. */ beq t0, x0, 1f /* No more chip specific registers to save. */ 428: 00028763 beqz t0,436 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:353 addi a0, a0, -portWORD_SIZE /* Make space for chip specific register. */ 42c: 1571 addi a0,a0,-4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:354 store_x x0, 0(a0) /* Give the chip specific register an initial value of zero. */ 42e: 00052023 sw zero,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:355 addi t0, t0, -1 /* Decrement the count of chip specific registers remaining. */ 432: 12fd addi t0,t0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:356 j chip_specific_stack_frame /* Until no more chip specific registers. */ 434: bfd5 j 428 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:358 1: addi a0, a0, -portWORD_SIZE 436: 1571 addi a0,a0,-4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:359 store_x a1, 0(a0) /* mret value (pxCode parameter) onto the stack. */ 438: c10c sw a1,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/portASM.S:360 ret 43a: 8082 ret ... 000004e6 <__riscv_save_12>: __riscv_save_12(): 4e6: 7139 addi sp,sp,-64 4e8: 4301 li t1,0 4ea: c66e sw s11,12(sp) 4ec: a019 j 4f2 <__riscv_save_10+0x4> 000004ee <__riscv_save_10>: 4ee: 7139 addi sp,sp,-64 4f0: 5341 li t1,-16 4f2: c86a sw s10,16(sp) 4f4: ca66 sw s9,20(sp) 4f6: cc62 sw s8,24(sp) 4f8: ce5e sw s7,28(sp) 4fa: a019 j 500 <__riscv_save_4+0x4> 000004fc <__riscv_save_4>: 4fc: 7139 addi sp,sp,-64 4fe: 5301 li t1,-32 500: d05a sw s6,32(sp) 502: d256 sw s5,36(sp) 504: d452 sw s4,40(sp) 506: d64e sw s3,44(sp) 508: d84a sw s2,48(sp) 50a: da26 sw s1,52(sp) 50c: dc22 sw s0,56(sp) 50e: de06 sw ra,60(sp) 510: 40610133 sub sp,sp,t1 514: 8282 jr t0 00000516 <__riscv_save_0>: __riscv_save_1(): 516: 1141 addi sp,sp,-16 518: c04a sw s2,0(sp) 51a: c226 sw s1,4(sp) 51c: c422 sw s0,8(sp) 51e: c606 sw ra,12(sp) 520: 8282 jr t0 00000522 <__riscv_restore_12>: __riscv_restore_12(): 522: 4db2 lw s11,12(sp) 524: 0141 addi sp,sp,16 00000526 <__riscv_restore_10>: 526: 4d02 lw s10,0(sp) 528: 4c92 lw s9,4(sp) 52a: 4c22 lw s8,8(sp) 52c: 4bb2 lw s7,12(sp) 52e: 0141 addi sp,sp,16 00000530 <__riscv_restore_4>: 530: 4b02 lw s6,0(sp) 532: 4a92 lw s5,4(sp) 534: 4a22 lw s4,8(sp) 536: 49b2 lw s3,12(sp) 538: 0141 addi sp,sp,16 0000053a <__riscv_restore_0>: 53a: 4902 lw s2,0(sp) 53c: 4492 lw s1,4(sp) 53e: 4422 lw s0,8(sp) 540: 40b2 lw ra,12(sp) 542: 0141 addi sp,sp,16 544: 8082 ret 00000546 : memset(): 546: 433d li t1,15 548: 872a mv a4,a0 54a: 02c37363 bgeu t1,a2,570 54e: 00f77793 andi a5,a4,15 552: efbd bnez a5,5d0 554: e5ad bnez a1,5be 556: ff067693 andi a3,a2,-16 55a: 8a3d andi a2,a2,15 55c: 96ba add a3,a3,a4 55e: c30c sw a1,0(a4) 560: c34c sw a1,4(a4) 562: c70c sw a1,8(a4) 564: c74c sw a1,12(a4) 566: 0741 addi a4,a4,16 568: fed76be3 bltu a4,a3,55e 56c: e211 bnez a2,570 56e: 8082 ret 570: 40c306b3 sub a3,t1,a2 574: 068a slli a3,a3,0x2 576: 00000297 auipc t0,0x0 57a: 9696 add a3,a3,t0 57c: 00a68067 jr 10(a3) 580: 00b70723 sb a1,14(a4) 584: 00b706a3 sb a1,13(a4) 588: 00b70623 sb a1,12(a4) 58c: 00b705a3 sb a1,11(a4) 590: 00b70523 sb a1,10(a4) 594: 00b704a3 sb a1,9(a4) 598: 00b70423 sb a1,8(a4) 59c: 00b703a3 sb a1,7(a4) 5a0: 00b70323 sb a1,6(a4) 5a4: 00b702a3 sb a1,5(a4) 5a8: 00b70223 sb a1,4(a4) 5ac: 00b701a3 sb a1,3(a4) 5b0: 00b70123 sb a1,2(a4) 5b4: 00b700a3 sb a1,1(a4) 5b8: 00b70023 sb a1,0(a4) 5bc: 8082 ret 5be: 0ff5f593 andi a1,a1,255 5c2: 00859693 slli a3,a1,0x8 5c6: 8dd5 or a1,a1,a3 5c8: 01059693 slli a3,a1,0x10 5cc: 8dd5 or a1,a1,a3 5ce: b761 j 556 5d0: 00279693 slli a3,a5,0x2 5d4: 00000297 auipc t0,0x0 5d8: 9696 add a3,a3,t0 5da: 8286 mv t0,ra 5dc: fa8680e7 jalr -88(a3) 5e0: 8096 mv ra,t0 5e2: 17c1 addi a5,a5,-16 5e4: 8f1d sub a4,a4,a5 5e6: 963e add a2,a2,a5 5e8: f8c374e3 bgeu t1,a2,570 5ec: b7a5 j 554 000005ee : NMI_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:38 (discriminator 1) */ void NMI_Handler(void) { while (1) { } 5ee: a001 j 5ee 000005f0 : HardFault_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:50 * * @return none */ void HardFault_Handler(void) { printf("HardFault_Handler\r\n"); 5f0: 0000d537 lui a0,0xd 5f4: fd450513 addi a0,a0,-44 # cfd4 5f8: 4a20c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:51 printf("mepc :%08x\r\n", __get_MEPC()); 5fc: 32a050ef jal ra,5926 <__get_MEPC> 600: 85aa mv a1,a0 602: 0000d537 lui a0,0xd 606: fe850513 addi a0,a0,-24 # cfe8 60a: 46c0c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:52 printf("mcause:%08x\r\n", __get_MCAUSE()); 60e: 31e050ef jal ra,592c <__get_MCAUSE> 612: 85aa mv a1,a0 614: 0000d537 lui a0,0xd 618: ff850513 addi a0,a0,-8 # cff8 61c: 45a0c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:53 printf("mtval :%08x\r\n", __get_MTVAL()); 620: 312050ef jal ra,5932 <__get_MTVAL> 624: 85aa mv a1,a0 626: 0000d537 lui a0,0xd 62a: 00850513 addi a0,a0,8 # d008 62e: 4480c0ef jal ra,ca76 NVIC_SystemReset(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:382 * * @return none */ __attribute__( ( always_inline ) ) RV_STATIC_INLINE void NVIC_SystemReset(void) { NVIC->CFGR = NVIC_KEY3|(1<<7); 632: beef07b7 lui a5,0xbeef0 636: e000e737 lui a4,0xe000e 63a: 08078793 addi a5,a5,128 # beef0080 <__freertos_irq_stack_top+0x9eec0080> 63e: c73c sw a5,72(a4) HardFault_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:55 (discriminator 1) NVIC_SystemReset(); while(1); 640: a001 j 640 00000642 : EXTI9_5_IRQHandler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:66 * @brief This function handles GPIO exception. * * @return none */ void EXTI9_5_IRQHandler(void) { 642: 7139 addi sp,sp,-64 644: de06 sw ra,60(sp) 646: dc16 sw t0,56(sp) 648: da1a sw t1,52(sp) 64a: d81e sw t2,48(sp) 64c: d62a sw a0,44(sp) 64e: d42e sw a1,40(sp) 650: d232 sw a2,36(sp) 652: d036 sw a3,32(sp) 654: ce3a sw a4,28(sp) 656: cc3e sw a5,24(sp) 658: ca42 sw a6,20(sp) 65a: c846 sw a7,16(sp) 65c: c672 sw t3,12(sp) 65e: c476 sw t4,8(sp) 660: c27a sw t5,4(sp) 662: c07e sw t6,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:67 ETH_PHYLink( ); 664: 2c0010ef jal ra,1924 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:68 EXTI_ClearITPendingBit(EXTI_Line7); /* Clear Flag */ 668: 08000513 li a0,128 66c: 243000ef jal ra,10ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:69 } 670: 50f2 lw ra,60(sp) 672: 52e2 lw t0,56(sp) 674: 5352 lw t1,52(sp) 676: 53c2 lw t2,48(sp) 678: 5532 lw a0,44(sp) 67a: 55a2 lw a1,40(sp) 67c: 5612 lw a2,36(sp) 67e: 5682 lw a3,32(sp) 680: 4772 lw a4,28(sp) 682: 47e2 lw a5,24(sp) 684: 4852 lw a6,20(sp) 686: 48c2 lw a7,16(sp) 688: 4e32 lw t3,12(sp) 68a: 4ea2 lw t4,8(sp) 68c: 4f12 lw t5,4(sp) 68e: 4f82 lw t6,0(sp) 690: 6121 addi sp,sp,64 692: 30200073 mret 00000696 : ETH_IRQHandler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:80 * * @return none */ void ETH_IRQHandler(void) { WCHNET_ETHIsr(); 696: 756010ef jal ra,1dec D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:81 } 69a: 30200073 mret 0000069e : TIM2_IRQHandler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:92 * * @return none */ void TIM2_IRQHandler(void) { sys_tick_ms += WCHNETTIMERPERIOD; 69e: 200007b7 lui a5,0x20000 6a2: 0a078793 addi a5,a5,160 # 200000a0 <_edata> 6a6: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:93 WCHNET_TimeIsr(WCHNETTIMERPERIOD); 6a8: 4529 li a0,10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:92 sys_tick_ms += WCHNETTIMERPERIOD; 6aa: 0729 addi a4,a4,10 6ac: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:93 WCHNET_TimeIsr(WCHNETTIMERPERIOD); 6ae: 112010ef jal ra,17c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:94 TIM_ClearITPendingBit(TIM2, TIM_IT_Update); 6b2: 4585 li a1,1 6b4: 40000537 lui a0,0x40000 6b8: 7e3000ef jal ra,169a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/ch32v30x_it.c:95 } 6bc: 30200073 mret 000006c0 : OnConfigUpdate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:33 }; void OnConfigUpdate(const ConfigCommon_t *common, const Config2D_t *cfg2d, const Config1D_t *cfg1d) { 6c0: e57ff2ef jal t0,516 <__riscv_save_0> 6c4: 87ae mv a5,a1 6c6: 85b2 mv a1,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:34 Preprocess_Settings_Change(cfg2d, cfg1d, common); 6c8: 862a mv a2,a0 6ca: 853e mv a0,a5 6cc: 66d010ef jal ra,2538 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:35 } 6d0: b5ad j 53a <__riscv_restore_0> 000006d2 : task_business_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:219 /* ============================================================ * RTOS Task: Business logic (DVP + preprocess + send) * ============================================================ */ static void task_business_entry(void *pvParameters) { 6d2: e2bff2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:232 if (Frame_Ready_Flag) { Frame_Ready_Flag = 0; RawImageBuffer_t raw_img; raw_img.pData = (uint16_t *)FrameBuffer; 6d6: 20016437 lui s0,0x20016 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:240 raw_img.FrameNumber = Ready_Frame_Count; if (Preprocess_CheckInternalTrigger2D(&raw_img) == 1) { PreprocessResult_t meta; TcpTxBuffer_t *tx_buf = use_buffer_A ? &g_TxNetBuffer_A : &g_TxNetBuffer_B; 6da: 200004b7 lui s1,0x20000 6de: 20000937 lui s2,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:219 { 6e2: 7179 addi sp,sp,-48 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:232 raw_img.pData = (uint16_t *)FrameBuffer; 6e4: b0840413 addi s0,s0,-1272 # 20015b08 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:240 TcpTxBuffer_t *tx_buf = use_buffer_A ? &g_TxNetBuffer_A : &g_TxNetBuffer_B; 6e8: 00048493 mv s1,s1 6ec: 01090913 addi s2,s2,16 # 20000010 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:225 DVP_Task(); 6f0: 176050ef jal ra,5866 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:227 if (Frame_Ready_Flag) 6f4: 9171c783 lbu a5,-1769(gp) # 20000157 6f8: 0ff7f793 andi a5,a5,255 6fc: cba9 beqz a5,74e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:233 raw_img.Width = SENSOR_WIDTH; 6fe: 00c007b7 lui a5,0xc00 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:229 Frame_Ready_Flag = 0; 702: 90018ba3 sb zero,-1769(gp) # 20000157 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:233 raw_img.Width = SENSOR_WIDTH; 706: 10078793 addi a5,a5,256 # c00100 <_data_lma+0xbf2bec> 70a: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:235 raw_img.FrameNumber = Ready_Frame_Count; 70c: 91c1a783 lw a5,-1764(gp) # 2000015c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:237 if (Preprocess_CheckInternalTrigger2D(&raw_img) == 1) 710: 0028 addi a0,sp,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:232 raw_img.pData = (uint16_t *)FrameBuffer; 712: c422 sw s0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:235 raw_img.FrameNumber = Ready_Frame_Count; 714: c83e sw a5,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:237 if (Preprocess_CheckInternalTrigger2D(&raw_img) == 1) 716: 1ce020ef jal ra,28e4 71a: 4785 li a5,1 71c: fcf51ae3 bne a0,a5,6f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:240 TcpTxBuffer_t *tx_buf = use_buffer_A ? &g_TxNetBuffer_A : &g_TxNetBuffer_B; 720: 80c1c703 lbu a4,-2036(gp) # 2000004c 724: 89a6 mv s3,s1 726: 80c18793 addi a5,gp,-2036 # 2000004c 72a: e311 bnez a4,72e 72c: 89ca mv s3,s2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:241 (discriminator 4) use_buffer_A = !use_buffer_A; 72e: 00173713 seqz a4,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:243 (discriminator 4) if (Preprocess_Execute(&raw_img, tx_buf, &meta) == 0) 732: 0850 addi a2,sp,20 734: 85ce mv a1,s3 736: 0028 addi a0,sp,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:241 (discriminator 4) use_buffer_A = !use_buffer_A; 738: a398 sb a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:243 (discriminator 4) if (Preprocess_Execute(&raw_img, tx_buf, &meta) == 0) 73a: 697010ef jal ra,25d0 73e: f94d bnez a0,6f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:245 { TcpLogic_BuildAndSendTemperatureFrame(tx_buf, &meta, 1, 1); 740: 4685 li a3,1 742: 4605 li a2,1 744: 084c addi a1,sp,20 746: 854e mv a0,s3 748: 679020ef jal ra,35c0 74c: b755 j 6f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:251 } } } else { vTaskDelay(pdMS_TO_TICKS(2)); 74e: 4505 li a0,1 750: 530040ef jal ra,4c80 754: bf71 j 6f0 00000756 : ng_timer_callback(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:46 { 756: dc1ff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:48 GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN); 75a: 40011537 lui a0,0x40011 75e: 10000593 li a1,256 762: 80050513 addi a0,a0,-2048 # 40010800 <__freertos_irq_stack_top+0x1ffe0800> 766: 38d000ef jal ra,12f2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:49 } 76a: bbc1 j 53a <__riscv_restore_0> 0000076c : OnDetectionResult(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:69 if (resultStatus == 0) { 76c: e995 bnez a1,7a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:66 { 76e: da9ff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:70 GPIO_SetBits(NG_GPIO_PORT, NG_GPIO_PIN); 772: 40011537 lui a0,0x40011 776: 10000593 li a1,256 77a: 80050513 addi a0,a0,-2048 # 40010800 <__freertos_irq_stack_top+0x1ffe0800> 77e: 371000ef jal ra,12ee D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:71 if (g_ng_timer) 782: 200007b7 lui a5,0x20000 786: 0ac7a403 lw s0,172(a5) # 200000ac 78a: c811 beqz s0,79e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:72 xTimerStart(g_ng_timer, 0); 78c: 1d6040ef jal ra,4962 790: 862a mv a2,a0 792: 4701 li a4,0 794: 4681 li a3,0 796: 4585 li a1,1 798: 8522 mv a0,s0 79a: 693040ef jal ra,562c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:74 } 79e: bb71 j 53a <__riscv_restore_0> 7a0: 8082 ret 000007a2 : mStopIfError(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:126 if (iError == WCHNET_ERR_SUCCESS) return; 7a2: c919 beqz a0,7b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:125 { 7a4: d73ff2ef jal t0,516 <__riscv_save_0> 7a8: 85aa mv a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:127 printf("Error: %02X\r\n", (u16)iError); 7aa: 0000d537 lui a0,0xd 7ae: 0b050513 addi a0,a0,176 # d0b0 7b2: 2c40c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:128 } 7b6: b351 j 53a <__riscv_restore_0> 7b8: 8082 ret 000007ba : TIM2_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:131 { 7ba: d5dff2ef jal t0,516 <__riscv_save_0> 7be: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:133 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 7c0: 4585 li a1,1 7c2: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:132 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure = {0}; 7c4: c202 sw zero,4(sp) 7c6: c402 sw zero,8(sp) 7c8: 00011623 sh zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:133 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 7cc: 53d000ef jal ra,1508 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:135 TIM_TimeBaseStructure.TIM_Prescaler = SystemCoreClock / 1000000 - 1; 7d0: 8101a783 lw a5,-2032(gp) # 20000050 7d4: 000f4737 lui a4,0xf4 7d8: 24070713 addi a4,a4,576 # f4240 <_data_lma+0xe6d2c> 7dc: 02e7d7b3 divu a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:138 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 7e0: 004c addi a1,sp,4 7e2: 40000537 lui a0,0x40000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:137 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 7e6: 00011323 sh zero,6(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:135 TIM_TimeBaseStructure.TIM_Prescaler = SystemCoreClock / 1000000 - 1; 7ea: 17fd addi a5,a5,-1 7ec: 827c sh a5,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:134 TIM_TimeBaseStructure.TIM_Period = WCHNETTIMERPERIOD * 1000 - 1; 7ee: 6789 lui a5,0x2 7f0: 70f78793 addi a5,a5,1807 # 270f 7f4: c43e sw a5,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:138 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 7f6: 58d000ef jal ra,1582 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:139 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); 7fa: 4605 li a2,1 7fc: 4585 li a1,1 7fe: 40000537 lui a0,0x40000 802: 687000ef jal ra,1688 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:140 TIM_Cmd(TIM2, ENABLE); 806: 4585 li a1,1 808: 40000537 lui a0,0x40000 80c: 665000ef jal ra,1670 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:141 TIM_ClearITPendingBit(TIM2, TIM_IT_Update); 810: 4585 li a1,1 812: 40000537 lui a0,0x40000 816: 685000ef jal ra,169a NVIC_EnableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:170 NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 81a: e000e7b7 lui a5,0xe000e 81e: 6705 lui a4,0x1 820: 10e7a223 sw a4,260(a5) # e000e104 <__freertos_irq_stack_top+0xbffde104> TIM2_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:143 } 824: 0141 addi sp,sp,16 826: bb11 j 53a <__riscv_restore_0> 00000828 : WCHNET_HandleSockInt(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:157 { 828: cefff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:158 if (intstat & SINT_STAT_RECV) 82c: 0045f793 andi a5,a1,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:157 { 830: 842a mv s0,a0 832: 84ae mv s1,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:158 if (intstat & SINT_STAT_RECV) 834: c399 beqz a5,83a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:160 qdx_port_sock_recv_notify(socketid); 836: 760010ef jal ra,1f96 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:162 if (intstat & SINT_STAT_CONNECT) 83a: 0084f793 andi a5,s1,8 83e: cb85 beqz a5,86e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:164 WCHNET_ModifyRecvBuf(socketid, (u32)SocketRecvBuf[socketid], RECE_BUF_LEN); 840: 6605 lui a2,0x1 842: b6860613 addi a2,a2,-1176 # b68 846: 02c405b3 mul a1,s0,a2 84a: 200007b7 lui a5,0x20000 84e: 21878793 addi a5,a5,536 # 20000218 852: 8522 mv a0,s0 854: 95be add a1,a1,a5 856: 527050ef jal ra,657c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:165 qdx_port_sock_connect_notify(socketid); 85a: 8522 mv a0,s0 85c: 7d6010ef jal ra,2032 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:166 printf("TCP Connected, socket %d\r\n", socketid); 860: 0000d537 lui a0,0xd 864: 85a2 mv a1,s0 866: 05850513 addi a0,a0,88 # d058 86a: 20c0c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:168 if (intstat & SINT_STAT_DISCONNECT) 86e: 0104f793 andi a5,s1,16 872: cb99 beqz a5,888 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:170 qdx_port_sock_disconnect_notify(socketid); 874: 8522 mv a0,s0 876: 7de010ef jal ra,2054 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:171 printf("TCP Disconnected, socket %d\r\n", socketid); 87a: 0000d537 lui a0,0xd 87e: 85a2 mv a1,s0 880: 07450513 addi a0,a0,116 # d074 884: 1f20c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:173 if (intstat & SINT_STAT_TIM_OUT) 888: 0404f493 andi s1,s1,64 88c: c899 beqz s1,8a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:175 qdx_port_sock_disconnect_notify(socketid); 88e: 8522 mv a0,s0 890: 7c4010ef jal ra,2054 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:176 printf("TCP Timeout, socket %d\r\n", socketid); 894: 0000d537 lui a0,0xd 898: 85a2 mv a1,s0 89a: 09450513 addi a0,a0,148 # d094 89e: 1d80c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:178 } 8a2: b961 j 53a <__riscv_restore_0> 000008a4 : WCHNET_HandleGlobalInt(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:181 { 8a4: c73ff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:185 intstat = WCHNET_GetGlobalInt(); 8a8: 1fe060ef jal ra,6aa6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:186 if (intstat & GINT_STAT_UNREACH) printf("GINT_STAT_UNREACH\r\n"); 8ac: 00157793 andi a5,a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:185 intstat = WCHNET_GetGlobalInt(); 8b0: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:186 if (intstat & GINT_STAT_UNREACH) printf("GINT_STAT_UNREACH\r\n"); 8b2: c799 beqz a5,8c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:186 (discriminator 1) 8b4: 0000d537 lui a0,0xd 8b8: 01850513 addi a0,a0,24 # d018 8bc: 1de0c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:187 if (intstat & GINT_STAT_IP_CONFLI) printf("GINT_STAT_IP_CONFLI\r\n"); 8c0: 00247793 andi a5,s0,2 8c4: c799 beqz a5,8d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:187 (discriminator 1) 8c6: 0000d537 lui a0,0xd 8ca: 02c50513 addi a0,a0,44 # d02c 8ce: 1cc0c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:188 if (intstat & GINT_STAT_PHY_CHANGE) { 8d2: 00447793 andi a5,s0,4 8d6: cb99 beqz a5,8ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:189 if (WCHNET_GetPHYStatus() & PHY_Linked_Status) 8d8: 20c060ef jal ra,6ae4 8dc: 8911 andi a0,a0,4 8de: c519 beqz a0,8ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:190 printf("PHY Link Success\r\n"); 8e0: 0000d537 lui a0,0xd 8e4: 04450513 addi a0,a0,68 # d044 8e8: 1b20c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:192 if (intstat & GINT_STAT_SOCKET) { 8ec: 8841 andi s0,s0,16 8ee: cc19 beqz s0,90c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:194 (discriminator 1) socketint = WCHNET_GetSocketInt(i); 8f0: 4501 li a0,0 8f2: 1c8060ef jal ra,6aba 8f6: 85aa mv a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:195 (discriminator 1) if (socketint) WCHNET_HandleSockInt(i, socketint); 8f8: c119 beqz a0,8fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:195 8fa: 4501 li a0,0 8fc: 3735 jal 828 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:194 socketint = WCHNET_GetSocketInt(i); 8fe: 4505 li a0,1 900: 1ba060ef jal ra,6aba 904: 85aa mv a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:195 if (socketint) WCHNET_HandleSockInt(i, socketint); 906: c119 beqz a0,90c 908: 4505 li a0,1 90a: 3f39 jal 828 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:198 } 90c: b13d j 53a <__riscv_restore_0> 0000090e : task_wchnet_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:204 { 90e: c09ff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:208 WCHNET_MainTask(); 912: 1a6010ef jal ra,1ab8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:209 if (WCHNET_QueryGlobalInt()) 916: 152060ef jal ra,6a68 91a: c111 beqz a0,91e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:210 WCHNET_HandleGlobalInt(); 91c: 3761 jal 8a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:211 vTaskDelay(pdMS_TO_TICKS(5)); 91e: 4509 li a0,2 920: 360040ef jal ra,4c80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:208 WCHNET_MainTask(); 924: b7fd j 912 00000926
: main(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:257 } } } int main(void) { 926: bd7ff2ef jal t0,4fc <__riscv_save_4> 92a: 1101 addi sp,sp,-32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:259 u8 i; SystemCoreClockUpdate(); 92c: 2cc5 jal c1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:260 Delay_Init(); 92e: 575040ef jal ra,56a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:261 USART_Printf_Init(115200); 932: 6571 lui a0,0x1c 934: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0xecec> 938: 5c7040ef jal ra,56fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:262 printf("TCPClient Test\r\nSystemClk:%d\r\n", SystemCoreClock); 93c: 8101a583 lw a1,-2032(gp) # 20000050 940: 0000d537 lui a0,0xd 944: 0c050513 addi a0,a0,192 # d0c0 948: 12e0c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:263 printf("UserByte: %02x\r\n", FLASH_GetUserOptionByte() & 0xFF); 94c: 794000ef jal ra,10e0 950: 0ff57593 andi a1,a0,255 954: 0000d537 lui a0,0xd 958: 0e050513 addi a0,a0,224 # d0e0 95c: 11a0c0ef jal ra,ca76 Config_Flash_SRAM(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:92 uint8_t UserByte = FLASH_GetUserOptionByte() & 0xFF; 960: 780000ef jal ra,10e0 964: 0ff57513 andi a0,a0,255 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:93 uint8_t newByte = UserByte & ~0xE0; /* clear bits [7:5] */ 968: 01f57593 andi a1,a0,31 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:99 case FLASH_128_SRAM_192: newByte |= 0xC0; break; /* 110 */ 96c: 0c05e593 ori a1,a1,192 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:104 if (newByte == UserByte) return; /* already configured */ 970: c62e sw a1,12(sp) 972: 02b50b63 beq a0,a1,9a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:106 FLASH_Unlock(); 976: 742000ef jal ra,10b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:107 FLASH_ProgramOptionByteData(0x1FFFF802, newByte); 97a: 45b2 lw a1,12(sp) 97c: 20000537 lui a0,0x20000 980: 80250513 addi a0,a0,-2046 # 1ffff802 <_data_lma+0x1fff22ee> 984: 79e000ef jal ra,1122 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:108 FLASH_Lock(); 988: 74a000ef jal ra,10d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:109 printf("Flash/SRAM config changed to %d, resetting...\r\n", mode); 98c: 0000d537 lui a0,0xd 990: 458d li a1,3 992: 0f450513 addi a0,a0,244 # d0f4 996: 0e00c0ef jal ra,ca76 NVIC_SystemReset(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:382 NVIC->CFGR = NVIC_KEY3|(1<<7); 99a: beef07b7 lui a5,0xbeef0 99e: e000e737 lui a4,0xe000e 9a2: 08078793 addi a5,a5,128 # beef0080 <__freertos_irq_stack_top+0x9eec0080> 9a6: c73c sw a5,72(a4) main(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:265 Config_Flash_SRAM(FLASH_128_SRAM_192); printf("net version:%x\n", WCHNET_GetVer()); 9a8: 149050ef jal ra,62f0 9ac: 85aa mv a1,a0 9ae: 0000d537 lui a0,0xd 9b2: 12450513 addi a0,a0,292 # d124 9b6: 0c00c0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:266 if (WCHNET_LIB_VER != WCHNET_GetVer()) printf("version error.\n"); 9ba: 137050ef jal ra,62f0 9be: 47ed li a5,27 9c0: 00f50863 beq a0,a5,9d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:266 (discriminator 1) 9c4: 0000d537 lui a0,0xd 9c8: 13450513 addi a0,a0,308 # d134 9cc: 0ce0c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:268 WCHNET_GetMacAddr(MACAddr); 9d0: 20000437 lui s0,0x20000 9d4: 0a440513 addi a0,s0,164 # 200000a4 9d8: 5c9000ef jal ra,17a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:269 printf("mac addr:"); 9dc: 0000d537 lui a0,0xd 9e0: 14450513 addi a0,a0,324 # d144 9e4: 0920c0ef jal ra,ca76 9e8: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:270 for (i = 0; i < 6; i++) printf("%x ", MACAddr[i]); 9ea: 0a440a13 addi s4,s0,164 9ee: 0000d9b7 lui s3,0xd 9f2: 4919 li s2,6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:270 (discriminator 3) 9f4: 009a07b3 add a5,s4,s1 9f8: 238c lbu a1,0(a5) 9fa: 15098513 addi a0,s3,336 # d150 9fe: 0485 addi s1,s1,1 a00: 0760c0ef jal ra,ca76 a04: ff2498e3 bne s1,s2,9f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:271 printf("\n"); a08: 4529 li a0,10 a0a: 0da0c0ef jal ra,cae4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:273 DVP_Init(); a0e: 591040ef jal ra,579e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:274 TIM2_Init(); a12: 3365 jal 7ba NG_GPIO_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:54 RCC_APB2PeriphClockCmd(NG_GPIO_CLK, ENABLE); a14: 4585 li a1,1 a16: 4511 li a0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:53 GPIO_InitTypeDef gpio = {0}; a18: ca02 sw zero,20(sp) a1a: cc02 sw zero,24(sp) a1c: ce02 sw zero,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:54 RCC_APB2PeriphClockCmd(NG_GPIO_CLK, ENABLE); a1e: 2cd000ef jal ra,14ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:55 gpio.GPIO_Pin = NG_GPIO_PIN; a22: 10000793 li a5,256 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:58 GPIO_Init(NG_GPIO_PORT, &gpio); a26: 400114b7 lui s1,0x40011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:55 gpio.GPIO_Pin = NG_GPIO_PIN; a2a: 82fc sh a5,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:56 gpio.GPIO_Mode = GPIO_Mode_Out_PP; a2c: 47c1 li a5,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:58 GPIO_Init(NG_GPIO_PORT, &gpio); a2e: 80048513 addi a0,s1,-2048 # 40010800 <__freertos_irq_stack_top+0x1ffe0800> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:56 gpio.GPIO_Mode = GPIO_Mode_Out_PP; a32: ce3e sw a5,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:58 GPIO_Init(NG_GPIO_PORT, &gpio); a34: 084c addi a1,sp,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:57 gpio.GPIO_Speed = GPIO_Speed_2MHz; a36: 4789 li a5,2 a38: cc3e sw a5,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:58 GPIO_Init(NG_GPIO_PORT, &gpio); a3a: 7f4000ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:59 GPIO_ResetBits(NG_GPIO_PORT, NG_GPIO_PIN); a3e: 80048513 addi a0,s1,-2048 a42: 10000593 li a1,256 a46: 0ad000ef jal ra,12f2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:61 g_ng_timer = xTimerCreate("ng", pdMS_TO_TICKS(NG_PULSE_MS), a4a: 00000737 lui a4,0x0 a4e: 0000d537 lui a0,0xd a52: 75670713 addi a4,a4,1878 # 756 a56: 4681 li a3,0 a58: 4601 li a2,0 a5a: 06400593 li a1,100 a5e: 15450513 addi a0,a0,340 # d154 a62: 357040ef jal ra,55b8 a66: 200007b7 lui a5,0x20000 a6a: 0aa7a623 sw a0,172(a5) # 200000ac main(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:277 NG_GPIO_Init(); i = ETH_LibInit(IPAddr, GWIPAddr, IPMask, MACAddr); a6e: 200005b7 lui a1,0x20000 a72: 0a440693 addi a3,s0,164 a76: 80818613 addi a2,gp,-2040 # 20000048 a7a: 04058593 addi a1,a1,64 # 20000040 a7e: 80418513 addi a0,gp,-2044 # 20000044 a82: 428010ef jal ra,1eaa a86: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:278 mStopIfError(i); a88: 3b29 jal 7a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:279 if (i == WCHNET_ERR_SUCCESS) printf("WCHNET_LibInit Success\r\n"); a8a: e499 bnez s1,a98 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:279 (discriminator 1) a8c: 0000d537 lui a0,0xd a90: 15850513 addi a0,a0,344 # d158 a94: 0060c0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:283 #if KEEPALIVE_ENABLE { struct _KEEP_CFG cfg = {20000, 15000, 9}; a98: 65b5 lui a1,0xd a9a: 4631 li a2,12 a9c: fc858593 addi a1,a1,-56 # cfc8 aa0: 0848 addi a0,sp,20 aa2: 42e0c0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:284 WCHNET_ConfigKeepLive(&cfg); aa6: 0848 addi a0,sp,20 aa8: 6ee050ef jal ra,6196 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:288 } #endif qdx_port_init(); aac: 5ca010ef jal ra,2076 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:290 Preprocess_Init(SENSOR_WIDTH, SENSOR_HEIGHT); ab0: 0c000593 li a1,192 ab4: 10000513 li a0,256 ab8: 219010ef jal ra,24d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:291 TcpLogic_Init(MACAddr, NULL); abc: 4581 li a1,0 abe: 0a440513 addi a0,s0,164 ac2: 1cb020ef jal ra,348c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:292 TcpLogic_RegisterConfigCallback(OnConfigUpdate); ac6: 00000537 lui a0,0x0 aca: 6c050513 addi a0,a0,1728 # 6c0 ace: 2d7020ef jal ra,35a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:293 TcpLogic_RegisterDetectionCallback(OnDetectionResult); ad2: 00000537 lui a0,0x0 ad6: 76c50513 addi a0,a0,1900 # 76c ada: 2d9020ef jal ra,35b2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:294 TcpLogic_Start(); ade: 24d020ef jal ra,352a D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:296 xTaskCreate(task_wchnet_entry, "wchnet", 1024, NULL, 6, NULL); ae2: 0000d5b7 lui a1,0xd ae6: 00001537 lui a0,0x1 aea: 4781 li a5,0 aec: 4719 li a4,6 aee: 4681 li a3,0 af0: 40000613 li a2,1024 af4: 17058593 addi a1,a1,368 # d170 af8: 90e50513 addi a0,a0,-1778 # 90e afc: 3c1030ef jal ra,46bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:297 xTaskCreate(task_business_entry, "business", 1024, NULL, 5, NULL); b00: 0000d5b7 lui a1,0xd b04: 00000537 lui a0,0x0 b08: 4781 li a5,0 b0a: 4715 li a4,5 b0c: 4681 li a3,0 b0e: 40000613 li a2,1024 b12: 17858593 addi a1,a1,376 # d178 b16: 6d250513 addi a0,a0,1746 # 6d2 b1a: 3a3030ef jal ra,46bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:298 vTaskStartScheduler(); b1e: 5a3030ef jal ra,48c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/main.c:301 (discriminator 1) /* Should never reach here */ while (1) {} b22: a001 j b22 00000b24 : SystemInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:113 * * @return none */ void SystemInit (void) { RCC->CTLR |= (uint32_t)0x00000001; b24: 400217b7 lui a5,0x40021 b28: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:115 RCC->CFGR0 &= (uint32_t)0xF0FF0000; b2a: f0ff06b7 lui a3,0xf0ff0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:112 { b2e: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:113 RCC->CTLR |= (uint32_t)0x00000001; b30: 00176713 ori a4,a4,1 b34: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:115 RCC->CFGR0 &= (uint32_t)0xF0FF0000; b36: 43d8 lw a4,4(a5) SetSysClockTo144_HSE(): D:\zj\ch32v307_camera\prj\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; b38: 00020637 lui a2,0x20 SystemInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:115 RCC->CFGR0 &= (uint32_t)0xF0FF0000; b3c: 8f75 and a4,a4,a3 b3e: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:117 RCC->CTLR &= (uint32_t)0xFEF6FFFF; b40: 4398 lw a4,0(a5) b42: fef706b7 lui a3,0xfef70 b46: 16fd addi a3,a3,-1 b48: 8f75 and a4,a4,a3 b4a: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:118 RCC->CTLR &= (uint32_t)0xFFFBFFFF; b4c: 4398 lw a4,0(a5) b4e: fffc06b7 lui a3,0xfffc0 b52: 16fd addi a3,a3,-1 b54: 8f75 and a4,a4,a3 b56: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:119 RCC->CFGR0 &= (uint32_t)0xFF00FFFF; b58: 43d8 lw a4,4(a5) b5a: ff0106b7 lui a3,0xff010 b5e: 16fd addi a3,a3,-1 b60: 8f75 and a4,a4,a3 b62: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:122 RCC->CTLR &= (uint32_t)0xEBFFFFFF; b64: 4398 lw a4,0(a5) b66: ec0006b7 lui a3,0xec000 b6a: 16fd addi a3,a3,-1 b6c: 8f75 and a4,a4,a3 b6e: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:123 RCC->INTR = 0x00FF0000; b70: 00ff0737 lui a4,0xff0 b74: c798 sw a4,8(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:124 RCC->CFGR2 = 0x00000000; b76: 0207a623 sw zero,44(a5) # 4002102c <__freertos_irq_stack_top+0x1fff102c> SetSysClockTo144_HSE(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:706 __IO uint32_t StartUpCounter = 0, HSEStatus = 0; b7a: c402 sw zero,8(sp) b7c: c602 sw zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:708 RCC->CTLR |= ((uint32_t)RCC_HSEON); b7e: 4398 lw a4,0(a5) b80: 66c1 lui a3,0x10 b82: 8f55 or a4,a4,a3 b84: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:713 HSEStatus = RCC->CTLR & RCC_HSERDY; b86: 400216b7 lui a3,0x40021 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:715 StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); b8a: 6705 lui a4,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:713 HSEStatus = RCC->CTLR & RCC_HSERDY; b8c: 429c lw a5,0(a3) b8e: 8ff1 and a5,a5,a2 b90: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:714 StartUpCounter++; b92: 47a2 lw a5,8(sp) b94: 0785 addi a5,a5,1 b96: c43e sw a5,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:715 } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); b98: 47b2 lw a5,12(sp) b9a: e781 bnez a5,ba2 b9c: 47a2 lw a5,8(sp) b9e: fee797e3 bne a5,a4,b8c D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:717 if ((RCC->CTLR & RCC_HSERDY) != RESET) ba2: 400217b7 lui a5,0x40021 ba6: 439c lw a5,0(a5) ba8: 00e79713 slli a4,a5,0xe bac: 06075663 bgez a4,c18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:719 { HSEStatus = (uint32_t)0x01; bb0: 4785 li a5,1 bb2: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:726 else { HSEStatus = (uint32_t)0x00; } if (HSEStatus == (uint32_t)0x01) bb4: 4732 lw a4,12(sp) bb6: 4785 li a5,1 bb8: 04f71e63 bne a4,a5,c14 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:729 { /* HCLK = SYSCLK */ RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; bbc: 400217b7 lui a5,0x40021 bc0: 43d8 lw a4,4(a5) D:\zj\ch32v307_camera\prj\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 | bc2: ffc106b7 lui a3,0xffc10 bc6: 16fd addi a3,a3,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:729 RCC->CFGR0 |= (uint32_t)RCC_HPRE_DIV1; bc8: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:731 RCC->CFGR0 |= (uint32_t)RCC_PPRE2_DIV1; bca: 43d8 lw a4,4(a5) bcc: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:733 RCC->CFGR0 |= (uint32_t)RCC_PPRE1_DIV2; bce: 43d8 lw a4,4(a5) bd0: 40076713 ori a4,a4,1024 bd4: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:736 RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_PLLSRC | RCC_PLLXTPRE | bd6: 43d8 lw a4,4(a5) bd8: 8f75 and a4,a4,a3 bda: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\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); bdc: 43d8 lw a4,4(a5) bde: 66c1 lui a3,0x10 be0: 8f55 or a4,a4,a3 be2: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:746 #endif /* Enable PLL */ RCC->CTLR |= RCC_PLLON; be4: 4398 lw a4,0(a5) be6: 010006b7 lui a3,0x1000 bea: 8f55 or a4,a4,a3 bec: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:748 /* Wait till PLL is ready */ while((RCC->CTLR & RCC_PLLRDY) == 0) bee: 4398 lw a4,0(a5) bf0: 00671693 slli a3,a4,0x6 bf4: fe06dde3 bgez a3,bee D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:752 { } /* Select PLL as system clock source */ RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_SW)); bf8: 43d8 lw a4,4(a5) D:\zj\ch32v307_camera\prj\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) bfa: 400216b7 lui a3,0x40021 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:752 RCC->CFGR0 &= (uint32_t)((uint32_t)~(RCC_SW)); bfe: 9b71 andi a4,a4,-4 c00: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:753 RCC->CFGR0 |= (uint32_t)RCC_SW_PLL; c02: 43d8 lw a4,4(a5) c04: 00276713 ori a4,a4,2 c08: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:755 while ((RCC->CFGR0 & (uint32_t)RCC_SWS) != (uint32_t)0x08) c0a: 4721 li a4,8 c0c: 42dc lw a5,4(a3) c0e: 8bb1 andi a5,a5,12 c10: fee79ee3 bne a5,a4,c0c SystemInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:129 } c14: 0141 addi sp,sp,16 c16: 8082 ret SetSysClockTo144_HSE(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:723 HSEStatus = (uint32_t)0x00; c18: c602 sw zero,12(sp) c1a: bf69 j bb4 00000c1c : SystemCoreClockUpdate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:148 tmp = RCC->CFGR0 & RCC_SWS; c1c: 400216b7 lui a3,0x40021 c20: 42d8 lw a4,4(a3) c22: 4611 li a2,4 c24: 8b31 andi a4,a4,12 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:150 switch (tmp) c26: 81018793 addi a5,gp,-2032 # 20000050 c2a: 00c70563 beq a4,a2,c34 c2e: 4621 li a2,8 c30: 02c70863 beq a4,a2,c60 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:153 SystemCoreClock = HSI_VALUE; c34: 007a1737 lui a4,0x7a1 c38: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:215 (discriminator 1) if(Pll_6_5 == 1) SystemCoreClock = (SystemCoreClock / 2); c3c: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:223 tmp = AHBPrescTable[((RCC->CFGR0 & RCC_HPRE) >> 4)]; c3e: 40021737 lui a4,0x40021 c42: 4358 lw a4,4(a4) c44: 8311 srli a4,a4,0x4 c46: 00f77693 andi a3,a4,15 c4a: 20000737 lui a4,0x20000 c4e: 02070713 addi a4,a4,32 # 20000020 c52: 9736 add a4,a4,a3 c54: 2314 lbu a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:224 SystemCoreClock >>= tmp; c56: 4398 lw a4,0(a5) c58: 00d75733 srl a4,a4,a3 c5c: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:225 } c5e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:159 pllmull = RCC->CFGR0 & RCC_PLLMULL; c60: 42d8 lw a4,4(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:160 pllsource = RCC->CFGR0 & RCC_PLLSRC; c62: 42d4 lw a3,4(a3) c64: 6641 lui a2,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:161 pllmull = ( pllmull >> 18) + 2; c66: 8349 srli a4,a4,0x12 c68: 8b3d andi a4,a4,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:160 pllsource = RCC->CFGR0 & RCC_PLLSRC; c6a: 8ef1 and a3,a3,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:166 if(pllmull == 2) pllmull = 18; c6c: 00270613 addi a2,a4,2 c70: cf15 beqz a4,cac D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:167 if(pllmull == 15){ c72: 473d li a4,15 c74: 02e60f63 beq a2,a4,cb2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:171 if(pllmull == 16) pllmull = 15; c78: 4741 li a4,16 c7a: 02e60f63 beq a2,a4,cb8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:172 if(pllmull == 17) pllmull = 16; c7e: 4745 li a4,17 c80: 4581 li a1,0 c82: 00e61363 bne a2,a4,c88 c86: 4641 li a2,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:175 if (pllsource == 0x00) c88: e2a1 bnez a3,cc8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:177 if(EXTEN->EXTEN_CTR & EXTEN_PLL_HSI_PRE) SystemCoreClock = HSI_VALUE * pllmull; c8a: 40024737 lui a4,0x40024 c8e: 80072703 lw a4,-2048(a4) # 40023800 <__freertos_irq_stack_top+0x1fff3800> c92: 8b41 andi a4,a4,16 c94: c70d beqz a4,cbe D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:177 (discriminator 1) c96: 007a1737 lui a4,0x7a1 c9a: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:210 SystemCoreClock = SystemCoreClock * pllmull; c9e: 02c70633 mul a2,a4,a2 ca2: c390 sw a2,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:215 if(Pll_6_5 == 1) SystemCoreClock = (SystemCoreClock / 2); ca4: ddc9 beqz a1,c3e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:215 (discriminator 1) ca6: 4398 lw a4,0(a5) ca8: 8305 srli a4,a4,0x1 caa: bf49 j c3c cac: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:166 if(pllmull == 2) pllmull = 18; cae: 4649 li a2,18 cb0: bfe1 j c88 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:169 Pll_6_5 = 1; cb2: 4585 li a1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:168 pllmull = 13; /* *6.5 */ cb4: 4635 li a2,13 cb6: bfc9 j c88 cb8: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:171 if(pllmull == 16) pllmull = 15; cba: 463d li a2,15 cbc: b7f1 j c88 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:178 else SystemCoreClock = (HSI_VALUE >> 1) * pllmull; cbe: 003d1737 lui a4,0x3d1 cc2: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3c33ec> cc6: bfe1 j c9e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:194 if(RCC->CFGR2 & (1<<16)){ /* PLL2 */ cc8: 40021537 lui a0,0x40021 ccc: 5558 lw a4,44(a0) cce: 00f71693 slli a3,a4,0xf D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:195 SystemCoreClock = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */ cd2: 5558 lw a4,44(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:194 if(RCC->CFGR2 & (1<<16)){ /* PLL2 */ cd4: 0406df63 bgez a3,d32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:195 SystemCoreClock = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */ cd8: 8311 srli a4,a4,0x4 cda: 8b3d andi a4,a4,15 cdc: 00170693 addi a3,a4,1 ce0: 007a1737 lui a4,0x7a1 ce4: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> ce8: 02d75733 divu a4,a4,a3 cec: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:197 Pll2mull = (uint8_t)((RCC->CFGR2 & 0xF00)>>8); cee: 5554 lw a3,44(a0) cf0: 82a1 srli a3,a3,0x8 cf2: 8abd andi a3,a3,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:199 if(Pll2mull == 0) SystemCoreClock = (SystemCoreClock * 5)>>1; cf4: e28d bnez a3,d16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:199 (discriminator 1) cf6: 4695 li a3,5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:200 (discriminator 1) else if(Pll2mull == 1) SystemCoreClock = (SystemCoreClock * 25)>>1; cf8: 02d70733 mul a4,a4,a3 cfc: 8305 srli a4,a4,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:202 else SystemCoreClock = SystemCoreClock * (Pll2mull + 2); cfe: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:204 SystemCoreClock = SystemCoreClock/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ d00: 40021737 lui a4,0x40021 d04: 5758 lw a4,44(a4) d06: 4394 lw a3,0(a5) d08: 8b3d andi a4,a4,15 d0a: 0705 addi a4,a4,1 d0c: 02e6d733 divu a4,a3,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:207 SystemCoreClock = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ d10: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:210 SystemCoreClock = SystemCoreClock * pllmull; d12: 4398 lw a4,0(a5) d14: b769 j c9e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:200 else if(Pll2mull == 1) SystemCoreClock = (SystemCoreClock * 25)>>1; d16: 4505 li a0,1 d18: 00a69463 bne a3,a0,d20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:200 (discriminator 1) d1c: 46e5 li a3,25 d1e: bfe9 j cf8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:201 else if(Pll2mull == 15) SystemCoreClock = SystemCoreClock * 20; d20: 453d li a0,15 d22: 00a69663 bne a3,a0,d2e D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:201 (discriminator 1) d26: 46d1 li a3,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:202 else SystemCoreClock = SystemCoreClock * (Pll2mull + 2); d28: 02e68733 mul a4,a3,a4 d2c: bfc9 j cfe d2e: 0689 addi a3,a3,2 d30: bfe5 j d28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../User/system_ch32v30x.c:207 SystemCoreClock = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ d32: 8b3d andi a4,a4,15 d34: 00170693 addi a3,a4,1 # 40021001 <__freertos_irq_stack_top+0x1fff1001> d38: 007a1737 lui a4,0x7a1 d3c: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> d40: 02d75733 divu a4,a4,a3 d44: b7f1 j d10 00000d46 : EXTI2_IRQHandler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:321 DMA2_Channel8_IRQHandler: DMA2_Channel9_IRQHandler: DMA2_Channel10_IRQHandler: DMA2_Channel11_IRQHandler: 1: j 1b d46: a001 j d46 00000d48 : handle_reset(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:329 .weak handle_reset .align 1 handle_reset: .option push .option norelax la gp, __global_pointer$ d48: 20000197 auipc gp,0x20000 d4c: af818193 addi gp,gp,-1288 # 20000840 <__global_pointer$> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:332 .option pop la sp, _eusrstack d50: 2002f117 auipc sp,0x2002f d54: 2b010113 addi sp,sp,688 # 20030000 <__freertos_irq_stack_top> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:335 /* Load data section from flash to RAM */ la a0, _data_lma d58: 0000c517 auipc a0,0xc d5c: 7bc50513 addi a0,a0,1980 # d514 <_data_lma> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:336 la a1, _data_vma d60: 1ffff597 auipc a1,0x1ffff d64: 2a058593 addi a1,a1,672 # 20000000 <_data_vma> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:337 la a2, _edata d68: 86018613 addi a2,gp,-1952 # 200000a0 <_edata> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:338 bgeu a1, a2, 2f d6c: 00c5fa63 bgeu a1,a2,d80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:340 1: lw t0, (a0) d70: 00052283 lw t0,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:341 sw t0, (a1) d74: 0055a023 sw t0,0(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:342 addi a0, a0, 4 d78: 0511 addi a0,a0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:343 addi a1, a1, 4 d7a: 0591 addi a1,a1,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:344 bltu a1, a2, 1b d7c: fec5eae3 bltu a1,a2,d70 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:347 2: /* Clear bss section */ la a0, _sbss d80: 1ffff517 auipc a0,0x1ffff d84: 32050513 addi a0,a0,800 # 200000a0 <_edata> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:348 la a1, _ebss d88: 2002d597 auipc a1,0x2002d d8c: ee058593 addi a1,a1,-288 # 2002dc68 <_ebss> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:349 bgeu a0, a1, 2f d90: 00b57763 bgeu a0,a1,d9e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:351 1: sw zero, (a0) d94: 00052023 sw zero,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:352 addi a0, a0, 4 d98: 0511 addi a0,a0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:353 bltu a0, a1, 1b d9a: feb56de3 bltu a0,a1,d94 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:356 2: /* Configure pipelining and instruction prediction */ li t0, 0x1f d9e: 42fd li t0,31 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:357 csrw 0xbc0, t0 da0: bc029073 csrw 0xbc0,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:359 /* Enable interrupt nesting and hardware stack */ li t0, 0x0b da4: 42ad li t0,11 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:360 csrw 0x804, t0 da6: 80429073 csrw 0x804,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:362 /* Enable floating point and global interrupt, configure privileged mode */ li t0, 0x6088 daa: 000062b7 lui t0,0x6 dae: 08828293 addi t0,t0,136 # 6088 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:363 csrw mstatus, t0 db2: 30029073 csrw mstatus,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:365 /* Configure the interrupt vector table recognition mode and entry address mode */ la t0, _vector_base db6: fffff297 auipc t0,0xfffff dba: 24e28293 addi t0,t0,590 # 4 <_einit> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:366 ori t0, t0, 3 dbe: 0032e293 ori t0,t0,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:367 csrw mtvec, t0 dc2: 30529073 csrw mtvec,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:369 jal SystemInit dc6: d5fff0ef jal ra,b24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:370 la t0, main dca: 00000297 auipc t0,0x0 dce: b5c28293 addi t0,t0,-1188 # 926
D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:371 csrw mepc, t0 dd2: 34129073 csrw mepc,t0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Startup/startup_ch32v30x_D8C.S:372 mret dd6: 30200073 mret 00000dda : DBGMCU_GetCHIPID(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dbgmcu.c:128 * CH32V317TCU6-0x3175B5X8 */ uint32_t DBGMCU_GetCHIPID( void ) { return( *( uint32_t * )0x1FFFF704 ); } dda: 1ffff7b7 lui a5,0x1ffff dde: 7047a503 lw a0,1796(a5) # 1ffff704 <_data_lma+0x1fff21f0> de2: 8082 ret 00000de4 : DVP_INTCfg(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:35 */ void DVP_INTCfg(uint8_t s, uint8_t i) { if(s) { DVP->IER |= i; de4: 500507b7 lui a5,0x50050 de8: 23b8 lbu a4,2(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:33 if(s) dea: c501 beqz a0,df2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:35 DVP->IER |= i; dec: 8dd9 or a1,a1,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:39 } else { DVP->IER &= ~i; dee: a3ac sb a1,2(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:41 } } df0: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:39 DVP->IER &= ~i; df2: fff5c593 not a1,a1 df6: 8df9 and a1,a1,a4 df8: bfdd j dee 00000dfa : DVP_Mode(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; dfa: 500507b7 lui a5,0x50050 dfe: 2398 lbu a4,0(a5) e00: 0cf77713 andi a4,a4,207 e04: a398 sb a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:64 if(s) { DVP->CR0 |= s; e06: 2398 lbu a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:62 if(s) e08: c919 beqz a0,e1e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:64 DVP->CR0 |= s; e0a: 8d59 or a0,a0,a4 e0c: a388 sb a0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:73 DVP->CR0 &= ~(3 << 4); } if(i) { DVP->CR0 |= RB_DVP_JPEG; e0e: 50050737 lui a4,0x50050 e12: 231c lbu a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:71 if(i) e14: c989 beqz a1,e26 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:73 DVP->CR0 |= RB_DVP_JPEG; e16: 0407e793 ori a5,a5,64 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:77 } else { DVP->CR0 &= ~RB_DVP_JPEG; e1a: a31c sb a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:79 } } e1c: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:68 DVP->CR0 &= ~(3 << 4); e1e: 0cf77713 andi a4,a4,207 e22: a398 sb a4,0(a5) e24: b7ed j e0e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:77 DVP->CR0 &= ~RB_DVP_JPEG; e26: 0bf7f793 andi a5,a5,191 e2a: bfc5 j e1a 00000e2c : DVP_Cfg(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) e2c: cd1d beqz a0,e6a e2e: 4785 li a5,1 e30: 00f51863 bne a0,a5,e40 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:103 { case DVP_DMA_Enable: DVP->CR1 |= RB_DVP_DMA_EN; e34: 50050737 lui a4,0x50050 e38: 331c lbu a5,1(a4) e3a: 0017e793 ori a5,a5,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:106 break; case DVP_DMA_Disable: DVP->CR1 &= ~RB_DVP_DMA_EN; e3e: b31c sb a5,1(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:112 break; default: break; } switch(i) e40: c99d beqz a1,e76 e42: 4785 li a5,1 e44: 00f59863 bne a1,a5,e54 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:115 { case DVP_RX_RESET_Enable: DVP->CR1 |= RB_DVP_ALL_CLR; e48: 50050737 lui a4,0x50050 e4c: 331c lbu a5,1(a4) e4e: 0027e793 ori a5,a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:118 break; case DVP_RX_RESET_Disable: DVP->CR1 &= ~RB_DVP_ALL_CLR; e52: b31c sb a5,1(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:124 break; default: break; } switch(j) e54: c61d beqz a2,e82 e56: 4785 li a5,1 e58: 00f61863 bne a2,a5,e68 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:127 { case DVP_RX_RESET_Enable: DVP->CR1 |= RB_DVP_RCV_CLR; e5c: 50050737 lui a4,0x50050 e60: 331c lbu a5,1(a4) e62: 0047e793 ori a5,a5,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:130 break; case DVP_RX_RESET_Disable: DVP->CR1 &= ~RB_DVP_RCV_CLR; e66: b31c sb a5,1(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:135 break; default: break; } } e68: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:106 DVP->CR1 &= ~RB_DVP_DMA_EN; e6a: 50050737 lui a4,0x50050 e6e: 331c lbu a5,1(a4) e70: 0fe7f793 andi a5,a5,254 e74: b7e9 j e3e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:118 DVP->CR1 &= ~RB_DVP_ALL_CLR; e76: 50050737 lui a4,0x50050 e7a: 331c lbu a5,1(a4) e7c: 0fd7f793 andi a5,a5,253 e80: bfc9 j e52 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_dvp.c:130 DVP->CR1 &= ~RB_DVP_RCV_CLR; e82: 50050737 lui a4,0x50050 e86: 331c lbu a5,1(a4) e88: 0fb7f793 andi a5,a5,251 e8c: bfe9 j e66 00000e8e : ETH_DeInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:29 * * @return none */ #ifdef CH32V30x_D8C void ETH_DeInit(void) { e8e: e88ff2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:30 RCC_AHBPeriphResetCmd(RCC_AHBPeriph_ETH_MAC, ENABLE); e92: 4585 li a1,1 e94: 6511 lui a0,0x4 e96: 2d41 jal 1526 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:31 RCC_AHBPeriphResetCmd(RCC_AHBPeriph_ETH_MAC, DISABLE); e98: 4581 li a1,0 e9a: 6511 lui a0,0x4 e9c: 2569 jal 1526 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:32 } e9e: e9cff06f j 53a <__riscv_restore_0> 00000ea2 : ETH_ReadPHYRegister(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) { ea2: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:294 uint32_t tmpreg = 0; __IO uint32_t timeout = 0; ea4: c602 sw zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:296 tmpreg = ETH->MACMIIAR; ea6: 400286b7 lui a3,0x40028 eaa: 4a9c lw a5,16(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:298 tmpreg &= ~MACMIIAR_CR_MASK; tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA); eac: 6741 lui a4,0x10 eae: 052e slli a0,a0,0xb eb0: 177d addi a4,a4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:297 tmpreg &= ~MACMIIAR_CR_MASK; eb2: 8bf1 andi a5,a5,28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:298 tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA); eb4: 8d79 and a0,a0,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:299 tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR); eb6: 059a slli a1,a1,0x6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:298 tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA); eb8: 8d5d or a0,a0,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:299 tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR); eba: 7c05f593 andi a1,a1,1984 ebe: 8dc9 or a1,a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:301 tmpreg &= ~ETH_MACMIIAR_MW; tmpreg |= ETH_MACMIIAR_MB; ec0: 0015e593 ori a1,a1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:308 do { timeout++; tmpreg = ETH->MACMIIAR; } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO)); ec4: 005007b7 lui a5,0x500 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:302 ETH->MACMIIAR = tmpreg; ec8: ca8c sw a1,16(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:308 } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO)); eca: 17f9 addi a5,a5,-2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:306 (discriminator 2) timeout++; ecc: 4732 lw a4,12(sp) ece: 0705 addi a4,a4,1 ed0: c63a sw a4,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:307 (discriminator 2) tmpreg = ETH->MACMIIAR; ed2: 4a98 lw a4,16(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:308 (discriminator 2) } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_READ_TO)); ed4: 8b05 andi a4,a4,1 ed6: c701 beqz a4,ede D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:308 (discriminator 1) ed8: 4732 lw a4,12(sp) eda: fee7f9e3 bgeu a5,a4,ecc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:310 if(timeout == PHY_READ_TO) ede: 4732 lw a4,12(sp) ee0: 005007b7 lui a5,0x500 ee4: 17fd addi a5,a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:312 { return (uint16_t)ETH_ERROR; ee6: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:310 if(timeout == PHY_READ_TO) ee8: 00f70763 beq a4,a5,ef6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:315 } return (uint16_t)(ETH->MACMIIDR); eec: 400287b7 lui a5,0x40028 ef0: 4bc8 lw a0,20(a5) ef2: 0542 slli a0,a0,0x10 ef4: 8141 srli a0,a0,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:316 } ef6: 0141 addi sp,sp,16 ef8: 8082 ret 00000efa : ETH_WritePHYRegister(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) { efa: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:335 uint32_t tmpreg = 0; __IO uint32_t timeout = 0; tmpreg = ETH->MACMIIAR; efc: 400287b7 lui a5,0x40028 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:333 __IO uint32_t timeout = 0; f00: c602 sw zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:335 tmpreg = ETH->MACMIIAR; f02: 4b98 lw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:337 tmpreg &= ~MACMIIAR_CR_MASK; tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA); f04: 66c1 lui a3,0x10 f06: 16fd addi a3,a3,-1 f08: 052e slli a0,a0,0xb f0a: 8d75 and a0,a0,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:336 tmpreg &= ~MACMIIAR_CR_MASK; f0c: 8b71 andi a4,a4,28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:338 tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR); f0e: 059a slli a1,a1,0x6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:337 tmpreg |= (((uint32_t)PHYAddress << 11) & ETH_MACMIIAR_PA); f10: 8d59 or a0,a0,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:338 tmpreg |= (((uint32_t)PHYReg << 6) & ETH_MACMIIAR_MR); f12: 7c05f593 andi a1,a1,1984 f16: 8dc9 or a1,a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:341 tmpreg |= ETH_MACMIIAR_MW; tmpreg |= ETH_MACMIIAR_MB; ETH->MACMIIDR = PHYValue; f18: cbd0 sw a2,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:340 tmpreg |= ETH_MACMIIAR_MB; f1a: 0035e593 ori a1,a1,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:342 ETH->MACMIIAR = tmpreg; f1e: cb8c sw a1,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:348 do { timeout++; tmpreg = ETH->MACMIIAR; } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO)); f20: 000507b7 lui a5,0x50 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:347 tmpreg = ETH->MACMIIAR; f24: 400286b7 lui a3,0x40028 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:348 } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO)); f28: 17f9 addi a5,a5,-2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:346 (discriminator 2) timeout++; f2a: 4732 lw a4,12(sp) f2c: 0705 addi a4,a4,1 f2e: c63a sw a4,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:347 (discriminator 2) tmpreg = ETH->MACMIIAR; f30: 4a98 lw a4,16(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:348 (discriminator 2) } while((tmpreg & ETH_MACMIIAR_MB) && (timeout < (uint32_t)PHY_WRITE_TO)); f32: 8b05 andi a4,a4,1 f34: c701 beqz a4,f3c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:348 (discriminator 1) f36: 4732 lw a4,12(sp) f38: fee7f9e3 bgeu a5,a4,f2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:350 if(timeout >= PHY_WRITE_TO) f3c: 4532 lw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:356 { return ETH_ERROR; } return ETH_SUCCESS; } f3e: 000507b7 lui a5,0x50 f42: 17fd addi a5,a5,-1 f44: 00f53533 sltu a0,a0,a5 f48: 0141 addi sp,sp,16 f4a: 8082 ret 00000f4c : ETH_MACTransmissionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:407 */ void ETH_MACTransmissionCmd(FunctionalState NewState) { if(NewState != DISABLE) { ETH->MACCR |= ETH_MACCR_TE; f4c: 40028737 lui a4,0x40028 f50: 431c lw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:405 if(NewState != DISABLE) f52: c509 beqz a0,f5c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:407 ETH->MACCR |= ETH_MACCR_TE; f54: 0087e793 ori a5,a5,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:411 } else { ETH->MACCR &= ~ETH_MACCR_TE; f58: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:413 } } f5a: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:411 ETH->MACCR &= ~ETH_MACCR_TE; f5c: 9bdd andi a5,a5,-9 f5e: bfed j f58 00000f60 : ETH_MACReceptionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:428 */ void ETH_MACReceptionCmd(FunctionalState NewState) { if(NewState != DISABLE) { ETH->MACCR |= ETH_MACCR_RE; f60: 40028737 lui a4,0x40028 f64: 431c lw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:426 if(NewState != DISABLE) f66: c509 beqz a0,f70 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:428 ETH->MACCR |= ETH_MACCR_RE; f68: 0047e793 ori a5,a5,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:432 } else { ETH->MACCR &= ~ETH_MACCR_RE; f6c: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:434 } } f6e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:432 ETH->MACCR &= ~ETH_MACCR_RE; f70: 9bed andi a5,a5,-5 f72: bfed j f6c 00000f74 : ETH_DMATxDescChainInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; f74: 200007b7 lui a5,0x20000 f78: 0aa7aa23 sw a0,180(a5) # 200000b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:714 for(i = 0; i < TxBuffCount; i++) f7c: 872a mv a4,a0 f7e: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:717 { DMATxDesc = DMATxDescTab + i; DMATxDesc->Status = ETH_DMATxDesc_TCH | ETH_DMATxDesc_IC; f80: 401008b7 lui a7,0x40100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:718 DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]); f84: 5f400313 li t1,1524 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:720 if(i < (TxBuffCount - 1)) f88: fff60e13 addi t3,a2,-1 # ffff <_data_lma+0x2aeb> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:714 (discriminator 1) for(i = 0; i < TxBuffCount; i++) f8c: 00c79663 bne a5,a2,f98 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:730 { DMATxDesc->Buffer2NextDescAddr = (uint32_t)DMATxDescTab; } } ETH->DMATDLAR = (uint32_t)DMATxDescTab; f90: 400297b7 lui a5,0x40029 f94: cb88 sw a0,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:731 } f96: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:718 DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]); f98: 026786b3 mul a3,a5,t1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:717 DMATxDesc->Status = ETH_DMATxDesc_TCH | ETH_DMATxDesc_IC; f9c: 01172023 sw a7,0(a4) # 40028000 <__freertos_irq_stack_top+0x1fff8000> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:718 DMATxDesc->Buffer1Addr = (uint32_t)(&TxBuff[i * ETH_MAX_PACKET_SIZE]); fa0: 882a mv a6,a0 fa2: 96ae add a3,a3,a1 fa4: c714 sw a3,8(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:720 if(i < (TxBuffCount - 1)) fa6: 01070693 addi a3,a4,16 faa: 01c7f363 bgeu a5,t3,fb0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:722 DMATxDesc->Buffer2NextDescAddr = (uint32_t)(DMATxDescTab + i + 1); fae: 8836 mv a6,a3 fb0: 01072623 sw a6,12(a4) fb4: 0785 addi a5,a5,1 fb6: 8736 mv a4,a3 fb8: bfd1 j f8c 00000fba : ETH_DMARxDescChainInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1040 void ETH_DMARxDescChainInit(ETH_DMADESCTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount) { uint32_t i = 0; ETH_DMADESCTypeDef *DMARxDesc; DMARxDescToGet = DMARxDescTab; fba: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; fbe: 6691 lui a3,0x4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1040 DMARxDescToGet = DMARxDescTab; fc0: 0aa7a823 sw a0,176(a5) # 200000b0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1042 for(i = 0; i < RxBuffCount; i++) fc4: 4701 li a4,0 fc6: 87aa mv a5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1045 DMARxDesc->Status = ETH_DMARxDesc_OWN; fc8: 80000337 lui t1,0x80000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1046 DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_MAX_PACKET_SIZE; fcc: 5f468693 addi a3,a3,1524 # 45f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1047 DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]); fd0: 5f400e13 li t3,1524 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1049 if(i < (RxBuffCount - 1)) fd4: fff60e93 addi t4,a2,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1042 (discriminator 1) for(i = 0; i < RxBuffCount; i++) fd8: 00c71663 bne a4,a2,fe4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1059 { DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab); } } ETH->DMARDLAR = (uint32_t)DMARxDescTab; fdc: 400297b7 lui a5,0x40029 fe0: c7c8 sw a0,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1060 } fe2: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1047 DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]); fe4: 03c70833 mul a6,a4,t3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1045 DMARxDesc->Status = ETH_DMARxDesc_OWN; fe8: 0067a023 sw t1,0(a5) # 40029000 <__freertos_irq_stack_top+0x1fff9000> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1046 DMARxDesc->ControlBufferSize = ETH_DMARxDesc_RCH | (uint32_t)ETH_MAX_PACKET_SIZE; fec: c3d4 sw a3,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1047 DMARxDesc->Buffer1Addr = (uint32_t)(&RxBuff[i * ETH_MAX_PACKET_SIZE]); fee: 88aa mv a7,a0 ff0: 982e add a6,a6,a1 ff2: 0107a423 sw a6,8(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1049 if(i < (RxBuffCount - 1)) ff6: 01078813 addi a6,a5,16 ffa: 01d77363 bgeu a4,t4,1000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1051 DMARxDesc->Buffer2NextDescAddr = (uint32_t)(DMARxDescTab + i + 1); ffe: 88c2 mv a7,a6 1000: 0117a623 sw a7,12(a5) 1004: 0705 addi a4,a4,1 1006: 87c2 mv a5,a6 1008: bfc1 j fd8 0000100a : ETH_SoftwareReset(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1269 * * @return none */ void ETH_SoftwareReset(void) { ETH->DMABMR |= ETH_DMABMR_SR; 100a: 40029737 lui a4,0x40029 100e: 431c lw a5,0(a4) 1010: 0017e793 ori a5,a5,1 1014: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1270 } 1016: 8082 ret 00001018 : ETH_DMAClearITPendingBit(): 1018: 400297b7 lui a5,0x40029 101c: cbc8 sw a0,20(a5) 101e: 8082 ret 00001020 : ETH_FlushTransmitFIFO(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1507 * * @return none */ void ETH_FlushTransmitFIFO(void) { ETH->DMAOMR |= ETH_DMAOMR_FTF; 1020: 40029737 lui a4,0x40029 1024: 4f1c lw a5,24(a4) 1026: 001006b7 lui a3,0x100 102a: 8fd5 or a5,a5,a3 102c: cf1c sw a5,24(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1508 } 102e: 8082 ret 00001030 : ETH_Start(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:107 { 1030: ce6ff2ef jal t0,516 <__riscv_save_0> ETH_MACTransmissionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:407 ETH->MACCR |= ETH_MACCR_TE; 1034: 40028437 lui s0,0x40028 1038: 401c lw a5,0(s0) 103a: 0087e793 ori a5,a5,8 103e: c01c sw a5,0(s0) ETH_Start(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:109 ETH_FlushTransmitFIFO(); 1040: 37c5 jal 1020 ETH_MACReceptionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:428 ETH->MACCR |= ETH_MACCR_RE; 1042: 401c lw a5,0(s0) ETH_DMATransmissionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1544 */ void ETH_DMATransmissionCmd(FunctionalState NewState) { if(NewState != DISABLE) { ETH->DMAOMR |= ETH_DMAOMR_ST; 1044: 6689 lui a3,0x2 ETH_MACReceptionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:428 ETH->MACCR |= ETH_MACCR_RE; 1046: 0047e793 ori a5,a5,4 104a: c01c sw a5,0(s0) ETH_DMATransmissionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1544 ETH->DMAOMR |= ETH_DMAOMR_ST; 104c: 400297b7 lui a5,0x40029 1050: 4f98 lw a4,24(a5) 1052: 8f55 or a4,a4,a3 1054: cf98 sw a4,24(a5) ETH_DMAReceptionCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1565 */ void ETH_DMAReceptionCmd(FunctionalState NewState) { if(NewState != DISABLE) { ETH->DMAOMR |= ETH_DMAOMR_SR; 1056: 4f98 lw a4,24(a5) 1058: 00276713 ori a4,a4,2 105c: cf98 sw a4,24(a5) ETH_Start(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:113 } 105e: cdcff06f j 53a <__riscv_restore_0> 00001062 : ETH_DMAITConfig(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) 1062: c599 beqz a1,1070 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1604 { ETH->DMAIER |= ETH_DMA_IT; 1064: 40029737 lui a4,0x40029 1068: 4f5c lw a5,28(a4) 106a: 8d5d or a0,a0,a5 106c: cf48 sw a0,28(a4) 106e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1608 } else { ETH->DMAIER &= (~(uint32_t)ETH_DMA_IT); 1070: 400297b7 lui a5,0x40029 1074: 4fd8 lw a4,28(a5) 1076: fff54513 not a0,a0 107a: 8d79 and a0,a0,a4 107c: cfc8 sw a0,28(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:1610 } } 107e: 8082 ret 00001080 : RGMII_TXC_Delay(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 1080: 40028737 lui a4,0x40028 1084: 431c lw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2511 if(clock_polarity) 1086: c115 beqz a0,10aa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2513 ETH->MACCR |= (uint32_t)(1 << 1); 1088: 0027e793 ori a5,a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2517 } else { ETH->MACCR &= ~(uint32_t)(1 << 1); 108c: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2519 } if(delay_time <= 7) 108e: 479d li a5,7 1090: 00b7ec63 bltu a5,a1,10a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2521 { ETH->MACCR &= ~(uint32_t)(7 << 29); 1094: 40028737 lui a4,0x40028 1098: 431c lw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2522 ETH->MACCR |= (uint32_t)(delay_time << 29); 109a: 05f6 slli a1,a1,0x1d D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2521 ETH->MACCR &= ~(uint32_t)(7 << 29); 109c: 078e slli a5,a5,0x3 109e: 838d srli a5,a5,0x3 10a0: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2522 ETH->MACCR |= (uint32_t)(delay_time << 29); 10a2: 431c lw a5,0(a4) 10a4: 8ddd or a1,a1,a5 10a6: c30c sw a1,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2524 } } 10a8: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_eth.c:2517 ETH->MACCR &= ~(uint32_t)(1 << 1); 10aa: 9bf5 andi a5,a5,-3 10ac: b7c5 j 108c 000010ae : EXTI_ClearITPendingBit(): 10ae: 400107b7 lui a5,0x40010 10b2: 40a7aa23 sw a0,1044(a5) # 40010414 <__freertos_irq_stack_top+0x1ffe0414> 10b6: 8082 ret 000010b8 : FLASH_Unlock(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:80 * @return none */ void FLASH_Unlock(void) { /* Authorize the FPEC of Bank1 Access */ FLASH->KEYR = FLASH_KEY1; 10b8: 456707b7 lui a5,0x45670 10bc: 40022737 lui a4,0x40022 10c0: 12378793 addi a5,a5,291 # 45670123 <__freertos_irq_stack_top+0x25640123> 10c4: c35c sw a5,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:81 FLASH->KEYR = FLASH_KEY2; 10c6: cdef97b7 lui a5,0xcdef9 10ca: 9ab78793 addi a5,a5,-1621 # cdef89ab <__freertos_irq_stack_top+0xadec89ab> 10ce: c35c sw a5,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:82 } 10d0: 8082 ret 000010d2 : FLASH_Lock(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:107 * * @return none */ void FLASH_Lock(void) { FLASH->CTLR |= CR_LOCK_Set; 10d2: 40022737 lui a4,0x40022 10d6: 4b1c lw a5,16(a4) 10d8: 0807e793 ori a5,a5,128 10dc: cb1c sw a5,16(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:108 } 10de: 8082 ret 000010e0 : FLASH_GetUserOptionByte(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:580 * @return The FLASH User Option Bytes values:IWDG_SW(Bit0), RST_STOP(Bit1) * and RST_STDBY(Bit2). */ uint32_t FLASH_GetUserOptionByte(void) { return (uint32_t)(FLASH->OBR >> 2); 10e0: 400227b7 lui a5,0x40022 10e4: 4fc8 lw a0,28(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:581 } 10e6: 8109 srli a0,a0,0x2 10e8: 8082 ret 000010ea : FLASH_GetBank1Status(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:740 */ FLASH_Status FLASH_GetBank1Status(void) { FLASH_Status flashstatus = FLASH_COMPLETE; if((FLASH->STATR & FLASH_FLAG_BANK1_BSY) == FLASH_FLAG_BSY) 10ea: 40022737 lui a4,0x40022 10ee: 475c lw a5,12(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:742 { flashstatus = FLASH_BUSY; 10f0: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:740 if((FLASH->STATR & FLASH_FLAG_BANK1_BSY) == FLASH_FLAG_BSY) 10f2: 8b85 andi a5,a5,1 10f4: e791 bnez a5,1100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:746 } else { if((FLASH->STATR & FLASH_FLAG_BANK1_WRPRTERR) != 0) 10f6: 4748 lw a0,12(a4) 10f8: 8941 andi a0,a0,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:752 { flashstatus = FLASH_ERROR_WRP; } else { flashstatus = FLASH_COMPLETE; 10fa: 00153513 seqz a0,a0 10fe: 050d addi a0,a0,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:756 } } return flashstatus; } 1100: 8082 ret 00001102 : FLASH_WaitForLastOperation(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:769 * * @return FLASH Status - The returned value can be: FLASH_BUSY, FLASH_ERROR_PG, * FLASH_ERROR_WRP or FLASH_COMPLETE. */ FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout) { 1102: c14ff2ef jal t0,516 <__riscv_save_0> 1106: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:773 FLASH_Status status = FLASH_COMPLETE; status = FLASH_GetBank1Status(); while((status == FLASH_BUSY) && (Timeout != 0x00)) 1108: 4485 li s1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:772 status = FLASH_GetBank1Status(); 110a: 37c5 jal 10ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:773 while((status == FLASH_BUSY) && (Timeout != 0x00)) 110c: 00951863 bne a0,s1,111c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:773 (discriminator 1) 1110: e019 bnez s0,1116 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:780 status = FLASH_GetBank1Status(); Timeout--; } if(Timeout == 0x00) { status = FLASH_TIMEOUT; 1112: 4515 li a0,5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:782 } return status; 1114: a029 j 111e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:775 status = FLASH_GetBank1Status(); 1116: 3fd1 jal 10ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:776 Timeout--; 1118: 147d addi s0,s0,-1 111a: bfcd j 110c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:778 if(Timeout == 0x00) 111c: d87d beqz s0,1112 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:783 } 111e: c1cff06f j 53a <__riscv_restore_0> 00001122 : FLASH_ProgramOptionByteData(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:349 { 1122: bf4ff2ef jal t0,516 <__riscv_save_0> 1126: 7179 addi sp,sp,-48 1128: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:355 status = FLASH_WaitForLastOperation(ProgramTimeout); 112a: 6515 lui a0,0x5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:349 { 112c: c62e sw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:355 status = FLASH_WaitForLastOperation(ProgramTimeout); 112e: 3fd1 jal 1102 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:356 if(status == FLASH_COMPLETE) 1130: 4791 li a5,4 1132: 45b2 lw a1,12(sp) 1134: 08f51c63 bne a0,a5,11cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:358 FLASH->OBKEYR = FLASH_KEY1; 1138: 456707b7 lui a5,0x45670 113c: 40022737 lui a4,0x40022 1140: 12378793 addi a5,a5,291 # 45670123 <__freertos_irq_stack_top+0x25640123> 1144: c71c sw a5,8(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:359 FLASH->OBKEYR = FLASH_KEY2; 1146: cdef97b7 lui a5,0xcdef9 114a: 9ab78793 addi a5,a5,-1621 # cdef89ab <__freertos_irq_stack_top+0xadec89ab> 114e: c71c sw a5,8(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:362 for(i = 0; i < 8; i++) 1150: 00010fa3 sb zero,31(sp) 1154: 471d li a4,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:364 pbuf[i] = *(uint16_t *)(Addr + 2 * i); 1156: 20000637 lui a2,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:362 (discriminator 1) for(i = 0; i < 8; i++) 115a: 01f14783 lbu a5,31(sp) 115e: 06f77a63 bgeu a4,a5,11d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:368 FLASH->CTLR |= CR_OPTER_Set; 1162: 400227b7 lui a5,0x40022 1166: 4b98 lw a4,16(a5) 1168: 02076713 ori a4,a4,32 116c: cb98 sw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:369 FLASH->CTLR |= CR_STRT_Set; 116e: 4b98 lw a4,16(a5) 1170: 04076713 ori a4,a4,64 1174: cb98 sw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:370 (discriminator 1) while(FLASH->STATR & SR_BSY) 1176: 47d8 lw a4,12(a5) 1178: 8b05 andi a4,a4,1 117a: ff75 bnez a4,1176 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:372 FLASH->CTLR &= ~CR_OPTER_Set; 117c: 4b98 lw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:379 for(i = 0; i < 8; i++) 117e: 469d li a3,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:381 *(uint16_t *)(Addr + 2 * i) = pbuf[i]; 1180: 20000637 lui a2,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:372 FLASH->CTLR &= ~CR_OPTER_Set; 1184: fdf77713 andi a4,a4,-33 1188: cb98 sw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:375 pbuf[((Address - 0x1FFFF800) / 2)] = ((((uint16_t) ~(Data)) << 8) | ((uint16_t)Data)); 118a: e0001737 lui a4,0xe0001 118e: 80070713 addi a4,a4,-2048 # e0000800 <__freertos_irq_stack_top+0xbffd0800> 1192: 943a add s0,s0,a4 1194: 9879 andi s0,s0,-2 1196: 1818 addi a4,sp,48 1198: 943a add s0,s0,a4 119a: fff5c713 not a4,a1 119e: 0742 slli a4,a4,0x10 11a0: 8341 srli a4,a4,0x10 11a2: 0722 slli a4,a4,0x8 11a4: 8dd9 or a1,a1,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:377 FLASH->CTLR |= CR_OPTPG_Set; 11a6: 4b98 lw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:375 pbuf[((Address - 0x1FFFF800) / 2)] = ((((uint16_t) ~(Data)) << 8) | ((uint16_t)Data)); 11a8: feb41823 sh a1,-16(s0) # 40027ff0 <__freertos_irq_stack_top+0x1fff7ff0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:382 while(FLASH->STATR & SR_BSY) 11ac: 400225b7 lui a1,0x40022 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:377 FLASH->CTLR |= CR_OPTPG_Set; 11b0: 01076713 ori a4,a4,16 11b4: cb98 sw a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:379 for(i = 0; i < 8; i++) 11b6: 00010fa3 sb zero,31(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:379 (discriminator 1) 11ba: 01f14783 lbu a5,31(sp) 11be: 04f6f063 bgeu a3,a5,11fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:386 FLASH->CTLR &= ~CR_OPTPG_Set; 11c2: 40022737 lui a4,0x40022 11c6: 4b1c lw a5,16(a4) 11c8: 9bbd andi a5,a5,-17 11ca: cb1c sw a5,16(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:390 } 11cc: 6145 addi sp,sp,48 11ce: b6cff06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:364 (discriminator 3) pbuf[i] = *(uint16_t *)(Addr + 2 * i); 11d2: 01f14683 lbu a3,31(sp) 11d6: 01f14783 lbu a5,31(sp) 11da: 03010813 addi a6,sp,48 11de: 0686 slli a3,a3,0x1 11e0: 96b2 add a3,a3,a2 11e2: 8006d683 lhu a3,-2048(a3) # 1800 11e6: 0786 slli a5,a5,0x1 11e8: 97c2 add a5,a5,a6 11ea: fed79823 sh a3,-16(a5) # 40021ff0 <__freertos_irq_stack_top+0x1fff1ff0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:362 (discriminator 3) for(i = 0; i < 8; i++) 11ee: 01f14783 lbu a5,31(sp) 11f2: 0785 addi a5,a5,1 11f4: 0ff7f793 andi a5,a5,255 11f8: 00f10fa3 sb a5,31(sp) 11fc: bfb9 j 115a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:381 *(uint16_t *)(Addr + 2 * i) = pbuf[i]; 11fe: 01f14703 lbu a4,31(sp) 1202: 1800 addi s0,sp,48 1204: 01f14783 lbu a5,31(sp) 1208: 0706 slli a4,a4,0x1 120a: 9722 add a4,a4,s0 120c: ff075703 lhu a4,-16(a4) # 40021ff0 <__freertos_irq_stack_top+0x1fff1ff0> 1210: 0786 slli a5,a5,0x1 1212: 97b2 add a5,a5,a2 1214: 80e79023 sh a4,-2048(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:382 (discriminator 1) while(FLASH->STATR & SR_BSY) 1218: 45dc lw a5,12(a1) 121a: 8b85 andi a5,a5,1 121c: fff5 bnez a5,1218 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_flash.c:379 (discriminator 2) for(i = 0; i < 8; i++) 121e: 01f14783 lbu a5,31(sp) 1222: 0785 addi a5,a5,1 1224: 0ff7f793 andi a5,a5,255 1228: 00f10fa3 sb a5,31(sp) 122c: b779 j 11ba 0000122e : GPIO_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 122e: 459c lw a5,8(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:92 if((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00) 1230: 0107f713 andi a4,a5,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:90 currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F); 1234: 00f7f813 andi a6,a5,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:92 if((((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x10)) != 0x00) 1238: c701 beqz a4,1240 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:94 { currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed; 123a: 41d8 lw a4,4(a1) 123c: 00e86833 or a6,a6,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:97 } if(((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00) 1240: 218e lhu a1,0(a1) 1242: 0ff5f713 andi a4,a1,255 1246: c339 beqz a4,128c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:99 { tmpreg = GPIOx->CFGLR; 1248: 4118 lw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:101 for(pinpos = 0x00; pinpos < 0x08; pinpos++) 124a: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:103 { pos = ((uint32_t)0x01) << pinpos; 124c: 4e85 li t4,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:109 currentpin = (GPIO_InitStruct->GPIO_Pin) & pos; if(currentpin == pos) { pos = pinpos << 2; pinmask = ((uint32_t)0x0F) << pos; 124e: 4f3d li t5,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:113 tmpreg &= ~pinmask; tmpreg |= (currentmode << pos); if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) 1250: 02800f93 li t6,40 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:119 { GPIOx->BCR = (((uint32_t)0x01) << pinpos); } else { if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) 1254: 04800293 li t0,72 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:101 for(pinpos = 0x00; pinpos < 0x08; pinpos++) 1258: 4e21 li t3,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:103 pos = ((uint32_t)0x01) << pinpos; 125a: 00de9633 sll a2,t4,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:104 currentpin = (GPIO_InitStruct->GPIO_Pin) & pos; 125e: 00c5f8b3 and a7,a1,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:106 if(currentpin == pos) 1262: 03161163 bne a2,a7,1284 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:108 pos = pinpos << 2; 1266: 00269893 slli a7,a3,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:109 pinmask = ((uint32_t)0x0F) << pos; 126a: 011f1333 sll t1,t5,a7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:110 tmpreg &= ~pinmask; 126e: fff34313 not t1,t1 1272: 00e37733 and a4,t1,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:111 tmpreg |= (currentmode << pos); 1276: 011818b3 sll a7,a6,a7 127a: 00e8e733 or a4,a7,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:113 if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) 127e: 05f79f63 bne a5,t6,12dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:115 GPIOx->BCR = (((uint32_t)0x01) << pinpos); 1282: c950 sw a2,20(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:101 (discriminator 2) for(pinpos = 0x00; pinpos < 0x08; pinpos++) 1284: 0685 addi a3,a3,1 1286: fdc69ae3 bne a3,t3,125a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:126 GPIOx->BSHR = (((uint32_t)0x01) << pinpos); } } } } GPIOx->CFGLR = tmpreg; 128a: c118 sw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:129 } if(GPIO_InitStruct->GPIO_Pin > 0x00FF) 128c: 0ff00713 li a4,255 1290: 04b77563 bgeu a4,a1,12da D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:131 { tmpreg = GPIOx->CFGHR; 1294: 4154 lw a3,4(a0) 1296: 4621 li a2,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:135 for(pinpos = 0x00; pinpos < 0x08; pinpos++) { pos = (((uint32_t)0x01) << (pinpos + 0x08)); 1298: 4e85 li t4,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:141 currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos); if(currentpin == pos) { pos = pinpos << 2; pinmask = ((uint32_t)0x0F) << pos; 129a: 4f3d li t5,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:145 tmpreg &= ~pinmask; tmpreg |= (currentmode << pos); if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) 129c: 02800f93 li t6,40 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:150 { GPIOx->BCR = (((uint32_t)0x01) << (pinpos + 0x08)); } if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) 12a0: 04800293 li t0,72 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:133 for(pinpos = 0x00; pinpos < 0x08; pinpos++) 12a4: 4e41 li t3,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:135 pos = (((uint32_t)0x01) << (pinpos + 0x08)); 12a6: 00ce98b3 sll a7,t4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:136 currentpin = ((GPIO_InitStruct->GPIO_Pin) & pos); 12aa: 0115f733 and a4,a1,a7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:138 if(currentpin == pos) 12ae: 02e89263 bne a7,a4,12d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:140 pos = pinpos << 2; 12b2: 00261713 slli a4,a2,0x2 12b6: 1701 addi a4,a4,-32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:141 pinmask = ((uint32_t)0x0F) << pos; 12b8: 00ef1333 sll t1,t5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:142 tmpreg &= ~pinmask; 12bc: fff34313 not t1,t1 12c0: 00d376b3 and a3,t1,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:143 tmpreg |= (currentmode << pos); 12c4: 00e81733 sll a4,a6,a4 12c8: 8ed9 or a3,a3,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:145 if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD) 12ca: 01f79d63 bne a5,t6,12e4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:147 GPIOx->BCR = (((uint32_t)0x01) << (pinpos + 0x08)); 12ce: 01152a23 sw a7,20(a0) # 5014 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:150 if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) 12d2: 0605 addi a2,a2,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:133 (discriminator 2) for(pinpos = 0x00; pinpos < 0x08; pinpos++) 12d4: fdc619e3 bne a2,t3,12a6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:156 { GPIOx->BSHR = (((uint32_t)0x01) << (pinpos + 0x08)); } } } GPIOx->CFGHR = tmpreg; 12d8: c154 sw a3,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:158 } } 12da: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:119 if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) 12dc: fa5794e3 bne a5,t0,1284 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:121 GPIOx->BSHR = (((uint32_t)0x01) << pinpos); 12e0: c910 sw a2,16(a0) 12e2: b74d j 1284 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:150 if(GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU) 12e4: fe5797e3 bne a5,t0,12d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:152 GPIOx->BSHR = (((uint32_t)0x01) << (pinpos + 0x08)); 12e8: 01152823 sw a7,16(a0) 12ec: b7dd j 12d2 000012ee : GPIO_SetBits(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:271 * * @return none */ void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { GPIOx->BSHR = GPIO_Pin; 12ee: c90c sw a1,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:272 } 12f0: 8082 ret 000012f2 : GPIO_ResetBits(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:287 * * @return none */ void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { GPIOx->BCR = GPIO_Pin; 12f2: c94c sw a1,20(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_gpio.c:288 } 12f4: 8082 ret 000012f6 : NVIC_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) 12f6: 200007b7 lui a5,0x20000 12fa: 0b87a703 lw a4,184(a5) # 200000b8 12fe: 4789 li a5,2 1300: 2110 lbu a2,0(a0) 1302: 02f71163 bne a4,a5,1324 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_misc.c:82 { if(NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority < 4) 1306: 3114 lbu a3,1(a0) 1308: 478d li a5,3 130a: 00d7ed63 bltu a5,a3,1324 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_misc.c:84 { NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 6) | (NVIC_InitStruct->NVIC_IRQChannelSubPriority << 5)); 130e: 213c lbu a5,2(a0) 1310: 069a slli a3,a3,0x6 NVIC_SetPriority(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:286 NVIC->IPRIOR[(uint32_t)(IRQn)] = priority; 1312: e000e737 lui a4,0xe000e NVIC_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_misc.c:84 1316: 0796 slli a5,a5,0x5 1318: 8fd5 or a5,a5,a3 131a: 0ff7f793 andi a5,a5,255 NVIC_SetPriority(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:286 131e: 9732 add a4,a4,a2 1320: 40f70023 sb a5,1024(a4) # e000e400 <__freertos_irq_stack_top+0xbffde400> NVIC_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_misc.c:97 NVIC_SetPriority(NVIC_InitStruct->NVIC_IRQChannel, (NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority << 5) ); } } #endif if(NVIC_InitStruct->NVIC_IRQChannelCmd != DISABLE) 1324: 4154 lw a3,4(a0) 1326: 4705 li a4,1 1328: 00565793 srli a5,a2,0x5 132c: 00c71733 sll a4,a4,a2 1330: ca89 beqz a3,1342 NVIC_EnableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:170 NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 1332: 04078793 addi a5,a5,64 1336: 078a slli a5,a5,0x2 1338: e000e6b7 lui a3,0xe000e 133c: 97b6 add a5,a5,a3 133e: c398 sw a4,0(a5) 1340: 8082 ret NVIC_DisableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:184 NVIC->IRER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 1342: 06078793 addi a5,a5,96 1346: e000e6b7 lui a3,0xe000e 134a: 078a slli a5,a5,0x2 134c: 97b6 add a5,a5,a3 134e: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:185 __asm volatile ("fence.i"); 1350: 0000100f fence.i NVIC_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_misc.c:105 } else { NVIC_DisableIRQ(NVIC_InitStruct->NVIC_IRQChannel); } } 1354: 8082 ret 00001356 : RCC_GetClocksFreq(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:585 #ifdef CH32V30x_D8C uint8_t Pll2mull = 0; #endif tmp = RCC->CFGR0 & CFGR0_SWS_Mask; 1356: 40021737 lui a4,0x40021 135a: 435c lw a5,4(a4) 135c: 4691 li a3,4 135e: 8bb1 andi a5,a5,12 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:587 switch(tmp) 1360: 00d78563 beq a5,a3,136a 1364: 46a1 li a3,8 1366: 06d78263 beq a5,a3,13ca D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:590 { case 0x00: RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; 136a: 007a17b7 lui a5,0x7a1 136e: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x793cec> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:668 #endif } if(Pll_6_5 == 1) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency / 2); 1372: c11c sw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:677 default: RCC_Clocks->SYSCLK_Frequency = HSI_VALUE; break; } tmp = RCC->CFGR0 & CFGR0_HPRE_Set_Mask; 1374: 40021637 lui a2,0x40021 1378: 425c lw a5,4(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:679 tmp = tmp >> 4; presc = APBAHBPrescTable[tmp]; 137a: 20000737 lui a4,0x20000 137e: 03070713 addi a4,a4,48 # 20000030 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:678 tmp = tmp >> 4; 1382: 8391 srli a5,a5,0x4 1384: 8bbd andi a5,a5,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:679 presc = APBAHBPrescTable[tmp]; 1386: 97ba add a5,a5,a4 1388: 2394 lbu a3,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:680 RCC_Clocks->HCLK_Frequency = RCC_Clocks->SYSCLK_Frequency >> presc; 138a: 411c lw a5,0(a0) 138c: 00d7d7b3 srl a5,a5,a3 1390: c15c sw a5,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:681 tmp = RCC->CFGR0 & CFGR0_PPRE1_Set_Mask; 1392: 4254 lw a3,4(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:682 tmp = tmp >> 8; 1394: 82a1 srli a3,a3,0x8 1396: 8a9d andi a3,a3,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:683 presc = APBAHBPrescTable[tmp]; 1398: 96ba add a3,a3,a4 139a: 2294 lbu a3,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:684 RCC_Clocks->PCLK1_Frequency = RCC_Clocks->HCLK_Frequency >> presc; 139c: 00d7d6b3 srl a3,a5,a3 13a0: c514 sw a3,8(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:685 tmp = RCC->CFGR0 & CFGR0_PPRE2_Set_Mask; 13a2: 4254 lw a3,4(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:686 tmp = tmp >> 11; 13a4: 82ad srli a3,a3,0xb 13a6: 8a9d andi a3,a3,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:687 presc = APBAHBPrescTable[tmp]; 13a8: 9736 add a4,a4,a3 13aa: 2318 lbu a4,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:688 RCC_Clocks->PCLK2_Frequency = RCC_Clocks->HCLK_Frequency >> presc; 13ac: 00e7d7b3 srl a5,a5,a4 13b0: c55c sw a5,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:689 tmp = RCC->CFGR0 & CFGR0_ADCPRE_Set_Mask; 13b2: 4258 lw a4,4(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:690 tmp = tmp >> 14; 13b4: 8339 srli a4,a4,0xe 13b6: 00377693 andi a3,a4,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:691 presc = ADCPrescTable[tmp]; 13ba: 81418713 addi a4,gp,-2028 # 20000054 13be: 9736 add a4,a4,a3 13c0: 2318 lbu a4,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:692 RCC_Clocks->ADCCLK_Frequency = RCC_Clocks->PCLK2_Frequency / presc; 13c2: 02e7d7b3 divu a5,a5,a4 13c6: c91c sw a5,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:693 } 13c8: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:598 pllmull = RCC->CFGR0 & CFGR0_PLLMull_Mask; 13ca: 435c lw a5,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:599 pllsource = RCC->CFGR0 & CFGR0_PLLSRC_Mask; 13cc: 4358 lw a4,4(a4) 13ce: 66c1 lui a3,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:601 pllmull = (pllmull >> 18) + 2; 13d0: 83c9 srli a5,a5,0x12 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:599 pllsource = RCC->CFGR0 & CFGR0_PLLSRC_Mask; 13d2: 8f75 and a4,a4,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:603 if(((*(uint32_t *)0x1FFFF70C) & (1 << 14)) != (1 << 14)) 13d4: 1ffff6b7 lui a3,0x1ffff 13d8: 70c6a683 lw a3,1804(a3) # 1ffff70c <_data_lma+0x1fff21f8> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:601 pllmull = (pllmull >> 18) + 2; 13dc: 8bbd andi a5,a5,15 13de: 0789 addi a5,a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:603 if(((*(uint32_t *)0x1FFFF70C) & (1 << 14)) != (1 << 14)) 13e0: 01169613 slli a2,a3,0x11 13e4: 00064863 bltz a2,13f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:605 if(pllmull == 17) 13e8: 46c5 li a3,17 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:578 uint8_t Pll_6_5 = 0; 13ea: 4601 li a2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:605 if(pllmull == 17) 13ec: 02d79263 bne a5,a3,1410 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:606 pllmull = 18; 13f0: 47c9 li a5,18 13f2: a839 j 1410 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:610 if(pllmull == 2) 13f4: 4689 li a3,2 13f6: 02d78f63 beq a5,a3,1434 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:612 if(pllmull == 15) 13fa: 46bd li a3,15 13fc: 02d78e63 beq a5,a3,1438 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:617 if(pllmull == 16) 1400: 46c1 li a3,16 1402: 02d78e63 beq a5,a3,143e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:619 if(pllmull == 17) 1406: 46c5 li a3,17 1408: 4601 li a2,0 140a: 00d79363 bne a5,a3,1410 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:620 pllmull = 16; 140e: 47c1 li a5,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:623 if(pllsource == 0x00) 1410: ef1d bnez a4,144e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:625 if(EXTEN->EXTEN_CTR & EXTEN_PLL_HSI_PRE) 1412: 40024737 lui a4,0x40024 1416: 80072703 lw a4,-2048(a4) # 40023800 <__freertos_irq_stack_top+0x1fff3800> 141a: 8b41 andi a4,a4,16 141c: c705 beqz a4,1444 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:627 RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE)*pllmull; 141e: 007a1737 lui a4,0x7a1 1422: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:662 RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * pllmull; 1426: 02f707b3 mul a5,a4,a5 142a: c11c sw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:667 if(Pll_6_5 == 1) 142c: d621 beqz a2,1374 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:668 RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency / 2); 142e: 411c lw a5,0(a0) 1430: 8385 srli a5,a5,0x1 1432: b781 j 1372 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:578 uint8_t Pll_6_5 = 0; 1434: 4601 li a2,0 1436: bf6d j 13f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:615 Pll_6_5 = 1; 1438: 4605 li a2,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:614 pllmull = 13; /* *6.5 */ 143a: 47b5 li a5,13 143c: bfd1 j 1410 143e: 4601 li a2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:618 pllmull = 15; 1440: 47bd li a5,15 1442: b7f9 j 1410 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:631 RCC_Clocks->SYSCLK_Frequency = (HSI_VALUE >> 1) * pllmull; 1444: 003d1737 lui a4,0x3d1 1448: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3c33ec> 144c: bfe9 j 1426 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:646 if(RCC->CFGR2 & (1<<16)){ /* PLL2 */ 144e: 400215b7 lui a1,0x40021 1452: 55d8 lw a4,44(a1) 1454: 00f71693 slli a3,a4,0xf D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:647 RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */ 1458: 55d8 lw a4,44(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:646 if(RCC->CFGR2 & (1<<16)){ /* PLL2 */ 145a: 0406df63 bgez a3,14b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:647 RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/(((RCC->CFGR2 & 0xF0)>>4) + 1); /* PREDIV2 */ 145e: 8311 srli a4,a4,0x4 1460: 8b3d andi a4,a4,15 1462: 00170693 addi a3,a4,1 1466: 007a1737 lui a4,0x7a1 146a: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> 146e: 02d75733 divu a4,a4,a3 1472: c118 sw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:649 Pll2mull = (uint8_t)((RCC->CFGR2 & 0xF00)>>8); 1474: 55d4 lw a3,44(a1) 1476: 82a1 srli a3,a3,0x8 1478: 8abd andi a3,a3,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:651 if(Pll2mull == 0) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 5)>>1; 147a: e28d bnez a3,149c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:651 (discriminator 1) 147c: 4695 li a3,5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:652 (discriminator 1) else if(Pll2mull == 1) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 25)>>1; 147e: 02d70733 mul a4,a4,a3 1482: 8305 srli a4,a4,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:654 else RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * (Pll2mull + 2); 1484: c118 sw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:656 RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ 1486: 40021737 lui a4,0x40021 148a: 5758 lw a4,44(a4) 148c: 4114 lw a3,0(a0) 148e: 8b3d andi a4,a4,15 1490: 0705 addi a4,a4,1 1492: 02e6d733 divu a4,a3,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:659 RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ 1496: c118 sw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:662 RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * pllmull; 1498: 4118 lw a4,0(a0) 149a: b771 j 1426 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:652 else if(Pll2mull == 1) RCC_Clocks->SYSCLK_Frequency = (RCC_Clocks->SYSCLK_Frequency * 25)>>1; 149c: 4585 li a1,1 149e: 00b69463 bne a3,a1,14a6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:652 (discriminator 1) 14a2: 46e5 li a3,25 14a4: bfe9 j 147e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:653 else if(Pll2mull == 15) RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * 20; 14a6: 45bd li a1,15 14a8: 00b69663 bne a3,a1,14b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:653 (discriminator 1) 14ac: 46d1 li a3,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:654 else RCC_Clocks->SYSCLK_Frequency = RCC_Clocks->SYSCLK_Frequency * (Pll2mull + 2); 14ae: 02e68733 mul a4,a3,a4 14b2: bfc9 j 1484 14b4: 0689 addi a3,a3,2 14b6: bfe5 j 14ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:659 RCC_Clocks->SYSCLK_Frequency = HSE_VALUE/((RCC->CFGR2 & 0xF) + 1); /* PREDIV1 */ 14b8: 8b3d andi a4,a4,15 14ba: 00170693 addi a3,a4,1 # 40021001 <__freertos_irq_stack_top+0x1fff1001> 14be: 007a1737 lui a4,0x7a1 14c2: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> 14c6: 02d75733 divu a4,a4,a3 14ca: b7f1 j 1496 000014cc : RCC_AHBPeriphClockCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:722 * * @return none */ void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) { if(NewState != DISABLE) 14cc: c599 beqz a1,14da D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:724 { RCC->AHBPCENR |= RCC_AHBPeriph; 14ce: 40021737 lui a4,0x40021 14d2: 4b5c lw a5,20(a4) 14d4: 8d5d or a0,a0,a5 14d6: cb48 sw a0,20(a4) 14d8: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:728 } else { RCC->AHBPCENR &= ~RCC_AHBPeriph; 14da: 400217b7 lui a5,0x40021 14de: 4bd8 lw a4,20(a5) 14e0: fff54513 not a0,a0 14e4: 8d79 and a0,a0,a4 14e6: cbc8 sw a0,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:730 } } 14e8: 8082 ret 000014ea : RCC_APB2PeriphClockCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:758 * * @return none */ void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState) { if(NewState != DISABLE) 14ea: c599 beqz a1,14f8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:760 { RCC->APB2PCENR |= RCC_APB2Periph; 14ec: 40021737 lui a4,0x40021 14f0: 4f1c lw a5,24(a4) 14f2: 8d5d or a0,a0,a5 14f4: cf08 sw a0,24(a4) 14f6: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:764 } else { RCC->APB2PCENR &= ~RCC_APB2Periph; 14f8: 400217b7 lui a5,0x40021 14fc: 4f98 lw a4,24(a5) 14fe: fff54513 not a0,a0 1502: 8d79 and a0,a0,a4 1504: cf88 sw a0,24(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:766 } } 1506: 8082 ret 00001508 : RCC_APB1PeriphClockCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:803 * * @return none */ void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState) { if(NewState != DISABLE) 1508: c599 beqz a1,1516 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:805 { RCC->APB1PCENR |= RCC_APB1Periph; 150a: 40021737 lui a4,0x40021 150e: 4f5c lw a5,28(a4) 1510: 8d5d or a0,a0,a5 1512: cf48 sw a0,28(a4) 1514: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:809 } else { RCC->APB1PCENR &= ~RCC_APB1Periph; 1516: 400217b7 lui a5,0x40021 151a: 4fd8 lw a4,28(a5) 151c: fff54513 not a0,a0 1520: 8d79 and a0,a0,a4 1522: cfc8 sw a0,28(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:811 } } 1524: 8082 ret 00001526 : RCC_AHBPeriphResetCmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1295 * * @return none */ void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) { if(NewState != DISABLE) 1526: c599 beqz a1,1534 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1297 { RCC->AHBRSTR |= RCC_AHBPeriph; 1528: 40021737 lui a4,0x40021 152c: 571c lw a5,40(a4) 152e: 8d5d or a0,a0,a5 1530: d708 sw a0,40(a4) 1532: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1301 } else { RCC->AHBRSTR &= ~RCC_AHBPeriph; 1534: 400217b7 lui a5,0x40021 1538: 5798 lw a4,40(a5) 153a: fff54513 not a0,a0 153e: 8d79 and a0,a0,a4 1540: d788 sw a0,40(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1303 } } 1542: 8082 ret 00001544 : RCC_ETH1GCLKConfig(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1357 * * @return none */ void RCC_ETH1GCLKConfig(uint32_t RCC_ETH1GCLKSource) { RCC->CFGR2 &= ~(3 << 20); 1544: 400217b7 lui a5,0x40021 1548: 57d8 lw a4,44(a5) 154a: ffd006b7 lui a3,0xffd00 154e: 16fd addi a3,a3,-1 1550: 8f75 and a4,a4,a3 1552: d7d8 sw a4,44(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1358 RCC->CFGR2 |= RCC_ETH1GCLKSource << 20; 1554: 57d8 lw a4,44(a5) 1556: 0552 slli a0,a0,0x14 1558: 8d59 or a0,a0,a4 155a: d7c8 sw a0,44(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1359 } 155c: 8082 ret 0000155e : RCC_ETH1G_125Mcmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1372 * * @return none */ void RCC_ETH1G_125Mcmd(FunctionalState NewState) { if(NewState != DISABLE) 155e: c909 beqz a0,1570 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1374 { RCC->CFGR2 |= (1 << 22); 1560: 40021737 lui a4,0x40021 1564: 575c lw a5,44(a4) 1566: 004006b7 lui a3,0x400 156a: 8fd5 or a5,a5,a3 156c: d75c sw a5,44(a4) 156e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1378 } else { RCC->CFGR2 &= ~(1 << 22); 1570: 400216b7 lui a3,0x40021 1574: 56dc lw a5,44(a3) 1576: ffc00737 lui a4,0xffc00 157a: 177d addi a4,a4,-1 157c: 8ff9 and a5,a5,a4 157e: d6dc sw a5,44(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_rcc.c:1380 } } 1580: 8082 ret 00001582 : TIM_TimeBaseInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; 1582: 1ffff737 lui a4,0x1ffff 1586: 70472703 lw a4,1796(a4) # 1ffff704 <_data_lma+0x1fff21f0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:111 tmpcr1 = TIMx->CTLR1; 158a: 211e lhu a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10))) 158c: 4691 li a3,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:110 temper1 = ((*( uint32_t * )0x1FFFF704) & 0x000000F0) >> 4; 158e: 8311 srli a4,a4,0x4 1590: 8b3d andi a4,a4,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:111 tmpcr1 = TIMx->CTLR1; 1592: 07c2 slli a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10))) 1594: 1771 addi a4,a4,-4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:111 tmpcr1 = TIMx->CTLR1; 1596: 83c1 srli a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 if(((temper1>=4)&&(temper1<=8))&&((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10))) 1598: 02e6e663 bltu a3,a4,15c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 (discriminator 1) 159c: 40013737 lui a4,0x40013 15a0: c0070693 addi a3,a4,-1024 # 40012c00 <__freertos_irq_stack_top+0x1ffe2c00> 15a4: 00d50e63 beq a0,a3,15c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 (discriminator 2) 15a8: 40070713 addi a4,a4,1024 15ac: 00e50a63 beq a0,a4,15c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 (discriminator 3) 15b0: 40015737 lui a4,0x40015 15b4: c0070693 addi a3,a4,-1024 # 40014c00 <__freertos_irq_stack_top+0x1ffe4c00> 15b8: 00d50463 beq a0,a3,15c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:113 (discriminator 4) 15bc: 00e51a63 bne a0,a4,15d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:115 { tmpcr1 |= 1<<13; 15c0: 6709 lui a4,0x2 15c2: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:118 } if((TIMx == TIM1) || (TIMx == TIM2) || (TIMx == TIM3) || (TIMx == TIM4) || 15c4: 40013737 lui a4,0x40013 15c8: c0070713 addi a4,a4,-1024 # 40012c00 <__freertos_irq_stack_top+0x1ffe2c00> 15cc: 04e50263 beq a0,a4,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:118 (discriminator 1) 15d0: 40000737 lui a4,0x40000 15d4: 02e50e63 beq a0,a4,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:118 (discriminator 2) 15d8: 40070713 addi a4,a4,1024 # 40000400 <__freertos_irq_stack_top+0x1ffd0400> 15dc: 02e50a63 beq a0,a4,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:118 (discriminator 3) 15e0: 40001737 lui a4,0x40001 15e4: 80070693 addi a3,a4,-2048 # 40000800 <__freertos_irq_stack_top+0x1ffd0800> 15e8: 02d50463 beq a0,a3,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:118 (discriminator 4) 15ec: c0070713 addi a4,a4,-1024 15f0: 02e50063 beq a0,a4,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:119 (TIMx == TIM5) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10)) 15f4: 40013737 lui a4,0x40013 15f8: 40070713 addi a4,a4,1024 # 40013400 <__freertos_irq_stack_top+0x1ffe3400> 15fc: 00e50a63 beq a0,a4,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:119 (discriminator 1) 1600: 40015737 lui a4,0x40015 1604: c0070693 addi a3,a4,-1024 # 40014c00 <__freertos_irq_stack_top+0x1ffe4c00> 1608: 00d50463 beq a0,a3,1610 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:119 (discriminator 2) 160c: 00e51863 bne a0,a4,161c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:121 { tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS))); 1610: f8f7f793 andi a5,a5,-113 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:122 tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode; 1614: 21ba lhu a4,2(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:121 tmpcr1 &= (uint16_t)(~((uint16_t)(TIM_DIR | TIM_CMS))); 1616: 07c2 slli a5,a5,0x10 1618: 83c1 srli a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:122 tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_CounterMode; 161a: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:125 } if((TIMx != TIM6) && (TIMx != TIM7)) 161c: 40001737 lui a4,0x40001 1620: 00e50c63 beq a0,a4,1638 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:125 (discriminator 1) 1624: 40070713 addi a4,a4,1024 # 40001400 <__freertos_irq_stack_top+0x1ffd1400> 1628: 00e50863 beq a0,a4,1638 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:127 { tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CTLR1_CKD)); 162c: cff7f793 andi a5,a5,-769 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:128 tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision; 1630: 21fa lhu a4,6(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:127 tmpcr1 &= (uint16_t)(~((uint16_t)TIM_CTLR1_CKD)); 1632: 07c2 slli a5,a5,0x10 1634: 83c1 srli a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:128 tmpcr1 |= (uint32_t)TIM_TimeBaseInitStruct->TIM_ClockDivision; 1636: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:131 } TIMx->CTLR1 = tmpcr1; 1638: a11e sh a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:132 TIMx->ATRLR = TIM_TimeBaseInitStruct->TIM_Period; 163a: 21de lhu a5,4(a1) 163c: b55e sh a5,44(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:133 TIMx->PSC = TIM_TimeBaseInitStruct->TIM_Prescaler; 163e: 219e lhu a5,0(a1) 1640: b51e sh a5,40(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:135 if((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM9) || (TIMx == TIM10)) 1642: 400137b7 lui a5,0x40013 1646: c0078713 addi a4,a5,-1024 # 40012c00 <__freertos_irq_stack_top+0x1ffe2c00> 164a: 00e50e63 beq a0,a4,1666 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:135 (discriminator 1) 164e: 40078793 addi a5,a5,1024 1652: 00f50a63 beq a0,a5,1666 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:135 (discriminator 2) 1656: 400157b7 lui a5,0x40015 165a: c0078713 addi a4,a5,-1024 # 40014c00 <__freertos_irq_stack_top+0x1ffe4c00> 165e: 00e50463 beq a0,a4,1666 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:135 (discriminator 3) 1662: 00f51463 bne a0,a5,166a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:137 { TIMx->RPTCR = TIM_TimeBaseInitStruct->TIM_RepetitionCounter; 1666: 259c lbu a5,8(a1) 1668: b91e sh a5,48(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:140 } TIMx->SWEVGR = TIM_PSCReloadMode_Immediate; 166a: 4785 li a5,1 166c: a95e sh a5,20(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:141 } 166e: 8082 ret 00001670 : TIM_Cmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:522 */ void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState) { if(NewState != DISABLE) { TIMx->CTLR1 |= TIM_CEN; 1670: 211e lhu a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:520 if(NewState != DISABLE) 1672: c589 beqz a1,167c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:522 TIMx->CTLR1 |= TIM_CEN; 1674: 0017e793 ori a5,a5,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:526 } else { TIMx->CTLR1 &= (uint16_t)(~((uint16_t)TIM_CEN)); 1678: a11e sh a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:528 } } 167a: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:526 TIMx->CTLR1 &= (uint16_t)(~((uint16_t)TIM_CEN)); 167c: 07c2 slli a5,a5,0x10 167e: 83c1 srli a5,a5,0x10 1680: 9bf9 andi a5,a5,-2 1682: 07c2 slli a5,a5,0x10 1684: 83c1 srli a5,a5,0x10 1686: bfcd j 1678 00001688 : TIM_ITConfig(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; 1688: 255e lhu a5,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:574 if(NewState != DISABLE) 168a: c601 beqz a2,1692 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:576 TIMx->DMAINTENR |= TIM_IT; 168c: 8ddd or a1,a1,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:580 } else { TIMx->DMAINTENR &= (uint16_t)~TIM_IT; 168e: a54e sh a1,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:582 } } 1690: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_tim.c:580 TIMx->DMAINTENR &= (uint16_t)~TIM_IT; 1692: fff5c593 not a1,a1 1696: 8dfd and a1,a1,a5 1698: bfdd j 168e 0000169a : TIM_ClearITPendingBit(): 169a: fff5c593 not a1,a1 169e: 05c2 slli a1,a1,0x10 16a0: 81c1 srli a1,a1,0x10 16a2: a90e sh a1,16(a0) 16a4: 8082 ret 000016a6 : USART_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:122 * USART peripheral. * * @return none */ void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct) { 16a6: e71fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:134 if(USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None) { } usartxbase = (uint32_t)USARTx; tmpreg = USARTx->CTLR2; 16aa: 2916 lhu a3,16(a0) 16ac: 77f5 lui a5,0xffffd 16ae: 17fd addi a5,a5,-1 16b0: 8ff5 and a5,a5,a3 16b2: 21f6 lhu a3,6(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:129 if(USART_InitStruct->USART_HardwareFlowControl != USART_HardwareFlowControl_None) 16b4: 25da lhu a4,12(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:122 { 16b6: 7179 addi sp,sp,-48 16b8: 8fd5 or a5,a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:138 tmpreg &= CTLR2_STOP_CLEAR_Mask; tmpreg |= (uint32_t)USART_InitStruct->USART_StopBits; USARTx->CTLR2 = (uint16_t)tmpreg; 16ba: a91e sh a5,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:139 tmpreg = USARTx->CTLR1; 16bc: 2556 lhu a3,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:141 tmpreg &= CTLR1_CLEAR_Mask; tmpreg |= (uint32_t)USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity | 16be: 77fd lui a5,0xfffff 16c0: 9f378793 addi a5,a5,-1549 # ffffe9f3 <__freertos_irq_stack_top+0xdffce9f3> 16c4: 8ff5 and a5,a5,a3 16c6: 21d6 lhu a3,4(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:122 { 16c8: 842a mv s0,a0 16ca: c62e sw a1,12(sp) 16cc: 8fd5 or a5,a5,a3 16ce: 2596 lhu a3,8(a1) 16d0: 8fd5 or a5,a5,a3 16d2: 25b6 lhu a3,10(a1) 16d4: 8fd5 or a5,a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:143 USART_InitStruct->USART_Mode; USARTx->CTLR1 = (uint16_t)tmpreg; 16d6: a55e sh a5,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:145 tmpreg = USARTx->CTLR3; 16d8: 295e lhu a5,20(a0) 16da: 07c2 slli a5,a5,0x10 16dc: 83c1 srli a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:147 tmpreg &= CTLR3_CLEAR_Mask; tmpreg |= USART_InitStruct->USART_HardwareFlowControl; 16de: cff7f793 andi a5,a5,-769 16e2: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:148 USARTx->CTLR3 = (uint16_t)tmpreg; 16e4: a95e sh a5,20(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:150 RCC_GetClocksFreq(&RCC_ClocksStatus); 16e6: 0868 addi a0,sp,28 16e8: 31bd jal 1356 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:152 if(usartxbase == USART1_BASE) 16ea: 400147b7 lui a5,0x40014 16ee: 80078793 addi a5,a5,-2048 # 40013800 <__freertos_irq_stack_top+0x1ffe3800> 16f2: 45b2 lw a1,12(sp) 16f4: 02f41e63 bne s0,a5,1730 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:154 { apbclock = RCC_ClocksStatus.PCLK2_Frequency; 16f8: 57a2 lw a5,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:161 else { apbclock = RCC_ClocksStatus.PCLK1_Frequency; } integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate))); 16fa: 4765 li a4,25 16fc: 02e787b3 mul a5,a5,a4 1700: 4198 lw a4,0(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:162 tmpreg = (integerdivider / 100) << 4; 1702: 06400693 li a3,100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:161 integerdivider = ((25 * apbclock) / (4 * (USART_InitStruct->USART_BaudRate))); 1706: 070a slli a4,a4,0x2 1708: 02e7d7b3 divu a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:162 tmpreg = (integerdivider / 100) << 4; 170c: 02d7d733 divu a4,a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:164 fractionaldivider = integerdivider - (100 * (tmpreg >> 4)); tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F); 1710: 02d7f7b3 remu a5,a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:162 tmpreg = (integerdivider / 100) << 4; 1714: 0712 slli a4,a4,0x4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:164 tmpreg |= ((((fractionaldivider * 16) + 50) / 100)) & ((uint8_t)0x0F); 1716: 0792 slli a5,a5,0x4 1718: 03278793 addi a5,a5,50 171c: 02d7d7b3 divu a5,a5,a3 1720: 8bbd andi a5,a5,15 1722: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:165 USARTx->BRR = (uint16_t)tmpreg; 1724: 07c2 slli a5,a5,0x10 1726: 83c1 srli a5,a5,0x10 1728: a41e sh a5,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:166 } 172a: 6145 addi sp,sp,48 172c: e0ffe06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:158 apbclock = RCC_ClocksStatus.PCLK1_Frequency; 1730: 5792 lw a5,36(sp) 1732: b7e1 j 16fa 00001734 : USART_Cmd(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:244 * * @return none */ void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState) { if(NewState != DISABLE) 1734: c591 beqz a1,1740 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:246 { USARTx->CTLR1 |= CTLR1_UE_Set; 1736: 255e lhu a5,12(a0) 1738: 6709 lui a4,0x2 173a: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:250 } else { USARTx->CTLR1 &= CTLR1_UE_Reset; 173c: a55e sh a5,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:252 } } 173e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:250 USARTx->CTLR1 &= CTLR1_UE_Reset; 1740: 255a lhu a4,12(a0) 1742: 77f9 lui a5,0xffffe 1744: 17fd addi a5,a5,-1 1746: 8ff9 and a5,a5,a4 1748: bfd5 j 173c 0000174a : USART_SendData(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:447 * * @return none */ void USART_SendData(USART_TypeDef *USARTx, uint16_t Data) { USARTx->DATAR = (Data & (uint16_t)0x01FF); 174a: 1ff5f593 andi a1,a1,511 174e: a14e sh a1,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:448 } 1750: 8082 ret 00001752 : USART_GetFlagStatus(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) 1752: 210a lhu a0,0(a0) 1754: 8d6d and a0,a0,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Peripheral/src/ch32v30x_usart.c:658 else { bitstatus = RESET; } return bitstatus; } 1756: 00a03533 snez a0,a0 175a: 8082 ret 0000175c : ETH_TxPktChainMode(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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) 175c: 200006b7 lui a3,0x20000 1760: 0b46a783 lw a5,180(a3) # 200000b4 1764: 4398 lw a4,0(a5) 1766: 02074b63 bltz a4,179c D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; 176a: 4398 lw a4,0(a5) 176c: 30000637 lui a2,0x30000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:490 DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1); 1770: 054e slli a0,a0,0x13 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:497 DMATxDescToSet->Status |= ETH_DMATxDesc_LS | ETH_DMATxDesc_FS; 1772: 8f51 or a4,a4,a2 1774: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../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; 1776: 4398 lw a4,0(a5) 1778: 80000637 lui a2,0x80000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:490 DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1); 177c: 814d srli a0,a0,0x13 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:501 DMATxDescToSet->Status |= ETH_DMATxDesc_OWN; 177e: 8f51 or a4,a4,a2 1780: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:490 DMATxDescToSet->ControlBufferSize = (len & ETH_DMATxDesc_TBS1); 1782: c3c8 sw a0,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:491 DMATxDescToSet->Buffer1Addr = (uint32_t)pBuff; 1784: c78c sw a1,8(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:504 /* Clear TBUS ETHERNET DMA flag */ ETH->DMASR = ETH_DMASR_TBUS; 1786: 40029737 lui a4,0x40029 178a: 4611 li a2,4 178c: cb50 sw a2,20(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:506 /* Resume DMA transmission*/ ETH->DMATPDR = 0; 178e: 00072223 sw zero,4(a4) # 40029004 <__freertos_irq_stack_top+0x1fff9004> D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 1792: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:513 /* Return SUCCESS */ return ETH_SUCCESS; 1794: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:511 DMATxDescToSet = (ETH_DMADESCTypeDef*) (DMATxDescToSet->Buffer2NextDescAddr); 1796: 0af6aa23 sw a5,180(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:513 return ETH_SUCCESS; 179a: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:487 return ETH_ERROR; 179c: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:514 } 179e: 8082 ret 000017a0 : WCHNET_GetMacAddr(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:71 *p = *macaddr; 17a0: 1ffff737 lui a4,0x1ffff D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:65 { 17a4: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:71 *p = *macaddr; 17a6: 7ed70713 addi a4,a4,2029 # 1ffff7ed <_data_lma+0x1fff22d9> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:69 for(i=0;i<6;i++) 17aa: 4699 li a3,6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:71 (discriminator 3) *p = *macaddr; 17ac: 40f70633 sub a2,a4,a5 17b0: 220c lbu a1,0(a2) 17b2: 00f50633 add a2,a0,a5 17b6: 0785 addi a5,a5,1 17b8: a20c sb a1,0(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:69 (discriminator 3) for(i=0;i<6;i++) 17ba: fed799e3 bne a5,a3,17ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:75 } 17be: 8082 ret 000017c0 : WCHNET_TimeIsr(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:86 LocalTime += timperiod; 17c0: 200007b7 lui a5,0x20000 17c4: 0c878793 addi a5,a5,200 # 200000c8 17c8: 4398 lw a4,0(a5) 17ca: 953a add a0,a0,a4 17cc: c388 sw a0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:87 } 17ce: 8082 ret 000017d0 : ETH_RGMIIPinInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:143 { 17d0: d1ffe2ef jal t0,4ee <__riscv_save_10> 17d4: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:146 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 17d6: 4585 li a1,1 17d8: 4505 li a0,1 17da: 3b01 jal 14ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:147 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); 17dc: 4585 li a1,1 17de: 4571 li a0,28 17e0: 3329 jal 14ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:148 GPIOB->CFGHR &= ~(0xff<<16); 17e2: 40011937 lui s2,0x40011 17e6: c0492783 lw a5,-1020(s2) # 40010c04 <__freertos_irq_stack_top+0x1ffe0c04> 17ea: ff010737 lui a4,0xff010 17ee: 177d addi a4,a4,-1 17f0: 8ff9 and a5,a5,a4 17f2: c0f92223 sw a5,-1020(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:149 GPIOB->CFGHR |= (0xbb<<16); 17f6: c0492783 lw a5,-1020(s2) 17fa: 00bb0737 lui a4,0xbb0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:152 GPIO_Output(GPIOA, GPIO_Pin_2); 17fe: 440d li s0,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:149 GPIOB->CFGHR |= (0xbb<<16); 1800: 8fd9 or a5,a5,a4 1802: c0f92223 sw a5,-1020(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:150 GPIOB->CFGLR &= ~(0xff<<4); 1806: c0092783 lw a5,-1024(s2) 180a: 777d lui a4,0xfffff 180c: 073d addi a4,a4,15 180e: 8ff9 and a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:152 GPIO_Output(GPIOA, GPIO_Pin_2); 1810: 44e1 li s1,24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:150 GPIOB->CFGLR &= ~(0xff<<4); 1812: c0f92023 sw a5,-1024(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:152 GPIO_Output(GPIOA, GPIO_Pin_2); 1816: 004c addi a1,sp,4 1818: 4791 li a5,4 181a: 80090513 addi a0,s2,-2048 181e: 827c sh a5,4(sp) 1820: c422 sw s0,8(sp) 1822: c626 sw s1,12(sp) 1824: a0bff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:153 GPIO_Output(GPIOA, GPIO_Pin_3); 1828: 4ba1 li s7,8 182a: 004c addi a1,sp,4 182c: 80090513 addi a0,s2,-2048 1830: 01711223 sh s7,4(sp) 1834: c422 sw s0,8(sp) 1836: c626 sw s1,12(sp) 1838: 9f7ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:154 GPIO_Output(GPIOA, GPIO_Pin_7); 183c: 08000b13 li s6,128 1840: 004c addi a1,sp,4 1842: 80090513 addi a0,s2,-2048 1846: 01611223 sh s6,4(sp) 184a: c422 sw s0,8(sp) 184c: c626 sw s1,12(sp) 184e: 9e1ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:155 GPIO_Output(GPIOC, GPIO_Pin_4); 1852: 47c1 li a5,16 1854: 004c addi a1,sp,4 1856: 40011537 lui a0,0x40011 185a: 827c sh a5,4(sp) 185c: c422 sw s0,8(sp) 185e: c626 sw s1,12(sp) 1860: 9cfff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:156 GPIO_Output(GPIOC, GPIO_Pin_5); 1864: 02000793 li a5,32 1868: 004c addi a1,sp,4 186a: 40011537 lui a0,0x40011 186e: 827c sh a5,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:148 GPIOB->CFGHR &= ~(0xff<<16); 1870: c0090993 addi s3,s2,-1024 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:156 GPIO_Output(GPIOC, GPIO_Pin_5); 1874: c422 sw s0,8(sp) 1876: c626 sw s1,12(sp) 1878: 9b7ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:157 GPIO_Output(GPIOB, GPIO_Pin_0); 187c: 4a85 li s5,1 187e: 004c addi a1,sp,4 1880: 854e mv a0,s3 1882: 01511223 sh s5,4(sp) 1886: c422 sw s0,8(sp) 1888: c626 sw s1,12(sp) 188a: 9a5ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:159 GPIO_Input(GPIOC, GPIO_Pin_0); 188e: 4491 li s1,4 1890: 004c addi a1,sp,4 1892: 40011537 lui a0,0x40011 1896: 01511223 sh s5,4(sp) 189a: c422 sw s0,8(sp) 189c: c626 sw s1,12(sp) 189e: 991ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:160 GPIO_Input(GPIOC, GPIO_Pin_1); 18a2: 4a09 li s4,2 18a4: 004c addi a1,sp,4 18a6: 40011537 lui a0,0x40011 18aa: 01411223 sh s4,4(sp) 18ae: c422 sw s0,8(sp) 18b0: c626 sw s1,12(sp) 18b2: 97dff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:161 GPIO_Input(GPIOC, GPIO_Pin_2); 18b6: 004c addi a1,sp,4 18b8: 40011537 lui a0,0x40011 18bc: 8264 sh s1,4(sp) 18be: c422 sw s0,8(sp) 18c0: c626 sw s1,12(sp) 18c2: 96dff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:162 GPIO_Input(GPIOC, GPIO_Pin_3); 18c6: 004c addi a1,sp,4 18c8: 40011537 lui a0,0x40011 18cc: 01711223 sh s7,4(sp) 18d0: c422 sw s0,8(sp) 18d2: c626 sw s1,12(sp) 18d4: 95bff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:163 GPIO_Input(GPIOA, GPIO_Pin_0); 18d8: 004c addi a1,sp,4 18da: 80090513 addi a0,s2,-2048 18de: 01511223 sh s5,4(sp) 18e2: c422 sw s0,8(sp) 18e4: c626 sw s1,12(sp) 18e6: 949ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:164 GPIO_Input(GPIOA, GPIO_Pin_1); 18ea: 004c addi a1,sp,4 18ec: 80090513 addi a0,s2,-2048 18f0: 01411223 sh s4,4(sp) 18f4: c422 sw s0,8(sp) 18f6: c626 sw s1,12(sp) 18f8: 937ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:166 GPIO_Input(GPIOB, GPIO_Pin_1); /* 125m in */ 18fc: 004c addi a1,sp,4 18fe: 854e mv a0,s3 1900: 01411223 sh s4,4(sp) 1904: c422 sw s0,8(sp) 1906: c626 sw s1,12(sp) 1908: 927ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:167 GPIO_Input(GPIOC, GPIO_Pin_7); /* interrupt pin */ 190c: 004c addi a1,sp,4 190e: 40011537 lui a0,0x40011 1912: 01611223 sh s6,4(sp) 1916: c422 sw s0,8(sp) 1918: c626 sw s1,12(sp) 191a: 915ff0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:168 } 191e: 0141 addi sp,sp,16 1920: c07fe06f j 526 <__riscv_restore_10> 00001924 : ETH_PHYLink(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:242 { 1924: bd9fe2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:248 ETH_WritePHYRegister( gPHYAddress, 0x1F, 0x0a43 ); 1928: 200004b7 lui s1,0x20000 192c: 0cc48413 addi s0,s1,204 # 200000cc 1930: 200a lhu a0,0(s0) 1932: 6605 lui a2,0x1 1934: a4360613 addi a2,a2,-1469 # a43 1938: 45fd li a1,31 193a: dc0ff0ef jal ra,efa D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:251 ETH_ReadPHYRegister( gPHYAddress, 0x1A); 193e: 200a lhu a0,0(s0) 1940: 45e9 li a1,26 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:254 if((ChipId & 0xf0) <= 0x20) 1942: 200009b7 lui s3,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:251 ETH_ReadPHYRegister( gPHYAddress, 0x1A); 1946: d5cff0ef jal ra,ea2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:252 phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A); 194a: 200a lhu a0,0(s0) 194c: 45e9 li a1,26 194e: 0cc48493 addi s1,s1,204 1952: d50ff0ef jal ra,ea2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:254 if((ChipId & 0xf0) <= 0x20) 1956: 0bc9a783 lw a5,188(s3) # 200000bc 195a: 02000713 li a4,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:252 phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A); 195e: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:254 if((ChipId & 0xf0) <= 0x20) 1960: 0f07f793 andi a5,a5,240 1964: 0bc98993 addi s3,s3,188 1968: 4941 li s2,16 196a: 06f77b63 bgeu a4,a5,19e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:264 LastPhyStat = phy_stat & 0x04; 196e: 00447913 andi s2,s0,4 1972: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:266 WCHNET_PhyStatus( phy_stat ); 1976: 8522 mv a0,s0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:264 LastPhyStat = phy_stat & 0x04; 1978: 0d279023 sh s2,192(a5) # 200000c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:266 WCHNET_PhyStatus( phy_stat ); 197c: 192040ef jal ra,5b0e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:268 if( phy_stat & 0x04 ) 1980: 02090d63 beqz s2,19ba D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:271 RGMII_TXC_Delay(0, 4); 1984: 4591 li a1,4 1986: 4501 li a0,0 1988: ef8ff0ef jal ra,1080 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:272 if( phy_stat & 0x08 ) 198c: 00847793 andi a5,s0,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:274 ETH->MACCR |= ETH_Mode_FullDuplex; 1990: 400286b7 lui a3,0x40028 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:272 if( phy_stat & 0x08 ) 1994: c3ad beqz a5,19f6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:274 ETH->MACCR |= ETH_Mode_FullDuplex; 1996: 429c lw a5,0(a3) 1998: 6705 lui a4,0x1 199a: 80070713 addi a4,a4,-2048 # 800 <__stack_size> 199e: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:278 ETH->MACCR &= ~ETH_Mode_FullDuplex; 19a0: c29c sw a5,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:280 if( (phy_stat & 0x30) == 0x00 ) 19a2: 03047413 andi s0,s0,48 19a6: ec31 bnez s0,1a02 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:282 ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M); 19a8: 400286b7 lui a3,0x40028 19ac: 429c lw a5,0(a3) 19ae: 7751 lui a4,0xffff4 19b0: 177d addi a4,a4,-1 19b2: 8ff9 and a5,a5,a4 19b4: c29c sw a5,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:297 ETH_Start( ); 19b6: e7aff0ef jal ra,1030 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:299 phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1D); /* Clear the Interrupt status */ 19ba: 208a lhu a0,0(s1) 19bc: 45f5 li a1,29 19be: ce4ff0ef jal ra,ea2 19c2: a805 j 19f2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:258 Delay_Us(100); 19c4: 06400513 li a0,100 19c8: 501030ef jal ra,56c8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:259 phy_stat = ETH_ReadPHYRegister( gPHYAddress, 0x1A); 19cc: 208a lhu a0,0(s1) 19ce: 45e9 li a1,26 19d0: 197d addi s2,s2,-1 19d2: cd0ff0ef jal ra,ea2 19d6: 0ff97913 andi s2,s2,255 19da: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:260 if(timeout++ == 15) break; 19dc: 00090363 beqz s2,19e2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:256 while(phy_stat == 0) 19e0: d075 beqz s0,19c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:262 if(LastPhyStat == (phy_stat & 0x04)) return; 19e2: 200007b7 lui a5,0x20000 19e6: 0c07d703 lhu a4,192(a5) # 200000c0 19ea: 00447793 andi a5,s0,4 19ee: f8f710e3 bne a4,a5,196e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:300 } 19f2: b3ffe06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:278 ETH->MACCR &= ~ETH_Mode_FullDuplex; 19f6: 429c lw a5,0(a3) 19f8: 777d lui a4,0xfffff 19fa: 7ff70713 addi a4,a4,2047 # fffff7ff <__freertos_irq_stack_top+0xdffcf7ff> 19fe: 8ff9 and a5,a5,a4 1a00: b745 j 19a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:284 else if( (phy_stat & 0x30) == 0x10 ) 1a02: 47c1 li a5,16 1a04: 00f41e63 bne s0,a5,1a20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:286 ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M); 1a08: 400287b7 lui a5,0x40028 1a0c: 4398 lw a4,0(a5) 1a0e: 76d1 lui a3,0xffff4 1a10: 16fd addi a3,a3,-1 1a12: 8f75 and a4,a4,a3 1a14: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:287 ETH->MACCR |= ETH_Speed_100M; 1a16: 4398 lw a4,0(a5) 1a18: 6691 lui a3,0x4 1a1a: 8f55 or a4,a4,a3 1a1c: c398 sw a4,0(a5) 1a1e: bf61 j 19b6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:289 else if( (phy_stat & 0x30) == 0x20 ) 1a20: 02000793 li a5,32 1a24: f8f419e3 bne s0,a5,19b6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:291 ETH->MACCR &= ~(ETH_Speed_100M|ETH_Speed_1000M); 1a28: 400287b7 lui a5,0x40028 1a2c: 4398 lw a4,0(a5) 1a2e: 76d1 lui a3,0xffff4 1a30: 16fd addi a3,a3,-1 1a32: 8f75 and a4,a4,a3 1a34: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:292 ETH->MACCR |= ETH_Speed_1000M; 1a36: 4398 lw a4,0(a5) 1a38: 66a1 lui a3,0x8 1a3a: 8f55 or a4,a4,a3 1a3c: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:294 if((ChipId & 0xf0) >= 0x60) 1a3e: 0009a783 lw a5,0(s3) 1a42: 05f00713 li a4,95 1a46: 0f07f793 andi a5,a5,240 1a4a: f6f776e3 bgeu a4,a5,19b6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:295 RGMII_TXC_Delay(1, 2); 1a4e: 4589 li a1,2 1a50: 4505 li a0,1 1a52: e2eff0ef jal ra,1080 1a56: b785 j 19b6 00001a58 : WCHNET_QueryPhySta(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:100 if(QUERY_STAT_FLAG){ /* Query the PHY link status every 1s */ 1a58: 20000737 lui a4,0x20000 1a5c: 0c870713 addi a4,a4,200 # 200000c8 1a60: 4314 lw a3,0(a4) 1a62: 3e800613 li a2,1000 1a66: 200007b7 lui a5,0x20000 1a6a: 02c6d6b3 divu a3,a3,a2 1a6e: 0c478793 addi a5,a5,196 # 200000c4 1a72: 438c lw a1,0(a5) 1a74: 04b68163 beq a3,a1,1ab6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:98 { 1a78: a9ffe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:101 LastQueryPhyTime = LocalTime / 1000; 1a7c: 4318 lw a4,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:102 ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 ); 1a7e: 45fd li a1,31 1a80: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:101 LastQueryPhyTime = LocalTime / 1000; 1a82: 02c75733 divu a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:102 ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 ); 1a86: 6605 lui a2,0x1 1a88: a4360613 addi a2,a2,-1469 # a43 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:101 LastQueryPhyTime = LocalTime / 1000; 1a8c: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:102 ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 ); 1a8e: c6cff0ef jal ra,efa D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:105 ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A); 1a92: 45e9 li a1,26 1a94: 4505 li a0,1 1a96: c0cff0ef jal ra,ea2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:106 phy_stat = ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A) & 0x04; 1a9a: 45e9 li a1,26 1a9c: 4505 li a0,1 1a9e: c04ff0ef jal ra,ea2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:107 if((phy_stat != LastPhyStat) && (phy_stat != 0xffff)){ 1aa2: 200007b7 lui a5,0x20000 1aa6: 0c07d783 lhu a5,192(a5) # 200000c0 1aaa: 8911 andi a0,a0,4 1aac: 00a78363 beq a5,a0,1ab2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:108 ETH_PHYLink(); 1ab0: 3d95 jal 1924 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:111 } 1ab2: a89fe06f j 53a <__riscv_restore_0> 1ab6: 8082 ret 00001ab8 : WCHNET_MainTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:124 { 1ab8: a5ffe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:125 WCHNET_NetInput( ); /* Ethernet data input */ 1abc: 03e040ef jal ra,5afa D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:126 WCHNET_PeriodicHandle( ); /* Protocol stack time-related task processing */ 1ac0: 679030ef jal ra,5938 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:129 WCHNET_QueryPhySta(); /* Query external PHY status */ 1ac4: 3f51 jal 1a58 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:131 } 1ac6: a75fe06f j 53a <__riscv_restore_0> 00001aca : ETH_RegInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:313 { 1aca: a4dfe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:315 ETH->MACMIIAR = (uint32_t)ETH_MACMIIAR_CR_Div42; 1ace: 400286b7 lui a3,0x40028 1ad2: 0006a823 sw zero,16(a3) # 40028010 <__freertos_irq_stack_top+0x1fff8010> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:313 { 1ad6: 87aa mv a5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:318 ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog | 1ad8: 4790 lw a2,8(a5) 1ada: 43d8 lw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:313 { 1adc: 852e mv a0,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:351 ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset); 1ade: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:318 ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog | 1ae0: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:319 ETH_InitStruct->ETH_Jabber | 1ae2: 47d0 lw a2,12(a5) 1ae4: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:320 ETH_InitStruct->ETH_InterFrameGap | 1ae6: 53d0 lw a2,36(a5) 1ae8: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:321 ETH_InitStruct->ETH_ChecksumOffload | 1aea: 57d0 lw a2,44(a5) 1aec: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:322 ETH_InitStruct->ETH_AutomaticPadCRCStrip | 1aee: 4fd0 lw a2,28(a5) 1af0: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:318 ETH->MACCR = (uint32_t)(ETH_InitStruct->ETH_Watchdog | 1af2: c298 sw a4,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:325 ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll | 1af4: 5fd0 lw a2,60(a5) 1af6: 5f98 lw a4,56(a5) 1af8: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:326 ETH_InitStruct->ETH_SourceAddrFilter | 1afa: 43b0 lw a2,64(a5) 1afc: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:327 ETH_InitStruct->ETH_PassControlFrames | 1afe: 43f0 lw a2,68(a5) 1b00: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:328 ETH_InitStruct->ETH_BroadcastFramesReception | 1b02: 47b0 lw a2,72(a5) 1b04: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:329 ETH_InitStruct->ETH_DestinationAddrFilter | 1b06: 47f0 lw a2,76(a5) 1b08: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:330 ETH_InitStruct->ETH_PromiscuousMode | 1b0a: 4bb0 lw a2,80(a5) 1b0c: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:331 ETH_InitStruct->ETH_MulticastFramesFilter | 1b0e: 4bf0 lw a2,84(a5) 1b10: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:325 ETH->MACFFR = (uint32_t)(ETH_InitStruct->ETH_ReceiveAll | 1b12: c2d8 sw a4,4(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:334 ETH->MACHTHR = (uint32_t)ETH_InitStruct->ETH_HashTableHigh; 1b14: 4fb8 lw a4,88(a5) 1b16: c698 sw a4,8(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:335 ETH->MACHTLR = (uint32_t)ETH_InitStruct->ETH_HashTableLow; 1b18: 4ff8 lw a4,92(a5) 1b1a: c6d8 sw a4,12(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:339 ETH_InitStruct->ETH_ReceiveFlowControl | 1b1c: 5bb0 lw a2,112(a5) 1b1e: 57f8 lw a4,108(a5) 1b20: 8f51 or a4,a4,a2 1b22: 5bf0 lw a2,116(a5) 1b24: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:337 ETH->MACFCR = (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) | 1b26: 53b0 lw a2,96(a5) 1b28: 0642 slli a2,a2,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:339 ETH_InitStruct->ETH_ReceiveFlowControl | 1b2a: 8f51 or a4,a4,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:337 ETH->MACFCR = (uint32_t)((ETH_InitStruct->ETH_PauseTime << 16) | 1b2c: ce98 sw a4,24(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:342 ETH->MACVLANTR = (uint32_t)(ETH_InitStruct->ETH_VLANTagComparison | 1b2e: 5ff0 lw a2,124(a5) 1b30: 5fb8 lw a4,120(a5) 1b32: 8f51 or a4,a4,a2 1b34: ced8 sw a4,28(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:345 ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 1b36: 08c7a683 lw a3,140(a5) 1b3a: 0807a703 lw a4,128(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:351 ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset); 1b3e: 6621 lui a2,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:345 ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 1b40: 8f55 or a4,a4,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:346 ETH_InitStruct->ETH_TransmitStoreForward | 1b42: 0947a683 lw a3,148(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:347 ETH_InitStruct->ETH_ForwardErrorFrames | 1b46: 0987a783 lw a5,152(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:346 ETH_InitStruct->ETH_TransmitStoreForward | 1b4a: 8f55 or a4,a4,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:347 ETH_InitStruct->ETH_ForwardErrorFrames | 1b4c: 8f5d or a4,a4,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:345 ETH->DMAOMR = (uint32_t)(ETH_InitStruct->ETH_DropTCPIPChecksumErrorFrame | 1b4e: 400297b7 lui a5,0x40029 1b52: cf98 sw a4,24(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:351 ETH_WritePHYRegister(PHYAddress, PHY_BCR, PHY_Reset); 1b54: ba6ff0ef jal ra,efa D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:353 } 1b58: 4505 li a0,1 1b5a: 9e1fe06f j 53a <__riscv_restore_0> 00001b5e : ETH_Configuration(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:363 { 1b5e: 99ffe2ef jal t0,4fc <__riscv_save_4> 1b62: 7131 addi sp,sp,-192 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:368 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | \ 1b64: 4585 li a1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:363 { 1b66: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:368 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | \ 1b68: 6571 lui a0,0x1c 1b6a: 963ff0ef jal ra,14cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:375 EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL; 1b6e: 40024737 lui a4,0x40024 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:372 gPHYAddress = PHY_ADDRESS; 1b72: 20000937 lui s2,0x20000 1b76: 4785 li a5,1 1b78: 0cf91623 sh a5,204(s2) # 200000cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:375 EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL; 1b7c: 80072783 lw a5,-2048(a4) # 40023800 <__freertos_irq_stack_top+0x1fff3800> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:376 RCC_ETH1GCLKConfig(RCC_ETH1GCLKSource_PB1_IN); 1b80: 4509 li a0,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:385 ETH_SoftwareReset(); 1b82: 6409 lui s0,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:375 EXTEN->EXTEN_CTR |= EXTEN_ETH_RGMII_SEL; 1b84: 0087e793 ori a5,a5,8 1b88: 80f72023 sw a5,-2048(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:376 RCC_ETH1GCLKConfig(RCC_ETH1GCLKSource_PB1_IN); 1b8c: 9b9ff0ef jal ra,1544 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:377 RCC_ETH1G_125Mcmd(ENABLE); 1b90: 4505 li a0,1 1b92: 9cdff0ef jal ra,155e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:385 ETH_SoftwareReset(); 1b96: 71040413 addi s0,s0,1808 # 2710 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:379 ETH_RGMIIPinInit(); 1b9a: 391d jal 17d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:382 ETH_DeInit(); 1b9c: 0cc90913 addi s2,s2,204 1ba0: aeeff0ef jal ra,e8e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:391 }while(ETH->DMABMR & ETH_DMABMR_SR); 1ba4: 400299b7 lui s3,0x40029 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:385 ETH_SoftwareReset(); 1ba8: c62ff0ef jal ra,100a D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:389 Delay_Us(10); 1bac: 147d addi s0,s0,-1 1bae: 0442 slli s0,s0,0x10 1bb0: 4529 li a0,10 1bb2: 8041 srli s0,s0,0x10 1bb4: 315030ef jal ra,56c8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:390 if( !--timeout ) break; 1bb8: c409 beqz s0,1bc2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:391 }while(ETH->DMABMR & ETH_DMABMR_SR); 1bba: 0009a783 lw a5,0(s3) # 40029000 <__freertos_irq_stack_top+0x1fff9000> 1bbe: 8b85 andi a5,a5,1 1bc0: f7f5 bnez a5,1bac D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:438 ETH_RegInit( Ð_InitStructure, gPHYAddress ); 1bc2: 00095583 lhu a1,0(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:412 ETH_InitStructure.ETH_PassControlFrames = ETH_PassControlFrames_BlockAll; 1bc6: 04000793 li a5,64 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:434 ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable; 1bca: 00200437 lui s0,0x200 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:435 ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Enable; 1bce: 08000713 li a4,128 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:438 ETH_RegInit( Ð_InitStructure, gPHYAddress ); 1bd2: 0048 addi a0,sp,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:412 ETH_InitStructure.ETH_PassControlFrames = ETH_PassControlFrames_BlockAll; 1bd4: c2be sw a5,68(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:434 ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable; 1bd6: c922 sw s0,144(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:435 ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Enable; 1bd8: cd3a sw a4,152(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:436 ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Enable; 1bda: cf3e sw a5,156(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:395 ETH_InitStructure.ETH_Watchdog = ETH_Watchdog_Enable; 1bdc: c402 sw zero,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:396 ETH_InitStructure.ETH_Jabber = ETH_Jabber_Enable; 1bde: c602 sw zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:397 ETH_InitStructure.ETH_InterFrameGap = ETH_InterFrameGap_96Bit; 1be0: c802 sw zero,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:401 ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Disable; 1be2: d402 sw zero,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:403 ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable; 1be4: d802 sw zero,48(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:404 ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable; 1be6: d002 sw zero,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:407 ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable; 1be8: de02 sw zero,60(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:408 ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable; 1bea: c882 sw zero,80(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:409 ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable; 1bec: c482 sw zero,72(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:410 ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect; 1bee: ca82 sw zero,84(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:411 ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect; 1bf0: cc82 sw zero,88(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:413 ETH_InitStructure.ETH_DestinationAddrFilter = ETH_DestinationAddrFilter_Normal; 1bf2: c682 sw zero,76(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:414 ETH_InitStructure.ETH_SourceAddrFilter = ETH_SourceAddrFilter_Disable; 1bf4: c082 sw zero,64(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:416 ETH_InitStructure.ETH_HashTableHigh = 0x0; 1bf6: ce82 sw zero,92(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:417 ETH_InitStructure.ETH_HashTableLow = 0x0; 1bf8: d082 sw zero,96(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:420 ETH_InitStructure.ETH_VLANTagComparison = ETH_VLANTagComparison_16Bit; 1bfa: de82 sw zero,124(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:421 ETH_InitStructure.ETH_VLANTagIdentifier = 0x0; 1bfc: c102 sw zero,128(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:424 ETH_InitStructure.ETH_PauseTime = 0x0; 1bfe: d282 sw zero,100(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:425 ETH_InitStructure.ETH_UnicastPauseFrameDetect = ETH_UnicastPauseFrameDetect_Disable; 1c00: d882 sw zero,112(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:426 ETH_InitStructure.ETH_ReceiveFlowControl = ETH_ReceiveFlowControl_Disable; 1c02: da82 sw zero,116(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:427 ETH_InitStructure.ETH_TransmitFlowControl = ETH_TransmitFlowControl_Disable; 1c04: dc82 sw zero,120(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:433 ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable; 1c06: c302 sw zero,132(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:438 ETH_RegInit( Ð_InitStructure, gPHYAddress ); 1c08: 35c9 jal 1aca D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:441 ETH->MACA0HR = (uint32_t)((macAddr[5]<<8) | macAddr[4]); 1c0a: 30dc lbu a5,5(s1) 1c0c: 20d8 lbu a4,4(s1) 1c0e: 400286b7 lui a3,0x40028 1c12: 07a2 slli a5,a5,0x8 1c14: 8fd9 or a5,a5,a4 1c16: c2bc sw a5,64(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:442 ETH->MACA0LR = (uint32_t)(macAddr[0] | (macAddr[1]<<8) | (macAddr[2]<<16) | (macAddr[3]<<24)); 1c18: 3098 lbu a4,1(s1) 1c1a: 209c lbu a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:450 ETH_DMAITConfig(ETH_DMA_IT_NIS |\ 1c1c: 6561 lui a0,0x18 1c1e: 0722 slli a4,a4,0x8 1c20: 8f5d or a4,a4,a5 1c22: 20bc lbu a5,2(s1) 1c24: 4585 li a1,1 1c26: 0c150513 addi a0,a0,193 # 180c1 <_data_lma+0xabad> 1c2a: 07c2 slli a5,a5,0x10 1c2c: 8f5d or a4,a4,a5 1c2e: 30bc lbu a5,3(s1) 1c30: 07e2 slli a5,a5,0x18 1c32: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:442 ETH->MACA0LR = (uint32_t)(macAddr[0] | (macAddr[1]<<8) | (macAddr[2]<<16) | (macAddr[3]<<24)); 1c34: c2fc sw a5,68(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:448 ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM; 1c36: 000207b7 lui a5,0x20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:445 ETH->MMCTIMR = ETH_MMCTIMR_TGFM; 1c3a: 1086a823 sw s0,272(a3) # 40028110 <__freertos_irq_stack_top+0x1fff8110> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:448 ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM; 1c3e: 02078793 addi a5,a5,32 # 20020 <_data_lma+0x12b0c> 1c42: 10f6a623 sw a5,268(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:450 ETH_DMAITConfig(ETH_DMA_IT_NIS |\ 1c46: c1cff0ef jal ra,1062 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:463 ETH_WritePHYRegister( PHY_ADDRESS, 0x1F, 0x0a43 ); 1c4a: 6605 lui a2,0x1 1c4c: a4360613 addi a2,a2,-1469 # a43 1c50: 45fd li a1,31 1c52: 4505 li a0,1 1c54: aa6ff0ef jal ra,efa D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:466 ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A); 1c58: 45e9 li a1,26 1c5a: 4505 li a0,1 1c5c: a46ff0ef jal ra,ea2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:467 LastPhyStat = ETH_ReadPHYRegister( PHY_ADDRESS, 0x1A) & 0x04; 1c60: 45e9 li a1,26 1c62: 4505 li a0,1 1c64: a3eff0ef jal ra,ea2 1c68: 8911 andi a0,a0,4 1c6a: 200007b7 lui a5,0x20000 1c6e: 0ca79023 sh a0,192(a5) # 200000c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:469 } 1c72: 6129 addi sp,sp,192 1c74: 8bdfe06f j 530 <__riscv_restore_4> 00001c78 : ETH_Stop(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:524 * @brief Disables ENET MAC and DMA reception/transmission. * * @return none */ void ETH_Stop(void) { 1c78: 89ffe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:525 ETH_MACTransmissionCmd(DISABLE); 1c7c: 4501 li a0,0 1c7e: aceff0ef jal ra,f4c D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:526 ETH_FlushTransmitFIFO(); 1c82: b9eff0ef jal ra,1020 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:527 ETH_MACReceptionCmd(DISABLE); 1c86: 4501 li a0,0 1c88: ad8ff0ef jal ra,f60 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:528 } 1c8c: 8affe06f j 53a <__riscv_restore_0> 00001c90 : ReInitMACReg(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:540 * @param none. * * @return none. */ void ReInitMACReg(void) { 1c90: 85ffe2ef jal t0,4ee <__riscv_save_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 1c94: 40028437 lui s0,0x40028 1c98: 400294b7 lui s1,0x40029 1c9c: 007006b7 lui a3,0x700 1ca0: 00600737 lui a4,0x600 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:546 (discriminator 1) 1ca4: 48dc lw a5,20(s1) 1ca6: 8ff5 and a5,a5,a3 1ca8: fee79ee3 bne a5,a4,1ca4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:548 ETH_Stop(); 1cac: 37f1 jal 1c78 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:551 /* Record the register value */ macmiiar = ETH->MACMIIAR; 1cae: 01042b83 lw s7,16(s0) # 40028010 <__freertos_irq_stack_top+0x1fff8010> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:552 maccr = ETH->MACCR; 1cb2: 00042b03 lw s6,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:553 macffr = ETH->MACFFR; 1cb6: 00442a83 lw s5,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:554 machthr = ETH->MACHTHR; 1cba: 00842a03 lw s4,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:555 machtlr = ETH->MACHTLR; 1cbe: 00c42983 lw s3,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:556 macfcr = ETH->MACFCR; 1cc2: 01842903 lw s2,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:557 macvlantr = ETH->MACVLANTR; 1cc6: 01c42c03 lw s8,28(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:564 /* Reset ETHERNET on AHB Bus */ ETH_DeInit(); /* Software reset */ ETH_SoftwareReset(); 1cca: 6409 lui s0,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:558 dmaomr = ETH->DMAOMR; 1ccc: 4c84 lw s1,24(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:564 ETH_SoftwareReset(); 1cce: 71040413 addi s0,s0,1808 # 2710 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:561 ETH_DeInit(); 1cd2: 9bcff0ef jal ra,e8e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:570 /* Wait for software reset */ do{ Delay_Us(10); if( !--timeout ) break; }while(ETH->DMABMR & ETH_DMABMR_SR); 1cd6: 40029cb7 lui s9,0x40029 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:564 ETH_SoftwareReset(); 1cda: b30ff0ef jal ra,100a D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:568 Delay_Us(10); 1cde: 147d addi s0,s0,-1 1ce0: 0442 slli s0,s0,0x10 1ce2: 4529 li a0,10 1ce4: 8041 srli s0,s0,0x10 1ce6: 1e3030ef jal ra,56c8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:569 if( !--timeout ) break; 1cea: c409 beqz s0,1cf4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:570 }while(ETH->DMABMR & ETH_DMABMR_SR); 1cec: 000ca783 lw a5,0(s9) # 40029000 <__freertos_irq_stack_top+0x1fff9000> 1cf0: 8b85 andi a5,a5,1 1cf2: f7f5 bnez a5,1cde D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:573 /* Configure MAC address */ ETH->MACA0HR = (uint32_t)((MACAddr[5]<<8) | MACAddr[4]); 1cf4: 200006b7 lui a3,0x20000 1cf8: 0a468713 addi a4,a3,164 # 200000a4 1cfc: 335c lbu a5,5(a4) 1cfe: 2350 lbu a2,4(a4) 1d00: 40028437 lui s0,0x40028 1d04: 07a2 slli a5,a5,0x8 1d06: 8fd1 or a5,a5,a2 1d08: c03c sw a5,64(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:574 ETH->MACA0LR = (uint32_t)(MACAddr[0] | (MACAddr[1]<<8) | (MACAddr[2]<<16) | (MACAddr[3]<<24)); 1d0a: 0a56c703 lbu a4,165(a3) 1d0e: 0a46c783 lbu a5,164(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../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 |\ 1d12: 6561 lui a0,0x18 1d14: 0722 slli a4,a4,0x8 1d16: 8f5d or a4,a4,a5 1d18: 0a66c783 lbu a5,166(a3) 1d1c: 4585 li a1,1 1d1e: 0c150513 addi a0,a0,193 # 180c1 <_data_lma+0xabad> 1d22: 07c2 slli a5,a5,0x10 1d24: 8f5d or a4,a4,a5 1d26: 0a76c783 lbu a5,167(a3) 1d2a: 07e2 slli a5,a5,0x18 1d2c: 8fd9 or a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:574 ETH->MACA0LR = (uint32_t)(MACAddr[0] | (MACAddr[1]<<8) | (MACAddr[2]<<16) | (MACAddr[3]<<24)); 1d2e: c07c sw a5,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:577 ETH->MMCTIMR = ETH_MMCTIMR_TGFM; 1d30: 002007b7 lui a5,0x200 1d34: 10f42823 sw a5,272(s0) # 40028110 <__freertos_irq_stack_top+0x1fff8110> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:580 ETH->MMCRIMR = ETH_MMCRIMR_RGUFM | ETH_MMCRIMR_RFCEM; 1d38: 000207b7 lui a5,0x20 1d3c: 02078793 addi a5,a5,32 # 20020 <_data_lma+0x12b0c> 1d40: 10f42623 sw a5,268(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:582 ETH_DMAITConfig(ETH_DMA_IT_NIS |\ 1d44: b1eff0ef jal ra,1062 D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 1d48: 20007537 lui a0,0x20007 1d4c: 200095b7 lui a1,0x20009 1d50: 95850c93 addi s9,a0,-1704 # 20006958 1d54: 4609 li a2,2 1d56: 32458593 addi a1,a1,804 # 20009324 1d5a: 95850513 addi a0,a0,-1704 1d5e: a16ff0ef jal ra,f74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:590 ETH_DMARxDescChainInit(DMARxDscrTab, MACRxBuf, ETH_RXBUFNB); 1d62: 20007537 lui a0,0x20007 1d66: 200075b7 lui a1,0x20007 1d6a: 8e850d13 addi s10,a0,-1816 # 200068e8 1d6e: 461d li a2,7 1d70: 97858593 addi a1,a1,-1672 # 20006978 1d74: 8e850513 addi a0,a0,-1816 1d78: a42ff0ef jal ra,fba D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:591 pDMARxSet = DMARxDscrTab; 1d7c: 200007b7 lui a5,0x20000 1d80: 0da7a823 sw s10,208(a5) # 200000d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:592 pDMATxSet = DMATxDscrTab; 1d84: 200007b7 lui a5,0x20000 1d88: 0d97aa23 sw s9,212(a5) # 200000d4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:594 ETH->MACMIIAR = macmiiar; 1d8c: 01742823 sw s7,16(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:595 ETH->MACCR = maccr; 1d90: 01642023 sw s6,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:596 ETH->MACFFR = macffr; 1d94: 01542223 sw s5,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:597 ETH->MACHTHR = machthr; 1d98: 01442423 sw s4,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:598 ETH->MACHTLR = machtlr; 1d9c: 01342623 sw s3,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:599 ETH->MACFCR = macfcr; 1da0: 01242c23 sw s2,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:600 ETH->MACVLANTR = macvlantr; 1da4: 01842e23 sw s8,28(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:601 ETH->DMAOMR = dmaomr; 1da8: 400297b7 lui a5,0x40029 1dac: cf84 sw s1,24(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:603 ETH_Start( ); 1dae: a82ff0ef jal ra,1030 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:604 } 1db2: f74fe06f j 526 <__riscv_restore_10> 00001db6 : WCHNET_RecProcess(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:617 * * @return none. */ void WCHNET_RecProcess(void) { if(((ChipId & 0xf0) <= 0x20) && \ 1db6: 200007b7 lui a5,0x20000 1dba: 0bc7a783 lw a5,188(a5) # 200000bc 1dbe: 02000713 li a4,32 1dc2: 0f07f793 andi a5,a5,240 1dc6: 02f76263 bltu a4,a5,1dea D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:616 (discriminator 1) { 1dca: f4cfe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:618 (discriminator 1) ((ETH->DMAMFBOCR & 0x1FFE0000) != 0)) 1dce: 40029437 lui s0,0x40029 1dd2: 501c lw a5,32(s0) 1dd4: 1ffe0737 lui a4,0x1ffe0 1dd8: 8ff9 and a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:617 (discriminator 1) if(((ChipId & 0xf0) <= 0x20) && \ 1dda: c791 beqz a5,1de6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:620 { ReInitMACReg(); 1ddc: 3d55 jal 1c90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:622 /* Resume DMA transport */ ETH->DMARPDR = 0; 1dde: 00042423 sw zero,8(s0) # 40029008 <__freertos_irq_stack_top+0x1fff9008> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:623 ETH->DMATPDR = 0; 1de2: 00042223 sw zero,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:625 } } 1de6: f54fe06f j 53a <__riscv_restore_0> 1dea: 8082 ret 00001dec : WCHNET_ETHIsr(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:635 * @brief Ethernet Interrupt Service Routine * * @return none */ void WCHNET_ETHIsr(void) { 1dec: f2afe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:638 uint32_t int_sta; int_sta = ETH->DMASR; 1df0: 400297b7 lui a5,0x40029 1df4: 4bc0 lw s0,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:639 if (int_sta & ETH_DMA_IT_AIS) 1df6: 01041793 slli a5,s0,0x10 1dfa: 0007dd63 bgez a5,1e14 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:641 { if (int_sta & ETH_DMA_IT_RBU) 1dfe: 08047793 andi a5,s0,128 1e02: c791 beqz a5,1e0e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:643 { WCHNET_RecProcess(); 1e04: 3f4d jal 1db6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:644 ETH_DMAClearITPendingBit(ETH_DMA_IT_RBU); 1e06: 08000513 li a0,128 1e0a: a0eff0ef jal ra,1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:646 } ETH_DMAClearITPendingBit(ETH_DMA_IT_AIS); 1e0e: 6521 lui a0,0x8 1e10: a08ff0ef jal ra,1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:649 } if( int_sta & ETH_DMA_IT_NIS ) 1e14: 00f41793 slli a5,s0,0xf 1e18: 0207d163 bgez a5,1e3a D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:651 { if( int_sta & ETH_DMA_IT_R ) 1e1c: 04047793 andi a5,s0,64 1e20: c789 beqz a5,1e2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 1e22: 04000513 li a0,64 1e26: 9f2ff0ef jal ra,1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:657 } if( int_sta & ETH_DMA_IT_T ) 1e2a: 8805 andi s0,s0,1 1e2c: c401 beqz s0,1e34 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:659 { ETH_DMAClearITPendingBit(ETH_DMA_IT_T); 1e2e: 4505 li a0,1 1e30: 9e8ff0ef jal ra,1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:661 } ETH_DMAClearITPendingBit(ETH_DMA_IT_NIS); 1e34: 6541 lui a0,0x10 1e36: 9e2ff0ef jal ra,1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:663 } } 1e3a: f00fe06f j 53a <__riscv_restore_0> 00001e3e : ETH_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:673 * @brief Ethernet initialization. * * @return none */ void ETH_Init( uint8_t *macAddr ) { 1e3e: ed8fe2ef jal t0,516 <__riscv_save_0> 1e42: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:674 ChipId = DBGMCU_GetCHIPID(); 1e44: f97fe0ef jal ra,dda 1e48: 200007b7 lui a5,0x20000 1e4c: 0aa7ae23 sw a0,188(a5) # 200000bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:675 ETH_Configuration( macAddr ); 1e50: 8522 mv a0,s0 1e52: 3331 jal 1b5e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:676 ETH_DMATxDescChainInit(DMATxDscrTab, MACTxBuf, ETH_TXBUFNB); 1e54: 20007537 lui a0,0x20007 1e58: 200095b7 lui a1,0x20009 1e5c: 95850413 addi s0,a0,-1704 # 20006958 1e60: 4609 li a2,2 1e62: 32458593 addi a1,a1,804 # 20009324 1e66: 95850513 addi a0,a0,-1704 1e6a: 90aff0ef jal ra,f74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:677 ETH_DMARxDescChainInit(DMARxDscrTab, MACRxBuf, ETH_RXBUFNB); 1e6e: 20007537 lui a0,0x20007 1e72: 200075b7 lui a1,0x20007 1e76: 8e850493 addi s1,a0,-1816 # 200068e8 1e7a: 461d li a2,7 1e7c: 97858593 addi a1,a1,-1672 # 20006978 1e80: 8e850513 addi a0,a0,-1816 1e84: 936ff0ef jal ra,fba D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:678 pDMARxSet = DMARxDscrTab; 1e88: 200007b7 lui a5,0x20000 1e8c: 0c97a823 sw s1,208(a5) # 200000d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:679 pDMATxSet = DMATxDscrTab; 1e90: 200007b7 lui a5,0x20000 1e94: 0c87aa23 sw s0,212(a5) # 200000d4 NVIC_EnableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:170 NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 1e98: 6709 lui a4,0x2 1e9a: e000e7b7 lui a5,0xe000e 1e9e: 10e7a423 sw a4,264(a5) # e000e108 <__freertos_irq_stack_top+0xbffde108> NVIC_SetPriority(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:286 NVIC->IPRIOR[(uint32_t)(IRQn)] = priority; 1ea2: 440786a3 sb zero,1101(a5) ETH_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:682 NVIC_EnableIRQ(ETH_IRQn); NVIC_SetPriority(ETH_IRQn, 0); } 1ea6: e94fe06f j 53a <__riscv_restore_0> 00001eaa : ETH_LibInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../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 ) { 1eaa: e6cfe2ef jal t0,516 <__riscv_save_0> 1eae: 7139 addi sp,sp,-64 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:697 uint8_t s; struct _WCH_CFG cfg; memset(&cfg,0,sizeof(cfg)); cfg.TxBufSize = ETH_TX_BUF_SZE; 1eb0: 5f400793 li a5,1524 1eb4: ca3e sw a5,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:698 cfg.TCPMss = WCHNET_TCP_MSS; 1eb6: 5b400793 li a5,1460 1eba: cc3e sw a5,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:699 cfg.HeapSize = WCHNET_MEM_HEAP_SIZE; 1ebc: 6789 lui a5,0x2 1ebe: e6c78793 addi a5,a5,-404 # 1e6c 1ec2: ce3e sw a5,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:700 cfg.ARPTableNum = WCHNET_NUM_ARP_TABLE; 1ec4: 03200793 li a5,50 1ec8: d03e sw a5,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:701 cfg.MiscConfig0 = WCHNET_MISC_CONFIG0; 1eca: 10300793 li a5,259 1ece: d23e sw a5,36(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:702 cfg.MiscConfig1 = WCHNET_MISC_CONFIG1; 1ed0: 405527b7 lui a5,0x40552 1ed4: 0789 addi a5,a5,2 1ed6: d43e sw a5,40(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:703 cfg.net_send = ETH_TxPktChainMode; 1ed8: 000017b7 lui a5,0x1 1edc: 75c78793 addi a5,a5,1884 # 175c 1ee0: da3e sw a5,52(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:704 cfg.CheckValid = WCHNET_CFG_VALID; 1ee2: 123457b7 lui a5,0x12345 1ee6: 67878793 addi a5,a5,1656 # 12345678 <_data_lma+0x12338164> D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:692 { 1eea: 892a mv s2,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:705 s = WCHNET_ConfigLIB(&cfg); 1eec: 0848 addi a0,sp,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:692 { 1eee: c62e sw a1,12(sp) 1ef0: c432 sw a2,8(sp) 1ef2: 84b6 mv s1,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:696 memset(&cfg,0,sizeof(cfg)); 1ef4: d602 sw zero,44(sp) 1ef6: d802 sw zero,48(sp) 1ef8: dc02 sw zero,56(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:704 cfg.CheckValid = WCHNET_CFG_VALID; 1efa: de3e sw a5,60(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:705 s = WCHNET_ConfigLIB(&cfg); 1efc: 2b0040ef jal ra,61ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:706 if( s ){ 1f00: 842a mv s0,a0 1f02: e911 bnez a0,1f16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:709 return (s); } s = WCHNET_Init(ip,gwip,mask,macaddr); 1f04: 4622 lw a2,8(sp) 1f06: 45b2 lw a1,12(sp) 1f08: 86a6 mv a3,s1 1f0a: 854a mv a0,s2 1f0c: 1de040ef jal ra,60ea 1f10: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:710 ETH_Init( macaddr ); 1f12: 8526 mv a0,s1 1f14: 372d jal 1e3e D:\zj\ch32v307_camera\prj\TCPClient\obj/../NetLib/eth_driver_RGMII.c:712 return (s); } 1f16: 8522 mv a0,s0 1f18: 6121 addi sp,sp,64 1f1a: e20fe06f j 53a <__riscv_restore_0> 00001f1e : find_ctx_by_wchnet_id(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:125 } static SocketCtx_t *find_ctx_by_wchnet_id(uint8_t sockid) { for (int i = 0; i < MAX_SOCKETS; i++) { if (g_sock_ctx[i].in_use && g_sock_ctx[i].wchnet_sock_id == sockid) 1f1e: 2000f737 lui a4,0x2000f 1f22: 8c474783 lbu a5,-1852(a4) # 2000e8c4 1f26: 8c470713 addi a4,a4,-1852 1f2a: c781 beqz a5,1f32 1f2c: 331c lbu a5,1(a4) 1f2e: 02a78563 beq a5,a0,1f58 1f32: 6685 lui a3,0x1 1f34: 96ba add a3,a3,a4 1f36: b7c6c603 lbu a2,-1156(a3) # b7c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:128 return &g_sock_ctx[i]; } return NULL; 1f3a: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:125 if (g_sock_ctx[i].in_use && g_sock_ctx[i].wchnet_sock_id == sockid) 1f3c: ce01 beqz a2,1f54 1f3e: b7d6c683 lbu a3,-1155(a3) 1f42: 00a69963 bne a3,a0,1f54 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:124 for (int i = 0; i < MAX_SOCKETS; i++) { 1f46: 4785 li a5,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:126 return &g_sock_ctx[i]; 1f48: 6505 lui a0,0x1 1f4a: b7c50513 addi a0,a0,-1156 # b7c 1f4e: 02a787b3 mul a5,a5,a0 1f52: 97ba add a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:129 } 1f54: 853e mv a0,a5 1f56: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:124 for (int i = 0; i < MAX_SOCKETS; i++) { 1f58: 4781 li a5,0 1f5a: b7fd j 1f48 00001f5c : free_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:115 if (!ctx) return; 1f5c: cd05 beqz a0,1f94 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:114 { 1f5e: db8fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:116 if (ctx->rx_sem) { vSemaphoreDelete(ctx->rx_sem); ctx->rx_sem = NULL; } 1f62: 6485 lui s1,0x1 1f64: 94aa add s1,s1,a0 1f66: 842a mv s0,a0 1f68: b744a503 lw a0,-1164(s1) # b74 1f6c: c509 beqz a0,1f76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:116 (discriminator 1) 1f6e: 59a020ef jal ra,4508 1f72: b604aa23 sw zero,-1164(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:117 if (ctx->connect_sem) { vSemaphoreDelete(ctx->connect_sem); ctx->connect_sem = NULL; } 1f76: 6485 lui s1,0x1 1f78: 94a2 add s1,s1,s0 1f7a: b784a503 lw a0,-1160(s1) # b78 1f7e: c509 beqz a0,1f88 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:117 (discriminator 1) 1f80: 588020ef jal ra,4508 1f84: b604ac23 sw zero,-1160(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:118 ctx->in_use = 0; 1f88: 00040023 sb zero,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:119 ctx->connected = 0; 1f8c: 00040123 sb zero,2(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:120 } 1f90: daafe06f j 53a <__riscv_restore_0> 1f94: 8082 ret 00001f96 : qdx_port_sock_recv_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:163 /* ============================================================ * Public: called from WCHNET_HandleSockInt (task context) * ============================================================ */ void qdx_port_sock_recv_notify(uint8_t sockid) { 1f96: d66fe2ef jal t0,4fc <__riscv_save_4> 1f9a: df010113 addi sp,sp,-528 1f9e: 89aa mv s3,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:164 SocketCtx_t *ctx = find_ctx_by_wchnet_id(sockid); 1fa0: 3fbd jal 1f1e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:165 if (!ctx) return; 1fa2: c13d beqz a0,2008 ring_write(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:48 uint16_t free = RX_RING_SIZE - r->count; 1fa4: 6485 lui s1,0x1 1fa6: 00950933 add s2,a0,s1 1faa: 842a mv s0,a0 qdx_port_sock_recv_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:171 /* Read data from WCHNET into ring buffer */ uint8_t tmp[512]; uint32_t len; while (1) { len = sizeof(tmp); 1fac: 20000a13 li s4,512 ring_write(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:48 uint16_t free = RX_RING_SIZE - r->count; 1fb0: b6848493 addi s1,s1,-1176 # b68 qdx_port_sock_recv_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:172 uint8_t err = WCHNET_SocketRecv(sockid, tmp, &len); 1fb4: 0070 addi a2,sp,12 1fb6: 080c addi a1,sp,16 1fb8: 854e mv a0,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:171 len = sizeof(tmp); 1fba: c652 sw s4,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:172 uint8_t err = WCHNET_SocketRecv(sockid, tmp, &len); 1fbc: 612040ef jal ra,65ce D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:173 if (len == 0) break; 1fc0: 46b2 lw a3,12(sp) 1fc2: ca95 beqz a3,1ff6 ring_write(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:48 uint16_t free = RX_RING_SIZE - r->count; 1fc4: b7095603 lhu a2,-1168(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:49 if (len > free) len = free; 1fc8: 01069593 slli a1,a3,0x10 1fcc: 81c1 srli a1,a1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:48 uint16_t free = RX_RING_SIZE - r->count; 1fce: 40c48733 sub a4,s1,a2 1fd2: 87ba mv a5,a4 1fd4: 0742 slli a4,a4,0x10 1fd6: 8341 srli a4,a4,0x10 1fd8: 00e5f363 bgeu a1,a4,1fde 1fdc: 87b6 mv a5,a3 1fde: 07c2 slli a5,a5,0x10 1fe0: 83c1 srli a5,a5,0x10 1fe2: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:51 for (uint16_t i = 0; i < len; i++) { 1fe4: 01069713 slli a4,a3,0x10 1fe8: 8341 srli a4,a4,0x10 1fea: 02f76363 bltu a4,a5,2010 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:55 r->count += len; 1fee: 97b2 add a5,a5,a2 1ff0: b6f91823 sh a5,-1168(s2) qdx_port_sock_recv_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:175 ring_write(&ctx->rx_ring, tmp, (uint16_t)len); if (err != WCHNET_ERR_SUCCESS) break; 1ff4: d161 beqz a0,1fb4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:178 } /* Wake blocking recv thread */ xSemaphoreGive(ctx->rx_sem); 1ff6: 6785 lui a5,0x1 1ff8: 943e add s0,s0,a5 1ffa: b7442503 lw a0,-1164(s0) 1ffe: 4681 li a3,0 2000: 4601 li a2,0 2002: 4581 li a1,0 2004: 61f010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:179 } 2008: 21010113 addi sp,sp,528 200c: d24fe06f j 530 <__riscv_restore_4> ring_write(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:52 r->buf[r->head] = data[i]; 2010: b6c95703 lhu a4,-1172(s2) 2014: 080c addi a1,sp,16 2016: 95b6 add a1,a1,a3 2018: 0005c803 lbu a6,0(a1) 201c: 00e405b3 add a1,s0,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:53 r->head = (r->head + 1) % RX_RING_SIZE; 2020: 0705 addi a4,a4,1 2022: 02976733 rem a4,a4,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:52 r->buf[r->head] = data[i]; 2026: 01058223 sb a6,4(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:53 r->head = (r->head + 1) % RX_RING_SIZE; 202a: 0685 addi a3,a3,1 202c: b6e91623 sh a4,-1172(s2) 2030: bf55 j 1fe4 00002032 : qdx_port_sock_connect_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:182 void qdx_port_sock_connect_notify(uint8_t sockid) { 2032: ce4fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:183 SocketCtx_t *ctx = find_ctx_by_wchnet_id(sockid); 2036: 35e5 jal 1f1e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:184 if (!ctx) return; 2038: cd01 beqz a0,2050 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:185 ctx->connected = 1; 203a: 4785 li a5,1 203c: a13c sb a5,2(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:186 xSemaphoreGive(ctx->connect_sem); 203e: 6785 lui a5,0x1 2040: 953e add a0,a0,a5 2042: b7852503 lw a0,-1160(a0) 2046: 4681 li a3,0 2048: 4601 li a2,0 204a: 4581 li a1,0 204c: 5d7010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:187 } 2050: ceafe06f j 53a <__riscv_restore_0> 00002054 : qdx_port_sock_disconnect_notify(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:190 void qdx_port_sock_disconnect_notify(uint8_t sockid) { 2054: cc2fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:191 SocketCtx_t *ctx = find_ctx_by_wchnet_id(sockid); 2058: 35d9 jal 1f1e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:192 if (!ctx) return; 205a: cd01 beqz a0,2072 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:195 ctx->connected = 0; /* Wake recv thread so it can detect disconnect */ xSemaphoreGive(ctx->rx_sem); 205c: 6785 lui a5,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:193 ctx->connected = 0; 205e: 00050123 sb zero,2(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:195 xSemaphoreGive(ctx->rx_sem); 2062: 953e add a0,a0,a5 2064: b7452503 lw a0,-1164(a0) 2068: 4681 li a3,0 206a: 4601 li a2,0 206c: 4581 li a1,0 206e: 5b5010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:196 } 2072: cc8fe06f j 53a <__riscv_restore_0> 00002076 : qdx_port_init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:203 /* ============================================================ * Init — call once before scheduler starts * ============================================================ */ void qdx_port_init(void) { 2076: ca0fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:204 memset(g_sock_ctx, 0, sizeof(g_sock_ctx)); 207a: 6605 lui a2,0x1 207c: 2000f537 lui a0,0x2000f 2080: 6f860613 addi a2,a2,1784 # 16f8 2084: 4581 li a1,0 2086: 8c450513 addi a0,a0,-1852 # 2000e8c4 208a: cbcfe0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:205 g_wchnet_mutex = xSemaphoreCreateMutex(); 208e: 4505 li a0,1 2090: 73b010ef jal ra,3fca 2094: 200007b7 lui a5,0x20000 2098: 0ca7ac23 sw a0,216(a5) # 200000d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:206 } 209c: c9efe06f j 53a <__riscv_restore_0> 000020a0 : qdx_port_get_tick_ms(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:213 /* ============================================================ * Time & Delay * ============================================================ */ uint32_t qdx_port_get_tick_ms(void) { 20a0: c76fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:214 return xTaskGetTickCount() * portTICK_PERIOD_MS; 20a4: 0bf020ef jal ra,4962 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:215 } 20a8: 0506 slli a0,a0,0x1 20aa: c90fe06f j 53a <__riscv_restore_0> 000020ae : qdx_port_delay_ms(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:218 void qdx_port_delay_ms(uint32_t ms) { 20ae: c68fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:219 vTaskDelay(pdMS_TO_TICKS(ms)); 20b2: 1f400793 li a5,500 20b6: 02f50533 mul a0,a0,a5 20ba: 3e800793 li a5,1000 20be: 02f55533 divu a0,a0,a5 20c2: 3bf020ef jal ra,4c80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:220 } 20c6: c74fe06f j 53a <__riscv_restore_0> 000020ca : qdx_port_mutex_create(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:227 /* ============================================================ * Mutex * ============================================================ */ qdx_mutex_t qdx_port_mutex_create(void) { 20ca: c4cfe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:228 return (qdx_mutex_t)xSemaphoreCreateMutex(); 20ce: 4505 li a0,1 20d0: 6fb010ef jal ra,3fca D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:229 } 20d4: c66fe06f j 53a <__riscv_restore_0> 000020d8 : qdx_port_mutex_lock(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:233 void qdx_port_mutex_lock(qdx_mutex_t mutex) { if (mutex) 20d8: c901 beqz a0,20e8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:232 { 20da: c3cfe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:234 xSemaphoreTake((SemaphoreHandle_t)mutex, portMAX_DELAY); 20de: 55fd li a1,-1 20e0: 1a6020ef jal ra,4286 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:235 } 20e4: c56fe06f j 53a <__riscv_restore_0> 20e8: 8082 ret 000020ea : qdx_port_mutex_unlock(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:239 void qdx_port_mutex_unlock(qdx_mutex_t mutex) { if (mutex) 20ea: c911 beqz a0,20fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:238 { 20ec: c2afe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:240 xSemaphoreGive((SemaphoreHandle_t)mutex); 20f0: 4681 li a3,0 20f2: 4601 li a2,0 20f4: 4581 li a1,0 20f6: 52d010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:241 } 20fa: c40fe06f j 53a <__riscv_restore_0> 20fe: 8082 ret 00002100 : qdx_port_thread_create(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:255 * Thread * ============================================================ */ int8_t qdx_port_thread_create(const char *name, qdx_thread_entry_t entry, void *arg, uint32_t stack_size, uint8_t priority) { 2100: c16fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:258 /* stack_size from caller is in bytes; xTaskCreate expects words */ uint32_t stack_words = stack_size / sizeof(StackType_t); if (stack_words < configMINIMAL_STACK_SIZE) 2104: 3ff00793 li a5,1023 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:255 { 2108: 882a mv a6,a0 210a: 852e mv a0,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:257 uint32_t stack_words = stack_size / sizeof(StackType_t); 210c: 0026d593 srli a1,a3,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:258 if (stack_words < configMINIMAL_STACK_SIZE) 2110: 00d7e463 bltu a5,a3,2118 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:259 stack_words = configMINIMAL_STACK_SIZE; 2114: 10000593 li a1,256 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:261 BaseType_t ret = xTaskCreate((TaskFunction_t)entry, name, 2118: 86b2 mv a3,a2 211a: 01059613 slli a2,a1,0x10 211e: 4781 li a5,0 2120: 8241 srli a2,a2,0x10 2122: 85c2 mv a1,a6 2124: 598020ef jal ra,46bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:264 (uint16_t)stack_words, arg, (UBaseType_t)priority, NULL); return (ret == pdPASS) ? 0 : -1; 2128: 157d addi a0,a0,-1 212a: 00a03533 snez a0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:265 } 212e: 40a00533 neg a0,a0 2132: c08fe06f j 53a <__riscv_restore_0> 00002136 : qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:272 /* ============================================================ * TCP Socket — connect / send / recv / close * ============================================================ */ qdx_socket_t qdx_port_tcp_connect(const char *ip, uint16_t port) { 2136: bb8fe2ef jal t0,4ee <__riscv_save_10> 213a: 715d addi sp,sp,-80 213c: 892e mv s2,a1 parse_ip(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:139 uint32_t vals[4] = {0}; 213e: ca02 sw zero,20(sp) 2140: cc02 sw zero,24(sp) 2142: ce02 sw zero,28(sp) 2144: d002 sw zero,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:136 const char *p = ip_str; 2146: 85aa mv a1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:135 int n = 0, idx = 0; 2148: 4701 li a4,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:140 while (*p && idx < 4) { 214a: 480d li a6,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:141 if (*p >= '0' && *p <= '9') { 214c: 48a5 li a7,9 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:143 } else if (*p == '.') { 214e: 02e00313 li t1,46 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:142 vals[idx] = vals[idx] * 10 + (*p - '0'); 2152: 4e29 li t3,10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:140 while (*p && idx < 4) { 2154: 00058683 lb a3,0(a1) 2158: c6a1 beqz a3,21a0 215a: 00e85a63 bge a6,a4,216e qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:275 uint8_t dest_ip[4]; if (parse_ip(ip, dest_ip) != 0) { printf("qdx_port: bad IP \"%s\"\r\n", ip); 215e: 85aa mv a1,a0 2160: 0000d537 lui a0,0xd 2164: 25850513 addi a0,a0,600 # d258 2168: 10f0a0ef jal ra,ca76 216c: a069 j 21f6 parse_ip(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:141 if (*p >= '0' && *p <= '9') { 216e: fd068793 addi a5,a3,-48 2172: 0ff7f793 andi a5,a5,255 2176: 02f8e163 bltu a7,a5,2198 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:142 vals[idx] = vals[idx] * 10 + (*p - '0'); 217a: 089c addi a5,sp,80 217c: 00271613 slli a2,a4,0x2 2180: 963e add a2,a2,a5 2182: fc462783 lw a5,-60(a2) 2186: 02fe07b3 mul a5,t3,a5 218a: 97b6 add a5,a5,a3 218c: fd078793 addi a5,a5,-48 2190: fcf62223 sw a5,-60(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:148 p++; 2194: 0585 addi a1,a1,1 2196: bf7d j 2154 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:143 } else if (*p == '.') { 2198: fc6693e3 bne a3,t1,215e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:144 idx++; 219c: 0705 addi a4,a4,1 219e: bfdd j 2194 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:150 if (idx != 3) return -1; 21a0: 478d li a5,3 21a2: faf71ee3 bne a4,a5,215e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:152 if (vals[i] > 255) return -1; 21a6: 4a52 lw s4,20(sp) 21a8: 0ff00793 li a5,255 21ac: fb47e9e3 bltu a5,s4,215e 21b0: 4ae2 lw s5,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:153 ip[i] = (uint8_t)vals[i]; 21b2: 01410823 sb s4,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:152 if (vals[i] > 255) return -1; 21b6: fb57e4e3 bltu a5,s5,215e 21ba: 4b72 lw s6,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:153 ip[i] = (uint8_t)vals[i]; 21bc: 015108a3 sb s5,17(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:152 if (vals[i] > 255) return -1; 21c0: f967efe3 bltu a5,s6,215e 21c4: 5b82 lw s7,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:153 ip[i] = (uint8_t)vals[i]; 21c6: 01610923 sb s6,18(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:152 if (vals[i] > 255) return -1; 21ca: f977eae3 bltu a5,s7,215e alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:101 if (!g_sock_ctx[i].in_use) { 21ce: 2000f437 lui s0,0x2000f 21d2: 8c444783 lbu a5,-1852(s0) # 2000e8c4 parse_ip(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:153 ip[i] = (uint8_t)vals[i]; 21d6: 017109a3 sb s7,19(sp) alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:101 if (!g_sock_ctx[i].in_use) { 21da: 8c440413 addi s0,s0,-1852 21de: cf91 beqz a5,21fa 21e0: 6785 lui a5,0x1 21e2: 97a2 add a5,a5,s0 21e4: b7c7c783 lbu a5,-1156(a5) # b7c 21e8: cfc5 beqz a5,22a0 qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:281 return NULL; } SocketCtx_t *ctx = alloc_sock_ctx(); if (!ctx) { printf("qdx_port: no free SocketCtx\r\n"); 21ea: 0000d537 lui a0,0xd 21ee: 1a450513 addi a0,a0,420 # d1a4 21f2: 0a90a0ef jal ra,ca9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:276 return NULL; 21f6: 4401 li s0,0 21f8: a291 j 233c alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:100 for (int i = 0; i < MAX_SOCKETS; i++) { 21fa: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:102 memset(&g_sock_ctx[i], 0, sizeof(SocketCtx_t)); 21fc: 6985 lui s3,0x1 21fe: b7c98613 addi a2,s3,-1156 # b7c 2202: 02c484b3 mul s1,s1,a2 2206: 4581 li a1,0 2208: 9426 add s0,s0,s1 220a: 8522 mv a0,s0 220c: b3afe0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:103 g_sock_ctx[i].in_use = 1; 2210: 4785 li a5,1 2212: a01c sb a5,0(s0) ring_init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:36 r->head = 0; 2214: 2000f7b7 lui a5,0x2000f 2218: 42478793 addi a5,a5,1060 # 2000f424 221c: 94be add s1,s1,a5 221e: 0004a623 sw zero,12(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:38 r->count = 0; 2222: 00898c33 add s8,s3,s0 alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:105 g_sock_ctx[i].rx_sem = xSemaphoreCreateBinary(); 2226: 460d li a2,3 2228: 4581 li a1,0 ring_init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:38 r->count = 0; 222a: b60c1823 sh zero,-1168(s8) alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:105 g_sock_ctx[i].rx_sem = xSemaphoreCreateBinary(); 222e: 4505 li a0,1 2230: 385010ef jal ra,3db4 2234: b6ac2a23 sw a0,-1164(s8) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:106 g_sock_ctx[i].connect_sem = xSemaphoreCreateBinary(); 2238: 460d li a2,3 223a: 4581 li a1,0 223c: 4505 li a0,1 223e: 377010ef jal ra,3db4 qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:286 return NULL; } SOCK_INF sock_inf; memset(&sock_inf, 0, sizeof(sock_inf)); 2242: 03c00613 li a2,60 alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:106 g_sock_ctx[i].connect_sem = xSemaphoreCreateBinary(); 2246: b6ac2c23 sw a0,-1160(s8) qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:286 memset(&sock_inf, 0, sizeof(sock_inf)); 224a: 4581 li a1,0 224c: 0848 addi a0,sp,20 224e: af8fe0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:294 sock_inf.DesPort = port; memcpy(sock_inf.IPAddr, dest_ip, 4); uint8_t wchnet_id = 0; xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2252: 200004b7 lui s1,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:287 sock_inf.ProtoType = PROTO_TYPE_TCP; 2256: 478d li a5,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:294 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2258: 0d848493 addi s1,s1,216 # 200000d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:287 sock_inf.ProtoType = PROTO_TYPE_TCP; 225c: d83e sw a5,48(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:294 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 225e: 4088 lw a0,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:290 memcpy(sock_inf.IPAddr, dest_ip, 4); 2260: 47c2 lw a5,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:294 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2262: 55fd li a1,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:289 sock_inf.DesPort = port; 2264: dc4a sw s2,56(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:290 memcpy(sock_inf.IPAddr, dest_ip, 4); 2266: c0be sw a5,64(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:292 uint8_t wchnet_id = 0; 2268: 000107a3 sb zero,15(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:294 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 226c: 01a020ef jal ra,4286 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:295 uint8_t err = WCHNET_SocketCreat(&wchnet_id, &sock_inf); 2270: 084c addi a1,sp,20 2272: 00f10513 addi a0,sp,15 2276: 0dc040ef jal ra,6352 227a: 8caa mv s9,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:296 xSemaphoreGive(g_wchnet_mutex); 227c: 4088 lw a0,0(s1) 227e: 4681 li a3,0 2280: 4601 li a2,0 2282: 4581 li a1,0 2284: 39f010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:298 if (err != WCHNET_ERR_SUCCESS) { 2288: 000c8e63 beqz s9,22a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:299 printf("qdx_port: SocketCreat fail %02X\r\n", err); 228c: 0000d537 lui a0,0xd 2290: 85e6 mv a1,s9 2292: 1c450513 addi a0,a0,452 # d1c4 2296: 7e00a0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:331 return NULL; } if (!ctx->connected) { WCHNET_SocketClose(wchnet_id, 0); free_sock_ctx(ctx); 229a: 8522 mv a0,s0 229c: 31c1 jal 1f5c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:332 return NULL; 229e: bfa1 j 21f6 alloc_sock_ctx(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:100 for (int i = 0; i < MAX_SOCKETS; i++) { 22a0: 4485 li s1,1 22a2: bfa9 j 21fc qdx_port_tcp_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:304 ctx->wchnet_sock_id = wchnet_id; 22a4: 8788 lbu a0,15(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:308 (uint32_t)SocketRecvBuf[wchnet_id], RECE_BUF_LEN); 22a6: b6898613 addi a2,s3,-1176 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:307 WCHNET_ModifyRecvBuf(wchnet_id, 22aa: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:308 (uint32_t)SocketRecvBuf[wchnet_id], RECE_BUF_LEN); 22ae: 02c505b3 mul a1,a0,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:307 WCHNET_ModifyRecvBuf(wchnet_id, 22b2: 21878793 addi a5,a5,536 # 20000218 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:304 ctx->wchnet_sock_id = wchnet_id; 22b6: b008 sb a0,1(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:307 WCHNET_ModifyRecvBuf(wchnet_id, 22b8: 95be add a1,a1,a5 22ba: 2c2040ef jal ra,657c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:310 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 22be: 4088 lw a0,0(s1) 22c0: 55fd li a1,-1 22c2: 7c5010ef jal ra,4286 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:311 err = WCHNET_SocketConnect(wchnet_id); 22c6: 8788 lbu a0,15(sp) 22c8: 027040ef jal ra,6aee 22cc: 8caa mv s9,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:312 xSemaphoreGive(g_wchnet_mutex); 22ce: 4088 lw a0,0(s1) 22d0: 4681 li a3,0 22d2: 4601 li a2,0 22d4: 4581 li a1,0 22d6: 34d010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:314 if (err != WCHNET_ERR_SUCCESS) { 22da: 000c8e63 beqz s9,22f6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:315 printf("qdx_port: SocketConnect fail %02X\r\n", err); 22de: 0000d537 lui a0,0xd 22e2: 85e6 mv a1,s9 22e4: 1e850513 addi a0,a0,488 # d1e8 22e8: 78e0a0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:324 WCHNET_SocketClose(wchnet_id, 0); 22ec: 8788 lbu a0,15(sp) 22ee: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:330 WCHNET_SocketClose(wchnet_id, 0); 22f0: 16d040ef jal ra,6c5c 22f4: b75d j 229a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:322 if (xSemaphoreTake(ctx->connect_sem, pdMS_TO_TICKS(5000)) != pdTRUE) { 22f6: b78c2503 lw a0,-1160(s8) 22fa: 9c498593 addi a1,s3,-1596 22fe: 789010ef jal ra,4286 2302: 4785 li a5,1 2304: 00f50963 beq a0,a5,2316 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:323 printf("qdx_port: connect timeout\r\n"); 2308: 0000d537 lui a0,0xd 230c: 20c50513 addi a0,a0,524 # d20c 2310: 78a0a0ef jal ra,ca9a 2314: bfe1 j 22ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:329 if (!ctx->connected) { 2316: 203c lbu a5,2(s0) 2318: 8788 lbu a0,15(sp) 231a: 0ff7f793 andi a5,a5,255 231e: e399 bnez a5,2324 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:330 WCHNET_SocketClose(wchnet_id, 0); 2320: 4581 li a1,0 2322: b7f9 j 22f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:339 #if KEEPALIVE_ENABLE WCHNET_SocketSetKeepLive(wchnet_id, ENABLE); #endif printf("qdx_port: connected sock %d -> %d.%d.%d.%d:%d\r\n", 2324: 85aa mv a1,a0 2326: 0000d537 lui a0,0xd 232a: 884a mv a6,s2 232c: 87de mv a5,s7 232e: 875a mv a4,s6 2330: 86d6 mv a3,s5 2332: 8652 mv a2,s4 2334: 22850513 addi a0,a0,552 # d228 2338: 73e0a0ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:342 wchnet_id, dest_ip[0], dest_ip[1], dest_ip[2], dest_ip[3], port); return (qdx_socket_t)ctx; } 233c: 8522 mv a0,s0 233e: 6161 addi sp,sp,80 2340: 9e6fe06f j 526 <__riscv_restore_10> 00002344 : qdx_port_tcp_send(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:347 int32_t qdx_port_tcp_send(qdx_socket_t sock, const uint8_t *data, uint32_t len) { SocketCtx_t *ctx = (SocketCtx_t *)sock; if (!ctx || !ctx->connected) 2344: e119 bnez a0,234a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:348 return -1; 2346: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:360 if (err != WCHNET_ERR_SUCCESS) return -1; return (int32_t)send_len; } 2348: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:347 (discriminator 1) if (!ctx || !ctx->connected) 234a: 213c lbu a5,2(a0) 234c: 0ff7f793 andi a5,a5,255 2350: dbfd beqz a5,2346 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:345 { 2352: 9c4fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:352 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2356: 200004b7 lui s1,0x20000 235a: 0d848493 addi s1,s1,216 # 200000d8 235e: 842a mv s0,a0 2360: 4088 lw a0,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:345 { 2362: 1141 addi sp,sp,-16 2364: 892e mv s2,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:352 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2366: 55fd li a1,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:350 uint32_t send_len = len; 2368: c632 sw a2,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:352 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 236a: 71d010ef jal ra,4286 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:353 uint8_t err = WCHNET_SocketSend(ctx->wchnet_sock_id, (uint8_t *)data, &send_len); 236e: 3008 lbu a0,1(s0) 2370: 0070 addi a2,sp,12 2372: 85ca mv a1,s2 2374: 5ae040ef jal ra,6922 2378: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:354 xSemaphoreGive(g_wchnet_mutex); 237a: 4088 lw a0,0(s1) 237c: 4681 li a3,0 237e: 4601 li a2,0 2380: 4581 li a1,0 2382: 2a1010ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:348 return -1; 2386: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:356 if (err != WCHNET_ERR_SUCCESS) 2388: e011 bnez s0,238c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:359 return (int32_t)send_len; 238a: 4532 lw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:360 } 238c: 0141 addi sp,sp,16 238e: 9acfe06f j 53a <__riscv_restore_0> 00002392 : qdx_port_tcp_recv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:365 int32_t qdx_port_tcp_recv(qdx_socket_t sock, uint8_t *buf, uint32_t max_len) { SocketCtx_t *ctx = (SocketCtx_t *)sock; if (!ctx) 2392: e511 bnez a0,239e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:366 return -1; 2394: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:390 /* Still no data — disconnected? */ if (!ctx->connected) return -1; return 0; /* timeout, no data */ } 2396: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:366 return -1; 2398: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:390 } 239a: 996fe06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:363 { 239e: 95efe2ef jal t0,4fc <__riscv_save_4> ring_read(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:61 uint16_t to_read = (r->count < max_len) ? r->count : max_len; 23a2: 6785 lui a5,0x1 23a4: 97aa add a5,a5,a0 23a6: b707d783 lhu a5,-1168(a5) # b70 qdx_port_tcp_recv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:369 uint16_t got = ring_read(&ctx->rx_ring, buf, (uint16_t)max_len); 23aa: 01061493 slli s1,a2,0x10 23ae: 80c1 srli s1,s1,0x10 ring_read(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:61 uint16_t to_read = (r->count < max_len) ? r->count : max_len; 23b0: 00f4f363 bgeu s1,a5,23b6 23b4: 87a6 mv a5,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 23b6: 6705 lui a4,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:61 uint16_t to_read = (r->count < max_len) ? r->count : max_len; 23b8: 07c2 slli a5,a5,0x10 23ba: 83c1 srli a5,a5,0x10 23bc: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 23be: 00e50833 add a6,a0,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:65 r->tail = (r->tail + 1) % RX_RING_SIZE; 23c2: b6870613 addi a2,a4,-1176 # b68 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:63 for (uint16_t i = 0; i < to_read; i++) { 23c6: 01069713 slli a4,a3,0x10 23ca: 8341 srli a4,a4,0x10 23cc: 00f76c63 bltu a4,a5,23e4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:67 r->count -= to_read; 23d0: 6905 lui s2,0x1 23d2: 992a add s2,s2,a0 23d4: b7095703 lhu a4,-1168(s2) # b70 23d8: 8f1d sub a4,a4,a5 23da: b6e91823 sh a4,-1168(s2) qdx_port_tcp_recv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:370 if (got > 0) 23de: c78d beqz a5,2408 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:383 return (int32_t)got; 23e0: 853e mv a0,a5 23e2: bf65 j 239a ring_read(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 23e4: b6e85703 lhu a4,-1170(a6) 23e8: 972a add a4,a4,a0 23ea: 00474883 lbu a7,4(a4) 23ee: 00d58733 add a4,a1,a3 23f2: 0685 addi a3,a3,1 23f4: 01170023 sb a7,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:65 r->tail = (r->tail + 1) % RX_RING_SIZE; 23f8: b6e85703 lhu a4,-1170(a6) 23fc: 0705 addi a4,a4,1 23fe: 02c76733 rem a4,a4,a2 2402: b6e81723 sh a4,-1170(a6) 2406: b7c1 j 23c6 qdx_port_tcp_recv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:374 if (!ctx->connected) 2408: 213c lbu a5,2(a0) 240a: 0ff7f793 andi a5,a5,255 240e: d7c9 beqz a5,2398 2410: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:378 xSemaphoreTake(ctx->rx_sem, pdMS_TO_TICKS(100)); 2412: b7492503 lw a0,-1164(s2) 2416: 89ae mv s3,a1 2418: 03200593 li a1,50 241c: 66b010ef jal ra,4286 ring_read(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:61 uint16_t to_read = (r->count < max_len) ? r->count : max_len; 2420: b7095783 lhu a5,-1168(s2) 2424: 00f4f363 bgeu s1,a5,242a 2428: 87a6 mv a5,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 242a: 6705 lui a4,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:61 uint16_t to_read = (r->count < max_len) ? r->count : max_len; 242c: 07c2 slli a5,a5,0x10 242e: 83c1 srli a5,a5,0x10 2430: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 2432: 00e405b3 add a1,s0,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:65 r->tail = (r->tail + 1) % RX_RING_SIZE; 2436: b6870613 addi a2,a4,-1176 # b68 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:63 for (uint16_t i = 0; i < to_read; i++) { 243a: 01069713 slli a4,a3,0x10 243e: 8341 srli a4,a4,0x10 2440: 02f76263 bltu a4,a5,2464 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:67 r->count -= to_read; 2444: 6705 lui a4,0x1 2446: 9722 add a4,a4,s0 2448: b7075683 lhu a3,-1168(a4) # b70 244c: 8e9d sub a3,a3,a5 244e: b6d71823 sh a3,-1168(a4) qdx_port_tcp_recv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:382 if (got > 0) 2452: f7d9 bnez a5,23e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:386 if (!ctx->connected) 2454: 2028 lbu a0,2(s0) 2456: 0ff57513 andi a0,a0,255 245a: 00153513 seqz a0,a0 245e: 40a00533 neg a0,a0 2462: bf25 j 239a ring_read(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:64 data[i] = r->buf[r->tail]; 2464: b6e5d703 lhu a4,-1170(a1) 2468: 9722 add a4,a4,s0 246a: 2348 lbu a0,4(a4) 246c: 00d98733 add a4,s3,a3 2470: 0685 addi a3,a3,1 2472: a308 sb a0,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:65 r->tail = (r->tail + 1) % RX_RING_SIZE; 2474: b6e5d703 lhu a4,-1170(a1) 2478: 0705 addi a4,a4,1 247a: 02c76733 rem a4,a4,a2 247e: b6e59723 sh a4,-1170(a1) 2482: bf65 j 243a 00002484 : qdx_port_tcp_close(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:395 void qdx_port_tcp_close(qdx_socket_t sock) { SocketCtx_t *ctx = (SocketCtx_t *)sock; if (!ctx) return; 2484: c529 beqz a0,24ce D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:393 { 2486: 890fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:397 if (ctx->in_use) { 248a: 211c lbu a5,0(a0) 248c: 842a mv s0,a0 248e: c39d beqz a5,24b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:398 xSemaphoreTake(g_wchnet_mutex, portMAX_DELAY); 2490: 200004b7 lui s1,0x20000 2494: 0d848493 addi s1,s1,216 # 200000d8 2498: 4088 lw a0,0(s1) 249a: 55fd li a1,-1 249c: 5eb010ef jal ra,4286 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:399 WCHNET_SocketClose(ctx->wchnet_sock_id, 0); 24a0: 3008 lbu a0,1(s0) 24a2: 4581 li a1,0 24a4: 7b8040ef jal ra,6c5c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:400 xSemaphoreGive(g_wchnet_mutex); 24a8: 4088 lw a0,0(s1) 24aa: 4681 li a3,0 24ac: 4601 li a2,0 24ae: 4581 li a1,0 24b0: 173010ef jal ra,3e22 ring_init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:36 r->head = 0; 24b4: 6785 lui a5,0x1 24b6: 97a2 add a5,a5,s0 24b8: b6079623 sh zero,-1172(a5) # b6c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:37 r->tail = 0; 24bc: b6079723 sh zero,-1170(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:38 r->count = 0; 24c0: b6079823 sh zero,-1168(a5) qdx_port_tcp_close(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:403 } ring_init(&ctx->rx_ring); free_sock_ctx(ctx); 24c4: 8522 mv a0,s0 24c6: a97ff0ef jal ra,1f5c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_port.c:404 } 24ca: 870fe06f j 53a <__riscv_restore_0> 24ce: 8082 ret 000024d0 : Preprocess_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:35 * ============================================================ */ int8_t Preprocess_Init(uint16_t maxWidth, uint16_t maxHeight) { (void)maxHeight; /* 列累加仅依赖宽度 */ if (maxWidth > PREPROCESS_MAX_WIDTH) { 24d0: 10000793 li a5,256 24d4: 00a7f763 bgeu a5,a0,24e2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:36 return -1; /* 超出静态分配缓冲区上限 */ 24d8: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:53 g_PreprocessCfg.cfg2d.TargetWidth = 1; g_PreprocessCfg.cfg2d.TargetHeight = 1; g_is_initialized = 1; return 0; } 24da: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:36 return -1; /* 超出静态分配缓冲区上限 */ 24dc: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:53 } 24de: 85cfe06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:32 int8_t Preprocess_Init(uint16_t maxWidth, uint16_t maxHeight) { 24e2: 834fe2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:39 memset(g_col_sums, 0, sizeof(g_col_sums)); 24e6: 20010537 lui a0,0x20010 24ea: 40000613 li a2,1024 24ee: 4581 li a1,0 24f0: 02c50513 addi a0,a0,44 # 2001002c 24f4: 852fe0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:40 memset(&g_PreprocessCfg, 0, sizeof(g_PreprocessCfg)); 24f8: 20010537 lui a0,0x20010 24fc: 06e00613 li a2,110 2500: 4581 li a1,0 2502: fbc50413 addi s0,a0,-68 # 2000ffbc 2506: fbc50513 addi a0,a0,-68 250a: 83cfe0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:43 g_preprocess_mutex = qdx_port_mutex_create(); 250e: bbdff0ef jal ra,20ca 2512: 200007b7 lui a5,0x20000 2516: 0ea7a023 sw a0,224(a5) # 200000e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:44 if (g_preprocess_mutex == NULL) 251a: d169 beqz a0,24dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:48 g_PreprocessCfg.cfg2d.TargetWidth = 1; 251c: 4785 li a5,1 251e: b87c sb a5,23(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:49 g_PreprocessCfg.cfg2d.TargetHeight = 1; 2520: bc1c sb a5,25(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:51 g_is_initialized = 1; 2522: 4705 li a4,1 2524: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:48 g_PreprocessCfg.cfg2d.TargetWidth = 1; 2528: 00040c23 sb zero,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:49 g_PreprocessCfg.cfg2d.TargetHeight = 1; 252c: 00040d23 sb zero,26(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:51 g_is_initialized = 1; 2530: 0ce78e23 sb a4,220(a5) # 200000dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:52 return 0; 2534: 4501 li a0,0 2536: b765 j 24de 00002538 : Preprocess_Settings_Change(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:58 int8_t Preprocess_Settings_Change(const Config2D_t *newConfig2D, const Config1D_t *newConfig1D, const ConfigCommon_t *newCommon) { if (!g_is_initialized) 2538: 200007b7 lui a5,0x20000 253c: 0dc7c783 lbu a5,220(a5) # 200000dc 2540: c7d1 beqz a5,25cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:57 const ConfigCommon_t *newCommon) { 2542: fbbfd2ef jal t0,4fc <__riscv_save_4> 2546: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:62 return -1; /* 加锁保护配置更新,防止与 Execute 读取产生竞态 */ qdx_port_mutex_lock(g_preprocess_mutex); 2548: 200009b7 lui s3,0x20000 254c: c62a sw a0,12(sp) 254e: 0e09a503 lw a0,224(s3) # 200000e0 2552: 892e mv s2,a1 2554: 84b2 mv s1,a2 2556: b83ff0ef jal ra,20d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:64 if (newConfig2D) 255a: 45b2 lw a1,12(sp) 255c: 0e098993 addi s3,s3,224 2560: c989 beqz a1,2572 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:65 memcpy(&g_PreprocessCfg.cfg2d, newConfig2D, sizeof(Config2D_t)); 2562: 20010537 lui a0,0x20010 2566: 03d00613 li a2,61 256a: fbc50513 addi a0,a0,-68 # 2000ffbc 256e: 1630a0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:66 if (newConfig1D) 2572: 20010437 lui s0,0x20010 2576: fbc40413 addi s0,s0,-68 # 2000ffbc 257a: 00090863 beqz s2,258a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:67 memcpy(&g_PreprocessCfg.cfg1d, newConfig1D, sizeof(Config1D_t)); 257e: 4669 li a2,26 2580: 85ca mv a1,s2 2582: 03d40513 addi a0,s0,61 2586: 14b0a0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:68 if (newCommon) 258a: c499 beqz s1,2598 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:69 memcpy(&g_PreprocessCfg.common, newCommon, sizeof(ConfigCommon_t)); 258c: 465d li a2,23 258e: 85a6 mv a1,s1 2590: 05740513 addi a0,s0,87 2594: 13d0a0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:72 /* 安全检查 */ if (g_PreprocessCfg.cfg2d.TargetWidth == 0) 2598: 2c1c lbu a5,24(s0) 259a: 3878 lbu a4,23(s0) 259c: 07a2 slli a5,a5,0x8 259e: 8fd9 or a5,a5,a4 25a0: e789 bnez a5,25aa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:73 g_PreprocessCfg.cfg2d.TargetWidth = 1; 25a2: 4785 li a5,1 25a4: b87c sb a5,23(s0) 25a6: 00040c23 sb zero,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:74 if (g_PreprocessCfg.cfg2d.TargetHeight == 0) 25aa: 4c1c lw a5,24(s0) 25ac: 83a1 srli a5,a5,0x8 25ae: 07c2 slli a5,a5,0x10 25b0: 83c1 srli a5,a5,0x10 25b2: e789 bnez a5,25bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:75 g_PreprocessCfg.cfg2d.TargetHeight = 1; 25b4: 4785 li a5,1 25b6: bc1c sb a5,25(s0) 25b8: 00040d23 sb zero,26(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:77 qdx_port_mutex_unlock(g_preprocess_mutex); 25bc: 0009a503 lw a0,0(s3) 25c0: b2bff0ef jal ra,20ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:78 return 0; 25c4: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:79 } 25c6: 0141 addi sp,sp,16 25c8: f69fd06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:59 return -1; 25cc: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:79 } 25ce: 8082 ret 000025d0 : Preprocess_Execute(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:84 int8_t Preprocess_Execute(const RawImageBuffer_t *input, TcpTxBuffer_t *out_buffer, PreprocessResult_t *output_meta) { if (!g_is_initialized || !input || !input->pData || !out_buffer || 25d0: 200007b7 lui a5,0x20000 25d4: 0dc7c783 lbu a5,220(a5) # 200000dc 25d8: 30078363 beqz a5,28de D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:86 (discriminator 1) !out_buffer->pBuffer || !output_meta) return -1; 25dc: 57fd li a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:84 (discriminator 1) if (!g_is_initialized || !input || !input->pData || !out_buffer || 25de: 30050163 beqz a0,28e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:84 (discriminator 2) 25e2: 4118 lw a4,0(a0) 25e4: 2e070e63 beqz a4,28e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:84 (discriminator 3) 25e8: 2e058c63 beqz a1,28e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:84 (discriminator 4) 25ec: 4198 lw a4,0(a1) 25ee: 2e070963 beqz a4,28e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:85 !out_buffer->pBuffer || !output_meta) 25f2: 2e060763 beqz a2,28e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:83 PreprocessResult_t *output_meta) { 25f6: ef9fd2ef jal t0,4ee <__riscv_save_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:89 /* 加锁快照当前配置,最小化持锁时间 */ qdx_port_mutex_lock(g_preprocess_mutex); 25fa: 20000937 lui s2,0x20000 25fe: 0e090913 addi s2,s2,224 # 200000e0 2602: 89aa mv s3,a0 2604: 00092503 lw a0,0(s2) 2608: 8432 mv s0,a2 260a: 84ae mv s1,a1 260c: acdff0ef jal ra,20d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:90 uint16_t tgt_w = g_PreprocessCfg.cfg2d.TargetWidth; 2610: 200107b7 lui a5,0x20010 2614: fbc78793 addi a5,a5,-68 # 2000ffbc 2618: 0187ab03 lw s6,24(a5) 261c: 3bf8 lbu a4,23(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:93 uint16_t tgt_h = g_PreprocessCfg.cfg2d.TargetHeight; int16_t thresh = g_PreprocessCfg.cfg2d.TriggerTemperatureThreshold; qdx_port_mutex_unlock(g_preprocess_mutex); 261e: 00092503 lw a0,0(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:90 uint16_t tgt_w = g_PreprocessCfg.cfg2d.TargetWidth; 2622: 0ffb7b93 andi s7,s6,255 2626: 0ba2 slli s7,s7,0x8 2628: 00ebebb3 or s7,s7,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:92 int16_t thresh = g_PreprocessCfg.cfg2d.TriggerTemperatureThreshold; 262c: 02279d03 lh s10,34(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:93 qdx_port_mutex_unlock(g_preprocess_mutex); 2630: abbff0ef jal ra,20ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:95 uint16_t w = input->Width; 2634: 0049d903 lhu s2,4(s3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:91 uint16_t tgt_h = g_PreprocessCfg.cfg2d.TargetHeight; 2638: 008b5b13 srli s6,s6,0x8 263c: 0b42 slli s6,s6,0x10 263e: 010b5b13 srli s6,s6,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:96 uint16_t h = input->Height; 2642: 0069dc83 lhu s9,6(s3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:99 /* 目标超过输入时回退到整幅图像 */ if (tgt_w > w) 2646: 8ade mv s5,s7 2648: 01797363 bgeu s2,s7,264e 264c: 8aca mv s5,s2 264e: 0ac2 slli s5,s5,0x10 2650: 010ada93 srli s5,s5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:101 tgt_w = w; if (tgt_h > h) 2654: 8a5a mv s4,s6 2656: 016cf363 bgeu s9,s6,265c 265a: 8a66 mv s4,s9 265c: 0a42 slli s4,s4,0x10 265e: 010a5a13 srli s4,s4,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:105 tgt_h = h; /* ---- 缓冲区容量越界检查 ---- */ uint32_t required_bytes = (uint32_t)tgt_w * tgt_h * 2u; 2662: 034a8c33 mul s8,s5,s4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:106 if (out_buffer->HeadOffset + required_bytes > out_buffer->TotalCapacity) { 2666: 4494 lw a3,8(s1) 2668: 40d0 lw a2,4(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:107 return -3; /* 输出缓冲区空间不足 */ 266a: 57f5 li a5,-3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:105 uint32_t required_bytes = (uint32_t)tgt_w * tgt_h * 2u; 266c: 001c1713 slli a4,s8,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:106 if (out_buffer->HeadOffset + required_bytes > out_buffer->TotalCapacity) { 2670: 9736 add a4,a4,a3 2672: 04e66c63 bltu a2,a4,26ca D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:111 } /* 判断是否需要滑窗计算,或直接导出全图 */ if (tgt_w == w && tgt_h == h) { 2676: 092bec63 bltu s7,s2,270e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:111 (discriminator 1) 267a: 099b6a63 bltu s6,s9,270e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:116 /* 无需滑窗,仅做温度过滤与整体统计 */ int16_t min_t = 32767; int16_t max_t = -32768; uint32_t total_sum = 0; uint32_t pixels = w * h; 267e: 03990333 mul t1,s2,s9 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:119 /* Write directly to out_buffer starting at HeadOffset */ uint8_t *dest_ptr = out_buffer->pBuffer + out_buffer->HeadOffset; 2682: 4090 lw a2,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:121 for (uint32_t i = 0; i < pixels; i++) { 2684: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:115 uint32_t total_sum = 0; 2686: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:119 uint8_t *dest_ptr = out_buffer->pBuffer + out_buffer->HeadOffset; 2688: 9636 add a2,a2,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:113 int16_t min_t = 32767; 268a: 66a1 lui a3,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:114 int16_t max_t = -32768; 268c: 7561 lui a0,0xffff8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:113 int16_t min_t = 32767; 268e: 16fd addi a3,a3,-1 2690: 00159713 slli a4,a1,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:121 (discriminator 1) for (uint32_t i = 0; i < pixels; i++) { 2694: 02659e63 bne a1,t1,26d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:141 output_meta->DataLength = pixels * 2; output_meta->ValidWidth = w; output_meta->ValidHeight = h; output_meta->MinTemp = min_t; output_meta->MaxTemp = max_t; output_meta->AvgTemp = (int16_t)(total_sum / pixels); 2698: 02b7d7b3 divu a5,a5,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:135 output_meta->pValidData = out_buffer->pBuffer + out_buffer->HeadOffset; 269c: 4090 lw a2,0(s1) 269e: 0084a803 lw a6,8(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:136 output_meta->DataLength = pixels * 2; 26a2: c058 sw a4,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:137 output_meta->ValidWidth = w; 26a4: 01241423 sh s2,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:135 output_meta->pValidData = out_buffer->pBuffer + out_buffer->HeadOffset; 26a8: 9642 add a2,a2,a6 26aa: c010 sw a2,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:138 output_meta->ValidHeight = h; 26ac: 01941523 sh s9,10(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:139 output_meta->MinTemp = min_t; 26b0: a456 sh a3,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:140 output_meta->MaxTemp = max_t; 26b2: a46a sh a0,14(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:253 output_meta->DataLength = pixels * 2; output_meta->ValidWidth = tgt_w; output_meta->ValidHeight = tgt_h; output_meta->MinTemp = min_t; output_meta->MaxTemp = max_t; output_meta->AvgTemp = (int16_t)(total_sum / pixels); 26b4: 07c2 slli a5,a5,0x10 26b6: 87c1 srai a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:255 output_meta->RoiTemp = output_meta->AvgTemp; output_meta->Status = 0; 26b8: 00040a23 sb zero,20(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:253 output_meta->AvgTemp = (int16_t)(total_sum / pixels); 26bc: a81e sh a5,16(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:254 output_meta->RoiTemp = output_meta->AvgTemp; 26be: a83e sh a5,18(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:256 output_meta->FrameNumber = input->FrameNumber; 26c0: 0089a783 lw a5,8(s3) 26c4: cc1c sw a5,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:258 out_buffer->ValidPayloadLen = output_meta->DataLength; 26c6: c4d8 sw a4,12(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:260 return 0; 26c8: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:261 } 26ca: 853e mv a0,a5 26cc: e5bfd06f j 526 <__riscv_restore_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:122 int16_t raww_val = (int16_t)input->pData[i]; 26d0: 0009a803 lw a6,0(s3) 26d4: 88b6 mv a7,a3 26d6: 9742 add a4,a4,a6 26d8: 00075803 lhu a6,0(a4) 26dc: 01081713 slli a4,a6,0x10 26e0: 8741 srai a4,a4,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:124 if (raww_val < min_t) 26e2: 00d75363 bge a4,a3,26e8 26e6: 88ba mv a7,a4 26e8: 01089693 slli a3,a7,0x10 26ec: 86c1 srai a3,a3,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:126 if (raww_val > max_t) 26ee: 88aa mv a7,a0 26f0: 00e55363 bge a0,a4,26f6 26f4: 88ba mv a7,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:131 *dest_ptr++ = (uint8_t)(raww_val & 0xFF); 26f6: 01060023 sb a6,0(a2) 26fa: 01089513 slli a0,a7,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:128 total_sum += raww_val; 26fe: 97ba add a5,a5,a4 2700: 0609 addi a2,a2,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:132 *dest_ptr++ = (uint8_t)((raww_val >> 8) & 0xFF); 2702: 8721 srai a4,a4,0x8 2704: 8541 srai a0,a0,0x10 2706: fee60fa3 sb a4,-1(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:121 for (uint32_t i = 0; i < pixels; i++) { 270a: 0585 addi a1,a1,1 270c: b751 j 2690 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:154 memset(g_col_sums, 0, w * sizeof(uint32_t)); 270e: 20010b37 lui s6,0x20010 2712: 00291613 slli a2,s2,0x2 2716: 4581 li a1,0 2718: 02cb0513 addi a0,s6,44 # 2001002c 271c: e2bfd0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:159 for (uint16_t y = 0; y <= h - tgt_h; y++) { 2720: 00191e93 slli t4,s2,0x1 2724: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:157 uint16_t best_y = 0; 2726: 4801 li a6,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:156 uint16_t best_x = 0; 2728: 4881 li a7,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:155 uint32_t max_region_sum = 0; 272a: 4e01 li t3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:159 for (uint16_t y = 0; y <= h - tgt_h; y++) { 272c: 414c8cb3 sub s9,s9,s4 2730: 02cb0713 addi a4,s6,44 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:181 int16_t bot_val = (int16_t)input->pData[(y + tgt_h - 1) * w + c]; 2734: fffa0f13 addi t5,s4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:159 (discriminator 1) for (uint16_t y = 0; y <= h - tgt_h; y++) { 2738: 02fcd763 bge s9,a5,2766 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:227 uint8_t *dest_ptr = out_buffer->pBuffer + out_buffer->HeadOffset; 273c: 03280833 mul a6,a6,s2 2740: 449c lw a5,8(s1) 2742: 0004a303 lw t1,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:223 int16_t min_t = 32767; 2746: 6521 lui a0,0x8 2748: 001a9293 slli t0,s5,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:227 uint8_t *dest_ptr = out_buffer->pBuffer + out_buffer->HeadOffset; 274c: 933e add t1,t1,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:229 for (uint16_t r = 0; r < tgt_h; r++) { 274e: 4e01 li t3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:225 uint32_t total_sum = 0; 2750: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:224 int16_t max_t = -32768; 2752: 7ee1 lui t4,0xffff8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:223 int16_t min_t = 32767; 2754: 157d addi a0,a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:229 (discriminator 1) for (uint16_t r = 0; r < tgt_h; r++) { 2756: 17ca0363 beq s4,t3,28bc 275a: 01088633 add a2,a7,a6 275e: 0606 slli a2,a2,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:229 2760: 859a mv a1,t1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:230 for (uint16_t c = 0; c < tgt_w; c++) { 2762: 4681 li a3,0 2764: a299 j 28aa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:166 if (y == 0) { 2766: 833a mv t1,a4 2768: 4601 li a2,0 276a: cfa9 beqz a5,27c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:180 int16_t top_val = (int16_t)input->pData[(y - 1) * w + c]; 276c: fff78693 addi a3,a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:181 int16_t bot_val = (int16_t)input->pData[(y + tgt_h - 1) * w + c]; 2770: 00ff0633 add a2,t5,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:180 int16_t top_val = (int16_t)input->pData[(y - 1) * w + c]; 2774: 032686b3 mul a3,a3,s2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:179 for (uint16_t c = 0; c < w; c++) { 2778: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:181 int16_t bot_val = (int16_t)input->pData[(y + tgt_h - 1) * w + c]; 277a: 03260633 mul a2,a2,s2 277e: 0686 slli a3,a3,0x1 2780: 0606 slli a2,a2,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:179 (discriminator 1) for (uint16_t c = 0; c < w; c++) { 2782: 05259b63 bne a1,s2,27d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:196 for (uint16_t c = 0; c < tgt_w; c++) { 2786: 86ba mv a3,a4 2788: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:193 uint32_t current_window_sum = 0; 278a: 4601 li a2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:196 (discriminator 1) for (uint16_t c = 0; c < tgt_w; c++) { 278c: 08ba9563 bne s5,a1,2816 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:200 if (current_window_sum > max_region_sum) { 2790: 0cce6763 bltu t3,a2,285e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:202 (discriminator 1) best_x = 0; 2794: 4685 li a3,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:207 (discriminator 1) for (uint16_t x = 1; x <= w - tgt_w; x++) { 2796: 40b90fb3 sub t6,s2,a1 279a: a865 j 2852 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:170 int16_t val = (int16_t)input->pData[r * w + c]; 279c: 0009af83 lw t6,0(s3) 27a0: 9faa add t6,t6,a0 27a2: 000f9f83 lh t6,0(t6) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:171 if (val < thresh) 27a6: 01afd463 bge t6,s10,27ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:172 val = 90; 27aa: 05a00f93 li t6,90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:169 (discriminator 2) for (uint16_t r = 0; r < tgt_h; r++) { 27ae: 0685 addi a3,a3,1 27b0: 06c2 slli a3,a3,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:173 (discriminator 2) col_total += val; 27b2: 95fe add a1,a1,t6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:169 (discriminator 2) for (uint16_t r = 0; r < tgt_h; r++) { 27b4: 82c1 srli a3,a3,0x10 27b6: 9576 add a0,a0,t4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:169 (discriminator 1) 27b8: feda12e3 bne s4,a3,279c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:175 (discriminator 2) g_col_sums[c] = col_total; 27bc: 00b32023 sw a1,0(t1) # 80000000 <__freertos_irq_stack_top+0x5ffd0000> 27c0: 0605 addi a2,a2,1 27c2: 0311 addi t1,t1,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:167 (discriminator 1) for (uint16_t c = 0; c < w; c++) { 27c4: 01061693 slli a3,a2,0x10 27c8: 82c1 srli a3,a3,0x10 27ca: fb26fee3 bgeu a3,s2,2786 27ce: 00161513 slli a0,a2,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:169 for (uint16_t r = 0; r < tgt_h; r++) { 27d2: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:168 uint32_t col_total = 0; 27d4: 4581 li a1,0 27d6: b7cd j 27b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:180 int16_t top_val = (int16_t)input->pData[(y - 1) * w + c]; 27d8: 0009af83 lw t6,0(s3) 27dc: 00df8533 add a0,t6,a3 27e0: 00051283 lh t0,0(a0) # 8000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:181 int16_t bot_val = (int16_t)input->pData[(y + tgt_h - 1) * w + c]; 27e4: 9fb2 add t6,t6,a2 27e6: 000f9f83 lh t6,0(t6) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:183 if (top_val < thresh) 27ea: 01a2d463 bge t0,s10,27f2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:184 top_val = 90; 27ee: 05a00293 li t0,90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:185 if (bot_val < thresh) 27f2: 01afd463 bge t6,s10,27fa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:186 bot_val = 90; 27f6: 05a00f93 li t6,90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:188 (discriminator 2) g_col_sums[c] = g_col_sums[c] - top_val + bot_val; 27fa: 00032503 lw a0,0(t1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:179 (discriminator 2) for (uint16_t c = 0; c < w; c++) { 27fe: 0585 addi a1,a1,1 2800: 05c2 slli a1,a1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:188 (discriminator 2) g_col_sums[c] = g_col_sums[c] - top_val + bot_val; 2802: 40550533 sub a0,a0,t0 2806: 957e add a0,a0,t6 2808: 00a32023 sw a0,0(t1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:179 (discriminator 2) for (uint16_t c = 0; c < w; c++) { 280c: 81c1 srli a1,a1,0x10 280e: 0311 addi t1,t1,4 2810: 0689 addi a3,a3,2 2812: 0609 addi a2,a2,2 2814: b7bd j 2782 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:197 (discriminator 3) current_window_sum += g_col_sums[c]; 2816: 4288 lw a0,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:196 (discriminator 3) for (uint16_t c = 0; c < tgt_w; c++) { 2818: 0585 addi a1,a1,1 281a: 05c2 slli a1,a1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:197 (discriminator 3) current_window_sum += g_col_sums[c]; 281c: 962a add a2,a2,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:196 (discriminator 3) for (uint16_t c = 0; c < tgt_w; c++) { 281e: 81c1 srli a1,a1,0x10 2820: 0691 addi a3,a3,4 2822: b7ad j 278c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:209 current_window_sum - g_col_sums[x - 1] + g_col_sums[x + tgt_w - 1]; 2824: 00b68533 add a0,a3,a1 2828: 157d addi a0,a0,-1 282a: fff68313 addi t1,a3,-1 # 7fff 282e: 050a slli a0,a0,0x2 2830: 030a slli t1,t1,0x2 2832: 953a add a0,a0,a4 2834: 933a add t1,t1,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:208 current_window_sum = 2836: 4108 lw a0,0(a0) 2838: 00032303 lw t1,0(t1) 283c: 40650533 sub a0,a0,t1 2840: 962a add a2,a2,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:211 if (current_window_sum > max_region_sum) { 2842: 00ce7563 bgeu t3,a2,284c 2846: 883e mv a6,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:213 best_x = x; 2848: 88b6 mv a7,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:211 if (current_window_sum > max_region_sum) { 284a: 8e32 mv t3,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:207 (discriminator 2) for (uint16_t x = 1; x <= w - tgt_w; x++) { 284c: 0685 addi a3,a3,1 284e: 06c2 slli a3,a3,0x10 2850: 82c1 srli a3,a3,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:207 (discriminator 1) 2852: fcdfd9e3 bge t6,a3,2824 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:159 (discriminator 2) for (uint16_t y = 0; y <= h - tgt_h; y++) { 2856: 0785 addi a5,a5,1 2858: 07c2 slli a5,a5,0x10 285a: 83c1 srli a5,a5,0x10 285c: bdf1 j 2738 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:200 if (current_window_sum > max_region_sum) { 285e: 883e mv a6,a5 2860: 8e32 mv t3,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:202 best_x = 0; 2862: 4881 li a7,0 2864: bf05 j 2794 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:233 int16_t raww_val = (int16_t)input->pData[src_idx]; 2866: 0009a703 lw a4,0(s3) 286a: 8faa mv t6,a0 286c: 9732 add a4,a4,a2 286e: 00075f03 lhu t5,0(a4) 2872: 010f1713 slli a4,t5,0x10 2876: 8741 srai a4,a4,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:235 if (raww_val < min_t) 2878: 00a75363 bge a4,a0,287e 287c: 8fba mv t6,a4 287e: 010f9513 slli a0,t6,0x10 2882: 8541 srai a0,a0,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:237 if (raww_val > max_t) 2884: 8ff6 mv t6,t4 2886: 00eed363 bge t4,a4,288c 288a: 8fba mv t6,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:230 for (uint16_t c = 0; c < tgt_w; c++) { 288c: 0685 addi a3,a3,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:242 *dest_ptr++ = (uint8_t)(raww_val & 0xFF); 288e: 01e58023 sb t5,0(a1) 2892: 010f9e93 slli t4,t6,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:239 total_sum += raww_val; 2896: 97ba add a5,a5,a4 2898: 0589 addi a1,a1,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:243 *dest_ptr++ = (uint8_t)((raww_val >> 8) & 0xFF); 289a: 8721 srai a4,a4,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:230 for (uint16_t c = 0; c < tgt_w; c++) { 289c: 06c2 slli a3,a3,0x10 289e: 410ede93 srai t4,t4,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:243 *dest_ptr++ = (uint8_t)((raww_val >> 8) & 0xFF); 28a2: fee58fa3 sb a4,-1(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:230 for (uint16_t c = 0; c < tgt_w; c++) { 28a6: 82c1 srli a3,a3,0x10 28a8: 0609 addi a2,a2,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:230 (discriminator 1) 28aa: fada9ee3 bne s5,a3,2866 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:229 (discriminator 2) for (uint16_t r = 0; r < tgt_h; r++) { 28ae: 0e05 addi t3,t3,1 28b0: 0e42 slli t3,t3,0x10 28b2: 9316 add t1,t1,t0 28b4: 010e5e13 srli t3,t3,0x10 28b8: 984a add a6,a6,s2 28ba: bd71 j 2756 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:247 output_meta->pValidData = out_buffer->pBuffer + out_buffer->HeadOffset; 28bc: 4098 lw a4,0(s1) 28be: 4494 lw a3,8(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:253 output_meta->AvgTemp = (int16_t)(total_sum / pixels); 28c0: 0387d7b3 divu a5,a5,s8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:249 output_meta->ValidWidth = tgt_w; 28c4: 01541423 sh s5,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:247 output_meta->pValidData = out_buffer->pBuffer + out_buffer->HeadOffset; 28c8: 9736 add a4,a4,a3 28ca: c018 sw a4,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:248 output_meta->DataLength = pixels * 2; 28cc: 001c1713 slli a4,s8,0x1 28d0: c058 sw a4,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:250 output_meta->ValidHeight = tgt_h; 28d2: 01441523 sh s4,10(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:251 output_meta->MinTemp = min_t; 28d6: a44a sh a0,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:252 output_meta->MaxTemp = max_t; 28d8: 01d41723 sh t4,14(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:253 output_meta->AvgTemp = (int16_t)(total_sum / pixels); 28dc: bbe1 j 26b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:86 return -1; 28de: 57fd li a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:261 } 28e0: 853e mv a0,a5 28e2: 8082 ret 000028e4 : Preprocess_CheckInternalTrigger2D(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:267 /* ============================================================ * Internal Trigger Check * ============================================================ */ int8_t Preprocess_CheckInternalTrigger2D(const RawImageBuffer_t *input) { if (!g_is_initialized || !input || !input->pData) 28e4: 200007b7 lui a5,0x20000 28e8: 0dc7c783 lbu a5,220(a5) # 200000dc 28ec: 12078563 beqz a5,2a16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:268 (discriminator 1) return -1; 28f0: 57fd li a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:267 (discriminator 1) if (!g_is_initialized || !input || !input->pData) 28f2: 12050363 beqz a0,2a18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:267 (discriminator 2) 28f6: 4118 lw a4,0(a0) 28f8: 12070063 beqz a4,2a18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:266 int8_t Preprocess_CheckInternalTrigger2D(const RawImageBuffer_t *input) { 28fc: bf3fd2ef jal t0,4ee <__riscv_save_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:270 qdx_port_mutex_lock(g_preprocess_mutex); 2900: 20000bb7 lui s7,0x20000 2904: 0e0b8b93 addi s7,s7,224 # 200000e0 2908: 8a2a mv s4,a0 290a: 000ba503 lw a0,0(s7) 290e: fcaff0ef jal ra,20d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:271 uint16_t roi_x = g_PreprocessCfg.cfg2d.TriggerRoiX; 2912: 200107b7 lui a5,0x20010 2916: fbc78793 addi a5,a5,-68 # 2000ffbc 291a: 5780 lw s0,40(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:273 uint16_t roi_y = g_PreprocessCfg.cfg2d.TriggerRoiY; uint16_t roi_w = g_PreprocessCfg.cfg2d.TriggerRoiW; 291c: 57c4 lw s1,44(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:271 uint16_t roi_x = g_PreprocessCfg.cfg2d.TriggerRoiX; 291e: 0277c903 lbu s2,39(a5) 2922: 0ff47713 andi a4,s0,255 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:277 uint16_t roi_h = g_PreprocessCfg.cfg2d.TriggerRoiH; uint8_t condition = g_PreprocessCfg.cfg2d.TriggerCondition; int16_t thresh = g_PreprocessCfg.cfg2d.TriggerTemperatureThreshold; qdx_port_mutex_unlock(g_preprocess_mutex); 2926: 000ba503 lw a0,0(s7) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:271 uint16_t roi_x = g_PreprocessCfg.cfg2d.TriggerRoiX; 292a: 0722 slli a4,a4,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:273 uint16_t roi_w = g_PreprocessCfg.cfg2d.TriggerRoiW; 292c: 0ff4f613 andi a2,s1,255 2930: 0622 slli a2,a2,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:271 uint16_t roi_x = g_PreprocessCfg.cfg2d.TriggerRoiX; 2932: 01276933 or s2,a4,s2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:274 uint16_t roi_h = g_PreprocessCfg.cfg2d.TriggerRoiH; 2936: 80a1 srli s1,s1,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:272 uint16_t roi_y = g_PreprocessCfg.cfg2d.TriggerRoiY; 2938: 00845713 srli a4,s0,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:273 uint16_t roi_w = g_PreprocessCfg.cfg2d.TriggerRoiW; 293c: 8061 srli s0,s0,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:272 uint16_t roi_y = g_PreprocessCfg.cfg2d.TriggerRoiY; 293e: 01071a93 slli s5,a4,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:275 uint8_t condition = g_PreprocessCfg.cfg2d.TriggerCondition; 2942: 0267cb03 lbu s6,38(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:276 int16_t thresh = g_PreprocessCfg.cfg2d.TriggerTemperatureThreshold; 2946: 02279983 lh s3,34(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:273 uint16_t roi_w = g_PreprocessCfg.cfg2d.TriggerRoiW; 294a: 8c51 or s0,s0,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:274 uint16_t roi_h = g_PreprocessCfg.cfg2d.TriggerRoiH; 294c: 04c2 slli s1,s1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:277 qdx_port_mutex_unlock(g_preprocess_mutex); 294e: f9cff0ef jal ra,20ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:272 uint16_t roi_y = g_PreprocessCfg.cfg2d.TriggerRoiY; 2952: 010ada93 srli s5,s5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:274 uint16_t roi_h = g_PreprocessCfg.cfg2d.TriggerRoiH; 2956: 80c1 srli s1,s1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:284 uint16_t w = input->Width; uint16_t h = input->Height; /* Boundary Check & Clipping */ if (roi_w == 0 || roi_h == 0) return 0; 2958: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:283 if (roi_w == 0 || roi_h == 0) 295a: c85d beqz s0,2a10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:283 (discriminator 1) 295c: c8d5 beqz s1,2a10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:279 uint16_t w = input->Width; 295e: 004a5703 lhu a4,4(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:285 if (roi_x >= w || roi_y >= h) 2962: 0ae97763 bgeu s2,a4,2a10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:280 (discriminator 1) uint16_t h = input->Height; 2966: 006a5683 lhu a3,6(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:285 (discriminator 1) if (roi_x >= w || roi_y >= h) 296a: 0adaf363 bgeu s5,a3,2a10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:287 return 0; if (roi_x + roi_w > w) 296e: 012407b3 add a5,s0,s2 2972: 00f75663 bge a4,a5,297e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:288 roi_w = w - roi_x; 2976: 41270433 sub s0,a4,s2 297a: 0442 slli s0,s0,0x10 297c: 8041 srli s0,s0,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:289 if (roi_y + roi_h > h) 297e: 015487b3 add a5,s1,s5 2982: 00f6d663 bge a3,a5,298e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:290 roi_h = h - roi_y; 2986: 415684b3 sub s1,a3,s5 298a: 04c2 slli s1,s1,0x10 298c: 80c1 srli s1,s1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:296 int16_t max_temp = -32768; int64_t sum_temp = 0; uint32_t count = roi_w * roi_h; for (uint16_t r = 0; r < roi_h; r++) { 298e: 00171e13 slli t3,a4,0x1 2992: 03570733 mul a4,a4,s5 2996: 000a2783 lw a5,0(s4) 299a: 4801 li a6,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:293 int64_t sum_temp = 0; 299c: 4501 li a0,0 299e: 4581 li a1,0 29a0: 974a add a4,a4,s2 29a2: 0706 slli a4,a4,0x1 29a4: 973e add a4,a4,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:292 int16_t max_temp = -32768; 29a6: 77e1 lui a5,0xffff8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:266 int8_t Preprocess_CheckInternalTrigger2D(const RawImageBuffer_t *input) { 29a8: 88ba mv a7,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:297 for (uint16_t c = 0; c < roi_w; c++) { 29aa: 4601 li a2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:298 int16_t val = (int16_t)input->pData[(roi_y + r) * w + (roi_x + c)]; 29ac: 00089683 lh a3,0(a7) # 40100000 <__freertos_irq_stack_top+0x200d0000> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:301 /* Temperature Filtration Preprocessing */ if (val < thresh) { 29b0: 0136d463 bge a3,s3,29b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:302 val = 90; /* Treat as 9.0C */ 29b4: 05a00693 li a3,90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:305 } if (val > max_temp) 29b8: 8336 mv t1,a3 29ba: 00f6d363 bge a3,a5,29c0 29be: 833e mv t1,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:297 for (uint16_t c = 0; c < roi_w; c++) { 29c0: 0605 addi a2,a2,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:307 max_temp = val; sum_temp += val; 29c2: 41f6de93 srai t4,a3,0x1f D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:297 for (uint16_t c = 0; c < roi_w; c++) { 29c6: 0642 slli a2,a2,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:307 sum_temp += val; 29c8: 96aa add a3,a3,a0 29ca: 01031793 slli a5,t1,0x10 29ce: 95f6 add a1,a1,t4 29d0: 00a6b333 sltu t1,a3,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:297 for (uint16_t c = 0; c < roi_w; c++) { 29d4: 8241 srli a2,a2,0x10 29d6: 87c1 srai a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:307 sum_temp += val; 29d8: 8536 mv a0,a3 29da: 959a add a1,a1,t1 29dc: 0889 addi a7,a7,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:297 for (uint16_t c = 0; c < roi_w; c++) { 29de: fcc417e3 bne s0,a2,29ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:296 (discriminator 2) for (uint16_t r = 0; r < roi_h; r++) { 29e2: 0805 addi a6,a6,1 29e4: 0842 slli a6,a6,0x10 29e6: 01085813 srli a6,a6,0x10 29ea: 9772 add a4,a4,t3 29ec: fb049ee3 bne s1,a6,29a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:312 } } int16_t calc_val = 0; if (condition == 1) { 29f0: 4705 li a4,1 29f2: 00eb0b63 beq s6,a4,2a08 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:294 uint32_t count = roi_w * roi_h; 29f6: 02940633 mul a2,s0,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:317 /* 1: Max */ calc_val = max_temp; } else { /* 0: Average */ calc_val = (int16_t)(sum_temp / count); 29fa: 41f65693 srai a3,a2,0x1f 29fe: 0fe0a0ef jal ra,cafc <__divdi3> 2a02: 01051793 slli a5,a0,0x10 2a06: 87c1 srai a5,a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:320 } if (calc_val >= thresh) { 2a08: 0137a7b3 slt a5,a5,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:268 return -1; 2a0c: 0017c793 xori a5,a5,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:325 return 1; /* Triggered */ } return 0; /* Not triggered */ } 2a10: 853e mv a0,a5 2a12: b15fd06f j 526 <__riscv_restore_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:268 return -1; 2a16: 57fd li a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_preprocess.c:325 } 2a18: 853e mv a0,a5 2a1a: 8082 ret 00002a1c : qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 /* ============================================================ * Shift-Safe Serialization (Little-Endian) * ============================================================ */ void qdx_write_u16_le(uint8_t *buf, uint16_t val) { buf[0] = (uint8_t)(val & 0xFF); 2a1c: a10c sb a1,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2a1e: 81a1 srli a1,a1,0x8 2a20: b10c sb a1,1(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:16 } 2a22: 8082 ret 00002a24 : qdx_write_u32_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:20 void qdx_write_u32_le(uint8_t *buf, uint32_t val) { buf[0] = (uint8_t)(val & 0xFF); buf[1] = (uint8_t)((val >> 8) & 0xFF); 2a24: 0085d793 srli a5,a1,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:19 buf[0] = (uint8_t)(val & 0xFF); 2a28: a10c sb a1,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:20 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2a2a: b11c sb a5,1(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:21 buf[2] = (uint8_t)((val >> 16) & 0xFF); 2a2c: 0105d793 srli a5,a1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:22 buf[3] = (uint8_t)((val >> 24) & 0xFF); 2a30: 81e1 srli a1,a1,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:21 buf[2] = (uint8_t)((val >> 16) & 0xFF); 2a32: a13c sb a5,2(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:22 buf[3] = (uint8_t)((val >> 24) & 0xFF); 2a34: b12c sb a1,3(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:23 } 2a36: 8082 ret 00002a38 : qdx_read_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:26 uint16_t qdx_read_u16_le(const uint8_t *buf) { return (uint16_t)(buf[0] | (buf[1] << 8)); 2a38: 311c lbu a5,1(a0) 2a3a: 2108 lbu a0,0(a0) 2a3c: 07a2 slli a5,a5,0x8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:27 } 2a3e: 8d5d or a0,a0,a5 2a40: 8082 ret 00002a42 : qdx_read_u32_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:32 uint32_t qdx_read_u32_le(const uint8_t *buf) { /* 显式转型防止高位字节的符号位扩展 */ return ((uint32_t)buf[0]) | ((uint32_t)buf[1] << 8) | ((uint32_t)buf[2] << 16) | ((uint32_t)buf[3] << 24); 2a42: 311c lbu a5,1(a0) 2a44: 2118 lbu a4,0(a0) 2a46: 07a2 slli a5,a5,0x8 2a48: 8f5d or a4,a4,a5 2a4a: 213c lbu a5,2(a0) 2a4c: 3128 lbu a0,3(a0) 2a4e: 07c2 slli a5,a5,0x10 2a50: 8fd9 or a5,a5,a4 2a52: 0562 slli a0,a0,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:33 } 2a54: 8d5d or a0,a0,a5 2a56: 8082 ret 00002a58 : qdx_crc16_modbus(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:39 /* ============================================================ * CRC16-MODBUS Checksum (Polynomial: 0xA001, Init: 0xFFFF) * ============================================================ */ uint16_t qdx_crc16_modbus(const uint8_t *data, int len) { uint16_t crc = 0xFFFF; 2a58: 67c1 lui a5,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:45 for (int i = 0; i < len; i++) { crc ^= data[i]; for (int j = 0; j < 8; j++) { if (crc & 0x0001) { crc >>= 1; crc ^= 0xA001; 2a5a: 76e9 lui a3,0xffffa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:40 for (int i = 0; i < len; i++) { 2a5c: 4701 li a4,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:39 uint16_t crc = 0xFFFF; 2a5e: 17fd addi a5,a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:45 crc ^= 0xA001; 2a60: 0685 addi a3,a3,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:40 (discriminator 1) for (int i = 0; i < len; i++) { 2a62: 00b74463 blt a4,a1,2a6a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:52 crc >>= 1; } } } return crc; } 2a66: 853e mv a0,a5 2a68: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:41 crc ^= data[i]; 2a6a: 00e50633 add a2,a0,a4 2a6e: 2210 lbu a2,0(a2) 2a70: 8fb1 xor a5,a5,a2 2a72: 4621 li a2,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:43 if (crc & 0x0001) { 2a74: 0017f813 andi a6,a5,1 2a78: 8385 srli a5,a5,0x1 2a7a: 00080563 beqz a6,2a84 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:45 crc ^= 0xA001; 2a7e: 8fb5 xor a5,a5,a3 2a80: 07c2 slli a5,a5,0x10 2a82: 83c1 srli a5,a5,0x10 2a84: 167d addi a2,a2,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:42 (discriminator 2) for (int j = 0; j < 8; j++) { 2a86: f67d bnez a2,2a74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:40 (discriminator 2) for (int i = 0; i < len; i++) { 2a88: 0705 addi a4,a4,1 2a8a: bfe1 j 2a62 00002a8c : qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:61 * Uses strict byte shifting to prevent unaligned struct access on MCU. * ============================================================ */ int qdx_build_frame(uint8_t *buf, uint8_t msg_class, uint8_t tlv_type, const uint8_t *payload, uint16_t payload_len, uint16_t dev_id, uint16_t seq, uint32_t timestamp, uint8_t flags) { 2a8c: a8bfd2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:64 flags |= FLAG_LAST_FRAGMENT; uint16_t total_len = HEADER_SIZE + TLV_HEADER_SIZE + payload_len + CRC_SIZE; 2a90: 01570493 addi s1,a4,21 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:61 uint8_t flags) { 2a94: 892e mv s2,a1 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2a96: faa00593 li a1,-86 2a9a: a10c sb a1,0(a0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:64 uint16_t total_len = HEADER_SIZE + TLV_HEADER_SIZE + payload_len + CRC_SIZE; 2a9c: 04c2 slli s1,s1,0x10 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2a9e: 05500593 li a1,85 2aa2: b10c sb a1,1(a0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:64 uint16_t total_len = HEADER_SIZE + TLV_HEADER_SIZE + payload_len + CRC_SIZE; 2aa4: 80c1 srli s1,s1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:68 /* 1. Fill FrameHeader (16 bytes) safely */ qdx_write_u16_le(buf + 0, PROTO_MAGIC); /* Magic */ buf[2] = PROTO_VERSION; /* Version */ 2aa6: 02000593 li a1,32 2aaa: a12c sb a1,2(a0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2aac: 010502a3 sb a6,5(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2ab0: 0084d593 srli a1,s1,0x8 2ab4: 00885813 srli a6,a6,0x8 qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:61 uint8_t flags) { 2ab8: 1141 addi sp,sp,-16 2aba: 842a mv s0,a0 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2abc: a14c sb a1,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2abe: b124 sb s1,3(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2ac0: 01050323 sb a6,6(a0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:71 qdx_write_u16_le(buf + 3, total_len); /* Length */ qdx_write_u16_le(buf + 5, seq); /* Sequence */ qdx_write_u32_le(buf + 7, timestamp); /* Timestamp */ 2ac4: 85c6 mv a1,a7 2ac6: 051d addi a0,a0,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:61 uint8_t flags) { 2ac8: c632 sw a2,12(sp) 2aca: c436 sw a3,8(sp) 2acc: c23e sw a5,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:64 uint16_t total_len = HEADER_SIZE + TLV_HEADER_SIZE + payload_len + CRC_SIZE; 2ace: c03a sw a4,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:71 qdx_write_u32_le(buf + 7, timestamp); /* Timestamp */ 2ad0: 3f91 jal 2a24 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2ad2: 4792 lw a5,4(sp) 2ad4: 4702 lw a4,0(sp) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:78 qdx_write_u16_le(buf + 12, dev_id); /* DevID */ buf[14] = msg_class; /* Class */ buf[15] = flags; /* Flags */ /* 2. Fill TLV Header (3 bytes) safely */ buf[16] = tlv_type; /* TLV Type */ 2ad6: 4632 lw a2,12(sp) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2ad8: a45c sb a5,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2ada: 83a1 srli a5,a5,0x8 2adc: b45c sb a5,13(s0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:63 flags |= FLAG_LAST_FRAGMENT; 2ade: 02014783 lbu a5,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:82 qdx_write_u16_le(buf + 17, payload_len); /* TLV Length */ /* 3. Copy Payload(使用 memmove 防止 payload 与 buf 重叠时的未定义行为) */ if (payload && payload_len > 0) { 2ae2: 46a2 lw a3,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:72 buf[11] = 0x01; /* Source = MCU (0x01) */ 2ae4: 4585 li a1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:63 flags |= FLAG_LAST_FRAGMENT; 2ae6: 0207e793 ori a5,a5,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:75 buf[15] = flags; /* Flags */ 2aea: b47c sb a5,15(s0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2aec: 00875793 srli a5,a4,0x8 qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:72 buf[11] = 0x01; /* Source = MCU (0x01) */ 2af0: b42c sb a1,11(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:74 buf[14] = msg_class; /* Class */ 2af2: 01240723 sb s2,14(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:78 buf[16] = tlv_type; /* TLV Type */ 2af6: a810 sb a2,16(s0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2af8: b818 sb a4,17(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2afa: a83c sb a5,18(s0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:82 if (payload && payload_len > 0) { 2afc: ca81 beqz a3,2b0c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:82 (discriminator 1) 2afe: c719 beqz a4,2b0c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:83 memmove(buf + HEADER_SIZE + TLV_HEADER_SIZE, payload, payload_len); 2b00: 863a mv a2,a4 2b02: 85b6 mv a1,a3 2b04: 01340513 addi a0,s0,19 2b08: 47a0a0ef jal ra,cf82 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:87 } /* 4. Append CRC16 */ uint16_t crc = qdx_crc16_modbus(buf, total_len - CRC_SIZE); 2b0c: ffe48913 addi s2,s1,-2 2b10: 85ca mv a1,s2 2b12: 8522 mv a0,s0 2b14: 3791 jal 2a58 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:88 qdx_write_u16_le(buf + total_len - CRC_SIZE, crc); 2b16: 944a add s0,s0,s2 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b18: a008 sb a0,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b1a: 8121 srli a0,a0,0x8 2b1c: b008 sb a0,1(s0) qdx_build_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:91 return total_len; } 2b1e: 8526 mv a0,s1 2b20: 0141 addi sp,sp,16 2b22: a19fd06f j 53a <__riscv_restore_0> 00002b26 : qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:100 * 用于零拷贝场景:payload(含 TLV + 数据)已填充在 buf[HEADER_SIZE] 处, * 本函数仅写入 16 字节帧头并在尾部追加 CRC16。 * ============================================================ */ int qdx_build_frame_inplace(uint8_t *buf, uint8_t msg_class, uint16_t payload_len, uint16_t dev_id, uint16_t seq, uint32_t timestamp, uint8_t flags) { 2b26: 9f1fd2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:103 flags |= FLAG_LAST_FRAGMENT; uint16_t total_len = HEADER_SIZE + payload_len + CRC_SIZE; 2b2a: 0649 addi a2,a2,18 2b2c: 01061493 slli s1,a2,0x10 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b30: faa00613 li a2,-86 2b34: a110 sb a2,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b36: 05500613 li a2,85 qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:103 uint16_t total_len = HEADER_SIZE + payload_len + CRC_SIZE; 2b3a: 80c1 srli s1,s1,0x10 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b3c: b110 sb a2,1(a0) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:107 /* 填写 16 字节帧头 */ qdx_write_u16_le(buf + 0, PROTO_MAGIC); buf[2] = PROTO_VERSION; 2b3e: 02000613 li a2,32 2b42: a130 sb a2,2(a0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b44: b158 sb a4,5(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b46: 0084d613 srli a2,s1,0x8 2b4a: 8321 srli a4,a4,0x8 qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:100 uint32_t timestamp, uint8_t flags) { 2b4c: 1141 addi sp,sp,-16 2b4e: 842a mv s0,a0 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b50: a150 sb a2,4(a0) 2b52: a178 sb a4,6(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b54: b124 sb s1,3(a0) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:100 uint32_t timestamp, uint8_t flags) { 2b56: 892e mv s2,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:110 qdx_write_u16_le(buf + 3, total_len); qdx_write_u16_le(buf + 5, seq); qdx_write_u32_le(buf + 7, timestamp); 2b58: 051d addi a0,a0,7 2b5a: 85be mv a1,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:100 uint32_t timestamp, uint8_t flags) { 2b5c: c636 sw a3,12(sp) 2b5e: c442 sw a6,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:110 qdx_write_u32_le(buf + 7, timestamp); 2b60: 35d1 jal 2a24 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b62: 46b2 lw a3,12(sp) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:102 flags |= FLAG_LAST_FRAGMENT; 2b64: 4822 lw a6,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:111 buf[11] = 0x01; /* Source = MCU */ 2b66: 4785 li a5,1 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b68: a454 sb a3,12(s0) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:113 qdx_write_u16_le(buf + 12, dev_id); buf[14] = msg_class; 2b6a: 01240723 sb s2,14(s0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b6e: 82a1 srli a3,a3,0x8 qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:102 flags |= FLAG_LAST_FRAGMENT; 2b70: 02086813 ori a6,a6,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:119 buf[15] = flags; /* payload 已在 buf[16..16+payload_len-1],无需拷贝 */ /* 追加 CRC16 */ uint16_t crc = qdx_crc16_modbus(buf, total_len - CRC_SIZE); 2b74: ffe48913 addi s2,s1,-2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:111 buf[11] = 0x01; /* Source = MCU */ 2b78: b43c sb a5,11(s0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b7a: b454 sb a3,13(s0) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:114 buf[15] = flags; 2b7c: 010407a3 sb a6,15(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:119 uint16_t crc = qdx_crc16_modbus(buf, total_len - CRC_SIZE); 2b80: 85ca mv a1,s2 2b82: 8522 mv a0,s0 2b84: 3dd1 jal 2a58 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:120 qdx_write_u16_le(buf + total_len - CRC_SIZE, crc); 2b86: 944a add s0,s0,s2 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2b88: a008 sb a0,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2b8a: 8121 srli a0,a0,0x8 2b8c: b008 sb a0,1(s0) qdx_build_frame_inplace(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:123 return total_len; } 2b8e: 8526 mv a0,s1 2b90: 0141 addi sp,sp,16 2b92: 9a9fd06f j 53a <__riscv_restore_0> 00002b96 : qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:131 * Build Fragmented Frame (Header + Chunk + CRC16, NO TLV) * ============================================================ */ int qdx_build_fragment_frame(uint8_t *buf, uint8_t msg_class, const uint8_t *chunk, uint16_t chunk_len, uint16_t dev_id, uint16_t seq, uint32_t timestamp, uint8_t flags) { 2b96: 967fd2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:133 uint16_t total_len = HEADER_SIZE + chunk_len + CRC_SIZE; 2b9a: 01268493 addi s1,a3,18 # ffffa012 <__freertos_irq_stack_top+0xdffca012> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:131 uint8_t flags) { 2b9e: 8932 mv s2,a2 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2ba0: faa00613 li a2,-86 2ba4: a110 sb a2,0(a0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:133 uint16_t total_len = HEADER_SIZE + chunk_len + CRC_SIZE; 2ba6: 04c2 slli s1,s1,0x10 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2ba8: 05500613 li a2,85 2bac: b110 sb a2,1(a0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:133 uint16_t total_len = HEADER_SIZE + chunk_len + CRC_SIZE; 2bae: 80c1 srli s1,s1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:137 /* 1. Fill FrameHeader (16 bytes) safely */ qdx_write_u16_le(buf + 0, PROTO_MAGIC); buf[2] = PROTO_VERSION; 2bb0: 02000613 li a2,32 2bb4: a130 sb a2,2(a0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2bb6: b15c sb a5,5(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2bb8: 0084d613 srli a2,s1,0x8 2bbc: 83a1 srli a5,a5,0x8 qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:131 uint8_t flags) { 2bbe: 1141 addi sp,sp,-16 2bc0: 842a mv s0,a0 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2bc2: a17c sb a5,6(a0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:131 uint8_t flags) { 2bc4: 89ae mv s3,a1 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2bc6: b124 sb s1,3(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2bc8: a150 sb a2,4(a0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:140 qdx_write_u16_le(buf + 3, total_len); qdx_write_u16_le(buf + 5, seq); qdx_write_u32_le(buf + 7, timestamp); 2bca: 85c2 mv a1,a6 2bcc: 051d addi a0,a0,7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:131 uint8_t flags) { 2bce: c63a sw a4,12(sp) 2bd0: c446 sw a7,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:133 uint16_t total_len = HEADER_SIZE + chunk_len + CRC_SIZE; 2bd2: c236 sw a3,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:140 qdx_write_u32_le(buf + 7, timestamp); 2bd4: 3d81 jal 2a24 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2bd6: 4732 lw a4,12(sp) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:144 buf[11] = 0x01; /* Source MCU */ qdx_write_u16_le(buf + 12, dev_id); buf[14] = msg_class; buf[15] = flags; 2bd8: 48a2 lw a7,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:141 buf[11] = 0x01; /* Source MCU */ 2bda: 4785 li a5,1 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2bdc: a458 sb a4,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2bde: 8321 srli a4,a4,0x8 qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:141 buf[11] = 0x01; /* Source MCU */ 2be0: b43c sb a5,11(s0) qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2be2: b458 sb a4,13(s0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:143 buf[14] = msg_class; 2be4: 01340723 sb s3,14(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:144 buf[15] = flags; 2be8: 011407a3 sb a7,15(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:147 /* 2. Copy Payload Chunk(使用 memmove 应对潜在重叠) */ if (chunk && chunk_len > 0) { 2bec: 00090a63 beqz s2,2c00 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:147 (discriminator 1) 2bf0: 4692 lw a3,4(sp) 2bf2: c699 beqz a3,2c00 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:148 memmove(buf + HEADER_SIZE, chunk, chunk_len); 2bf4: 8636 mv a2,a3 2bf6: 85ca mv a1,s2 2bf8: 01040513 addi a0,s0,16 2bfc: 3860a0ef jal ra,cf82 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:152 } /* 3. Append CRC16 */ uint16_t crc = qdx_crc16_modbus(buf, total_len - CRC_SIZE); 2c00: ffe48913 addi s2,s1,-2 2c04: 85ca mv a1,s2 2c06: 8522 mv a0,s0 2c08: 3d81 jal 2a58 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:153 qdx_write_u16_le(buf + total_len - CRC_SIZE, crc); 2c0a: 944a add s0,s0,s2 qdx_write_u16_le(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:14 buf[0] = (uint8_t)(val & 0xFF); 2c0c: a008 sb a0,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:15 buf[1] = (uint8_t)((val >> 8) & 0xFF); 2c0e: 8121 srli a0,a0,0x8 2c10: b008 sb a0,1(s0) qdx_build_fragment_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_protocol.c:156 return total_len; } 2c12: 8526 mv a0,s1 2c14: 0141 addi sp,sp,16 2c16: 91bfd06f j 530 <__riscv_restore_4> 00002c1a : tcp_stream_disconnect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:73 ctx->label = label; } static void tcp_stream_disconnect(TcpStreamCtx_t *ctx) { ctx->is_connected = 0; if (ctx->sock) { 2c1a: 411c lw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:72 ctx->is_connected = 0; 2c1c: 00050923 sb zero,18(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:73 if (ctx->sock) { 2c20: cb99 beqz a5,2c36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:71 static void tcp_stream_disconnect(TcpStreamCtx_t *ctx) { 2c22: 8f5fd2ef jal t0,516 <__riscv_save_0> 2c26: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:74 qdx_port_tcp_close(ctx->sock); 2c28: 853e mv a0,a5 2c2a: 85bff0ef jal ra,2484 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:75 ctx->sock = NULL; 2c2e: 00042023 sw zero,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:77 } } 2c32: 909fd06f j 53a <__riscv_restore_0> 2c36: 8082 ret 00002c38 : tcp_send_frame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:94 return 0; } static int32_t tcp_send_frame(TcpStreamCtx_t *ctx, uint8_t msg_class, uint8_t tlv_type, const uint8_t *payload, uint16_t payload_len, uint8_t flags) { 2c38: 8dffd2ef jal t0,516 <__riscv_save_0> 2c3c: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:95 if (!ctx->is_connected || ctx->sock == NULL) 2c3e: 2928 lbu a0,18(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:94 uint16_t payload_len, uint8_t flags) { 2c40: bd010113 addi sp,sp,-1072 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:95 if (!ctx->is_connected || ctx->sock == NULL) 2c44: c939 beqz a0,2c9a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:95 (discriminator 1) 2c46: 00042803 lw a6,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:96 (discriminator 1) return -1; 2c4a: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:95 (discriminator 1) if (!ctx->is_connected || ctx->sock == NULL) 2c4c: 04080863 beqz a6,2c9c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:105 uint8_t buffer[1024]; if (HEADER_SIZE + TLV_HEADER_SIZE + payload_len + CRC_SIZE > sizeof(buffer)) { return -1; /* Too large for generic send */ } uint16_t seq = ctx->sequence++; 2c50: 01045803 lhu a6,16(s0) 2c54: 84be mv s1,a5 2c56: d63a sw a4,44(sp) 2c58: 00180793 addi a5,a6,1 2c5c: a81e sh a5,16(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:107 int frame_len = qdx_build_frame(buffer, msg_class, tlv_type, payload, payload_len, 2c5e: 200107b7 lui a5,0x20010 2c62: 44c7d783 lhu a5,1100(a5) # 2001044c 2c66: d436 sw a3,40(sp) 2c68: d232 sw a2,36(sp) 2c6a: d02e sw a1,32(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:105 uint16_t seq = ctx->sequence++; 2c6c: ce42 sw a6,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:107 qdx_build_frame(buffer, msg_class, tlv_type, payload, payload_len, 2c6e: cc3e sw a5,24(sp) 2c70: c30ff0ef jal ra,20a0 2c74: 5612 lw a2,36(sp) 2c76: 5582 lw a1,32(sp) 2c78: 4872 lw a6,28(sp) 2c7a: 47e2 lw a5,24(sp) 2c7c: 5732 lw a4,44(sp) 2c7e: 56a2 lw a3,40(sp) 2c80: 88aa mv a7,a0 2c82: c026 sw s1,0(sp) 2c84: 1808 addi a0,sp,48 2c86: 3519 jal 2a8c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:110 g_TcpLogic.dev_id, seq, qdx_port_get_tick_ms(), flags); int32_t sent = qdx_port_tcp_send(ctx->sock, buffer, frame_len); 2c88: 862a mv a2,a0 2c8a: 4008 lw a0,0(s0) 2c8c: 180c addi a1,sp,48 2c8e: eb6ff0ef jal ra,2344 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:111 if (sent < 0) { 2c92: 00055563 bgez a0,2c9c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:112 tcp_stream_disconnect(ctx); 2c96: 8522 mv a0,s0 2c98: 3749 jal 2c1a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:96 return -1; 2c9a: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:116 return -1; } return sent; } 2c9c: 43010113 addi sp,sp,1072 2ca0: 89bfd06f j 53a <__riscv_restore_0> 00002ca4 : tcp_send_handshake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:118 static void tcp_send_handshake(TcpStreamCtx_t *ctx) { 2ca4: 873fd2ef jal t0,516 <__riscv_save_0> 2ca8: 7139 addi sp,sp,-64 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:120 uint8_t payload[54]; memset(payload, 0, sizeof(payload)); 2caa: 03600613 li a2,54 2cae: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:118 static void tcp_send_handshake(TcpStreamCtx_t *ctx) { 2cb0: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:120 memset(payload, 0, sizeof(payload)); 2cb2: 0028 addi a0,sp,8 2cb4: 893fd0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:121 qdx_write_u16_le(payload + 0, 0x0200); 2cb8: 20000593 li a1,512 2cbc: 0028 addi a0,sp,8 2cbe: d5fff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:122 memcpy(payload + 2, g_TcpLogic.uuid, 16); 2cc2: 200105b7 lui a1,0x20010 2cc6: 42c58493 addi s1,a1,1068 # 2001042c 2cca: 4641 li a2,16 2ccc: 42c58593 addi a1,a1,1068 2cd0: 00a10513 addi a0,sp,10 2cd4: 1fc0a0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:123 memcpy(payload + 18, g_TcpLogic.auth_token, 16); 2cd8: 4641 li a2,16 2cda: 01048593 addi a1,s1,16 2cde: 01a10513 addi a0,sp,26 2ce2: 1ee0a0ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:127 /* Safe string copy without relying on strncpy platform behavior */ const char *hw = "V1.0"; const char *fw = "V2.0"; for (int i = 0; i < 8 && hw[i]; i++) 2ce6: 0034 addi a3,sp,8 2ce8: 0000d737 lui a4,0xd D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:123 memcpy(payload + 18, g_TcpLogic.auth_token, 16); 2cec: 8636 mv a2,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:127 for (int i = 0; i < 8 && hw[i]; i++) 2cee: 4781 li a5,0 2cf0: 2ac70713 addi a4,a4,684 # d2ac 2cf4: 4521 li a0,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:127 (discriminator 3) 2cf6: 00e785b3 add a1,a5,a4 2cfa: 00058583 lb a1,0(a1) 2cfe: c599 beqz a1,2d0c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:128 (discriminator 4) payload[34 + i] = hw[i]; 2d00: 02b60123 sb a1,34(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:127 (discriminator 4) for (int i = 0; i < 8 && hw[i]; i++) 2d04: 0785 addi a5,a5,1 2d06: 0605 addi a2,a2,1 2d08: fea797e3 bne a5,a0,2cf6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:129 for (int i = 0; i < 8 && fw[i]; i++) 2d0c: 0000d737 lui a4,0xd D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:127 for (int i = 0; i < 8 && hw[i]; i++) 2d10: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:129 for (int i = 0; i < 8 && fw[i]; i++) 2d12: 2b470713 addi a4,a4,692 # d2b4 2d16: 45a1 li a1,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:129 (discriminator 3) 2d18: 00e78633 add a2,a5,a4 2d1c: 00060603 lb a2,0(a2) 2d20: c619 beqz a2,2d2e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:130 (discriminator 4) payload[42 + i] = fw[i]; 2d22: 02c68523 sb a2,42(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:129 (discriminator 4) for (int i = 0; i < 8 && fw[i]; i++) 2d26: 0785 addi a5,a5,1 2d28: 0685 addi a3,a3,1 2d2a: feb797e3 bne a5,a1,2d18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:131 qdx_write_u32_le(payload + 50, 0x07); 2d2e: 03a10513 addi a0,sp,58 2d32: 459d li a1,7 2d34: cf1ff0ef jal ra,2a24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:133 tcp_send_frame(ctx, CLASS_SYSTEM, TYPE_HANDSHAKE, payload, sizeof(payload), 2d38: 0034 addi a3,sp,8 2d3a: 47c1 li a5,16 2d3c: 03600713 li a4,54 2d40: 4605 li a2,1 2d42: 4591 li a1,4 2d44: 8522 mv a0,s0 2d46: 3dcd jal 2c38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:135 FLAG_ACK_REQ); } 2d48: 6121 addi sp,sp,64 2d4a: ff0fd06f j 53a <__riscv_restore_0> 00002d4e : tcp_send_heartbeat(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:137 static void tcp_send_heartbeat(TcpStreamCtx_t *ctx) { 2d4e: fc8fd2ef jal t0,516 <__riscv_save_0> 2d52: 1141 addi sp,sp,-16 2d54: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:139 uint8_t payload[6]; qdx_write_u32_le(payload + 0, qdx_port_get_tick_ms()); 2d56: b4aff0ef jal ra,20a0 2d5a: 85aa mv a1,a0 2d5c: 0028 addi a0,sp,8 2d5e: cc7ff0ef jal ra,2a24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:140 payload[4] = 10; /* Placeholder CpuLoad */ 2d62: 6785 lui a5,0x1 2d64: 40a78793 addi a5,a5,1034 # 140a 2d68: 867c sh a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:143 payload[5] = 20; /* Placeholder MemUsage */ tcp_send_frame(ctx, CLASS_SYSTEM, TYPE_HEARTBEAT, payload, sizeof(payload), 2d6a: 0034 addi a3,sp,8 2d6c: 4781 li a5,0 2d6e: 4719 li a4,6 2d70: 4609 li a2,2 2d72: 4591 li a1,4 2d74: 8522 mv a0,s0 2d76: 35c9 jal 2c38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:145 0); } 2d78: 0141 addi sp,sp,16 2d7a: fc0fd06f j 53a <__riscv_restore_0> 00002d7e : tcp_send_ack(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:147 static void tcp_send_ack(TcpStreamCtx_t *ctx, uint16_t ack_seq, uint8_t status, 2d7e: f98fd2ef jal t0,516 <__riscv_save_0> 2d82: 1141 addi sp,sp,-16 2d84: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:150 uint16_t error_code) { uint8_t payload[5]; qdx_write_u16_le(payload + 0, ack_seq); 2d86: 0028 addi a0,sp,8 2d88: c95ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:152 payload[2] = status; qdx_write_u16_le(payload + 3, error_code); 2d8c: 00b10513 addi a0,sp,11 2d90: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:151 payload[2] = status; 2d92: 00010523 sb zero,10(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:152 qdx_write_u16_le(payload + 3, error_code); 2d96: c87ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:154 tcp_send_frame(ctx, CLASS_RESPONSE, TYPE_ACK_PAYLOAD, payload, 2d9a: 0034 addi a3,sp,8 2d9c: 4781 li a5,0 2d9e: 4715 li a4,5 2da0: 03000613 li a2,48 2da4: 458d li a1,3 2da6: 8522 mv a0,s0 2da8: 3d41 jal 2c38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:156 sizeof(payload), 0); } 2daa: 0141 addi sp,sp,16 2dac: f8efd06f j 53a <__riscv_restore_0> 00002db0 : recv_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:423 ctx->recv_len - length); ctx->recv_len -= length; } } static void recv_thread_entry(void *arg) { 2db0: f36fd2ef jal t0,4e6 <__riscv_save_12> parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:276 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 2db4: 20010bb7 lui s7,0x20010 2db8: 42cb8b93 addi s7,s7,1068 # 2001042c 2dbc: 6789 lui a5,0x2 2dbe: 20012a37 lui s4,0x20012 recv_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:423 static void recv_thread_entry(void *arg) { 2dc2: 1141 addi sp,sp,-16 2dc4: 892a mv s2,a0 parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:276 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 2dc6: 01778433 add s0,a5,s7 2dca: 42ca0a13 addi s4,s4,1068 # 2001242c recv_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:426 TcpStreamCtx_t *ctx = (TcpStreamCtx_t *)arg; while (ctx->is_running) { 2dce: 01394783 lbu a5,19(s2) 2dd2: e781 bnez a5,2dda D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:454 ctx->recv_len = 0; } qdx_port_delay_ms(10); } } 2dd4: 0141 addi sp,sp,16 2dd6: f4cfd06f j 522 <__riscv_restore_12> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:427 if (!ctx->is_connected) { 2dda: 01294783 lbu a5,18(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:428 qdx_port_delay_ms(100); 2dde: 06400513 li a0,100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:427 if (!ctx->is_connected) { 2de2: c7f1 beqz a5,2eae D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:433 if (sizeof(ctx->recv_buffer) - ctx->recv_len > 0) { 2de4: 6605 lui a2,0x1 2de6: 00c904b3 add s1,s2,a2 2dea: 4c8c lw a1,24(s1) 2dec: 0cc58a63 beq a1,a2,2ec0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:435 qdx_port_tcp_recv(ctx->sock, ctx->recv_buffer + ctx->recv_len, 2df0: 00092503 lw a0,0(s2) 2df4: 01890993 addi s3,s2,24 2df8: 8e0d sub a2,a2,a1 2dfa: 95ce add a1,a1,s3 2dfc: d96ff0ef jal ra,2392 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:438 if (bytes > 0) { 2e00: 54a05b63 blez a0,3356 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:439 ctx->recv_len += bytes; 2e04: 4c9c lw a5,24(s1) 2e06: 953e add a0,a0,a5 2e08: cc88 sw a0,24(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:440 ctx->last_activity_ms = qdx_port_get_tick_ms(); 2e0a: a96ff0ef jal ra,20a0 2e0e: 00a92223 sw a0,4(s2) tcp_process_rx_buffer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:353 while (ctx->recv_len >= HEADER_SIZE) { 2e12: 6785 lui a5,0x1 2e14: 97ca add a5,a5,s2 2e16: 4f90 lw a2,24(a5) 2e18: 47bd li a5,15 2e1a: 08c7f963 bgeu a5,a2,2eac 2e1e: 87ce mv a5,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:356 for (uint32_t i = 0; i <= ctx->recv_len - 2; i++) { 2e20: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:357 if (ctx->recv_buffer[i] == 0xAA && ctx->recv_buffer[i + 1] == 0x55) { 2e22: 0aa00593 li a1,170 2e26: 05500513 li a0,85 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:356 for (uint32_t i = 0; i <= ctx->recv_len - 2; i++) { 2e2a: ffe60713 addi a4,a2,-2 # ffe D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:357 if (ctx->recv_buffer[i] == 0xAA && ctx->recv_buffer[i + 1] == 0x55) { 2e2e: 0007c803 lbu a6,0(a5) # 1000 2e32: 00148693 addi a3,s1,1 2e36: 02b81f63 bne a6,a1,2e74 2e3a: 0017c803 lbu a6,1(a5) 2e3e: 02a81b63 bne a6,a0,2e74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:369 if (start_idx > 0) { 2e42: e4b1 bnez s1,2e8e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:378 uint8_t version = ctx->recv_buffer[2]; 2e44: 01a94483 lbu s1,26(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:379 uint16_t length = qdx_read_u16_le(ctx->recv_buffer + 3); 2e48: 01b90513 addi a0,s2,27 2e4c: bedff0ef jal ra,2a38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:381 if (version != PROTO_VERSION || length < HEADER_SIZE + CRC_SIZE) { 2e50: 02000793 li a5,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:379 uint16_t length = qdx_read_u16_le(ctx->recv_buffer + 3); 2e54: 8b2a mv s6,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:381 if (version != PROTO_VERSION || length < HEADER_SIZE + CRC_SIZE) { 2e56: 04f48f63 beq s1,a5,2eb4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:386 memmove(ctx->recv_buffer, ctx->recv_buffer + 2, ctx->recv_len - 2); 2e5a: 6485 lui s1,0x1 2e5c: 94ca add s1,s1,s2 2e5e: 4c90 lw a2,24(s1) 2e60: 01a90593 addi a1,s2,26 2e64: 854e mv a0,s3 2e66: 1679 addi a2,a2,-2 2e68: 11a0a0ef jal ra,cf82 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:387 ctx->recv_len -= 2; 2e6c: 4c9c lw a5,24(s1) 2e6e: 17f9 addi a5,a5,-2 2e70: cc9c sw a5,24(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:388 continue; 2e72: b745 j 2e12 2e74: 0785 addi a5,a5,1 2e76: 84b6 mv s1,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:356 for (uint32_t i = 0; i <= ctx->recv_len - 2; i++) { 2e78: fad77be3 bgeu a4,a3,2e2e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:364 ctx->recv_buffer[0] = ctx->recv_buffer[ctx->recv_len - 1]; 2e7c: 964a add a2,a2,s2 2e7e: 3a7c lbu a5,23(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:365 ctx->recv_len = 1; 2e80: 4705 li a4,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:364 ctx->recv_buffer[0] = ctx->recv_buffer[ctx->recv_len - 1]; 2e82: 00f90c23 sb a5,24(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:365 ctx->recv_len = 1; 2e86: 6785 lui a5,0x1 2e88: 97ca add a5,a5,s2 2e8a: cf98 sw a4,24(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:366 break; 2e8c: a005 j 2eac D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:371 memmove(ctx->recv_buffer, ctx->recv_buffer + start_idx, 2e8e: 8e05 sub a2,a2,s1 2e90: 009985b3 add a1,s3,s1 2e94: 854e mv a0,s3 2e96: 0ec0a0ef jal ra,cf82 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:373 ctx->recv_len -= start_idx; 2e9a: 6705 lui a4,0x1 2e9c: 974a add a4,a4,s2 2e9e: 4f1c lw a5,24(a4) 2ea0: 409784b3 sub s1,a5,s1 2ea4: cf04 sw s1,24(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:374 if (ctx->recv_len < HEADER_SIZE) 2ea6: 47bd li a5,15 2ea8: f897eee3 bltu a5,s1,2e44 recv_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:452 qdx_port_delay_ms(10); 2eac: 4529 li a0,10 2eae: a00ff0ef jal ra,20ae 2eb2: bf31 j 2dce tcp_process_rx_buffer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:381 if (version != PROTO_VERSION || length < HEADER_SIZE + CRC_SIZE) { 2eb4: 47c5 li a5,17 2eb6: faa7f2e3 bgeu a5,a0,2e5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:391 if (length > sizeof(ctx->recv_buffer)) { 2eba: 6785 lui a5,0x1 2ebc: 00a7f763 bgeu a5,a0,2eca D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:395 ctx->recv_len = 0; 2ec0: 6785 lui a5,0x1 2ec2: 97ca add a5,a5,s2 2ec4: 0007ac23 sw zero,24(a5) # 1018 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:396 break; 2ec8: b7d5 j 2eac D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:399 if (ctx->recv_len < length) { 2eca: 97ca add a5,a5,s2 2ecc: 4f9c lw a5,24(a5) 2ece: fca7efe3 bltu a5,a0,2eac D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:404 uint16_t received_crc = qdx_read_u16_le(ctx->recv_buffer + length - 2); 2ed2: ffe50593 addi a1,a0,-2 2ed6: 00b98533 add a0,s3,a1 2eda: c02e sw a1,0(sp) 2edc: b5dff0ef jal ra,2a38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:405 uint16_t calculated_crc = qdx_crc16_modbus(ctx->recv_buffer, length - 2); 2ee0: 4582 lw a1,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:404 uint16_t received_crc = qdx_read_u16_le(ctx->recv_buffer + length - 2); 2ee2: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:405 uint16_t calculated_crc = qdx_crc16_modbus(ctx->recv_buffer, length - 2); 2ee4: 854e mv a0,s3 2ee6: b73ff0ef jal ra,2a58 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:407 if (received_crc == calculated_crc) { 2eea: 04a49f63 bne s1,a0,2f48 parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:237 uint16_t hdr_seq = qdx_read_u16_le(packet + 5); 2eee: 01d90513 addi a0,s2,29 2ef2: b47ff0ef jal ra,2a38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:238 uint8_t hdr_flags = packet[15]; 2ef6: 02794783 lbu a5,39(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:237 uint16_t hdr_seq = qdx_read_u16_le(packet + 5); 2efa: 8daa mv s11,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:245 uint8_t cfg_updated = 0; 2efc: 4c81 li s9,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:238 uint8_t hdr_flags = packet[15]; 2efe: c03e sw a5,0(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:242 int payload_len = pkt_len - HEADER_SIZE - CRC_SIZE; 2f00: feeb0793 addi a5,s6,-18 2f04: c23e sw a5,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:250 while (parsed_len <= payload_len - 3) { 2f06: fecb0793 addi a5,s6,-20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:243 int parsed_len = 0; 2f0a: 4d01 li s10,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:241 int offset = HEADER_SIZE; 2f0c: 4c41 li s8,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:250 while (parsed_len <= payload_len - 3) { 2f0e: c43e sw a5,8(sp) 2f10: 47a2 lw a5,8(sp) 2f12: 02fd5363 bge s10,a5,2f38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:251 uint8_t type = packet[offset]; 2f16: 018987b3 add a5,s3,s8 2f1a: 239c lbu a5,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:252 uint16_t len = qdx_read_u16_le(packet + offset + 1); 2f1c: 001c0513 addi a0,s8,1 2f20: 954e add a0,a0,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:251 uint8_t type = packet[offset]; 2f22: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:252 uint16_t len = qdx_read_u16_le(packet + offset + 1); 2f24: b15ff0ef jal ra,2a38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:257 if (parsed_len + 3 + len > payload_len) { 2f28: 4692 lw a3,4(sp) 2f2a: 003d0713 addi a4,s10,3 2f2e: 972a add a4,a4,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:252 uint16_t len = qdx_read_u16_le(packet + offset + 1); 2f30: 8aaa mv s5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:257 if (parsed_len + 3 + len > payload_len) { 2f32: 47b2 lw a5,12(sp) 2f34: 02e6da63 bge a3,a4,2f68 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:337 if (cfg_updated && g_TcpLogic.config_cb && g_TcpLogic.has_valid_config) { 2f38: 3e0c9163 bnez s9,331a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:347 if (hdr_flags & FLAG_ACK_REQ) { 2f3c: 4782 lw a5,0(sp) 2f3e: 8bc1 andi a5,a5,16 2f40: c781 beqz a5,2f48 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:348 tcp_send_ack(ctx, hdr_seq, 0, 0); 2f42: 85ee mv a1,s11 2f44: 854a mv a0,s2 2f46: 3d25 jal 2d7e tcp_process_rx_buffer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:418 ctx->recv_len - length); 2f48: 6485 lui s1,0x1 2f4a: 94ca add s1,s1,s2 2f4c: 4c90 lw a2,24(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:417 memmove(ctx->recv_buffer, ctx->recv_buffer + length, 2f4e: 016985b3 add a1,s3,s6 2f52: 854e mv a0,s3 2f54: 41660633 sub a2,a2,s6 2f58: 02a0a0ef jal ra,cf82 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:419 ctx->recv_len -= length; 2f5c: 4c9c lw a5,24(s1) 2f5e: 41678b33 sub s6,a5,s6 2f62: 0164ac23 sw s6,24(s1) # 1018 2f66: b575 j 2e12 parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:263 const uint8_t *value = packet + offset + 3; 2f68: 003c0493 addi s1,s8,3 2f6c: 02000713 li a4,32 2f70: 94ce add s1,s1,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:265 switch (type) { 2f72: 24e78763 beq a5,a4,31c0 2f76: 00f76c63 bltu a4,a5,2f8e 2f7a: 4715 li a4,5 2f7c: 22e78563 beq a5,a4,31a6 2f80: 4741 li a4,16 2f82: 36e78263 beq a5,a4,32e6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:333 offset += (3 + len); 2f86: 0a8d addi s5,s5,3 2f88: 9c56 add s8,s8,s5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:334 parsed_len += (3 + len); 2f8a: 9d56 add s10,s10,s5 2f8c: b751 j 2f10 2f8e: 02300713 li a4,35 2f92: 28e78963 beq a5,a4,3224 2f96: 04000713 li a4,64 2f9a: 36e78163 beq a5,a4,32fc 2f9e: 02200713 li a4,34 2fa2: fee792e3 bne a5,a4,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:285 if (len >= sizeof(Config2D_t)) { 2fa6: 03c00793 li a5,60 2faa: fca7fee3 bgeu a5,a0,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:287 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 2fae: 5068 lw a0,100(s0) 2fb0: 928ff0ef jal ra,20d8 qdx_deserialize_config2d(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:177 cfg->Enabled = val[0]; 2fb4: 209c lbu a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:179 cfg->DeviceId = qdx_read_u16_le(val + 2); 2fb6: 00248513 addi a0,s1,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:177 cfg->Enabled = val[0]; 2fba: 08f40023 sb a5,128(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:178 cfg->IsLive = val[1]; 2fbe: 309c lbu a5,1(s1) 2fc0: 08f400a3 sb a5,129(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:179 cfg->DeviceId = qdx_read_u16_le(val + 2); 2fc4: a75ff0ef jal ra,2a38 2fc8: 08a41123 sh a0,130(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:180 cfg->Width = qdx_read_u16_le(val + 4); 2fcc: 00448513 addi a0,s1,4 2fd0: a69ff0ef jal ra,2a38 2fd4: 08a41223 sh a0,132(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:181 cfg->Height = qdx_read_u16_le(val + 6); 2fd8: 00648513 addi a0,s1,6 2fdc: a5dff0ef jal ra,2a38 2fe0: 08a41323 sh a0,134(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:182 cfg->Fps = val[8]; 2fe4: 249c lbu a5,8(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:183 cfg->Exposure = qdx_read_u32_le(val + 9); 2fe6: 00948513 addi a0,s1,9 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:182 cfg->Fps = val[8]; 2fea: 08f40423 sb a5,136(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:183 cfg->Exposure = qdx_read_u32_le(val + 9); 2fee: a55ff0ef jal ra,2a42 2ff2: 00855793 srli a5,a0,0x8 2ff6: 08a404a3 sb a0,137(s0) 2ffa: 08f40523 sb a5,138(s0) 2ffe: 01055793 srli a5,a0,0x10 3002: 8161 srli a0,a0,0x18 3004: 08a40623 sb a0,140(s0) 3008: 08f405a3 sb a5,139(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:184 cfg->AutoExposure = val[13]; 300c: 34dc lbu a5,13(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:186 cfg->MaskThreshold = (int16_t)qdx_read_u16_le(val + 15); 300e: 00f48513 addi a0,s1,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:184 cfg->AutoExposure = val[13]; 3012: 08f406a3 sb a5,141(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:185 cfg->MaskEnabled = val[14]; 3016: 24fc lbu a5,14(s1) 3018: 08f40723 sb a5,142(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:186 cfg->MaskThreshold = (int16_t)qdx_read_u16_le(val + 15); 301c: a1dff0ef jal ra,2a38 3020: 0542 slli a0,a0,0x10 3022: 8141 srli a0,a0,0x10 3024: 08a407a3 sb a0,143(s0) 3028: 8121 srli a0,a0,0x8 302a: 08a40823 sb a0,144(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:187 cfg->MaskWidth = qdx_read_u16_le(val + 17); 302e: 01148513 addi a0,s1,17 3032: a07ff0ef jal ra,2a38 3036: 08a408a3 sb a0,145(s0) 303a: 8121 srli a0,a0,0x8 303c: 08a40923 sb a0,146(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:188 cfg->MaskHeight = qdx_read_u16_le(val + 19); 3040: 01348513 addi a0,s1,19 3044: 9f5ff0ef jal ra,2a38 3048: 08a409a3 sb a0,147(s0) 304c: 8121 srli a0,a0,0x8 304e: 08a40a23 sb a0,148(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:189 cfg->Angle = (int16_t)qdx_read_u16_le(val + 21); 3052: 01548513 addi a0,s1,21 3056: 9e3ff0ef jal ra,2a38 305a: 0542 slli a0,a0,0x10 305c: 8141 srli a0,a0,0x10 305e: 08a40aa3 sb a0,149(s0) 3062: 8121 srli a0,a0,0x8 3064: 08a40b23 sb a0,150(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:190 cfg->TargetWidth = qdx_read_u16_le(val + 23); 3068: 01748513 addi a0,s1,23 306c: 9cdff0ef jal ra,2a38 3070: 08a40ba3 sb a0,151(s0) 3074: 8121 srli a0,a0,0x8 3076: 08a40c23 sb a0,152(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:191 cfg->TargetHeight = qdx_read_u16_le(val + 25); 307a: 01948513 addi a0,s1,25 307e: 9bbff0ef jal ra,2a38 3082: 08a40ca3 sb a0,153(s0) 3086: 8121 srli a0,a0,0x8 3088: 08a40d23 sb a0,154(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:192 cfg->TriggerMode = val[27]; 308c: 3cbc lbu a5,27(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:194 cfg->TriggerDelayMs = qdx_read_u16_le(val + 29); 308e: 01d48513 addi a0,s1,29 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:192 cfg->TriggerMode = val[27]; 3092: 08f40da3 sb a5,155(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:193 cfg->TriggerGpioLine = val[28]; 3096: 2cdc lbu a5,28(s1) 3098: 08f40e23 sb a5,156(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:194 cfg->TriggerDelayMs = qdx_read_u16_le(val + 29); 309c: 99dff0ef jal ra,2a38 30a0: 08a40ea3 sb a0,157(s0) 30a4: 8121 srli a0,a0,0x8 30a6: 08a40f23 sb a0,158(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:195 cfg->TriggerBurstCount = val[31]; 30aa: 3cfc lbu a5,31(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:196 cfg->TriggerInternalIntervalMs = qdx_read_u16_le(val + 32); 30ac: 02048513 addi a0,s1,32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:195 cfg->TriggerBurstCount = val[31]; 30b0: 08f40fa3 sb a5,159(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:196 cfg->TriggerInternalIntervalMs = qdx_read_u16_le(val + 32); 30b4: 985ff0ef jal ra,2a38 30b8: 0aa41023 sh a0,160(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:197 cfg->TriggerTemperatureThreshold = (int16_t)qdx_read_u16_le(val + 34); 30bc: 02248513 addi a0,s1,34 30c0: 979ff0ef jal ra,2a38 30c4: 0aa41123 sh a0,162(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:198 cfg->TriggerDebounceIntervalMs = qdx_read_u16_le(val + 36); 30c8: 02448513 addi a0,s1,36 30cc: 96dff0ef jal ra,2a38 30d0: 0aa41223 sh a0,164(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:199 cfg->TriggerCondition = val[38]; 30d4: 0264c783 lbu a5,38(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:200 cfg->TriggerRoiX = qdx_read_u16_le(val + 39); 30d8: 02748513 addi a0,s1,39 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:199 cfg->TriggerCondition = val[38]; 30dc: 0af40323 sb a5,166(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:200 cfg->TriggerRoiX = qdx_read_u16_le(val + 39); 30e0: 959ff0ef jal ra,2a38 30e4: 0aa403a3 sb a0,167(s0) 30e8: 8121 srli a0,a0,0x8 30ea: 0aa40423 sb a0,168(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:201 cfg->TriggerRoiY = qdx_read_u16_le(val + 41); 30ee: 02948513 addi a0,s1,41 30f2: 947ff0ef jal ra,2a38 30f6: 0aa404a3 sb a0,169(s0) 30fa: 8121 srli a0,a0,0x8 30fc: 0aa40523 sb a0,170(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:202 cfg->TriggerRoiW = qdx_read_u16_le(val + 43); 3100: 02b48513 addi a0,s1,43 3104: 935ff0ef jal ra,2a38 3108: 0aa405a3 sb a0,171(s0) 310c: 8121 srli a0,a0,0x8 310e: 0aa40623 sb a0,172(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:203 cfg->TriggerRoiH = qdx_read_u16_le(val + 45); 3112: 02d48513 addi a0,s1,45 3116: 923ff0ef jal ra,2a38 311a: 0aa406a3 sb a0,173(s0) 311e: 8121 srli a0,a0,0x8 3120: 0aa40723 sb a0,174(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:204 cfg->NGioDelay = qdx_read_u16_le(val + 47); 3124: 02f48513 addi a0,s1,47 3128: 911ff0ef jal ra,2a38 312c: 0aa407a3 sb a0,175(s0) 3130: 8121 srli a0,a0,0x8 3132: 0aa40823 sb a0,176(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:205 cfg->OutputGpioLine = val[49]; 3136: 0314c783 lbu a5,49(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:207 cfg->AlarmHoldMs = qdx_read_u16_le(val + 51); 313a: 03348513 addi a0,s1,51 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:205 cfg->OutputGpioLine = val[49]; 313e: 0af408a3 sb a5,177(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:206 cfg->AlarmGpioLine = val[50]; 3142: 0324c783 lbu a5,50(s1) 3146: 0af40923 sb a5,178(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:207 cfg->AlarmHoldMs = qdx_read_u16_le(val + 51); 314a: 8efff0ef jal ra,2a38 314e: 0aa409a3 sb a0,179(s0) 3152: 8121 srli a0,a0,0x8 3154: 0aa40a23 sb a0,180(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:208 cfg->StoreNgImagesOnly = val[53]; 3158: 0354c783 lbu a5,53(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:210 cfg->TrainingSampleThreshold = qdx_read_u16_le(val + 55); 315c: 03748513 addi a0,s1,55 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:208 cfg->StoreNgImagesOnly = val[53]; 3160: 0af40aa3 sb a5,181(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:209 cfg->TrainingEnabled = val[54]; 3164: 0364c783 lbu a5,54(s1) 3168: 0af40b23 sb a5,182(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:210 cfg->TrainingSampleThreshold = qdx_read_u16_le(val + 55); 316c: 8cdff0ef jal ra,2a38 3170: 0aa40ba3 sb a0,183(s0) 3174: 8121 srli a0,a0,0x8 3176: 0aa40c23 sb a0,184(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:211 cfg->ProcessingTimeoutMs = qdx_read_u16_le(val + 57); 317a: 03948513 addi a0,s1,57 317e: 8bbff0ef jal ra,2a38 3182: 0aa40ca3 sb a0,185(s0) 3186: 8121 srli a0,a0,0x8 3188: 0aa40d23 sb a0,186(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:212 cfg->MaxProcessingQueueSize = val[59]; 318c: 03b4c783 lbu a5,59(s1) 3190: 0af40da3 sb a5,187(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:213 cfg->Reserved = val[60]; 3194: 03c4c783 lbu a5,60(s1) 3198: 0af40e23 sb a5,188(s0) parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:289 g_TcpLogic.has_valid_config = 1; /* 任意配置到达即标记有效 */ 319c: 4785 li a5,1 319e: 06f40423 sb a5,104(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:291 qdx_port_mutex_unlock(g_TcpLogic.config_mutex); 31a2: 5068 lw a0,100(s0) 31a4: a8a5 j 321c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:267 if (len >= sizeof(DevIDAssignment_t)) { 31a6: 478d li a5,3 31a8: dca7ffe3 bgeu a5,a0,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:268 uint16_t new_id = qdx_read_u16_le(value); 31ac: 8526 mv a0,s1 31ae: 88bff0ef jal ra,2a38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:269 g_TcpLogic.pending_new_dev_id = new_id; 31b2: 02aba223 sw a0,36(s7) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:270 tcp_send_ack(ctx, hdr_seq, 0, 0); 31b6: 85ee mv a1,s11 31b8: 854a mv a0,s2 31ba: bc5ff0ef jal ra,2d7e 31be: b3e1 j 2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:275 if (len >= sizeof(ConfigCommon_t)) { 31c0: 47d9 li a5,22 31c2: dca7f2e3 bgeu a5,a0,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:276 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 31c6: 5068 lw a0,100(s0) 31c8: f11fe0ef jal ra,20d8 qdx_deserialize_config_common(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:165 for (int i = 0; i < 16; i++) 31cc: 4781 li a5,0 31ce: 46c1 li a3,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:166 cfg->PipelineId[i] = (char)val[i]; 31d0: 00f48633 add a2,s1,a5 31d4: 6709 lui a4,0x2 31d6: 06970713 addi a4,a4,105 # 2069 31da: 2210 lbu a2,0(a2) 31dc: 973e add a4,a4,a5 31de: 975e add a4,a4,s7 31e0: a310 sb a2,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:165 for (int i = 0; i < 16; i++) 31e2: 0785 addi a5,a5,1 31e4: fed796e3 bne a5,a3,31d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:167 cfg->PipelineType = val[16]; 31e8: 289c lbu a5,16(s1) parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:280 qdx_port_mutex_unlock(g_TcpLogic.config_mutex); 31ea: 064a2503 lw a0,100(s4) qdx_deserialize_config_common(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:167 cfg->PipelineType = val[16]; 31ee: 06fa0ca3 sb a5,121(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:168 cfg->WorkMode = val[17]; 31f2: 389c lbu a5,17(s1) 31f4: 06fa0d23 sb a5,122(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:169 cfg->ConfigTag = val[18]; 31f8: 28bc lbu a5,18(s1) 31fa: 06fa0da3 sb a5,123(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:170 cfg->StrictnessLevel = val[19]; 31fe: 38bc lbu a5,19(s1) 3200: 06fa0e23 sb a5,124(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:171 cfg->IsCustomMode = val[20]; 3204: 28dc lbu a5,20(s1) 3206: 06fa0ea3 sb a5,125(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:172 cfg->Reserved[0] = val[21]; 320a: 38dc lbu a5,21(s1) 320c: 06fa0f23 sb a5,126(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:173 cfg->Reserved[1] = val[22]; 3210: 28fc lbu a5,22(s1) 3212: 06fa0fa3 sb a5,127(s4) parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:278 g_TcpLogic.has_valid_config = 1; 3216: 4785 li a5,1 3218: 06fa0423 sb a5,104(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:291 qdx_port_mutex_unlock(g_TcpLogic.config_mutex); 321c: ecffe0ef jal ra,20ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:290 cfg_updated = 1; 3220: 4c85 li s9,1 3222: b395 j 2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:299 if (len >= sizeof(Config1D_t)) { 3224: 47e5 li a5,25 3226: d6a7f0e3 bgeu a5,a0,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:300 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 322a: 5068 lw a0,100(s0) 322c: eadfe0ef jal ra,20d8 qdx_deserialize_config1d(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:217 cfg->Enabled = val[0]; 3230: 209c lbu a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:220 cfg->BufferSize = qdx_read_u16_le(val + 3); 3232: 00348513 addi a0,s1,3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:217 cfg->Enabled = val[0]; 3236: 0af40ea3 sb a5,189(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:218 cfg->RunMode = val[1]; 323a: 309c lbu a5,1(s1) 323c: 0af40f23 sb a5,190(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:219 cfg->TriggerType = val[2]; 3240: 20bc lbu a5,2(s1) 3242: 0af40fa3 sb a5,191(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:220 cfg->BufferSize = qdx_read_u16_le(val + 3); 3246: ff2ff0ef jal ra,2a38 324a: 0ca41023 sh a0,192(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:221 cfg->TriggerTempLimit = (int16_t)qdx_read_u16_le(val + 5); 324e: 00548513 addi a0,s1,5 3252: fe6ff0ef jal ra,2a38 3256: 0ca41123 sh a0,194(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:222 cfg->StartPointsToRemove = qdx_read_u16_le(val + 7); 325a: 00748513 addi a0,s1,7 325e: fdaff0ef jal ra,2a38 3262: 0ca41223 sh a0,196(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:223 cfg->ReferenceLength = qdx_read_u16_le(val + 9); 3266: 00948513 addi a0,s1,9 326a: fceff0ef jal ra,2a38 326e: 0ca41323 sh a0,198(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:224 cfg->HighTimerLimit = qdx_read_u16_le(val + 11); 3272: 00b48513 addi a0,s1,11 3276: fc2ff0ef jal ra,2a38 327a: 0ca41423 sh a0,200(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:225 cfg->TimerCLimit = qdx_read_u16_le(val + 13); 327e: 00d48513 addi a0,s1,13 3282: fb6ff0ef jal ra,2a38 3286: 0ca41523 sh a0,202(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:226 cfg->NgCountLimit = val[15]; 328a: 34fc lbu a5,15(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:227 cfg->LSizeStart = qdx_read_u16_le(val + 16); 328c: 01048513 addi a0,s1,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:226 cfg->NgCountLimit = val[15]; 3290: 0cf40623 sb a5,204(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:227 cfg->LSizeStart = qdx_read_u16_le(val + 16); 3294: fa4ff0ef jal ra,2a38 3298: 0ca406a3 sb a0,205(s0) 329c: 8121 srli a0,a0,0x8 329e: 0ca40723 sb a0,206(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:228 cfg->RSizeStart = qdx_read_u16_le(val + 18); 32a2: 01248513 addi a0,s1,18 32a6: f92ff0ef jal ra,2a38 32aa: 0ca407a3 sb a0,207(s0) 32ae: 8121 srli a0,a0,0x8 32b0: 0ca40823 sb a0,208(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:229 cfg->NGioDelay = qdx_read_u16_le(val + 20); 32b4: 01448513 addi a0,s1,20 32b8: f80ff0ef jal ra,2a38 32bc: 0ca408a3 sb a0,209(s0) 32c0: 8121 srli a0,a0,0x8 32c2: 0ca40923 sb a0,210(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:230 cfg->OutputGpioLine = val[22]; 32c6: 28fc lbu a5,22(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:232 cfg->AlarmHoldMs = qdx_read_u16_le(val + 24); 32c8: 01848513 addi a0,s1,24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:230 cfg->OutputGpioLine = val[22]; 32cc: 0cf409a3 sb a5,211(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:231 cfg->AlarmGpioLine = val[23]; 32d0: 38fc lbu a5,23(s1) 32d2: 0cf40a23 sb a5,212(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:232 cfg->AlarmHoldMs = qdx_read_u16_le(val + 24); 32d6: f62ff0ef jal ra,2a38 32da: 0ca40aa3 sb a0,213(s0) 32de: 8121 srli a0,a0,0x8 32e0: 0ca40b23 sb a0,214(s0) parse_and_dispatch_tlv(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:302 g_TcpLogic.has_valid_config = 1; /* 任意配置到达即标记有效 */ 32e4: bd65 j 319c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:309 if (g_TcpLogic.temp_req_cb) { 32e6: 0e042783 lw a5,224(s0) 32ea: c8078ee3 beqz a5,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:314 if (len >= 18) { 32ee: 4745 li a4,17 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:313 uint8_t is2d = 0; 32f0: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:314 if (len >= 18) { 32f2: 01577363 bgeu a4,s5,32f8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:315 is2d = value[18]; /* index 18 in TemperatureFrameHeader_t is Is2D */ 32f6: 28a8 lbu a0,18(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:317 g_TcpLogic.temp_req_cb(is2d); 32f8: 9782 jalr a5 32fa: b171 j 2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:322 if (len >= sizeof(DetectionResult_t) && g_TcpLogic.detect_cb) { 32fc: 479d li a5,7 32fe: c8a7f4e3 bgeu a5,a0,2f86 3302: 0dc42783 lw a5,220(s0) 3306: c80780e3 beqz a5,2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:323 uint32_t frame_num = qdx_read_u32_le(value); 330a: 8526 mv a0,s1 330c: f36ff0ef jal ra,2a42 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:325 g_TcpLogic.detect_cb(frame_num, result_status); 3310: 0dc42783 lw a5,220(s0) 3314: 20cc lbu a1,4(s1) 3316: 9782 jalr a5 3318: b1bd j 2f86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:337 if (cfg_updated && g_TcpLogic.config_cb && g_TcpLogic.has_valid_config) { 331a: 0d842783 lw a5,216(s0) 331e: c0078fe3 beqz a5,2f3c 3322: 06844783 lbu a5,104(s0) 3326: c0078be3 beqz a5,2f3c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:341 qdx_port_mutex_lock(g_TcpLogic.config_mutex); 332a: 5068 lw a0,100(s0) 332c: dadfe0ef jal ra,20d8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:342 g_TcpLogic.config_cb(&g_TcpLogic.cached_common, &g_TcpLogic.cached_cfg2d, 3330: 0d842783 lw a5,216(s0) 3334: 20012637 lui a2,0x20012 3338: 200125b7 lui a1,0x20012 333c: 20012537 lui a0,0x20012 3340: 4e960613 addi a2,a2,1257 # 200124e9 3344: 4ac58593 addi a1,a1,1196 # 200124ac 3348: 49550513 addi a0,a0,1173 # 20012495 334c: 9782 jalr a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:344 qdx_port_mutex_unlock(g_TcpLogic.config_mutex); 334e: 5068 lw a0,100(s0) 3350: d9bfe0ef jal ra,20ea 3354: b6e5 j 2f3c recv_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:442 } else if (bytes < 0) { 3356: b4050be3 beqz a0,2eac D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:444 tcp_stream_disconnect(ctx); 335a: 854a mv a0,s2 335c: 8bfff0ef jal ra,2c1a 3360: b6b1 j 2eac 00003362 : manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:460 /* ============================================================ * Main Background Manager * ============================================================ */ static void manager_thread_entry(void *arg) { 3362: 99afd2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:465 while (1) { uint32_t now = qdx_port_get_tick_ms(); /* DevID Reassignment Handling */ if (g_TcpLogic.pending_new_dev_id >= 0) { 3366: 20010437 lui s0,0x20010 336a: 42c40413 addi s0,s0,1068 # 2001042c 336e: 200114b7 lui s1,0x20011 tcp_stream_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:88 ctx->recv_len = 0; 3372: 6a89 lui s5,0x2 3374: 42c48493 addi s1,s1,1068 # 2001142c manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:513 } if (g_TcpLogic.data_stream.is_connected) { if (now - g_TcpLogic.data_stream.last_heartbeat_ms > HEARTBEAT_INTERVAL_MS) { tcp_send_heartbeat(&g_TcpLogic.data_stream); 3378: 200119b7 lui s3,0x20011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:505 tcp_send_heartbeat(&g_TcpLogic.control_stream); 337c: 20010a37 lui s4,0x20010 tcp_stream_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:81 ctx->sock = qdx_port_tcp_connect(ip, port); 3380: 0000db37 lui s6,0xd D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:88 ctx->recv_len = 0; 3384: 9aa2 add s5,s5,s0 manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:462 uint32_t now = qdx_port_get_tick_ms(); 3386: d1bfe0ef jal ra,20a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:465 if (g_TcpLogic.pending_new_dev_id >= 0) { 338a: 505c lw a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:462 uint32_t now = qdx_port_get_tick_ms(); 338c: 892a mv s2,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:465 if (g_TcpLogic.pending_new_dev_id >= 0) { 338e: 0207c663 bltz a5,33ba D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:466 g_TcpLogic.dev_id = (uint16_t)g_TcpLogic.pending_new_dev_id; 3392: b01e sh a5,32(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:469 tcp_stream_disconnect(&g_TcpLogic.control_stream); 3394: 458a0513 addi a0,s4,1112 # 20010458 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:467 g_TcpLogic.pending_new_dev_id = -1; 3398: 57fd li a5,-1 339a: d05c sw a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:469 tcp_stream_disconnect(&g_TcpLogic.control_stream); 339c: 87fff0ef jal ra,2c1a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:470 tcp_stream_disconnect(&g_TcpLogic.data_stream); 33a0: 47498513 addi a0,s3,1140 # 20011474 33a4: 877ff0ef jal ra,2c1a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:474 qdx_port_delay_ms(500); 33a8: 1f400513 li a0,500 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:472 g_TcpLogic.control_stream.last_reconnect_ms = 0; 33ac: 02042c23 sw zero,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:473 g_TcpLogic.data_stream.last_reconnect_ms = 0; 33b0: 0404aa23 sw zero,84(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:518 g_TcpLogic.data_stream.last_heartbeat_ms = now; } } qdx_port_delay_ms(100); 33b4: cfbfe0ef jal ra,20ae 33b8: b7f9 j 3386 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:479 if (!g_TcpLogic.control_stream.is_connected) { 33ba: 03e44783 lbu a5,62(s0) 33be: e3a9 bnez a5,3400 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:480 if (now - g_TcpLogic.control_stream.last_reconnect_ms > 33c0: 5c1c lw a5,56(s0) 33c2: 6585 lui a1,0x1 33c4: bb858713 addi a4,a1,-1096 # bb8 33c8: 40f507b3 sub a5,a0,a5 33cc: 02f77a63 bgeu a4,a5,3400 tcp_stream_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:81 ctx->sock = qdx_port_tcp_connect(ip, port); 33d0: 58758593 addi a1,a1,1415 33d4: 2a0b0513 addi a0,s6,672 # d2a0 33d8: d5ffe0ef jal ra,2136 33dc: d448 sw a0,44(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:82 if (ctx->sock == NULL) 33de: cd11 beqz a0,33fa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:85 ctx->is_connected = 1; 33e0: 4785 li a5,1 33e2: 02f40f23 sb a5,62(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:86 ctx->last_activity_ms = qdx_port_get_tick_ms(); 33e6: cbbfe0ef jal ra,20a0 33ea: d808 sw a0,48(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:87 ctx->last_heartbeat_ms = ctx->last_activity_ms; 33ec: d848 sw a0,52(s0) manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:484 tcp_send_handshake(&g_TcpLogic.control_stream); 33ee: 458a0513 addi a0,s4,1112 tcp_stream_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:88 ctx->recv_len = 0; 33f2: 0404a223 sw zero,68(s1) manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:484 tcp_send_handshake(&g_TcpLogic.control_stream); 33f6: 8afff0ef jal ra,2ca4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:486 g_TcpLogic.control_stream.last_reconnect_ms = qdx_port_get_tick_ms(); 33fa: ca7fe0ef jal ra,20a0 33fe: dc08 sw a0,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:491 if (!g_TcpLogic.data_stream.is_connected) { 3400: 05a4c783 lbu a5,90(s1) 3404: 6585 lui a1,0x1 3406: e3a1 bnez a5,3446 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:492 if (now - g_TcpLogic.data_stream.last_reconnect_ms > RECONNECT_DELAY_MS) { 3408: 48fc lw a5,84(s1) 340a: bb858713 addi a4,a1,-1096 # bb8 340e: 40f907b3 sub a5,s2,a5 3412: 02f77a63 bgeu a4,a5,3446 tcp_stream_connect(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:81 ctx->sock = qdx_port_tcp_connect(ip, port); 3416: 58858593 addi a1,a1,1416 341a: 2a0b0513 addi a0,s6,672 341e: d19fe0ef jal ra,2136 3422: c4a8 sw a0,72(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:82 if (ctx->sock == NULL) 3424: cd11 beqz a0,3440 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:85 ctx->is_connected = 1; 3426: 4785 li a5,1 3428: 04f48d23 sb a5,90(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:86 ctx->last_activity_ms = qdx_port_get_tick_ms(); 342c: c75fe0ef jal ra,20a0 3430: c4e8 sw a0,76(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:87 ctx->last_heartbeat_ms = ctx->last_activity_ms; 3432: c8a8 sw a0,80(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:88 ctx->recv_len = 0; 3434: 060aa023 sw zero,96(s5) # 2060 manager_thread_entry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:495 tcp_send_handshake(&g_TcpLogic.data_stream); 3438: 47498513 addi a0,s3,1140 343c: 869ff0ef jal ra,2ca4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:497 g_TcpLogic.data_stream.last_reconnect_ms = qdx_port_get_tick_ms(); 3440: c61fe0ef jal ra,20a0 3444: c8e8 sw a0,84(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:502 if (g_TcpLogic.control_stream.is_connected) { 3446: 03e44783 lbu a5,62(s0) 344a: cf91 beqz a5,3466 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:503 if (now - g_TcpLogic.control_stream.last_heartbeat_ms > 344c: 585c lw a5,52(s0) 344e: 7d000713 li a4,2000 3452: 40f907b3 sub a5,s2,a5 3456: 00f77863 bgeu a4,a5,3466 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:505 tcp_send_heartbeat(&g_TcpLogic.control_stream); 345a: 458a0513 addi a0,s4,1112 345e: 8f1ff0ef jal ra,2d4e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:506 g_TcpLogic.control_stream.last_heartbeat_ms = now; 3462: 03242a23 sw s2,52(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:510 if (g_TcpLogic.data_stream.is_connected) { 3466: 05a4c783 lbu a5,90(s1) 346a: cf91 beqz a5,3486 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:511 if (now - g_TcpLogic.data_stream.last_heartbeat_ms > 346c: 48bc lw a5,80(s1) 346e: 7d000713 li a4,2000 3472: 40f907b3 sub a5,s2,a5 3476: 00f77863 bgeu a4,a5,3486 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:513 tcp_send_heartbeat(&g_TcpLogic.data_stream); 347a: 47498513 addi a0,s3,1140 347e: 8d1ff0ef jal ra,2d4e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:514 g_TcpLogic.data_stream.last_heartbeat_ms = now; 3482: 0524a823 sw s2,80(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:518 qdx_port_delay_ms(100); 3486: 06400513 li a0,100 348a: b72d j 33b4 0000348c : TcpLogic_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:526 /* ============================================================ * Public API Implementations * ============================================================ */ int8_t TcpLogic_Init(const uint8_t *deviceUUID, const uint8_t *authToken) { 348c: 88afd2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:527 memset(&g_TcpLogic, 0, sizeof(g_TcpLogic)); 3490: 20010437 lui s0,0x20010 3494: 6609 lui a2,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:526 int8_t TcpLogic_Init(const uint8_t *deviceUUID, const uint8_t *authToken) { 3496: 892a mv s2,a0 3498: 84ae mv s1,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:527 memset(&g_TcpLogic, 0, sizeof(g_TcpLogic)); 349a: 0e460613 addi a2,a2,228 # 20e4 349e: 4581 li a1,0 34a0: 42c40513 addi a0,s0,1068 # 2001042c 34a4: 8a2fd0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:529 if (deviceUUID) 34a8: 00090863 beqz s2,34b8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:530 memcpy(g_TcpLogic.uuid, deviceUUID, 16); 34ac: 4641 li a2,16 34ae: 85ca mv a1,s2 34b0: 42c40513 addi a0,s0,1068 34b4: 21d090ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:531 if (authToken) 34b8: 20010437 lui s0,0x20010 34bc: 42c40413 addi s0,s0,1068 # 2001042c 34c0: c499 beqz s1,34ce D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:532 memcpy(g_TcpLogic.auth_token, authToken, 16); 34c2: 4641 li a2,16 34c4: 85a6 mv a1,s1 34c6: 01040513 addi a0,s0,16 34ca: 207090ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:535 /* Default DevID = 101 */ g_TcpLogic.dev_id = 101; 34ce: 06500793 li a5,101 34d2: b01e sh a5,32(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:536 g_TcpLogic.pending_new_dev_id = -1; 34d4: 57fd li a5,-1 34d6: d05c sw a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:538 g_TcpLogic.config_mutex = qdx_port_mutex_create(); 34d8: bf3fe0ef jal ra,20ca 34dc: 6789 lui a5,0x2 34de: 97a2 add a5,a5,s0 34e0: d3e8 sw a0,100(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:540 if (g_TcpLogic.config_mutex == NULL) return -1; 34e2: 57fd li a5,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:539 if (g_TcpLogic.config_mutex == NULL) 34e4: c121 beqz a0,3524 tcp_stream_init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:67 memset(ctx, 0, sizeof(TcpStreamCtx_t)); 34e6: 6485 lui s1,0x1 34e8: 01c48913 addi s2,s1,28 # 101c 34ec: 20010537 lui a0,0x20010 34f0: 864a mv a2,s2 34f2: 4581 li a1,0 34f4: 45850513 addi a0,a0,1112 # 20010458 34f8: 84efd0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:68 ctx->label = label; 34fc: 0000d7b7 lui a5,0xd 3500: 27078793 addi a5,a5,624 # d270 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:67 memset(ctx, 0, sizeof(TcpStreamCtx_t)); 3504: 20011537 lui a0,0x20011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:68 ctx->label = label; 3508: c03c sw a5,64(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:67 memset(ctx, 0, sizeof(TcpStreamCtx_t)); 350a: 864a mv a2,s2 350c: 4581 li a1,0 350e: 47450513 addi a0,a0,1140 # 20011474 3512: 834fd0ef jal ra,546 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:68 ctx->label = label; 3516: 0000d7b7 lui a5,0xd 351a: 27878793 addi a5,a5,632 # d278 351e: 9426 add s0,s0,s1 3520: cc7c sw a5,92(s0) TcpLogic_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:545 tcp_stream_init(&g_TcpLogic.control_stream, "Control"); tcp_stream_init(&g_TcpLogic.data_stream, "Data"); return 0; 3522: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:546 } 3524: 853e mv a0,a5 3526: 814fd06f j 53a <__riscv_restore_0> 0000352a : TcpLogic_Start(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:548 void TcpLogic_Start(void) { 352a: fedfc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:549 g_TcpLogic.control_stream.is_running = 1; 352e: 200107b7 lui a5,0x20010 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:550 g_TcpLogic.data_stream.is_running = 1; 3532: 6405 lui s0,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:549 g_TcpLogic.control_stream.is_running = 1; 3534: 4705 li a4,1 3536: 42c78793 addi a5,a5,1068 # 2001042c 353a: 02e78fa3 sb a4,63(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:552 qdx_port_thread_create("tcp_mgr", manager_thread_entry, NULL, 2048, 3); 353e: 000035b7 lui a1,0x3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:550 g_TcpLogic.data_stream.is_running = 1; 3542: 97a2 add a5,a5,s0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:552 qdx_port_thread_create("tcp_mgr", manager_thread_entry, NULL, 2048, 3); 3544: 0000d537 lui a0,0xd D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:550 g_TcpLogic.data_stream.is_running = 1; 3548: 04e78da3 sb a4,91(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:552 qdx_port_thread_create("tcp_mgr", manager_thread_entry, NULL, 2048, 3); 354c: 80040693 addi a3,s0,-2048 # 800 <__stack_size> 3550: 470d li a4,3 3552: 4601 li a2,0 3554: 36258593 addi a1,a1,866 # 3362 3558: 28050513 addi a0,a0,640 # d280 355c: ba5fe0ef jal ra,2100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:553 qdx_port_thread_create("tcp_rx_c", recv_thread_entry, 3560: 000034b7 lui s1,0x3 3564: 20010637 lui a2,0x20010 3568: 0000d537 lui a0,0xd 356c: 80040693 addi a3,s0,-2048 3570: db048593 addi a1,s1,-592 # 2db0 3574: 4711 li a4,4 3576: 45860613 addi a2,a2,1112 # 20010458 357a: 28850513 addi a0,a0,648 # d288 357e: b83fe0ef jal ra,2100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:555 &g_TcpLogic.control_stream, 2048, 4); qdx_port_thread_create("tcp_rx_d", recv_thread_entry, &g_TcpLogic.data_stream, 3582: 20011637 lui a2,0x20011 3586: 0000d537 lui a0,0xd 358a: 4711 li a4,4 358c: 80040693 addi a3,s0,-2048 3590: 47460613 addi a2,a2,1140 # 20011474 3594: db048593 addi a1,s1,-592 3598: 29450513 addi a0,a0,660 # d294 359c: b65fe0ef jal ra,2100 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:557 2048, 4); } 35a0: f9bfc06f j 53a <__riscv_restore_0> 000035a4 : TcpLogic_RegisterConfigCallback(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:579 return 0; } void TcpLogic_RegisterConfigCallback(ConfigUpdateCallback_t cb) { g_TcpLogic.config_cb = cb; 35a4: 200127b7 lui a5,0x20012 35a8: 42c78793 addi a5,a5,1068 # 2001242c 35ac: 0ca7ac23 sw a0,216(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:580 } 35b0: 8082 ret 000035b2 : TcpLogic_RegisterDetectionCallback(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:583 void TcpLogic_RegisterDetectionCallback(DetectionResultCallback_t cb) { g_TcpLogic.detect_cb = cb; 35b2: 200127b7 lui a5,0x20012 35b6: 42c78793 addi a5,a5,1068 # 2001242c 35ba: 0ca7ae23 sw a0,220(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:584 } 35be: 8082 ret 000035c0 : TcpLogic_BuildAndSendTemperatureFrame(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:597 * ============================================================ */ int8_t TcpLogic_BuildAndSendTemperatureFrame(TcpTxBuffer_t *io_buffer, const PreprocessResult_t *processMeta, uint8_t frameType, uint8_t is2D) { 35c0: f2ffc2ef jal t0,4ee <__riscv_save_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:599 if (!g_TcpLogic.data_stream.is_connected || !io_buffer || !processMeta) 35c4: 20010ab7 lui s5,0x20010 35c8: 42ca8b13 addi s6,s5,1068 # 2001042c 35cc: 6985 lui s3,0x1 35ce: 99da add s3,s3,s6 35d0: 05a9c703 lbu a4,90(s3) # 105a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:597 uint8_t frameType, uint8_t is2D) { 35d4: a6010113 addi sp,sp,-1440 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:599 if (!g_TcpLogic.data_stream.is_connected || !io_buffer || !processMeta) 35d8: 18070663 beqz a4,3764 35dc: 87aa mv a5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:600 (discriminator 1) return -1; 35de: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:599 (discriminator 1) if (!g_TcpLogic.data_stream.is_connected || !io_buffer || !processMeta) 35e0: 0e078663 beqz a5,36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:599 (discriminator 2) 35e4: 0e058463 beqz a1,36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:601 if (io_buffer->ValidPayloadLen == 0) 35e8: 00c7a903 lw s2,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:602 return -2; 35ec: 5579 li a0,-2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:601 if (io_buffer->ValidPayloadLen == 0) 35ee: 0c090f63 beqz s2,36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:604 g_TcpLogic.frame_count++; 35f2: 028b2703 lw a4,40(s6) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:610 /* We need to prepend: TLV Header (3) + TemperatureFrameHeader_t (18) */ uint32_t tlv_wrapper_len = TLV_HEADER_SIZE + sizeof(TemperatureFrameHeader_t); /* Ensure application left enough head room */ if (io_buffer->HeadOffset < HEADER_SIZE + tlv_wrapper_len) { 35f6: 4780 lw s0,8(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:611 return -3; /* Not enough offset space allocated by user memory pool */ 35f8: 5575 li a0,-3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:604 g_TcpLogic.frame_count++; 35fa: 0705 addi a4,a4,1 35fc: 02eb2423 sw a4,40(s6) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:610 if (io_buffer->HeadOffset < HEADER_SIZE + tlv_wrapper_len) { 3600: 02600713 li a4,38 3604: 0c877463 bgeu a4,s0,36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:615 } /* Start writing right before the application payload */ uint8_t *tlv_start = 3608: 439c lw a5,0(a5) 360a: 84ae mv s1,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:616 io_buffer->pBuffer + io_buffer->HeadOffset - tlv_wrapper_len; 360c: 1425 addi s0,s0,-23 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:619 /* 1. Fill TLV Header manually via shift */ uint32_t tlv_value_len = 360e: 01490593 addi a1,s2,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:615 uint8_t *tlv_start = 3612: 943e add s0,s0,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:622 sizeof(TemperatureFrameHeader_t) + io_buffer->ValidPayloadLen; tlv_start[0] = TYPE_TEMP_FRAME; qdx_write_u16_le(tlv_start + 1, (uint16_t)tlv_value_len); 3614: 05c2 slli a1,a1,0x10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:621 tlv_start[0] = TYPE_TEMP_FRAME; 3616: 47c1 li a5,16 3618: a01c sb a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:622 qdx_write_u16_le(tlv_start + 1, (uint16_t)tlv_value_len); 361a: 81c1 srli a1,a1,0x10 361c: 00140513 addi a0,s0,1 3620: 8bb6 mv s7,a3 3622: 8c32 mv s8,a2 3624: bf8ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:628 /* 2. Fill TemperatureFrameHeader manually via shift to avoid alignment * faults */ uint8_t *temp_hdr = tlv_start + TLV_HEADER_SIZE; qdx_write_u32_le(temp_hdr + 0, processMeta->FrameNumber); 3628: 4c8c lw a1,24(s1) 362a: 00340513 addi a0,s0,3 362e: bf6ff0ef jal ra,2a24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:629 qdx_write_u16_le(temp_hdr + 4, processMeta->ValidWidth); 3632: 248e lhu a1,8(s1) 3634: 00740513 addi a0,s0,7 3638: be4ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:630 qdx_write_u16_le(temp_hdr + 6, processMeta->ValidHeight); 363c: 24ae lhu a1,10(s1) 363e: 00940513 addi a0,s0,9 3642: bdaff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:631 qdx_write_u16_le(temp_hdr + 8, (uint16_t)processMeta->MinTemp); 3646: 24ce lhu a1,12(s1) 3648: 00b40513 addi a0,s0,11 364c: bd0ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:632 qdx_write_u16_le(temp_hdr + 10, (uint16_t)processMeta->MaxTemp); 3650: 24ee lhu a1,14(s1) 3652: 00d40513 addi a0,s0,13 3656: bc6ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:633 qdx_write_u16_le(temp_hdr + 12, (uint16_t)processMeta->AvgTemp); 365a: 288e lhu a1,16(s1) 365c: 00f40513 addi a0,s0,15 3660: bbcff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:634 qdx_write_u16_le(temp_hdr + 14, (uint16_t)processMeta->RoiTemp); 3664: 28ae lhu a1,18(s1) 3666: 01140513 addi a0,s0,17 366a: bb2ff0ef jal ra,2a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:635 temp_hdr[16] = frameType; 366e: 018409a3 sb s8,19(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:636 temp_hdr[17] = processMeta->Status; 3672: 28dc lbu a5,20(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:637 temp_hdr[18] = is2D; 3674: 01740aa3 sb s7,21(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:638 temp_hdr[19] = 0; /* Reserved */ 3678: 00040b23 sb zero,22(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:636 temp_hdr[17] = processMeta->Status; 367c: a85c sb a5,20(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:641 /* Total payload length is the entire TLV block */ uint32_t total_tlv_len = TLV_HEADER_SIZE + tlv_value_len; 367e: 01790b93 addi s7,s2,23 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:644 /* 3. Handle Fragmentation if necessary */ if (total_tlv_len <= MAX_FRAGMENT_PAYLOAD) { 3682: 57800793 li a5,1400 3686: 0577e763 bltu a5,s7,36d4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:647 /* No fragmentation needed, build frame in place at the front */ uint8_t *frame_start = tlv_start - HEADER_SIZE; uint16_t seq = g_TcpLogic.data_stream.sequence++; 368a: 0589d703 lhu a4,88(s3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:649 int final_len = qdx_build_frame_inplace( 368e: 020b5683 lhu a3,32(s6) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:646 uint8_t *frame_start = tlv_start - HEADER_SIZE; 3692: 1441 addi s0,s0,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:647 uint16_t seq = g_TcpLogic.data_stream.sequence++; 3694: 00170793 addi a5,a4,1 3698: c43a sw a4,8(sp) 369a: 04f99c23 sh a5,88(s3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:649 int final_len = qdx_build_frame_inplace( 369e: c236 sw a3,4(sp) 36a0: a01fe0ef jal ra,20a0 36a4: 4722 lw a4,8(sp) 36a6: 4692 lw a3,4(sp) 36a8: 010b9613 slli a2,s7,0x10 36ac: 87aa mv a5,a0 36ae: 4801 li a6,0 36b0: 8241 srli a2,a2,0x10 36b2: 4589 li a1,2 36b4: 8522 mv a0,s0 36b6: c70ff0ef jal ra,2b26 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:654 frame_start, CLASS_DATA, (uint16_t)total_tlv_len, g_TcpLogic.dev_id, seq, qdx_port_get_tick_ms(), 0); int32_t sent = qdx_port_tcp_send(g_TcpLogic.data_stream.sock, frame_start, final_len); 36ba: 862a mv a2,a0 36bc: 0489a503 lw a0,72(s3) 36c0: 85a2 mv a1,s0 36c2: c83fe0ef jal ra,2344 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:655 return (sent >= 0) ? 0 : -1; 36c6: 857d srai a0,a0,0x1f 36c8: 0562 slli a0,a0,0x18 36ca: 8561 srai a0,a0,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:694 offset += chunk_len; } return 0; } 36cc: 5a010113 addi sp,sp,1440 36d0: e57fc06f j 526 <__riscv_restore_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:666 (total_tlv_len + MAX_FRAGMENT_PAYLOAD - 1) / MAX_FRAGMENT_PAYLOAD; 36d4: 58e90913 addi s2,s2,1422 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:665 uint32_t frag_count = 36d8: 02f95933 divu s2,s2,a5 36dc: 20011a37 lui s4,0x20011 36e0: 42ca8a93 addi s5,s5,1068 36e4: 42ca0a13 addi s4,s4,1068 # 2001142c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:668 for (uint32_t i = 0; i < frag_count; i++) { 36e8: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:663 uint32_t offset = 0; 36ea: 4981 li s3,0 36ec: 57800c93 li s9,1400 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:673 uint8_t flags = (i == frag_count - 1) ? FLAG_LAST_FRAGMENT : 0; 36f0: fff90d13 addi s10,s2,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:668 (discriminator 1) for (uint32_t i = 0; i < frag_count; i++) { 36f4: 01249463 bne s1,s2,36fc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:693 return 0; 36f8: 4501 li a0,0 36fa: bfc9 j 36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:669 uint32_t chunk_len = total_tlv_len - offset; 36fc: 413b8b33 sub s6,s7,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:670 if (chunk_len > MAX_FRAGMENT_PAYLOAD) 3700: 016cf463 bgeu s9,s6,3708 3704: 57800b13 li s6,1400 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:673 uint8_t flags = (i == frag_count - 1) ? FLAG_LAST_FRAGMENT : 0; 3708: 02000893 li a7,32 370c: 009d0363 beq s10,s1,3712 3710: 4881 li a7,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:674 (discriminator 4) uint16_t seq = g_TcpLogic.data_stream.sequence++; 3712: 058a5783 lhu a5,88(s4) 3716: c646 sw a7,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:680 (discriminator 4) frag_buf, CLASS_DATA, tlv_start + offset, (uint16_t)chunk_len, 3718: 01340c33 add s8,s0,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:674 (discriminator 4) uint16_t seq = g_TcpLogic.data_stream.sequence++; 371c: 00178713 addi a4,a5,1 3720: 04ea1c23 sh a4,88(s4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:679 (discriminator 4) int frame_len = qdx_build_fragment_frame( 3724: 020ad703 lhu a4,32(s5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:674 (discriminator 4) uint16_t seq = g_TcpLogic.data_stream.sequence++; 3728: c43e sw a5,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:679 (discriminator 4) int frame_len = qdx_build_fragment_frame( 372a: c23a sw a4,4(sp) 372c: 975fe0ef jal ra,20a0 3730: 48b2 lw a7,12(sp) 3732: 47a2 lw a5,8(sp) 3734: 4712 lw a4,4(sp) 3736: 010b1693 slli a3,s6,0x10 373a: 882a mv a6,a0 373c: 8662 mv a2,s8 373e: 4589 li a1,2 3740: 82c1 srli a3,a3,0x10 3742: 0848 addi a0,sp,20 3744: c52ff0ef jal ra,2b96 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:684 (discriminator 4) qdx_port_tcp_send(g_TcpLogic.data_stream.sock, frag_buf, frame_len); 3748: 862a mv a2,a0 374a: 048a2503 lw a0,72(s4) 374e: 084c addi a1,sp,20 3750: bf5fe0ef jal ra,2344 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:685 (discriminator 4) if (sent < 0) { 3754: 00055a63 bgez a0,3768 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:686 tcp_stream_disconnect(&g_TcpLogic.data_stream); 3758: 20011537 lui a0,0x20011 375c: 47450513 addi a0,a0,1140 # 20011474 3760: cbaff0ef jal ra,2c1a D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:600 return -1; 3764: 557d li a0,-1 3766: b79d j 36cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:690 (discriminator 2) offset += chunk_len; 3768: 99da add s3,s3,s6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Middle/QDXnetworkStack/qdx_tcp_logic.c:668 (discriminator 2) for (uint32_t i = 0; i < frag_count; i++) { 376a: 0485 addi s1,s1,1 376c: b761 j 36f4 0000376e : prvInsertBlockIntoFreeList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:399 BlockLink_t * pxIterator; uint8_t * puc; /* Iterate through the list until a block is found that has a higher address * than the block being inserted. */ for( pxIterator = &xStart; pxIterator->pxNextFreeBlock < pxBlockToInsert; pxIterator = pxIterator->pxNextFreeBlock ) 376e: 200007b7 lui a5,0x20000 3772: 0fc78793 addi a5,a5,252 # 200000fc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:399 (discriminator 1) 3776: 4398 lw a4,0(a5) 3778: 02a76f63 bltu a4,a0,37b6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:408 /* Do the block being inserted, and the block it is being inserted after * make a contiguous block of memory? */ puc = ( uint8_t * ) pxIterator; if( ( puc + pxIterator->xBlockSize ) == ( uint8_t * ) pxBlockToInsert ) 377c: 43d0 lw a2,4(a5) 377e: 00c786b3 add a3,a5,a2 3782: 00d51663 bne a0,a3,378e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:410 { pxIterator->xBlockSize += pxBlockToInsert->xBlockSize; 3786: 4154 lw a3,4(a0) 3788: 853e mv a0,a5 378a: 96b2 add a3,a3,a2 378c: c3d4 sw a3,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:422 /* Do the block being inserted, and the block it is being inserted before * make a contiguous block of memory? */ puc = ( uint8_t * ) pxBlockToInsert; if( ( puc + pxBlockToInsert->xBlockSize ) == ( uint8_t * ) pxIterator->pxNextFreeBlock ) 378e: 4150 lw a2,4(a0) 3790: 00c506b3 add a3,a0,a2 3794: 00d71c63 bne a4,a3,37ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:424 { if( pxIterator->pxNextFreeBlock != pxEnd ) 3798: 200006b7 lui a3,0x20000 379c: 0e46a683 lw a3,228(a3) # 200000e4 37a0: 00d70663 beq a4,a3,37ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:427 { /* Form one big block from the two blocks. */ pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize; 37a4: 4354 lw a3,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:428 pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock->pxNextFreeBlock; 37a6: 4318 lw a4,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:427 pxBlockToInsert->xBlockSize += pxIterator->pxNextFreeBlock->xBlockSize; 37a8: 96b2 add a3,a3,a2 37aa: c154 sw a3,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:437 pxBlockToInsert->pxNextFreeBlock = pxEnd; } } else { pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; 37ac: c118 sw a4,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:444 /* If the block being inserted plugged a gab, so was merged with the block * before and the block after, then it's pxNextFreeBlock pointer will have * already been set, and should not be set here as that would make it point * to itself. */ if( pxIterator != pxBlockToInsert ) 37ae: 00f50363 beq a0,a5,37b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:446 { pxIterator->pxNextFreeBlock = pxBlockToInsert; 37b2: c388 sw a0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:452 } else { mtCOVERAGE_TEST_MARKER(); } } 37b4: 8082 ret 37b6: 87ba mv a5,a4 37b8: bf7d j 3776 000037ba : pvPortMalloc(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:118 { 37ba: d43fc2ef jal t0,4fc <__riscv_save_4> 37be: 1141 addi sp,sp,-16 37c0: c62a sw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:122 vTaskSuspendAll(); 37c2: 190010ef jal ra,4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:126 if( pxEnd == NULL ) 37c6: 200006b7 lui a3,0x20000 37ca: 0e46a783 lw a5,228(a3) # 200000e4 37ce: 20000637 lui a2,0x20000 37d2: 0e468693 addi a3,a3,228 37d6: 0e860613 addi a2,a2,232 # 200000e8 37da: 4532 lw a0,12(sp) 37dc: efa1 bnez a5,3834 prvHeapInit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:352 uxAddress = ( size_t ) ucHeap; 37de: 20012737 lui a4,0x20012 37e2: 51070793 addi a5,a4,1296 # 20012510 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:354 if( ( uxAddress & portBYTE_ALIGNMENT_MASK ) != 0 ) 37e6: 00f7f593 andi a1,a5,15 37ea: 51070713 addi a4,a4,1296 37ee: c581 beqz a1,37f6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:356 uxAddress += ( portBYTE_ALIGNMENT - 1 ); 37f0: 00f78713 addi a4,a5,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:357 uxAddress &= ~( ( size_t ) portBYTE_ALIGNMENT_MASK ); 37f4: 9b41 andi a4,a4,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:365 xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap; 37f6: 200005b7 lui a1,0x20000 37fa: 0fc58593 addi a1,a1,252 # 200000fc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:366 xStart.xBlockSize = ( size_t ) 0; 37fe: 0005a223 sw zero,4(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:365 xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap; 3802: c198 sw a4,0(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:371 uxAddress -= xHeapStructSize; 3804: 658d lui a1,0x3 3806: 15c1 addi a1,a1,-16 3808: 97ae add a5,a5,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:372 uxAddress &= ~( ( size_t ) portBYTE_ALIGNMENT_MASK ); 380a: 9bc1 andi a5,a5,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:374 pxEnd->xBlockSize = 0; 380c: 0007a223 sw zero,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:375 pxEnd->pxNextFreeBlock = NULL; 3810: 0007a023 sw zero,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:380 pxFirstFreeBlock->xBlockSize = uxAddress - ( size_t ) pxFirstFreeBlock; 3814: 40e785b3 sub a1,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:373 pxEnd = ( void * ) uxAddress; 3818: c29c sw a5,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:381 pxFirstFreeBlock->pxNextFreeBlock = pxEnd; 381a: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:384 xMinimumEverFreeBytesRemaining = pxFirstFreeBlock->xBlockSize; 381c: 200007b7 lui a5,0x20000 3820: 0eb7a823 sw a1,240(a5) # 200000f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:385 xFreeBytesRemaining = pxFirstFreeBlock->xBlockSize; 3824: 200007b7 lui a5,0x20000 3828: 0eb7a623 sw a1,236(a5) # 200000ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:388 xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 ); 382c: 800007b7 lui a5,0x80000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:380 pxFirstFreeBlock->xBlockSize = uxAddress - ( size_t ) pxFirstFreeBlock; 3830: c34c sw a1,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:388 xBlockAllocatedBit = ( ( size_t ) 1 ) << ( ( sizeof( size_t ) * heapBITS_PER_BYTE ) - 1 ); 3832: c21c sw a5,0(a2) pvPortMalloc(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:139 if( ( xWantedSize & xBlockAllocatedBit ) == 0 ) 3834: 00062a03 lw s4,0(a2) 3838: 00aa77b3 and a5,s4,a0 383c: e385 bnez a5,385c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:143 if( ( xWantedSize > 0 ) && 383e: fff50793 addi a5,a0,-1 3842: 5739 li a4,-18 3844: 00f76c63 bltu a4,a5,385c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:146 xWantedSize += xHeapStructSize; 3848: 01050793 addi a5,a0,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:149 if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0x00 ) 384c: 00f7f713 andi a4,a5,15 3850: c349 beqz a4,38d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:152 if( ( xWantedSize + ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ) ) 3852: ff07f713 andi a4,a5,-16 3856: 0741 addi a4,a4,16 3858: 06e7ec63 bltu a5,a4,38d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:120 void * pvReturn = NULL; 385c: 4481 li s1,0 385e: a091 j 38a2 3860: 8722 mv a4,s0 3862: 842e mv s0,a1 3864: a069 j 38ee D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:211 (discriminator 2) pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; 3866: c158 sw a4,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:212 (discriminator 2) pxBlock->xBlockSize = xWantedSize; 3868: c05c sw a5,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:215 (discriminator 2) prvInsertBlockIntoFreeList( pxNewBlockLink ); 386a: f05ff0ef jal ra,376e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:222 xFreeBytesRemaining -= pxBlock->xBlockSize; 386e: 4058 lw a4,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:224 if( xFreeBytesRemaining < xMinimumEverFreeBytesRemaining ) 3870: 200006b7 lui a3,0x20000 3874: 0f068693 addi a3,a3,240 # 200000f0 3878: 4290 lw a2,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:222 xFreeBytesRemaining -= pxBlock->xBlockSize; 387a: 40e907b3 sub a5,s2,a4 387e: 00f9a023 sw a5,0(s3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:224 if( xFreeBytesRemaining < xMinimumEverFreeBytesRemaining ) 3882: 00c7f363 bgeu a5,a2,3888 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:226 xMinimumEverFreeBytesRemaining = xFreeBytesRemaining; 3886: c29c sw a5,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:237 xNumberOfSuccessfulAllocations++; 3888: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:235 pxBlock->xBlockSize |= xBlockAllocatedBit; 388c: 00ea6733 or a4,s4,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:237 xNumberOfSuccessfulAllocations++; 3890: 0f478793 addi a5,a5,244 # 200000f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:235 pxBlock->xBlockSize |= xBlockAllocatedBit; 3894: c058 sw a4,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:237 xNumberOfSuccessfulAllocations++; 3896: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:192 pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize ); 3898: 04c1 addi s1,s1,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:236 pxBlock->pxNextFreeBlock = NULL; 389a: 00042023 sw zero,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:237 xNumberOfSuccessfulAllocations++; 389e: 0705 addi a4,a4,1 38a0: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:256 ( void ) xTaskResumeAll(); 38a2: 276010ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:272 configASSERT( ( ( ( size_t ) pvReturn ) & ( size_t ) portBYTE_ALIGNMENT_MASK ) == 0 ); 38a6: 00f4f793 andi a5,s1,15 38aa: cbd1 beqz a5,393e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:272 (discriminator 1) 38ac: 67a1 lui a5,0x8 38ae: 80078793 addi a5,a5,-2048 # 7800 38b2: 30079073 csrw mstatus,a5 38b6: 0000d637 lui a2,0xd 38ba: 0000d537 lui a0,0xd 38be: 2bc60613 addi a2,a2,700 # d2bc 38c2: 11000593 li a1,272 38c6: 2e450513 addi a0,a0,740 # d2e4 38ca: 1ac090ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:272 (discriminator 6) 38ce: a001 j 38ce 38d0: 87ba mv a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:173 if( ( xWantedSize > 0 ) && ( xWantedSize <= xFreeBytesRemaining ) ) 38d2: 20000737 lui a4,0x20000 38d6: 0ec72903 lw s2,236(a4) # 200000ec 38da: 0ec70993 addi s3,a4,236 38de: f6f96fe3 bltu s2,a5,385c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:178 pxBlock = xStart.pxNextFreeBlock; 38e2: 20000737 lui a4,0x20000 38e6: 0fc72403 lw s0,252(a4) # 200000fc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:177 pxPreviousBlock = &xStart; 38ea: 0fc70713 addi a4,a4,252 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:180 while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) ) 38ee: 4050 lw a2,4(s0) 38f0: 00f67463 bgeu a2,a5,38f8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:180 (discriminator 1) 38f4: 400c lw a1,0(s0) 38f6: f5ad bnez a1,3860 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:188 if( pxBlock != pxEnd ) 38f8: 4294 lw a3,0(a3) 38fa: f68681e3 beq a3,s0,385c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:196 pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; 38fe: 4014 lw a3,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:192 pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + xHeapStructSize ); 3900: 4304 lw s1,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:196 pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; 3902: c314 sw a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:200 if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) 3904: 40f60733 sub a4,a2,a5 3908: 02000693 li a3,32 390c: f6e6f1e3 bgeu a3,a4,386e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:206 pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize ); 3910: 00f40533 add a0,s0,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:207 configASSERT( ( ( ( size_t ) pxNewBlockLink ) & portBYTE_ALIGNMENT_MASK ) == 0 ); 3914: 00f57693 andi a3,a0,15 3918: d6b9 beqz a3,3866 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:207 (discriminator 1) 391a: 67a1 lui a5,0x8 391c: 80078793 addi a5,a5,-2048 # 7800 3920: 30079073 csrw mstatus,a5 3924: 0000d637 lui a2,0xd 3928: 0000d537 lui a0,0xd 392c: 2bc60613 addi a2,a2,700 # d2bc 3930: 0cf00593 li a1,207 3934: 2e450513 addi a0,a0,740 # d2e4 3938: 13e090ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:207 (discriminator 4) 393c: a001 j 393c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:274 } 393e: 8526 mv a0,s1 3940: 0141 addi sp,sp,16 3942: beffc06f j 530 <__riscv_restore_4> 00003946 : vPortFree(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:282 if( pv != NULL ) 3946: c15d beqz a0,39ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:278 { 3948: bcffc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:292 configASSERT( ( pxLink->xBlockSize & xBlockAllocatedBit ) != 0 ); 394c: 200007b7 lui a5,0x20000 3950: ff452703 lw a4,-12(a0) 3954: 0e87a783 lw a5,232(a5) # 200000e8 3958: 842a mv s0,a0 395a: 00f776b3 and a3,a4,a5 395e: e29d bnez a3,3984 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:292 (discriminator 1) 3960: 67a1 lui a5,0x8 3962: 80078793 addi a5,a5,-2048 # 7800 3966: 30079073 csrw mstatus,a5 396a: 0000d637 lui a2,0xd 396e: 0000d537 lui a0,0xd 3972: 2bc60613 addi a2,a2,700 # d2bc 3976: 12400593 li a1,292 397a: 2e450513 addi a0,a0,740 # d2e4 397e: 0f8090ef jal ra,ca76 3982: a001 j 3982 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:293 (discriminator 2) configASSERT( pxLink->pxNextFreeBlock == NULL ); 3984: ff052683 lw a3,-16(a0) 3988: c29d beqz a3,39ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:293 (discriminator 1) 398a: 67a1 lui a5,0x8 398c: 80078793 addi a5,a5,-2048 # 7800 3990: 30079073 csrw mstatus,a5 3994: 0000d637 lui a2,0xd 3998: 0000d537 lui a0,0xd 399c: 2bc60613 addi a2,a2,700 # d2bc 39a0: 12500593 li a1,293 39a4: 2e450513 addi a0,a0,740 # d2e4 39a8: 0ce090ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:293 (discriminator 2) 39ac: a001 j 39ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:301 pxLink->xBlockSize &= ~xBlockAllocatedBit; 39ae: fff7c793 not a5,a5 39b2: 8ff9 and a5,a5,a4 39b4: fef52a23 sw a5,-12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:303 vTaskSuspendAll(); 39b8: 79b000ef jal ra,4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:306 xFreeBytesRemaining += pxLink->xBlockSize; 39bc: 200007b7 lui a5,0x20000 39c0: 0ec78793 addi a5,a5,236 # 200000ec 39c4: 4394 lw a3,0(a5) 39c6: ff442703 lw a4,-12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:308 prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) ); 39ca: ff040513 addi a0,s0,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:306 xFreeBytesRemaining += pxLink->xBlockSize; 39ce: 9736 add a4,a4,a3 39d0: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:308 prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) ); 39d2: d9dff0ef jal ra,376e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:309 xNumberOfSuccessfulFrees++; 39d6: 200007b7 lui a5,0x20000 39da: 0f878793 addi a5,a5,248 # 200000f8 39de: 4398 lw a4,0(a5) 39e0: 0705 addi a4,a4,1 39e2: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:311 ( void ) xTaskResumeAll(); 39e4: 134010ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/MemMang/heap_4.c:323 } 39e8: b53fc06f j 53a <__riscv_restore_0> 39ec: 8082 ret 000039ee : NVIC_SetPriority(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:286 39ee: e000e7b7 lui a5,0xe000e 39f2: 5741 li a4,-16 39f4: 40e78723 sb a4,1038(a5) # e000e40e <__freertos_irq_stack_top+0xbffde40e> 39f8: 40e78623 sb a4,1036(a5) vPortSetupTimerInterrupt(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:161 /* set software is lowest priority */ NVIC_SetPriority(Software_IRQn,0xf0); /* set systick is lowest priority */ NVIC_SetPriority(SysTicK_IRQn,0xf0); SysTick->CTLR= 0; 39fc: e000f7b7 lui a5,0xe000f 3a00: 0007a023 sw zero,0(a5) # e000f000 <__freertos_irq_stack_top+0xbffdf000> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:162 SysTick->SR = 0; 3a04: 0007a223 sw zero,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:163 SysTick->CNT = 0; 3a08: 4681 li a3,0 3a0a: c794 sw a3,8(a5) 3a0c: 4701 li a4,0 3a0e: c7d8 sw a4,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:164 SysTick->CMP = configCPU_CLOCK_HZ/configTICK_RATE_HZ; 3a10: 8101a583 lw a1,-2032(gp) # 20000050 3a14: 1f400713 li a4,500 3a18: 4681 li a3,0 3a1a: 02e5d633 divu a2,a1,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:165 SysTick->CTLR= 0xf; 3a1e: 473d li a4,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:164 SysTick->CMP = configCPU_CLOCK_HZ/configTICK_RATE_HZ; 3a20: cb90 sw a2,16(a5) 3a22: cbd4 sw a3,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:165 SysTick->CTLR= 0xf; 3a24: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:166 } 3a26: 8082 ret 00003a28 : xPortStartScheduler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:172 #endif /* ( configMTIME_BASE_ADDRESS != 0 ) && ( configMTIME_BASE_ADDRESS != 0 ) */ /*-----------------------------------------------------------*/ BaseType_t xPortStartScheduler( void ) { 3a28: aeffc2ef jal t0,516 <__riscv_save_0> 3a2c: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:177 extern void xPortStartFirstTask( void ); #if( configASSERT_DEFINED == 1 ) { volatile uint32_t mtvec = 0; 3a2e: c602 sw zero,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:181 /* Check the least significant two bits of mtvec are 0b11 - indicating multiply vector mode. */ __asm volatile( "csrr %0, mtvec" : "=r"( mtvec ) ); 3a30: 305027f3 csrr a5,mtvec 3a34: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:182 configASSERT( ( mtvec & 0x03UL ) == 0x3 ); 3a36: 47b2 lw a5,12(sp) 3a38: 470d li a4,3 3a3a: 8b8d andi a5,a5,3 3a3c: 02e78463 beq a5,a4,3a64 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:182 (discriminator 1) 3a40: 67a1 lui a5,0x8 3a42: 80078793 addi a5,a5,-2048 # 7800 3a46: 30079073 csrw mstatus,a5 3a4a: 0000d637 lui a2,0xd 3a4e: 0000d537 lui a0,0xd 3a52: 30860613 addi a2,a2,776 # d308 3a56: 0b600593 li a1,182 3a5a: 2e450513 addi a0,a0,740 # d2e4 3a5e: 018090ef jal ra,ca76 3a62: a001 j 3a62 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:187 (discriminator 2) /* Check alignment of the interrupt stack - which is the same as the stack that was being used by main() prior to the scheduler being started. */ configASSERT( ( xISRStackTop & portBYTE_ALIGNMENT_MASK ) == 0 ); 3a64: 200307b7 lui a5,0x20030 3a68: 00078793 mv a5,a5 3a6c: 8bbd andi a5,a5,15 3a6e: c39d beqz a5,3a94 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:187 (discriminator 1) 3a70: 67a1 lui a5,0x8 3a72: 80078793 addi a5,a5,-2048 # 7800 3a76: 30079073 csrw mstatus,a5 3a7a: 0000d637 lui a2,0xd 3a7e: 0000d537 lui a0,0xd 3a82: 30860613 addi a2,a2,776 # d308 3a86: 0bb00593 li a1,187 3a8a: 2e450513 addi a0,a0,740 # d2e4 3a8e: 7e9080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:187 (discriminator 2) 3a92: a001 j 3a92 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:200 (discriminator 2) #endif /* configASSERT_DEFINED */ /* If there is a CLINT then it is ok to use the default implementation in this file, otherwise vPortSetupTimerInterrupt() must be implemented to configure whichever clock is to be used to generate the tick interrupt. */ vPortSetupTimerInterrupt(); 3a94: f5bff0ef jal ra,39ee NVIC_EnableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:170 (discriminator 2) NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 3a98: e000e7b7 lui a5,0xe000e 3a9c: 6705 lui a4,0x1 3a9e: 10e7a023 sw a4,256(a5) # e000e100 <__freertos_irq_stack_top+0xbffde100> 3aa2: 6711 lui a4,0x4 3aa4: 10e7a023 sw a4,256(a5) xPortStartScheduler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:219 (discriminator 2) NVIC_EnableIRQ(Software_IRQn); } #endif /* ( configMTIME_BASE_ADDRESS != 0 ) && ( configMTIMECMP_BASE_ADDRESS != 0 ) */ /* Initialise the critical nesting count ready for the first task. */ uxCriticalNesting = 0; 3aa8: 8001ac23 sw zero,-2024(gp) # 20000058 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:220 (discriminator 2) xPortStartFirstTask(); 3aac: 855fc0ef jal ra,300 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:225 (discriminator 2) /* Should not get here as after calling xPortStartFirstTask() only tasks should be executing. */ return pdFAIL; } 3ab0: 4501 li a0,0 3ab2: 0141 addi sp,sp,16 3ab4: a87fc06f j 53a <__riscv_restore_0> 00003ab8 : SysTick_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:237 } /*-----------------------------------------------------------*/ void SysTick_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); void SysTick_Handler( void ) { GET_INT_SP(); 3ab8: 34011173 csrrw sp,mscratch,sp D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:238 portDISABLE_INTERRUPTS(); 3abc: 67a1 lui a5,0x8 3abe: 80078793 addi a5,a5,-2048 # 7800 3ac2: 30079073 csrw mstatus,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:239 SysTick->SR=0; 3ac6: e000f7b7 lui a5,0xe000f 3aca: 0007a223 sw zero,4(a5) # e000f004 <__freertos_irq_stack_top+0xbffdf004> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:240 if( xTaskIncrementTick() != pdFALSE ) 3ace: 69f000ef jal ra,496c 3ad2: c511 beqz a0,3ade NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 NVIC->IPSR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 3ad4: e000e7b7 lui a5,0xe000e 3ad8: 6711 lui a4,0x4 3ada: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> SysTick_Handler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:244 { portYIELD(); } portENABLE_INTERRUPTS(); 3ade: 67a1 lui a5,0x8 3ae0: 88878793 addi a5,a5,-1912 # 7888 3ae4: 30079073 csrw mstatus,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:245 FREE_INT_SP(); 3ae8: 34011173 csrrw sp,mscratch,sp D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:246 } 3aec: 30200073 mret 00003af0 : vPortEnterCritical(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:251 /*-----------------------------------------------------------*/ void vPortEnterCritical( void ) { portDISABLE_INTERRUPTS(); 3af0: 67a1 lui a5,0x8 3af2: 80078793 addi a5,a5,-2048 # 7800 3af6: 30079073 csrw mstatus,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:252 uxCriticalNesting++; 3afa: 81818793 addi a5,gp,-2024 # 20000058 3afe: 4398 lw a4,0(a5) 3b00: 0705 addi a4,a4,1 3b02: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:253 } 3b04: 8082 ret 00003b06 : vPortExitCritical(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:258 /*-----------------------------------------------------------*/ void vPortExitCritical( void ) { configASSERT( uxCriticalNesting ); 3b06: 81818713 addi a4,gp,-2024 # 20000058 3b0a: 431c lw a5,0(a4) 3b0c: e78d bnez a5,3b36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:257 (discriminator 1) { 3b0e: a09fc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:258 (discriminator 1) configASSERT( uxCriticalNesting ); 3b12: 67a1 lui a5,0x8 3b14: 80078793 addi a5,a5,-2048 # 7800 3b18: 30079073 csrw mstatus,a5 3b1c: 0000d637 lui a2,0xd 3b20: 0000d537 lui a0,0xd 3b24: 30860613 addi a2,a2,776 # d308 3b28: 10200593 li a1,258 3b2c: 2e450513 addi a0,a0,740 # d2e4 3b30: 747080ef jal ra,ca76 3b34: a001 j 3b34 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:259 (discriminator 2) uxCriticalNesting--; 3b36: 17fd addi a5,a5,-1 3b38: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:261 (discriminator 2) if( uxCriticalNesting == 0 ) 3b3a: e791 bnez a5,3b46 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:263 { portENABLE_INTERRUPTS(); 3b3c: 67a1 lui a5,0x8 3b3e: 88878793 addi a5,a5,-1912 # 7888 3b42: 30079073 csrw mstatus,a5 3b46: 8082 ret 00003b48 : xPortSetInterruptMask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:270 } /*-----------------------------------------------------------*/ portUBASE_TYPE xPortSetInterruptMask(void) { portUBASE_TYPE uvalue=0; __asm volatile("csrrw %0, mstatus, %1":"=r"(uvalue):"r"(0x7800)); 3b48: 6521 lui a0,0x8 3b4a: 80050513 addi a0,a0,-2048 # 7800 3b4e: 30051573 csrrw a0,mstatus,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:272 return uvalue; } 3b52: 8082 ret 00003b54 : vPortClearInterruptMask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:277 /*-----------------------------------------------------------*/ void vPortClearInterruptMask(portUBASE_TYPE uvalue) { __asm volatile("csrw mstatus, %0"::"r"(uvalue)); 3b54: 30051073 csrw mstatus,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/portable/GCC/RISC-V/port.c:278 } 3b58: 8082 ret 00003b5a : vListInitialise(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:55 void vListInitialise( List_t * const pxList ) { /* The list structure contains a list item which is used to mark the * end of the list. To initialise the list the list end is inserted * as the only list entry. */ pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ 3b5a: 00850793 addi a5,a0,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:59 /* The list end value is the highest possible value in the list to * ensure it remains at the end of the list. */ pxList->xListEnd.xItemValue = portMAX_DELAY; 3b5e: 577d li a4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:55 pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ 3b60: c15c sw a5,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:59 pxList->xListEnd.xItemValue = portMAX_DELAY; 3b62: c518 sw a4,8(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:63 /* The list end next and previous pointers point to itself so we know * when the list is empty. */ pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ 3b64: c55c sw a5,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:64 pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. */ 3b66: c91c sw a5,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:66 pxList->uxNumberOfItems = ( UBaseType_t ) 0U; 3b68: 00052023 sw zero,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:72 /* Write known values into the list if * configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ); listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ); } 3b6c: 8082 ret 00003b6e : vListInitialiseItem(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:78 /*-----------------------------------------------------------*/ void vListInitialiseItem( ListItem_t * const pxItem ) { /* Make sure the list item is not recorded as being on a list. */ pxItem->pxContainer = NULL; 3b6e: 00052823 sw zero,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:84 /* Write known values into the list item if * configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); } 3b72: 8082 ret 00003b74 : vListInsert(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:121 void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) { ListItem_t * pxIterator; const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; 3b74: 4198 lw a4,0(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:137 * new list item should be placed after it. This ensures that TCBs which are * stored in ready lists (all of which have the same xItemValue value) get a * share of the CPU. However, if the xItemValue is the same as the back marker * the iteration loop below will not end. Therefore the value is checked * first, and the algorithm slightly modified if necessary. */ if( xValueOfInsertion == portMAX_DELAY ) 3b76: 56fd li a3,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:168 * 5) If the FreeRTOS port supports interrupt nesting then ensure that * the priority of the tick interrupt is at or below * configMAX_SYSCALL_INTERRUPT_PRIORITY. **********************************************************************/ for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. *//*lint !e440 The iterator moves to a different value, not xValueOfInsertion. */ 3b78: 00850793 addi a5,a0,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:137 if( xValueOfInsertion == portMAX_DELAY ) 3b7c: 00d71e63 bne a4,a3,3b98 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:139 pxIterator = pxList->xListEnd.pxPrevious; 3b80: 491c lw a5,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:175 /* There is nothing to do here, just iterating to the wanted * insertion position. */ } } pxNewListItem->pxNext = pxIterator->pxNext; 3b82: 43d8 lw a4,4(a5) 3b84: c1d8 sw a4,4(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:176 pxNewListItem->pxNext->pxPrevious = pxNewListItem; 3b86: c70c sw a1,8(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:177 pxNewListItem->pxPrevious = pxIterator; 3b88: c59c sw a5,8(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:178 pxIterator->pxNext = pxNewListItem; 3b8a: c3cc sw a1,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:184 /* Remember which list the item is in. This allows fast removal of the * item later. */ pxNewListItem->pxContainer = pxList; ( pxList->uxNumberOfItems )++; 3b8c: 411c lw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:182 pxNewListItem->pxContainer = pxList; 3b8e: c988 sw a0,16(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:184 ( pxList->uxNumberOfItems )++; 3b90: 0785 addi a5,a5,1 3b92: c11c sw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:185 } 3b94: 8082 ret 3b96: 87b6 mv a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:168 (discriminator 1) for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 !e9087 The mini list structure is used as the list end to save RAM. This is checked and valid. *//*lint !e440 The iterator moves to a different value, not xValueOfInsertion. */ 3b98: 43d4 lw a3,4(a5) 3b9a: 4290 lw a2,0(a3) 3b9c: fec77de3 bgeu a4,a2,3b96 3ba0: b7cd j 3b82 00003ba2 : uxListRemove(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:194 { /* The list item knows which list it is in. Obtain the list from the list * item. */ List_t * const pxList = pxItemToRemove->pxContainer; pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; 3ba2: 4154 lw a3,4(a0) 3ba4: 4518 lw a4,8(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:192 List_t * const pxList = pxItemToRemove->pxContainer; 3ba6: 491c lw a5,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:194 pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; 3ba8: c698 sw a4,8(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:195 pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; 3baa: c354 sw a3,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:201 /* Only used during decision coverage testing. */ mtCOVERAGE_TEST_DELAY(); /* Make sure the index is left pointing to a valid item. */ if( pxList->pxIndex == pxItemToRemove ) 3bac: 43d4 lw a3,4(a5) 3bae: 00a69363 bne a3,a0,3bb4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:203 { pxList->pxIndex = pxItemToRemove->pxPrevious; 3bb2: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:211 { mtCOVERAGE_TEST_MARKER(); } pxItemToRemove->pxContainer = NULL; ( pxList->uxNumberOfItems )--; 3bb4: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:210 pxItemToRemove->pxContainer = NULL; 3bb6: 00052823 sw zero,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:211 ( pxList->uxNumberOfItems )--; 3bba: 177d addi a4,a4,-1 3bbc: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:213 return pxList->uxNumberOfItems; 3bbe: 4388 lw a0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/list.c:214 } 3bc0: 8082 ret 00003bc2 : prvIsQueueEmpty(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2385 taskEXIT_CRITICAL(); } /*-----------------------------------------------------------*/ static BaseType_t prvIsQueueEmpty( const Queue_t * pxQueue ) { 3bc2: 955fc2ef jal t0,516 <__riscv_save_0> 3bc6: 1141 addi sp,sp,-16 3bc8: c62a sw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2388 BaseType_t xReturn; taskENTER_CRITICAL(); 3bca: f27ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2390 { if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) 3bce: 4532 lw a0,12(sp) 3bd0: 5d00 lw s0,56(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2399 else { xReturn = pdFALSE; } } taskEXIT_CRITICAL(); 3bd2: f35ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2402 return xReturn; } 3bd6: 00143513 seqz a0,s0 3bda: 0141 addi sp,sp,16 3bdc: 95ffc06f j 53a <__riscv_restore_0> 00003be0 : prvCopyDataToQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2163 { 3be0: 937fc2ef jal t0,516 <__riscv_save_0> 3be4: 8932 mv s2,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2171 if( pxQueue->uxItemSize == ( UBaseType_t ) 0 ) 3be6: 4130 lw a2,64(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2169 uxMessagesWaiting = pxQueue->uxMessagesWaiting; 3be8: 5d04 lw s1,56(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2163 { 3bea: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2171 if( pxQueue->uxItemSize == ( UBaseType_t ) 0 ) 3bec: ee09 bnez a2,3c06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2175 if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) 3bee: 411c lw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2164 BaseType_t xReturn = pdFALSE; 3bf0: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2175 if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) 3bf2: e791 bnez a5,3bfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2178 xReturn = xTaskPriorityDisinherit( pxQueue->u.xSemaphore.xMutexHolder ); 3bf4: 4408 lw a0,8(s0) 3bf6: 4ea010ef jal ra,50e0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2179 pxQueue->u.xSemaphore.xMutexHolder = NULL; 3bfa: 00042423 sw zero,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2237 pxQueue->uxMessagesWaiting = uxMessagesWaiting + ( UBaseType_t ) 1; 3bfe: 0485 addi s1,s1,1 3c00: dc04 sw s1,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2240 } 3c02: 939fc06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2188 else if( xPosition == queueSEND_TO_BACK ) 3c06: 02091063 bnez s2,3c26 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2190 ( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 !e9087 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. */ 3c0a: 4148 lw a0,4(a0) 3c0c: 2c4090ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2191 pxQueue->pcWriteTo += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ 3c10: 405c lw a5,4(s0) 3c12: 4038 lw a4,64(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2164 BaseType_t xReturn = pdFALSE; 3c14: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2191 pxQueue->pcWriteTo += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ 3c16: 97ba add a5,a5,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2193 if( pxQueue->pcWriteTo >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ 3c18: 4418 lw a4,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2191 pxQueue->pcWriteTo += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ 3c1a: c05c sw a5,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2193 if( pxQueue->pcWriteTo >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ 3c1c: fee7e1e3 bltu a5,a4,3bfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2195 pxQueue->pcWriteTo = pxQueue->pcHead; 3c20: 401c lw a5,0(s0) 3c22: c05c sw a5,4(s0) 3c24: bfe9 j 3bfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2204 ( void ) memcpy( ( void * ) pxQueue->u.xQueue.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e9087 !e418 MISRA exception as the casts are only redundant for some ports. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. Assert checks null pointer only used when length is 0. */ 3c26: 4548 lw a0,12(a0) 3c28: 2a8090ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2205 pxQueue->u.xQueue.pcReadFrom -= pxQueue->uxItemSize; 3c2c: 403c lw a5,64(s0) 3c2e: 4458 lw a4,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2207 if( pxQueue->u.xQueue.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ 3c30: 4014 lw a3,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2205 pxQueue->u.xQueue.pcReadFrom -= pxQueue->uxItemSize; 3c32: 40f007b3 neg a5,a5 3c36: 973e add a4,a4,a5 3c38: c458 sw a4,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2207 if( pxQueue->u.xQueue.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ 3c3a: 00d77563 bgeu a4,a3,3c44 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2209 pxQueue->u.xQueue.pcReadFrom = ( pxQueue->u.xQueue.pcTail - pxQueue->uxItemSize ); 3c3e: 4418 lw a4,8(s0) 3c40: 97ba add a5,a5,a4 3c42: c45c sw a5,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2216 if( xPosition == queueOVERWRITE ) 3c44: 4789 li a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2164 BaseType_t xReturn = pdFALSE; 3c46: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2216 if( xPosition == queueOVERWRITE ) 3c48: faf91be3 bne s2,a5,3bfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2218 if( uxMessagesWaiting > ( UBaseType_t ) 0 ) 3c4c: d8cd beqz s1,3bfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2224 --uxMessagesWaiting; 3c4e: 14fd addi s1,s1,-1 3c50: b77d j 3bfe 00003c52 : prvCopyDataFromQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2246 if( pxQueue->uxItemSize != ( UBaseType_t ) 0 ) 3c52: 4130 lw a2,64(a0) 3c54: c215 beqz a2,3c78 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2245 { 3c56: 8c1fc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2248 pxQueue->u.xQueue.pcReadFrom += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ 3c5a: 4558 lw a4,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2250 if( pxQueue->u.xQueue.pcReadFrom >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ 3c5c: 4514 lw a3,8(a0) 3c5e: 87aa mv a5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2248 pxQueue->u.xQueue.pcReadFrom += pxQueue->uxItemSize; /*lint !e9016 Pointer arithmetic on char types ok, especially in this use case where it is the clearest way of conveying intent. */ 3c60: 9732 add a4,a4,a2 3c62: c558 sw a4,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2250 if( pxQueue->u.xQueue.pcReadFrom >= pxQueue->u.xQueue.pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ 3c64: 00d76463 bltu a4,a3,3c6c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2252 pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead; 3c68: 4118 lw a4,0(a0) 3c6a: c558 sw a4,12(a0) 3c6c: 852e mv a0,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2259 ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.xQueue.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 !e9087 MISRA exception as the casts are only redundant for some ports. Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. Cast to void required by function signature and safe as no alignment requirement and copy length specified in bytes. */ 3c6e: 47cc lw a1,12(a5) 3c70: 260090ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2261 } 3c74: 8c7fc06f j 53a <__riscv_restore_0> 3c78: 8082 ret 00003c7a : prvUnlockQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2265 { 3c7a: 89dfc2ef jal t0,516 <__riscv_save_0> 3c7e: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2272 taskENTER_CRITICAL(); 3c80: e71ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2274 int8_t cTxLock = pxQueue->cTxLock; 3c84: 04544483 lbu s1,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2327 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) 3c88: 02440913 addi s2,s0,36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2274 int8_t cTxLock = pxQueue->cTxLock; 3c8c: 04e2 slli s1,s1,0x18 3c8e: 84e1 srai s1,s1,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2277 while( cTxLock > queueLOCKED_UNMODIFIED ) 3c90: 02904863 bgtz s1,3cc0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2348 pxQueue->cTxLock = queueUNLOCKED; 3c94: 57fd li a5,-1 3c96: 04f402a3 sb a5,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2350 taskEXIT_CRITICAL(); 3c9a: e6dff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2353 taskENTER_CRITICAL(); 3c9e: e53ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2355 int8_t cRxLock = pxQueue->cRxLock; 3ca2: 04444483 lbu s1,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2361 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) 3ca6: 01040913 addi s2,s0,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2355 int8_t cRxLock = pxQueue->cRxLock; 3caa: 04e2 slli s1,s1,0x18 3cac: 84e1 srai s1,s1,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2357 while( cRxLock > queueLOCKED_UNMODIFIED ) 3cae: 02904563 bgtz s1,3cd8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2378 pxQueue->cRxLock = queueUNLOCKED; 3cb2: 57fd li a5,-1 3cb4: 04f40223 sb a5,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2380 taskEXIT_CRITICAL(); 3cb8: e4fff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2381 } 3cbc: 87ffc06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2325 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) 3cc0: 505c lw a5,36(s0) 3cc2: dbe9 beqz a5,3c94 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2327 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) 3cc4: 854a mv a0,s2 3cc6: 178010ef jal ra,4e3e 3cca: c119 beqz a0,3cd0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2331 vTaskMissedYield(); 3ccc: 33e010ef jal ra,500a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2345 --cTxLock; 3cd0: 14fd addi s1,s1,-1 3cd2: 04e2 slli s1,s1,0x18 3cd4: 84e1 srai s1,s1,0x18 3cd6: bf6d j 3c90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2359 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) 3cd8: 481c lw a5,16(s0) 3cda: dfe1 beqz a5,3cb2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2361 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) 3cdc: 854a mv a0,s2 3cde: 160010ef jal ra,4e3e 3ce2: c119 beqz a0,3ce8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2363 vTaskMissedYield(); 3ce4: 326010ef jal ra,500a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2370 --cRxLock; 3ce8: 14fd addi s1,s1,-1 3cea: 04e2 slli s1,s1,0x18 3cec: 84e1 srai s1,s1,0x18 3cee: b7c1 j 3cae 00003cf0 : xQueueGenericReset(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:268 { 3cf0: 827fc2ef jal t0,516 <__riscv_save_0> 3cf4: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:272 configASSERT( pxQueue ); 3cf6: e11d bnez a0,3d1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:272 (discriminator 1) 3cf8: 67a1 lui a5,0x8 3cfa: 80078793 addi a5,a5,-2048 # 7800 3cfe: 30079073 csrw mstatus,a5 3d02: 0000d637 lui a2,0xd 3d06: 0000d537 lui a0,0xd 3d0a: 33060613 addi a2,a2,816 # d330 3d0e: 11000593 li a1,272 3d12: 2e450513 addi a0,a0,740 # d2e4 3d16: 561080ef jal ra,ca76 3d1a: a001 j 3d1a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:275 (discriminator 1) ( pxQueue->uxLength >= 1U ) && 3d1c: 5d5c lw a5,60(a0) 3d1e: c62e sw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:274 (discriminator 1) if( ( pxQueue != NULL ) && 3d20: 842a mv s0,a0 3d22: c7bd beqz a5,3d90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:277 ( ( SIZE_MAX / pxQueue->uxLength ) >= pxQueue->uxItemSize ) ) 3d24: 4138 lw a4,64(a0) 3d26: 02e7b7b3 mulhu a5,a5,a4 3d2a: e3bd bnez a5,3d90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:279 taskENTER_CRITICAL(); 3d2c: dc5ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:281 pxQueue->u.xQueue.pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3d30: 4030 lw a2,64(s0) 3d32: 5c58 lw a4,60(s0) 3d34: 4014 lw a3,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:282 pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U; 3d36: 02042c23 sw zero,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:281 pxQueue->u.xQueue.pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3d3a: 02e607b3 mul a5,a2,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:288 if( xNewQueue == pdFALSE ) 3d3e: 45b2 lw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:283 pxQueue->pcWriteTo = pxQueue->pcHead; 3d40: c054 sw a3,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:281 pxQueue->u.xQueue.pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3d42: 00f68733 add a4,a3,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:284 pxQueue->u.xQueue.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - 1U ) * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3d46: 8f91 sub a5,a5,a2 3d48: 97b6 add a5,a5,a3 3d4a: c45c sw a5,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:285 pxQueue->cRxLock = queueUNLOCKED; 3d4c: 57fd li a5,-1 3d4e: 04f40223 sb a5,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:281 pxQueue->u.xQueue.pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3d52: c418 sw a4,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:286 pxQueue->cTxLock = queueUNLOCKED; 3d54: 04f402a3 sb a5,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:288 if( xNewQueue == pdFALSE ) 3d58: e19d bnez a1,3d7e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:295 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) 3d5a: 481c lw a5,16(s0) 3d5c: cb99 beqz a5,3d72 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:297 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) 3d5e: 01040513 addi a0,s0,16 3d62: 0dc010ef jal ra,4e3e 3d66: c511 beqz a0,3d72 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 3d68: e000e7b7 lui a5,0xe000e 3d6c: 6711 lui a4,0x4 3d6e: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xQueueGenericReset(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:318 taskEXIT_CRITICAL(); 3d72: d95ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:330 } 3d76: 4505 li a0,1 3d78: 0141 addi sp,sp,16 3d7a: fc0fc06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:314 vListInitialise( &( pxQueue->xTasksWaitingToSend ) ); 3d7e: 01040513 addi a0,s0,16 3d82: dd9ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:315 vListInitialise( &( pxQueue->xTasksWaitingToReceive ) ); 3d86: 02440513 addi a0,s0,36 3d8a: dd1ff0ef jal ra,3b5a 3d8e: b7d5 j 3d72 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:325 (discriminator 1) configASSERT( xReturn != pdFAIL ); 3d90: 67a1 lui a5,0x8 3d92: 80078793 addi a5,a5,-2048 # 7800 3d96: 30079073 csrw mstatus,a5 3d9a: 0000d637 lui a2,0xd 3d9e: 0000d537 lui a0,0xd 3da2: 33060613 addi a2,a2,816 # d330 3da6: 14500593 li a1,325 3daa: 2e450513 addi a0,a0,740 # d2e4 3dae: 4c9080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:325 (discriminator 3) 3db2: a001 j 3db2 00003db4 : xQueueGenericCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:401 { 3db4: f62fc2ef jal t0,516 <__riscv_save_0> 3db8: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:406 if( ( uxQueueLength > ( UBaseType_t ) 0 ) && 3dba: c131 beqz a0,3dfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:408 (discriminator 1) ( ( SIZE_MAX / uxQueueLength ) >= uxItemSize ) && 3dbc: 02a5b7b3 mulhu a5,a1,a0 3dc0: 84aa mv s1,a0 3dc2: ef95 bnez a5,3dfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:410 ( ( SIZE_MAX - sizeof( Queue_t ) ) >= ( uxQueueLength * uxItemSize ) ) ) 3dc4: 02b50533 mul a0,a0,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:408 ( ( SIZE_MAX / uxQueueLength ) >= uxItemSize ) && 3dc8: fb700793 li a5,-73 3dcc: 02a7e963 bltu a5,a0,3dfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:426 pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); /*lint !e9087 !e9079 see comment above. */ 3dd0: 04850513 addi a0,a0,72 3dd4: c62e sw a1,12(sp) 3dd6: 9e5ff0ef jal ra,37ba 3dda: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:428 if( pxNewQueue != NULL ) 3ddc: cd09 beqz a0,3df6 prvInitialiseNewQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:474 if( uxItemSize == ( UBaseType_t ) 0 ) 3dde: 45b2 lw a1,12(sp) 3de0: 87aa mv a5,a0 3de2: c199 beqz a1,3de8 xQueueGenericCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:433 pucQueueStorage += sizeof( Queue_t ); /*lint !e9016 Pointer arithmetic allowed on char types, especially when it assists conveying intent. */ 3de4: 04850793 addi a5,a0,72 prvInitialiseNewQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:491 pxNewQueue->uxItemSize = uxItemSize; 3de8: c02c sw a1,64(s0) 3dea: c01c sw a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:490 pxNewQueue->uxLength = uxQueueLength; 3dec: dc44 sw s1,60(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:492 ( void ) xQueueGenericReset( pxNewQueue, pdTRUE ); 3dee: 4585 li a1,1 3df0: 8522 mv a0,s0 3df2: effff0ef jal ra,3cf0 xQueueGenericCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:459 } 3df6: 8522 mv a0,s0 3df8: 0141 addi sp,sp,16 3dfa: f40fc06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:454 (discriminator 1) configASSERT( pxNewQueue ); 3dfe: 67a1 lui a5,0x8 3e00: 80078793 addi a5,a5,-2048 # 7800 3e04: 30079073 csrw mstatus,a5 3e08: 0000d637 lui a2,0xd 3e0c: 0000d537 lui a0,0xd 3e10: 33060613 addi a2,a2,816 # d330 3e14: 1c600593 li a1,454 3e18: 2e450513 addi a0,a0,740 # d2e4 3e1c: 45b080ef jal ra,ca76 3e20: a001 j 3e20 00003e22 : xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:809 { 3e22: eccfc2ef jal t0,4ee <__riscv_save_10> 3e26: 1101 addi sp,sp,-32 3e28: c632 sw a2,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:814 configASSERT( pxQueue ); 3e2a: e11d bnez a0,3e50 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:814 (discriminator 1) 3e2c: 67a1 lui a5,0x8 3e2e: 80078793 addi a5,a5,-2048 # 7800 3e32: 30079073 csrw mstatus,a5 3e36: 0000d637 lui a2,0xd 3e3a: 0000d537 lui a0,0xd 3e3e: 33060613 addi a2,a2,816 # d330 3e42: 32e00593 li a1,814 3e46: 2e450513 addi a0,a0,740 # d2e4 3e4a: 42d080ef jal ra,ca76 3e4e: a001 j 3e4e 3e50: 842a mv s0,a0 3e52: 892e mv s2,a1 3e54: 84b6 mv s1,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:815 (discriminator 2) configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); 3e56: e58d bnez a1,3e80 3e58: 413c lw a5,64(a0) 3e5a: c39d beqz a5,3e80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:815 3e5c: 67a1 lui a5,0x8 3e5e: 80078793 addi a5,a5,-2048 # 7800 3e62: 30079073 csrw mstatus,a5 3e66: 0000d637 lui a2,0xd 3e6a: 0000d537 lui a0,0xd 3e6e: 33060613 addi a2,a2,816 # d330 3e72: 32f00593 li a1,815 3e76: 2e450513 addi a0,a0,740 # d2e4 3e7a: 3fd080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:815 (discriminator 2) 3e7e: a001 j 3e7e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:816 (discriminator 8) configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); 3e80: 4789 li a5,2 3e82: 02f49863 bne s1,a5,3eb2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:816 (discriminator 2) 3e86: 5c58 lw a4,60(s0) 3e88: 4785 li a5,1 3e8a: 02f70463 beq a4,a5,3eb2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:816 3e8e: 67a1 lui a5,0x8 3e90: 80078793 addi a5,a5,-2048 # 7800 3e94: 30079073 csrw mstatus,a5 3e98: 0000d637 lui a2,0xd 3e9c: 0000d537 lui a0,0xd 3ea0: 33060613 addi a2,a2,816 # d330 3ea4: 33000593 li a1,816 3ea8: 2e450513 addi a0,a0,740 # d2e4 3eac: 3cb080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:816 (discriminator 3) 3eb0: a001 j 3eb0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:819 (discriminator 8) configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); 3eb2: 164010ef jal ra,5016 3eb6: e515 bnez a0,3ee2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:819 (discriminator 2) 3eb8: 47b2 lw a5,12(sp) 3eba: 4c01 li s8,0 3ebc: c785 beqz a5,3ee4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:819 3ebe: 67a1 lui a5,0x8 3ec0: 80078793 addi a5,a5,-2048 # 7800 3ec4: 30079073 csrw mstatus,a5 3ec8: 0000d637 lui a2,0xd 3ecc: 0000d537 lui a0,0xd 3ed0: 33060613 addi a2,a2,816 # d330 3ed4: 33300593 li a1,819 3ed8: 2e450513 addi a0,a0,740 # d2e4 3edc: 39b080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:819 (discriminator 4) 3ee0: a001 j 3ee0 3ee2: 4c01 li s8,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:834 (discriminator 8) if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) 3ee4: 4b09 li s6,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 (discriminator 8) prvLockQueue( pxQueue ); 3ee6: 59fd li s3,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:978 (discriminator 8) vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); 3ee8: 01040b93 addi s7,s0,16 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 (discriminator 8) 3eec: e000ea37 lui s4,0xe000e 3ef0: 6a91 lui s5,0x4 3ef2: a8a5 j 3f6a xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:939 if( xTicksToWait == ( TickType_t ) 0 ) 3ef4: 47b2 lw a5,12(sp) 3ef6: e789 bnez a5,3f00 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:943 taskEXIT_CRITICAL(); 3ef8: c0fff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1011 return errQUEUE_FULL; 3efc: 4501 li a0,0 3efe: a055 j 3fa2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:950 else if( xEntryTimeSet == pdFALSE ) 3f00: 000c1563 bnez s8,3f0a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:954 vTaskInternalSetTimeOutState( &xTimeOut ); 3f04: 0828 addi a0,sp,24 3f06: 024010ef jal ra,4f2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:964 taskEXIT_CRITICAL(); 3f0a: bfdff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:969 vTaskSuspendAll(); 3f0e: 245000ef jal ra,4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 prvLockQueue( pxQueue ); 3f12: bdfff0ef jal ra,3af0 3f16: 04444783 lbu a5,68(s0) 3f1a: 07e2 slli a5,a5,0x18 3f1c: 87e1 srai a5,a5,0x18 3f1e: 01379463 bne a5,s3,3f26 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 (discriminator 1) 3f22: 04040223 sb zero,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 (discriminator 3) 3f26: 04544783 lbu a5,69(s0) 3f2a: 07e2 slli a5,a5,0x18 3f2c: 87e1 srai a5,a5,0x18 3f2e: 01379463 bne a5,s3,3f36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 (discriminator 4) 3f32: 040402a3 sb zero,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:970 (discriminator 6) 3f36: bd1ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:973 (discriminator 6) if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) 3f3a: 006c addi a1,sp,12 3f3c: 0828 addi a0,sp,24 3f3e: 002010ef jal ra,4f40 3f42: ed35 bnez a0,3fbe prvIsQueueFull(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2429 static BaseType_t prvIsQueueFull( const Queue_t * pxQueue ) { BaseType_t xReturn; taskENTER_CRITICAL(); 3f44: badff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2431 { if( pxQueue->uxMessagesWaiting == pxQueue->uxLength ) 3f48: 5c18 lw a4,56(s0) 3f4a: 5c5c lw a5,60(s0) 3f4c: 04f71e63 bne a4,a5,3fa8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2440 else { xReturn = pdFALSE; } } taskEXIT_CRITICAL(); 3f50: bb7ff0ef jal ra,3b06 xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:978 vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); 3f54: 45b2 lw a1,12(sp) 3f56: 855e mv a0,s7 3f58: 629000ef jal ra,4d80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:985 prvUnlockQueue( pxQueue ); 3f5c: 8522 mv a0,s0 3f5e: d1dff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:992 if( xTaskResumeAll() == pdFALSE ) 3f62: 3b7000ef jal ra,4b18 3f66: c929 beqz a0,3fb8 3f68: 4c05 li s8,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:828 (discriminator 8) taskENTER_CRITICAL(); 3f6a: b87ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:834 (discriminator 8) if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) 3f6e: 5c18 lw a4,56(s0) 3f70: 5c5c lw a5,60(s0) 3f72: 00f76463 bltu a4,a5,3f7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:834 (discriminator 1) 3f76: f7649fe3 bne s1,s6,3ef4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:900 xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); 3f7a: 8626 mv a2,s1 3f7c: 85ca mv a1,s2 3f7e: 8522 mv a0,s0 3f80: c61ff0ef jal ra,3be0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:904 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) 3f84: 505c lw a5,36(s0) 3f86: c789 beqz a5,3f90 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:906 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) 3f88: 02440513 addi a0,s0,36 3f8c: 6b3000ef jal ra,4e3e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:919 else if( xYieldRequired != pdFALSE ) 3f90: c511 beqz a0,3f9c NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 3f92: e000e7b7 lui a5,0xe000e 3f96: 6711 lui a4,0x4 3f98: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:934 taskEXIT_CRITICAL(); 3f9c: b6bff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:935 return pdPASS; 3fa0: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1014 } 3fa2: 6105 addi sp,sp,32 3fa4: d82fc06f j 526 <__riscv_restore_10> prvIsQueueFull(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2440 taskEXIT_CRITICAL(); 3fa8: b5fff0ef jal ra,3b06 xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1000 prvUnlockQueue( pxQueue ); 3fac: 8522 mv a0,s0 3fae: ccdff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1001 ( void ) xTaskResumeAll(); 3fb2: 367000ef jal ra,4b18 3fb6: bf4d j 3f68 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 3fb8: 215a2023 sw s5,512(s4) # e000e200 <__freertos_irq_stack_top+0xbffde200> 3fbc: b775 j 3f68 xQueueGenericSend(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1007 prvUnlockQueue( pxQueue ); 3fbe: 8522 mv a0,s0 3fc0: cbbff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1008 ( void ) xTaskResumeAll(); 3fc4: 355000ef jal ra,4b18 3fc8: bf15 j 3efc 00003fca : xQueueCreateMutex(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:543 { 3fca: d4cfc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:547 xNewQueue = xQueueGenericCreate( uxMutexLength, uxMutexSize, ucQueueType ); 3fce: 862a mv a2,a0 3fd0: 4581 li a1,0 3fd2: 4505 li a0,1 3fd4: de1ff0ef jal ra,3db4 3fd8: 842a mv s0,a0 prvInitialiseMutex(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:514 if( pxNewQueue != NULL ) 3fda: cd01 beqz a0,3ff2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:520 pxNewQueue->u.xSemaphore.xMutexHolder = NULL; 3fdc: 00052423 sw zero,8(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:521 pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; 3fe0: 00052023 sw zero,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:524 pxNewQueue->u.xSemaphore.uxRecursiveCallCount = 0; 3fe4: 00052623 sw zero,12(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:529 ( void ) xQueueGenericSend( pxNewQueue, NULL, ( TickType_t ) 0U, queueSEND_TO_BACK ); 3fe8: 4681 li a3,0 3fea: 4601 li a2,0 3fec: 4581 li a1,0 3fee: e35ff0ef jal ra,3e22 xQueueCreateMutex(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:551 } 3ff2: 8522 mv a0,s0 3ff4: d46fc06f j 53a <__riscv_restore_0> 00003ff8 : xQueueGenericSendFromISR(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1021 { 3ff8: d04fc2ef jal t0,4fc <__riscv_save_4> 3ffc: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1026 configASSERT( pxQueue ); 3ffe: e11d bnez a0,4024 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1026 (discriminator 1) 4000: 67a1 lui a5,0x8 4002: 80078793 addi a5,a5,-2048 # 7800 4006: 30079073 csrw mstatus,a5 400a: 0000d637 lui a2,0xd 400e: 0000d537 lui a0,0xd 4012: 33060613 addi a2,a2,816 # d330 4016: 40200593 li a1,1026 401a: 2e450513 addi a0,a0,740 # d2e4 401e: 259080ef jal ra,ca76 4022: a001 j 4022 4024: 842a mv s0,a0 4026: 89b2 mv s3,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1027 (discriminator 2) configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); 4028: e58d bnez a1,4052 402a: 413c lw a5,64(a0) 402c: c39d beqz a5,4052 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1027 402e: 67a1 lui a5,0x8 4030: 80078793 addi a5,a5,-2048 # 7800 4034: 30079073 csrw mstatus,a5 4038: 0000d637 lui a2,0xd 403c: 0000d537 lui a0,0xd 4040: 33060613 addi a2,a2,816 # d330 4044: 40300593 li a1,1027 4048: 2e450513 addi a0,a0,740 # d2e4 404c: 22b080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1027 (discriminator 2) 4050: a001 j 4050 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1028 (discriminator 8) configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); 4052: 4789 li a5,2 4054: 02f69863 bne a3,a5,4084 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1028 (discriminator 2) 4058: 5c58 lw a4,60(s0) 405a: 4785 li a5,1 405c: 02f70463 beq a4,a5,4084 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1028 4060: 67a1 lui a5,0x8 4062: 80078793 addi a5,a5,-2048 # 7800 4066: 30079073 csrw mstatus,a5 406a: 0000d637 lui a2,0xd 406e: 0000d537 lui a0,0xd 4072: 33060613 addi a2,a2,816 # d330 4076: 40400593 li a1,1028 407a: 2e450513 addi a0,a0,740 # d2e4 407e: 1f9080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1028 (discriminator 3) 4082: a001 j 4082 4084: c636 sw a3,12(sp) 4086: c42e sw a1,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1051 (discriminator 8) uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); 4088: ac1ff0ef jal ra,3b48 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1053 (discriminator 8) if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) 408c: 5c18 lw a4,56(s0) 408e: 5c5c lw a5,60(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1051 (discriminator 8) uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); 4090: 8a2a mv s4,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1053 (discriminator 8) if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) 4092: 45a2 lw a1,8(sp) 4094: 46b2 lw a3,12(sp) 4096: 00f76663 bltu a4,a5,40a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1053 (discriminator 1) 409a: 4789 li a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1175 (discriminator 1) xReturn = errQUEUE_FULL; 409c: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1053 (discriminator 1) if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) 409e: 02f69363 bne a3,a5,40c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1055 const int8_t cTxLock = pxQueue->cTxLock; 40a2: 04544483 lbu s1,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1056 const UBaseType_t uxPreviousMessagesWaiting = pxQueue->uxMessagesWaiting; 40a6: 5c1c lw a5,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1065 ( void ) prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); 40a8: 8636 mv a2,a3 40aa: 8522 mv a0,s0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1055 const int8_t cTxLock = pxQueue->cTxLock; 40ac: 01849913 slli s2,s1,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1065 ( void ) prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); 40b0: b31ff0ef jal ra,3be0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1055 const int8_t cTxLock = pxQueue->cTxLock; 40b4: 41895913 srai s2,s2,0x18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1069 if( cTxLock == queueUNLOCKED ) 40b8: 57fd li a5,-1 40ba: 02f91763 bne s2,a5,40e8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1131 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) 40be: 505c lw a5,36(s0) 40c0: eb89 bnez a5,40d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1170 (discriminator 2) xReturn = pdPASS; 40c2: 4485 li s1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1178 portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); 40c4: 8552 mv a0,s4 40c6: a8fff0ef jal ra,3b54 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1181 } 40ca: 8526 mv a0,s1 40cc: 0141 addi sp,sp,16 40ce: c62fc06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1133 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) 40d2: 02440513 addi a0,s0,36 40d6: 569000ef jal ra,4e3e 40da: d565 beqz a0,40c2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1137 if( pxHigherPriorityTaskWoken != NULL ) 40dc: fe0983e3 beqz s3,40c2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1139 *pxHigherPriorityTaskWoken = pdTRUE; 40e0: 4785 li a5,1 40e2: 00f9a023 sw a5,0(s3) 40e6: bff1 j 40c2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1165 configASSERT( cTxLock != queueINT8_MAX ); 40e8: 07f00793 li a5,127 40ec: 02f91463 bne s2,a5,4114 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1165 (discriminator 1) 40f0: 67a1 lui a5,0x8 40f2: 80078793 addi a5,a5,-2048 # 7800 40f6: 30079073 csrw mstatus,a5 40fa: 0000d637 lui a2,0xd 40fe: 0000d537 lui a0,0xd 4102: 33060613 addi a2,a2,816 # d330 4106: 48d00593 li a1,1165 410a: 2e450513 addi a0,a0,740 # d2e4 410e: 169080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1165 (discriminator 6) 4112: a001 j 4112 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1167 (discriminator 2) pxQueue->cTxLock = ( int8_t ) ( cTxLock + 1 ); 4114: 0485 addi s1,s1,1 4116: 04e2 slli s1,s1,0x18 4118: 84e1 srai s1,s1,0x18 411a: 049402a3 sb s1,69(s0) 411e: b755 j 40c2 00004120 : xQueueReceive(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1355 { 4120: bcefc2ef jal t0,4ee <__riscv_save_10> 4124: 1101 addi sp,sp,-32 4126: c632 sw a2,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1361 configASSERT( ( pxQueue ) ); 4128: e11d bnez a0,414e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1361 (discriminator 1) 412a: 67a1 lui a5,0x8 412c: 80078793 addi a5,a5,-2048 # 7800 4130: 30079073 csrw mstatus,a5 4134: 0000d637 lui a2,0xd 4138: 0000d537 lui a0,0xd 413c: 33060613 addi a2,a2,816 # d330 4140: 55100593 li a1,1361 4144: 2e450513 addi a0,a0,740 # d2e4 4148: 12f080ef jal ra,ca76 414c: a001 j 414c 414e: 842a mv s0,a0 4150: 89ae mv s3,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1365 (discriminator 2) configASSERT( !( ( ( pvBuffer ) == NULL ) && ( ( pxQueue )->uxItemSize != ( UBaseType_t ) 0U ) ) ); 4152: e58d bnez a1,417c 4154: 413c lw a5,64(a0) 4156: c39d beqz a5,417c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1365 4158: 67a1 lui a5,0x8 415a: 80078793 addi a5,a5,-2048 # 7800 415e: 30079073 csrw mstatus,a5 4162: 0000d637 lui a2,0xd 4166: 0000d537 lui a0,0xd 416a: 33060613 addi a2,a2,816 # d330 416e: 55500593 li a1,1365 4172: 2e450513 addi a0,a0,740 # d2e4 4176: 101080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1365 (discriminator 2) 417a: a001 j 417a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1370 (discriminator 8) configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); 417c: 69b000ef jal ra,5016 4180: e515 bnez a0,41ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1370 (discriminator 2) 4182: 47b2 lw a5,12(sp) 4184: 4901 li s2,0 4186: c785 beqz a5,41ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1370 4188: 67a1 lui a5,0x8 418a: 80078793 addi a5,a5,-2048 # 7800 418e: 30079073 csrw mstatus,a5 4192: 0000d637 lui a2,0xd 4196: 0000d537 lui a0,0xd 419a: 33060613 addi a2,a2,816 # d330 419e: 55a00593 li a1,1370 41a2: 2e450513 addi a0,a0,740 # d2e4 41a6: 0d1080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1370 (discriminator 3) 41aa: a001 j 41aa 41ac: 4901 li s2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 (discriminator 8) prvLockQueue( pxQueue ); 41ae: 5a7d li s4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1454 (discriminator 8) vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); 41b0: 02440a93 addi s5,s0,36 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 (discriminator 8) 41b4: e000eb37 lui s6,0xe000e 41b8: 6b91 lui s7,0x4 41ba: a895 j 422e xQueueReceive(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1416 if( xTicksToWait == ( TickType_t ) 0 ) 41bc: 47b2 lw a5,12(sp) 41be: e789 bnez a5,41c8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1420 taskEXIT_CRITICAL(); 41c0: 947ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1484 return errQUEUE_EMPTY; 41c4: 4501 li a0,0 41c6: a869 j 4260 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1424 else if( xEntryTimeSet == pdFALSE ) 41c8: 00091563 bnez s2,41d2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1428 vTaskInternalSetTimeOutState( &xTimeOut ); 41cc: 0828 addi a0,sp,24 41ce: 55d000ef jal ra,4f2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1438 taskEXIT_CRITICAL(); 41d2: 935ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1443 vTaskSuspendAll(); 41d6: 77c000ef jal ra,4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 prvLockQueue( pxQueue ); 41da: 917ff0ef jal ra,3af0 41de: 04444783 lbu a5,68(s0) 41e2: 07e2 slli a5,a5,0x18 41e4: 87e1 srai a5,a5,0x18 41e6: 01479463 bne a5,s4,41ee D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 (discriminator 1) 41ea: 04040223 sb zero,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 (discriminator 3) 41ee: 04544783 lbu a5,69(s0) 41f2: 07e2 slli a5,a5,0x18 41f4: 87e1 srai a5,a5,0x18 41f6: 01479463 bne a5,s4,41fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 (discriminator 4) 41fa: 040402a3 sb zero,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1444 (discriminator 6) 41fe: 909ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1447 (discriminator 6) if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) 4202: 006c addi a1,sp,12 4204: 0828 addi a0,sp,24 4206: 53b000ef jal ra,4f40 420a: e525 bnez a0,4272 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1451 if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) 420c: 8522 mv a0,s0 420e: 9b5ff0ef jal ra,3bc2 4212: c931 beqz a0,4266 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1454 vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); 4214: 45b2 lw a1,12(sp) 4216: 8556 mv a0,s5 4218: 369000ef jal ra,4d80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1455 prvUnlockQueue( pxQueue ); 421c: 8522 mv a0,s0 421e: a5dff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1457 if( xTaskResumeAll() == pdFALSE ) 4222: 0f7000ef jal ra,4b18 4226: e119 bnez a0,422c NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4228: 217b2023 sw s7,512(s6) # e000e200 <__freertos_irq_stack_top+0xbffde200> 422c: 4905 li s2,1 xQueueReceive(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1379 (discriminator 8) taskENTER_CRITICAL(); 422e: 8c3ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1381 (discriminator 8) const UBaseType_t uxMessagesWaiting = pxQueue->uxMessagesWaiting; 4232: 5c04 lw s1,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1385 (discriminator 8) if( uxMessagesWaiting > ( UBaseType_t ) 0 ) 4234: d4c1 beqz s1,41bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1388 prvCopyDataFromQueue( pxQueue, pvBuffer ); 4236: 85ce mv a1,s3 4238: 8522 mv a0,s0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1390 pxQueue->uxMessagesWaiting = uxMessagesWaiting - ( UBaseType_t ) 1; 423a: 14fd addi s1,s1,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1388 prvCopyDataFromQueue( pxQueue, pvBuffer ); 423c: a17ff0ef jal ra,3c52 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1390 pxQueue->uxMessagesWaiting = uxMessagesWaiting - ( UBaseType_t ) 1; 4240: dc04 sw s1,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1395 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) 4242: 481c lw a5,16(s0) 4244: cb99 beqz a5,425a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1397 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) 4246: 01040513 addi a0,s0,16 424a: 3f5000ef jal ra,4e3e 424e: c511 beqz a0,425a NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4250: e000e7b7 lui a5,0xe000e 4254: 6711 lui a4,0x4 4256: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xQueueReceive(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1411 taskEXIT_CRITICAL(); 425a: 8adff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1412 return pdPASS; 425e: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1492 } 4260: 6105 addi sp,sp,32 4262: ac4fc06f j 526 <__riscv_restore_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1470 prvUnlockQueue( pxQueue ); 4266: 8522 mv a0,s0 4268: a13ff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1471 ( void ) xTaskResumeAll(); 426c: 0ad000ef jal ra,4b18 4270: bf75 j 422c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1478 prvUnlockQueue( pxQueue ); 4272: 8522 mv a0,s0 4274: a07ff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1479 ( void ) xTaskResumeAll(); 4278: 0a1000ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1481 if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) 427c: 8522 mv a0,s0 427e: 945ff0ef jal ra,3bc2 4282: d54d beqz a0,422c 4284: b781 j 41c4 00004286 : xQueueSemaphoreTake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1497 { 4286: a76fc2ef jal t0,4fc <__riscv_save_4> 428a: 1101 addi sp,sp,-32 428c: c62e sw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1507 configASSERT( ( pxQueue ) ); 428e: e11d bnez a0,42b4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1507 (discriminator 1) 4290: 67a1 lui a5,0x8 4292: 80078793 addi a5,a5,-2048 # 7800 4296: 30079073 csrw mstatus,a5 429a: 0000d637 lui a2,0xd 429e: 0000d537 lui a0,0xd 42a2: 33060613 addi a2,a2,816 # d330 42a6: 5e300593 li a1,1507 42aa: 2e450513 addi a0,a0,740 # d2e4 42ae: 7c8080ef jal ra,ca76 42b2: a001 j 42b2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1511 (discriminator 2) configASSERT( pxQueue->uxItemSize == 0 ); 42b4: 413c lw a5,64(a0) 42b6: 842a mv s0,a0 42b8: c39d beqz a5,42de D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1511 (discriminator 1) 42ba: 67a1 lui a5,0x8 42bc: 80078793 addi a5,a5,-2048 # 7800 42c0: 30079073 csrw mstatus,a5 42c4: 0000d637 lui a2,0xd 42c8: 0000d537 lui a0,0xd 42cc: 33060613 addi a2,a2,816 # d330 42d0: 5e700593 li a1,1511 42d4: 2e450513 addi a0,a0,740 # d2e4 42d8: 79e080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1511 (discriminator 2) 42dc: a001 j 42dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1516 (discriminator 2) configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); 42de: 539000ef jal ra,5016 42e2: e50d bnez a0,430c 42e4: 47b2 lw a5,12(sp) 42e6: c39d beqz a5,430c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1516 42e8: 67a1 lui a5,0x8 42ea: 80078793 addi a5,a5,-2048 # 7800 42ee: 30079073 csrw mstatus,a5 42f2: 0000d637 lui a2,0xd 42f6: 0000d537 lui a0,0xd 42fa: 33060613 addi a2,a2,816 # d330 42fe: 5ec00593 li a1,1516 4302: 2e450513 addi a0,a0,740 # d2e4 4306: 770080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1516 (discriminator 3) 430a: a001 j 430a 430c: 4481 li s1,0 430e: 4901 li s2,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 prvLockQueue( pxQueue ); 4310: 59fd li s3,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1646 vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); 4312: 02440a13 addi s4,s0,36 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4316: e000eab7 lui s5,0xe000e 431a: 6b11 lui s6,0x4 431c: a06d j 43c6 xQueueSemaphoreTake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1579 if( xTicksToWait == ( TickType_t ) 0 ) 431e: 47b2 lw a5,12(sp) 4320: e79d bnez a5,434e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1586 configASSERT( xInheritanceOccurred == pdFALSE ); 4322: c09d beqz s1,4348 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1586 (discriminator 1) 4324: 67a1 lui a5,0x8 4326: 80078793 addi a5,a5,-2048 # 7800 432a: 30079073 csrw mstatus,a5 432e: 0000d637 lui a2,0xd 4332: 0000d537 lui a0,0xd 4336: 33060613 addi a2,a2,816 # d330 433a: 63200593 li a1,1586 433e: 2e450513 addi a0,a0,740 # d2e4 4342: 734080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1586 (discriminator 4) 4346: a001 j 4346 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1592 (discriminator 2) taskEXIT_CRITICAL(); 4348: fbeff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1594 (discriminator 2) return errQUEUE_EMPTY; 434c: a07d j 43fa D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1596 else if( xEntryTimeSet == pdFALSE ) 434e: 00091563 bnez s2,4358 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1600 vTaskInternalSetTimeOutState( &xTimeOut ); 4352: 0828 addi a0,sp,24 4354: 3d7000ef jal ra,4f2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1610 taskEXIT_CRITICAL(); 4358: faeff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1615 vTaskSuspendAll(); 435c: 2bdd jal 4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 prvLockQueue( pxQueue ); 435e: f92ff0ef jal ra,3af0 4362: 04444783 lbu a5,68(s0) 4366: 07e2 slli a5,a5,0x18 4368: 87e1 srai a5,a5,0x18 436a: 01379463 bne a5,s3,4372 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 (discriminator 1) 436e: 04040223 sb zero,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 (discriminator 3) 4372: 04544783 lbu a5,69(s0) 4376: 07e2 slli a5,a5,0x18 4378: 87e1 srai a5,a5,0x18 437a: 01379463 bne a5,s3,4382 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 (discriminator 4) 437e: 040402a3 sb zero,69(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1616 (discriminator 6) 4382: f84ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1619 (discriminator 6) if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) 4386: 006c addi a1,sp,12 4388: 0828 addi a0,sp,24 438a: 3b7000ef jal ra,4f40 438e: e141 bnez a0,440e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1625 if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) 4390: 8522 mv a0,s0 4392: 831ff0ef jal ra,3bc2 4396: c535 beqz a0,4402 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1631 if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) 4398: 401c lw a5,0(s0) 439a: eb89 bnez a5,43ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1633 taskENTER_CRITICAL(); 439c: f54ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1635 xInheritanceOccurred = xTaskPriorityInherit( pxQueue->u.xSemaphore.xMutexHolder ); 43a0: 4408 lw a0,8(s0) 43a2: 491000ef jal ra,5032 43a6: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1637 taskEXIT_CRITICAL(); 43a8: f5eff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1646 vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); 43ac: 45b2 lw a1,12(sp) 43ae: 8552 mv a0,s4 43b0: 1d1000ef jal ra,4d80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1647 prvUnlockQueue( pxQueue ); 43b4: 8522 mv a0,s0 43b6: 8c5ff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1649 if( xTaskResumeAll() == pdFALSE ) 43ba: 75e000ef jal ra,4b18 43be: e119 bnez a0,43c4 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 43c0: 216aa023 sw s6,512(s5) # e000e200 <__freertos_irq_stack_top+0xbffde200> 43c4: 4905 li s2,1 xQueueSemaphoreTake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1525 (discriminator 8) taskENTER_CRITICAL(); 43c6: f2aff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1529 (discriminator 8) const UBaseType_t uxSemaphoreCount = pxQueue->uxMessagesWaiting; 43ca: 5c1c lw a5,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1533 (discriminator 8) if( uxSemaphoreCount > ( UBaseType_t ) 0 ) 43cc: dba9 beqz a5,431e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1539 pxQueue->uxMessagesWaiting = uxSemaphoreCount - ( UBaseType_t ) 1; 43ce: 17fd addi a5,a5,-1 43d0: dc1c sw a5,56(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1543 if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) 43d2: 401c lw a5,0(s0) 43d4: e781 bnez a5,43dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1547 pxQueue->u.xSemaphore.xMutexHolder = pvTaskIncrementMutexHeldCount(); 43d6: 6bb000ef jal ra,5290 43da: c408 sw a0,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1558 if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) 43dc: 481c lw a5,16(s0) 43de: cb99 beqz a5,43f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1560 if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) 43e0: 01040513 addi a0,s0,16 43e4: 25b000ef jal ra,4e3e 43e8: c511 beqz a0,43f4 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 43ea: e000e7b7 lui a5,0xe000e 43ee: 6711 lui a4,0x4 43f0: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xQueueSemaphoreTake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1574 taskEXIT_CRITICAL(); 43f4: f12ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1575 return pdPASS; 43f8: 4485 li s1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1711 } 43fa: 8526 mv a0,s1 43fc: 6105 addi sp,sp,32 43fe: 932fc06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1662 prvUnlockQueue( pxQueue ); 4402: 8522 mv a0,s0 4404: 877ff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1663 ( void ) xTaskResumeAll(); 4408: 710000ef jal ra,4b18 440c: bf65 j 43c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1669 prvUnlockQueue( pxQueue ); 440e: 8522 mv a0,s0 4410: 86bff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1670 ( void ) xTaskResumeAll(); 4414: 704000ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1676 if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) 4418: 8522 mv a0,s0 441a: fa8ff0ef jal ra,3bc2 441e: d15d beqz a0,43c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1683 if( xInheritanceOccurred != pdFALSE ) 4420: dce9 beqz s1,43fa D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1685 taskENTER_CRITICAL(); 4422: eceff0ef jal ra,3af0 prvGetDisinheritPriorityAfterTimeout(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2145 if( listCURRENT_LIST_LENGTH( &( pxQueue->xTasksWaitingToReceive ) ) > 0U ) 4426: 505c lw a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2151 uxHighestPriorityOfWaitingTasks = tskIDLE_PRIORITY; 4428: 4581 li a1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2145 if( listCURRENT_LIST_LENGTH( &( pxQueue->xTasksWaitingToReceive ) ) > 0U ) 442a: c789 beqz a5,4434 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2147 uxHighestPriorityOfWaitingTasks = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) listGET_ITEM_VALUE_OF_HEAD_ENTRY( &( pxQueue->xTasksWaitingToReceive ) ); 442c: 581c lw a5,48(s0) 442e: 45bd li a1,15 4430: 439c lw a5,0(a5) 4432: 8d9d sub a1,a1,a5 xQueueSemaphoreTake(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1695 vTaskPriorityDisinheritAfterTimeout( pxQueue->u.xSemaphore.xMutexHolder, uxHighestWaitingPriority ); 4434: 4408 lw a0,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1703 return errQUEUE_EMPTY; 4436: 4481 li s1,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1695 vTaskPriorityDisinheritAfterTimeout( pxQueue->u.xSemaphore.xMutexHolder, uxHighestWaitingPriority ); 4438: 573000ef jal ra,51aa D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:1697 taskEXIT_CRITICAL(); 443c: ecaff0ef jal ra,3b06 4440: bf6d j 43fa 00004442 : vQueueAddToRegistry(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2760 void vQueueAddToRegistry( QueueHandle_t xQueue, const char * pcQueueName ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ { UBaseType_t ux; configASSERT( xQueue ); 4442: e515 bnez a0,446e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2757 (discriminator 1) { 4444: 8d2fc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2760 (discriminator 1) configASSERT( xQueue ); 4448: 67a1 lui a5,0x8 444a: 80078793 addi a5,a5,-2048 # 7800 444e: 30079073 csrw mstatus,a5 4452: 0000d637 lui a2,0xd 4456: 6585 lui a1,0x1 4458: 0000d537 lui a0,0xd 445c: 33060613 addi a2,a2,816 # d330 4460: ac858593 addi a1,a1,-1336 # ac8 4464: 2e450513 addi a0,a0,740 # d2e4 4468: 60e080ef jal ra,ca76 446c: a001 j 446c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2764 (discriminator 2) QueueRegistryItem_t * pxEntryToWrite = NULL; if( pcQueueName != NULL ) 446e: cd9d beqz a1,44ac 4470: 20015637 lui a2,0x20015 4474: 51060693 addi a3,a2,1296 # 20015510 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2762 QueueRegistryItem_t * pxEntryToWrite = NULL; 4478: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2768 { /* See if there is an empty space in the registry. A NULL name denotes * a free slot. */ for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) 447a: 4701 li a4,0 447c: 51060613 addi a2,a2,1296 4480: 4821 li a6,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2771 { /* Replace an existing entry if the queue is already in the registry. */ if( xQueue == xQueueRegistry[ ux ].xHandle ) 4482: 0046a883 lw a7,4(a3) 4486: 00a89863 bne a7,a0,4496 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2773 { pxEntryToWrite = &( xQueueRegistry[ ux ] ); 448a: 00371793 slli a5,a4,0x3 448e: 97b2 add a5,a5,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2791 } if( pxEntryToWrite != NULL ) { /* Store the information on this queue. */ pxEntryToWrite->pcQueueName = pcQueueName; 4490: c38c sw a1,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2792 pxEntryToWrite->xHandle = xQueue; 4492: c3c8 sw a0,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2796 traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName ); } } 4494: a821 j 44ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2777 else if( ( pxEntryToWrite == NULL ) && ( xQueueRegistry[ ux ].pcQueueName == NULL ) ) 4496: e791 bnez a5,44a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2777 (discriminator 1) 4498: 0006a883 lw a7,0(a3) 449c: 00089363 bnez a7,44a2 44a0: 87b6 mv a5,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2768 (discriminator 2) for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) 44a2: 0705 addi a4,a4,1 44a4: 06a1 addi a3,a3,8 44a6: fd071ee3 bne a4,a6,4482 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2788 if( pxEntryToWrite != NULL ) 44aa: f3fd bnez a5,4490 44ac: 8082 ret 000044ae : vQueueUnregisterQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2838 void vQueueUnregisterQueue( QueueHandle_t xQueue ) { UBaseType_t ux; configASSERT( xQueue ); 44ae: e515 bnez a0,44da D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2835 { 44b0: 866fc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2838 configASSERT( xQueue ); 44b4: 67a1 lui a5,0x8 44b6: 80078793 addi a5,a5,-2048 # 7800 44ba: 30079073 csrw mstatus,a5 44be: 0000d637 lui a2,0xd 44c2: 6585 lui a1,0x1 44c4: 0000d537 lui a0,0xd 44c8: 33060613 addi a2,a2,816 # d330 44cc: b1658593 addi a1,a1,-1258 # b16 44d0: 2e450513 addi a0,a0,740 # d2e4 44d4: 5a2080ef jal ra,ca76 44d8: a001 j 44d8 44da: 200157b7 lui a5,0x20015 44de: 51078693 addi a3,a5,1296 # 20015510 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2842 /* See if the handle of the queue being unregistered in actually in the * registry. */ for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) 44e2: 4701 li a4,0 44e4: 51078793 addi a5,a5,1296 44e8: 4621 li a2,8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2844 { if( xQueueRegistry[ ux ].xHandle == xQueue ) 44ea: 42cc lw a1,4(a3) 44ec: 00a59963 bne a1,a0,44fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2847 { /* Set the name to NULL to show that this slot if free again. */ xQueueRegistry[ ux ].pcQueueName = NULL; 44f0: 070e slli a4,a4,0x3 44f2: 97ba add a5,a5,a4 44f4: 0007a023 sw zero,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2852 /* Set the handle to NULL to ensure the same queue handle cannot * appear in the registry twice if it is added, removed, then * added again. */ xQueueRegistry[ ux ].xHandle = ( QueueHandle_t ) 0; 44f8: 0007a223 sw zero,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2853 break; 44fc: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2842 (discriminator 2) for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) 44fe: 0705 addi a4,a4,1 4500: 06a1 addi a3,a3,8 4502: fec714e3 bne a4,a2,44ea 4506: 8082 ret 00004508 : vQueueDelete(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2061 { 4508: 80efc2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2064 configASSERT( pxQueue ); 450c: e505 bnez a0,4534 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2064 (discriminator 1) 450e: 67a1 lui a5,0x8 4510: 80078793 addi a5,a5,-2048 # 7800 4514: 30079073 csrw mstatus,a5 4518: 0000d637 lui a2,0xd 451c: 6585 lui a1,0x1 451e: 0000d537 lui a0,0xd 4522: 33060613 addi a2,a2,816 # d330 4526: 81058593 addi a1,a1,-2032 # 810 <__stack_size+0x10> 452a: 2e450513 addi a0,a0,740 # d2e4 452e: 548080ef jal ra,ca76 4532: a001 j 4532 4534: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2069 (discriminator 2) vQueueUnregisterQueue( pxQueue ); 4536: f79ff0ef jal ra,44ae D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2077 (discriminator 2) vPortFree( pxQueue ); 453a: 8522 mv a0,s0 453c: c0aff0ef jal ra,3946 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2099 (discriminator 2) } 4540: ffbfb06f j 53a <__riscv_restore_0> 00004544 : vQueueWaitForMessageRestricted(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2870 #if ( configUSE_TIMERS == 1 ) void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) { 4544: fd3fb2ef jal t0,516 <__riscv_save_0> 4548: 1141 addi sp,sp,-16 454a: 842a mv s0,a0 454c: c62e sw a1,12(sp) 454e: c432 sw a2,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2887 * will not actually cause the task to block, just place it on a blocked * list. It will not block until the scheduler is unlocked - at which * time a yield will be performed. If an item is added to the queue while * the queue is locked, and the calling task blocks on the queue, then the * calling task will be immediately unblocked when the queue is unlocked. */ prvLockQueue( pxQueue ); 4550: da0ff0ef jal ra,3af0 4554: 04444783 lbu a5,68(s0) 4558: 577d li a4,-1 455a: 4622 lw a2,8(sp) 455c: 07e2 slli a5,a5,0x18 455e: 87e1 srai a5,a5,0x18 4560: 45b2 lw a1,12(sp) 4562: 00e79463 bne a5,a4,456a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2887 (discriminator 1) 4566: 04040223 sb zero,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2887 (discriminator 3) 456a: 04544783 lbu a5,69(s0) 456e: 577d li a4,-1 4570: 07e2 slli a5,a5,0x18 4572: 87e1 srai a5,a5,0x18 4574: 00e79463 bne a5,a4,457c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2887 (discriminator 4) 4578: 040402a3 sb zero,69(s0) 457c: c632 sw a2,12(sp) 457e: c42e sw a1,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2887 (discriminator 6) 4580: d86ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2889 (discriminator 6) if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0U ) 4584: 5c1c lw a5,56(s0) 4586: 45a2 lw a1,8(sp) 4588: 4632 lw a2,12(sp) 458a: e789 bnez a5,4594 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2892 { /* There is nothing in the queue, block for the specified period. */ vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait, xWaitIndefinitely ); 458c: 02440513 addi a0,s0,36 4590: 039000ef jal ra,4dc8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2899 else { mtCOVERAGE_TEST_MARKER(); } prvUnlockQueue( pxQueue ); 4594: 8522 mv a0,s0 4596: ee4ff0ef jal ra,3c7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/queue.c:2900 } 459a: 0141 addi sp,sp,16 459c: f9ffb06f j 53a <__riscv_restore_0> 000045a0 : prvResetNextTaskUnblockTime(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4008 #endif /* INCLUDE_vTaskDelete */ /*-----------------------------------------------------------*/ static void prvResetNextTaskUnblockTime( void ) { if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) 45a0: 20000737 lui a4,0x20000 45a4: 10870713 addi a4,a4,264 # 20000108 45a8: 431c lw a5,0(a4) 45aa: 4394 lw a3,0(a5) 45ac: 200007b7 lui a5,0x20000 45b0: 12878793 addi a5,a5,296 # 20000128 45b4: e681 bnez a3,45bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4014 { /* The new current delayed list is empty. Set xNextTaskUnblockTime to * the maximum possible value so it is extremely unlikely that the * if( xTickCount >= xNextTaskUnblockTime ) test will pass until * there is an item in the delayed list. */ xNextTaskUnblockTime = portMAX_DELAY; 45b6: 577d li a4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4022 { /* The new current delayed list is not empty, get the value of * the item at the head of the delayed list. This is the time at * which the task at the head of the delayed list should be removed * from the Blocked state. */ xNextTaskUnblockTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxDelayedTaskList ); 45b8: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4024 } } 45ba: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4022 xNextTaskUnblockTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxDelayedTaskList ); 45bc: 4318 lw a4,0(a4) 45be: 4758 lw a4,12(a4) 45c0: 4318 lw a4,0(a4) 45c2: bfdd j 45b8 000045c4 : prvAddCurrentTaskToDelayedList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5312 #endif /* if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) ) */ /*-----------------------------------------------------------*/ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely ) { 45c4: f39fb2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5321 #if ( INCLUDE_xTaskAbortDelay == 1 ) { /* About to enter a delayed list, so ensure the ucDelayAborted flag is * reset to pdFALSE so it can be detected as having been set to pdTRUE * when the task leaves the Blocked state. */ pxCurrentTCB->ucDelayAborted = pdFALSE; 45c8: 20000937 lui s2,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5314 const TickType_t xConstTickCount = xTickCount; 45cc: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5321 pxCurrentTCB->ucDelayAborted = pdFALSE; 45d0: 10490493 addi s1,s2,260 # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5314 const TickType_t xConstTickCount = xTickCount; 45d4: 1387a983 lw s3,312(a5) # 20000138 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5312 { 45d8: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5321 pxCurrentTCB->ucDelayAborted = pdFALSE; 45da: 409c lw a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5327 } #endif /* Remove the task from the ready list before adding it to the blocked list * as the same list item is used for both lists. */ if( uxListRemove( &( pxCurrentTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 45dc: 4088 lw a0,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5312 { 45de: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5321 pxCurrentTCB->ucDelayAborted = pdFALSE; 45e0: 040788a3 sb zero,81(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5327 if( uxListRemove( &( pxCurrentTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 45e4: 0511 addi a0,a0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5312 { 45e6: c62e sw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5327 if( uxListRemove( &( pxCurrentTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 45e8: dbaff0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5340 mtCOVERAGE_TEST_MARKER(); } #if ( INCLUDE_vTaskSuspend == 1 ) { if( ( xTicksToWait == portMAX_DELAY ) && ( xCanBlockIndefinitely != pdFALSE ) ) 45ec: 577d li a4,-1 45ee: 10490793 addi a5,s2,260 45f2: 45b2 lw a1,12(sp) 45f4: 02e41c63 bne s0,a4,462c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5340 (discriminator 1) 45f8: c995 beqz a1,462c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5345 { /* Add the task to the suspended task list instead of a delayed task * list to ensure it is not woken by a timing event. It will block * indefinitely. */ listINSERT_END( &xSuspendedTaskList, &( pxCurrentTCB->xStateListItem ) ); 45fa: 200157b7 lui a5,0x20015 45fe: 6b878793 addi a5,a5,1720 # 200156b8 4602: 4094 lw a3,0(s1) 4604: 43d8 lw a4,4(a5) 4606: c698 sw a4,8(a3) 4608: 4710 lw a2,8(a4) 460a: 4094 lw a3,0(s1) 460c: c6d0 sw a2,12(a3) 460e: 4094 lw a3,0(s1) 4610: 4710 lw a2,8(a4) 4612: 0691 addi a3,a3,4 4614: c254 sw a3,4(a2) 4616: 4094 lw a3,0(s1) 4618: 0691 addi a3,a3,4 461a: c714 sw a3,8(a4) 461c: 4098 lw a4,0(s1) 461e: cb5c sw a5,20(a4) 4620: 4398 lw a4,0(a5) 4622: 0705 addi a4,a4,1 4624: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5420 /* Avoid compiler warning when INCLUDE_vTaskSuspend is not 1. */ ( void ) xCanBlockIndefinitely; } #endif /* INCLUDE_vTaskSuspend */ } 4626: 0141 addi sp,sp,16 4628: f09fb06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5355 listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xStateListItem ), xTimeToWake ); 462c: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5352 xTimeToWake = xConstTickCount + xTicksToWait; 462e: 944e add s0,s0,s3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5355 listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xStateListItem ), xTimeToWake ); 4630: c340 sw s0,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5357 if( xTimeToWake < xConstTickCount ) 4632: 01347b63 bgeu s0,s3,4648 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5361 vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); 4636: 20000737 lui a4,0x20000 463a: 10c72503 lw a0,268(a4) # 2000010c 463e: 438c lw a1,0(a5) 4640: 0591 addi a1,a1,4 4642: d32ff0ef jal ra,3b74 4646: b7c5 j 4626 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5367 vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xStateListItem ) ); 4648: 20000737 lui a4,0x20000 464c: 10872503 lw a0,264(a4) # 20000108 4650: 438c lw a1,0(a5) 4652: 0591 addi a1,a1,4 4654: d20ff0ef jal ra,3b74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5372 if( xTimeToWake < xNextTaskUnblockTime ) 4658: 200007b7 lui a5,0x20000 465c: 12878793 addi a5,a5,296 # 20000128 4660: 4398 lw a4,0(a5) 4662: fce472e3 bgeu s0,a4,4626 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5374 xNextTaskUnblockTime = xTimeToWake; 4666: c380 sw s0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:5420 } 4668: bf7d j 4626 0000466a : prvIdleTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3442 { 466a: e93fb2ef jal t0,4fc <__riscv_save_4> prvCheckTasksWaitingTermination(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3712 pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 466e: 20015437 lui s0,0x20015 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3708 while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U ) 4672: 200009b7 lui s3,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3712 pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4676: 6cc40413 addi s0,s0,1740 # 200156cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3714 --uxCurrentNumberOfTasks; 467a: 20000a37 lui s4,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3708 while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U ) 467e: 11498493 addi s1,s3,276 # 20000114 4682: 409c lw a5,0(s1) 4684: dfed beqz a5,467e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3710 taskENTER_CRITICAL(); 4686: c6aff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3712 pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 468a: 445c lw a5,12(s0) 468c: 00c7a903 lw s2,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3713 ( void ) uxListRemove( &( pxTCB->xStateListItem ) ); 4690: 00490513 addi a0,s2,4 4694: d0eff0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3714 --uxCurrentNumberOfTasks; 4698: 110a0713 addi a4,s4,272 # 20000110 469c: 431c lw a5,0(a4) 469e: 17fd addi a5,a5,-1 46a0: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3715 --uxDeletedTasksWaitingCleanUp; 46a2: 409c lw a5,0(s1) 46a4: 17fd addi a5,a5,-1 46a6: c09c sw a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3717 taskEXIT_CRITICAL(); 46a8: c5eff0ef jal ra,3b06 prvDeleteTCB(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3971 vPortFreeStack( pxTCB->pxStack ); 46ac: 03092503 lw a0,48(s2) 46b0: a96ff0ef jal ra,3946 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3972 vPortFree( pxTCB ); 46b4: 854a mv a0,s2 46b6: a90ff0ef jal ra,3946 46ba: b7d1 j 467e 000046bc : xTaskCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:734 { 46bc: e33fb2ef jal t0,4ee <__riscv_save_10> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:768 pxStack = pvPortMallocStack( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation is the stack. */ 46c0: 00261913 slli s2,a2,0x2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:734 { 46c4: 8aaa mv s5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:768 pxStack = pvPortMallocStack( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation is the stack. */ 46c6: 854a mv a0,s2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:734 { 46c8: 8a2e mv s4,a1 46ca: 8b36 mv s6,a3 46cc: 8bba mv s7,a4 46ce: 89be mv s3,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:768 pxStack = pvPortMallocStack( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack and this allocation is the stack. */ 46d0: 8eaff0ef jal ra,37ba D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:770 if( pxStack != NULL ) 46d4: c11d beqz a0,46fa 46d6: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:773 pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); /*lint !e9087 !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack, and the first member of TCB_t is always a pointer to the task's stack. */ 46d8: 05400513 li a0,84 46dc: 8deff0ef jal ra,37ba 46e0: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:775 if( pxNewTCB != NULL ) 46e2: c909 beqz a0,46f4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:778 pxNewTCB->pxStack = pxStack; 46e4: d904 sw s1,48(a0) prvInitialiseNewTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:890 for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) 46e6: 4781 li a5,0 46e8: 46c1 li a3,16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:888 if( pcName != NULL ) 46ea: 000a1a63 bnez s4,46fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:915 pxNewTCB->pcTaskName[ 0 ] = 0x00; 46ee: 02050a23 sb zero,52(a0) 46f2: a025 j 471a xTaskCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:784 vPortFreeStack( pxStack ); 46f4: 8526 mv a0,s1 46f6: a50ff0ef jal ra,3946 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:810 xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; 46fa: 557d li a0,-1 46fc: a265 j 48a4 prvInitialiseNewTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:892 pxNewTCB->pcTaskName[ x ] = pcName[ x ]; 46fe: 00fa0733 add a4,s4,a5 4702: 00070703 lb a4,0(a4) 4706: 00f40633 add a2,s0,a5 470a: 02e60a23 sb a4,52(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:897 if( pcName[ x ] == ( char ) 0x00 ) 470e: c701 beqz a4,4716 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:890 for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) 4710: 0785 addi a5,a5,1 4712: fed796e3 bne a5,a3,46fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:909 pxNewTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0'; 4716: 040401a3 sb zero,67(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:919 configASSERT( uxPriority < configMAX_PRIORITIES ); 471a: 47b9 li a5,14 471c: 0377f463 bgeu a5,s7,4744 4720: 67a1 lui a5,0x8 4722: 80078793 addi a5,a5,-2048 # 7800 4726: 30079073 csrw mstatus,a5 472a: 0000d637 lui a2,0xd 472e: 0000d537 lui a0,0xd 4732: 34460613 addi a2,a2,836 # d344 4736: 39700593 li a1,919 473a: 2e450513 addi a0,a0,740 # d2e4 473e: 338080ef jal ra,ca76 4742: a001 j 4742 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:938 vListInitialiseItem( &( pxNewTCB->xStateListItem ) ); 4744: 00440a13 addi s4,s0,4 4748: 8552 mv a0,s4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:930 pxNewTCB->uxPriority = uxPriority; 474a: 03742623 sw s7,44(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:933 pxNewTCB->uxBasePriority = uxPriority; 474e: 05742223 sw s7,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:934 pxNewTCB->uxMutexesHeld = 0; 4752: 04042423 sw zero,72(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:938 vListInitialiseItem( &( pxNewTCB->xStateListItem ) ); 4756: c18ff0ef jal ra,3b6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:939 vListInitialiseItem( &( pxNewTCB->xEventListItem ) ); 475a: 01840513 addi a0,s0,24 475e: c10ff0ef jal ra,3b6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:946 listSET_LIST_ITEM_VALUE( &( pxNewTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 4762: 473d li a4,15 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:860 pxTopOfStack = &( pxNewTCB->pxStack[ ulStackDepth - ( uint32_t ) 1 ] ); 4764: ffc90513 addi a0,s2,-4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:946 listSET_LIST_ITEM_VALUE( &( pxNewTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 4768: 41770733 sub a4,a4,s7 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:860 pxTopOfStack = &( pxNewTCB->pxStack[ ulStackDepth - ( uint32_t ) 1 ] ); 476c: 9526 add a0,a0,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:943 listSET_LIST_ITEM_OWNER( &( pxNewTCB->xStateListItem ), pxNewTCB ); 476e: c800 sw s0,16(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:946 listSET_LIST_ITEM_VALUE( &( pxNewTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 4770: cc18 sw a4,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:947 listSET_LIST_ITEM_OWNER( &( pxNewTCB->xEventListItem ), pxNewTCB ); 4772: d040 sw s0,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:986 memset( ( void * ) &( pxNewTCB->ulNotifiedValue[ 0 ] ), 0x00, sizeof( pxNewTCB->ulNotifiedValue ) ); 4774: 04040623 sb zero,76(s0) 4778: 040406a3 sb zero,77(s0) 477c: 04040723 sb zero,78(s0) 4780: 040407a3 sb zero,79(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:987 memset( ( void * ) &( pxNewTCB->ucNotifyState[ 0 ] ), 0x00, sizeof( pxNewTCB->ucNotifyState ) ); 4784: 04040823 sb zero,80(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1002 pxNewTCB->ucDelayAborted = pdFALSE; 4788: 040408a3 sb zero,81(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1052 pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); 478c: 865a mv a2,s6 478e: 85d6 mv a1,s5 4790: 9941 andi a0,a0,-16 4792: c6ffb0ef jal ra,400 4796: c008 sw a0,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1058 if( pxCreatedTask != NULL ) 4798: 00098463 beqz s3,47a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1062 *pxCreatedTask = ( TaskHandle_t ) pxNewTCB; 479c: 0089a023 sw s0,0(s3) prvAddNewTaskToReadyList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1075 taskENTER_CRITICAL(); 47a0: b50ff0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1077 uxCurrentNumberOfTasks++; 47a4: 200007b7 lui a5,0x20000 47a8: 11078793 addi a5,a5,272 # 20000110 47ac: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1079 if( pxCurrentTCB == NULL ) 47ae: 200004b7 lui s1,0x20000 47b2: 200159b7 lui s3,0x20015 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1077 uxCurrentNumberOfTasks++; 47b6: 0705 addi a4,a4,1 47b8: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1079 if( pxCurrentTCB == NULL ) 47ba: 10448713 addi a4,s1,260 # 20000104 47be: 4318 lw a4,0(a4) 47c0: 10448493 addi s1,s1,260 47c4: 55098913 addi s2,s3,1360 # 20015550 47c8: 0e071063 bnez a4,48a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1083 pxCurrentTCB = pxNewTCB; 47cc: c080 sw s0,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1085 if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 ) 47ce: 4398 lw a4,0(a5) 47d0: 4785 li a5,1 47d2: 06f71663 bne a4,a5,483e 47d6: 55098993 addi s3,s3,1360 47da: 12c90a93 addi s5,s2,300 prvInitialiseTaskLists(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3672 vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) ); 47de: 854e mv a0,s3 47e0: 09d1 addi s3,s3,20 47e2: b78ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3670 for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ ) 47e6: ff3a9ce3 bne s5,s3,47de D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3675 vListInitialise( &xDelayedTaskList1 ); 47ea: 20015537 lui a0,0x20015 47ee: 67c50a93 addi s5,a0,1660 # 2001567c 47f2: 67c50513 addi a0,a0,1660 47f6: b64ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3676 vListInitialise( &xDelayedTaskList2 ); 47fa: 20015537 lui a0,0x20015 47fe: 69050993 addi s3,a0,1680 # 20015690 4802: 69050513 addi a0,a0,1680 4806: b54ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3677 vListInitialise( &xPendingReadyList ); 480a: 20015537 lui a0,0x20015 480e: 6a450513 addi a0,a0,1700 # 200156a4 4812: b48ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3681 vListInitialise( &xTasksWaitingTermination ); 4816: 20015537 lui a0,0x20015 481a: 6cc50513 addi a0,a0,1740 # 200156cc 481e: b3cff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3687 vListInitialise( &xSuspendedTaskList ); 4822: 20015537 lui a0,0x20015 4826: 6b850513 addi a0,a0,1720 # 200156b8 482a: b30ff0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3693 pxDelayedTaskList = &xDelayedTaskList1; 482e: 200007b7 lui a5,0x20000 4832: 1157a423 sw s5,264(a5) # 20000108 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3694 pxOverflowDelayedTaskList = &xDelayedTaskList2; 4836: 200007b7 lui a5,0x20000 483a: 1137a623 sw s3,268(a5) # 2000010c prvAddNewTaskToReadyList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1119 uxTaskNumber++; 483e: 200007b7 lui a5,0x20000 4842: 11c78793 addi a5,a5,284 # 2000011c 4846: 4398 lw a4,0(a5) 4848: 0705 addi a4,a4,1 484a: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1129 prvAddTaskToReadyList( pxNewTCB ); 484c: 20000737 lui a4,0x20000 4850: 12070713 addi a4,a4,288 # 20000120 4854: 545c lw a5,44(s0) 4856: 4314 lw a3,0(a4) 4858: 00f6f363 bgeu a3,a5,485e 485c: c31c sw a5,0(a4) 485e: 4751 li a4,20 4860: 02e787b3 mul a5,a5,a4 4864: 97ca add a5,a5,s2 4866: 43d8 lw a4,4(a5) 4868: 4714 lw a3,8(a4) 486a: c418 sw a4,8(s0) 486c: c454 sw a3,12(s0) 486e: 4714 lw a3,8(a4) 4870: 0146a223 sw s4,4(a3) 4874: 01472423 sw s4,8(a4) 4878: 4398 lw a4,0(a5) 487a: c85c sw a5,20(s0) 487c: 0705 addi a4,a4,1 487e: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1133 taskEXIT_CRITICAL(); 4880: a86ff0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1135 if( xSchedulerRunning != pdFALSE ) 4884: 200007b7 lui a5,0x20000 4888: 1347a783 lw a5,308(a5) # 20000134 xTaskCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:806 xReturn = pdPASS; 488c: 4505 li a0,1 prvAddNewTaskToReadyList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1135 if( xSchedulerRunning != pdFALSE ) 488e: cb99 beqz a5,48a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1139 if( pxCurrentTCB->uxPriority < pxNewTCB->uxPriority ) 4890: 409c lw a5,0(s1) 4892: 57d8 lw a4,44(a5) 4894: 545c lw a5,44(s0) 4896: 00f77763 bgeu a4,a5,48a4 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 489a: e000e7b7 lui a5,0xe000e 489e: 6711 lui a4,0x4 48a0: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xTaskCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:814 } 48a4: c83fb06f j 526 <__riscv_restore_10> prvAddNewTaskToReadyList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1102 if( xSchedulerRunning == pdFALSE ) 48a8: 200007b7 lui a5,0x20000 48ac: 1347a783 lw a5,308(a5) # 20000134 48b0: f7d9 bnez a5,483e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1104 if( pxCurrentTCB->uxPriority <= pxNewTCB->uxPriority ) 48b2: 409c lw a5,0(s1) 48b4: 57d8 lw a4,44(a5) 48b6: 545c lw a5,44(s0) 48b8: f8e7e3e3 bltu a5,a4,483e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1106 pxCurrentTCB = pxNewTCB; 48bc: c080 sw s0,0(s1) 48be: b741 j 483e 000048c0 : vTaskStartScheduler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1998 { 48c0: c57fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2031 xReturn = xTaskCreate( prvIdleTask, 48c4: 200007b7 lui a5,0x20000 48c8: 0000d5b7 lui a1,0xd 48cc: 00004537 lui a0,0x4 48d0: 12478793 addi a5,a5,292 # 20000124 48d4: 4701 li a4,0 48d6: 4681 li a3,0 48d8: 10000613 li a2,256 48dc: 35858593 addi a1,a1,856 # d358 48e0: 66a50513 addi a0,a0,1642 # 466a 48e4: dd9ff0ef jal ra,46bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2042 if( xReturn == pdPASS ) 48e8: 4405 li s0,1 48ea: 02851e63 bne a0,s0,4926 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2044 xReturn = xTimerCreateTimerTask(); 48ee: 473000ef jal ra,5560 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2053 if( xReturn == pdPASS ) 48f2: 02851a63 bne a0,s0,4926 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2069 portDISABLE_INTERRUPTS(); 48f6: 67a1 lui a5,0x8 48f8: 80078793 addi a5,a5,-2048 # 7800 48fc: 30079073 csrw mstatus,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2081 xNextTaskUnblockTime = portMAX_DELAY; 4900: 200007b7 lui a5,0x20000 4904: 577d li a4,-1 4906: 12e7a423 sw a4,296(a5) # 20000128 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2082 xSchedulerRunning = pdTRUE; 490a: 200007b7 lui a5,0x20000 490e: 12a7aa23 sw a0,308(a5) # 20000134 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2083 xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT; 4912: 200007b7 lui a5,0x20000 4916: 1207ac23 sw zero,312(a5) # 20000138 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2097 if( xPortStartScheduler() != pdFALSE ) 491a: 90eff0ef jal ra,3a28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2121 (discriminator 2) ( void ) uxTopUsedPriority; 491e: 81c1a783 lw a5,-2020(gp) # 2000005c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2122 (discriminator 2) } 4922: c19fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2112 configASSERT( xReturn != errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ); 4926: 57fd li a5,-1 4928: fef51be3 bne a0,a5,491e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2112 (discriminator 1) 492c: 67a1 lui a5,0x8 492e: 80078793 addi a5,a5,-2048 # 7800 4932: 30079073 csrw mstatus,a5 4936: 0000d637 lui a2,0xd 493a: 6585 lui a1,0x1 493c: 0000d537 lui a0,0xd 4940: 34460613 addi a2,a2,836 # d344 4944: 84058593 addi a1,a1,-1984 # 840 4948: 2e450513 addi a0,a0,740 # d2e4 494c: 12a080ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2112 (discriminator 2) 4950: a001 j 4950 00004952 : vTaskSuspendAll(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2149 ++uxSchedulerSuspended; 4952: 200007b7 lui a5,0x20000 4956: 11878793 addi a5,a5,280 # 20000118 495a: 4398 lw a4,0(a5) 495c: 0705 addi a4,a4,1 495e: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2154 } 4960: 8082 ret 00004962 : xTaskGetTickCount(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2339 xTicks = xTickCount; 4962: 200007b7 lui a5,0x20000 4966: 1387a503 lw a0,312(a5) # 20000138 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2344 } 496a: 8082 ret 0000496c : xTaskIncrementTick(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2747 if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) 496c: 200007b7 lui a5,0x20000 4970: 1187a783 lw a5,280(a5) # 20000118 4974: 18079963 bnez a5,4b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2737 { 4978: b9ffb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2751 const TickType_t xConstTickCount = xTickCount + ( TickType_t ) 1; 497c: 200007b7 lui a5,0x20000 4980: 13878793 addi a5,a5,312 # 20000138 4984: 4380 lw s0,0(a5) 4986: 0405 addi s0,s0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2755 xTickCount = xConstTickCount; 4988: c380 sw s0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2757 if( xConstTickCount == ( TickType_t ) 0U ) /*lint !e774 'if' does not always evaluate to false as it is looking for an overflow. */ 498a: ec21 bnez s0,49e2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2759 taskSWITCH_DELAYED_LISTS(); 498c: 200007b7 lui a5,0x20000 4990: 10878793 addi a5,a5,264 # 20000108 4994: 4398 lw a4,0(a5) 4996: 4318 lw a4,0(a4) 4998: c705 beqz a4,49c0 499a: 67a1 lui a5,0x8 499c: 80078793 addi a5,a5,-2048 # 7800 49a0: 30079073 csrw mstatus,a5 49a4: 0000d637 lui a2,0xd 49a8: 6585 lui a1,0x1 49aa: 0000d537 lui a0,0xd 49ae: 34460613 addi a2,a2,836 # d344 49b2: ac758593 addi a1,a1,-1337 # ac7 49b6: 2e450513 addi a0,a0,740 # d2e4 49ba: 0bc080ef jal ra,ca76 49be: a001 j 49be 49c0: 20000737 lui a4,0x20000 49c4: 10c70713 addi a4,a4,268 # 2000010c 49c8: 4394 lw a3,0(a5) 49ca: 4310 lw a2,0(a4) 49cc: c390 sw a2,0(a5) 49ce: 200007b7 lui a5,0x20000 49d2: c314 sw a3,0(a4) 49d4: 12c78793 addi a5,a5,300 # 2000012c 49d8: 4398 lw a4,0(a5) 49da: 0705 addi a4,a4,1 49dc: c398 sw a4,0(a5) 49de: bc3ff0ef jal ra,45a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2770 if( xConstTickCount >= xNextTaskUnblockTime ) 49e2: 20000637 lui a2,0x20000 49e6: 12860793 addi a5,a2,296 # 20000128 49ea: 439c lw a5,0(a5) 49ec: 20015737 lui a4,0x20015 49f0: 200005b7 lui a1,0x20000 49f4: 12860613 addi a2,a2,296 49f8: 55070713 addi a4,a4,1360 # 20015550 49fc: 10458593 addi a1,a1,260 # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2740 BaseType_t xSwitchRequired = pdFALSE; 4a00: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2770 if( xConstTickCount >= xNextTaskUnblockTime ) 4a02: 02f47563 bgeu s0,a5,4a2c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2853 if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( UBaseType_t ) 1 ) 4a06: 419c lw a5,0(a1) 4a08: 46d1 li a3,20 4a0a: 57dc lw a5,44(a5) 4a0c: 02d787b3 mul a5,a5,a3 4a10: 973e add a4,a4,a5 4a12: 4318 lw a4,0(a4) 4a14: 4785 li a5,1 4a16: 00e7f363 bgeu a5,a4,4a1c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2855 xSwitchRequired = pdTRUE; 4a1a: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2881 if( xYieldPending != pdFALSE ) 4a1c: 200007b7 lui a5,0x20000 4a20: 13c7a783 lw a5,316(a5) # 2000013c 4a24: c391 beqz a5,4a28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2883 xSwitchRequired = pdTRUE; 4a26: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2906 } 4a28: b13fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2774 if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) 4a2c: 20000e37 lui t3,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2824 prvAddTaskToReadyList( pxTCB ); 4a30: 20000eb7 lui t4,0x20000 4a34: 4f51 li t5,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2774 if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) 4a36: 108e0793 addi a5,t3,264 # 20000108 4a3a: 4394 lw a3,0(a5) 4a3c: 4294 lw a3,0(a3) 4a3e: e681 bnez a3,4a46 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2781 xNextTaskUnblockTime = portMAX_DELAY; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 4a40: 57fd li a5,-1 4a42: c21c sw a5,0(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2782 break; 4a44: b7c9 j 4a06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2790 pxTCB = listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4a46: 439c lw a5,0(a5) 4a48: 47dc lw a5,12(a5) 4a4a: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2791 xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xStateListItem ) ); 4a4c: 43d4 lw a3,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2793 if( xConstTickCount < xItemValue ) 4a4e: 00d47463 bgeu s0,a3,4a56 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2800 xNextTaskUnblockTime = xItemValue; 4a52: c214 sw a3,0(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2801 break; /*lint !e9011 Code structure here is deemed easier to understand with multiple breaks. */ 4a54: bf4d j 4a06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2809 listREMOVE_ITEM( &( pxTCB->xStateListItem ) ); 4a56: 0087a883 lw a7,8(a5) 4a5a: 00c7a803 lw a6,12(a5) 4a5e: 4bd4 lw a3,20(a5) 4a60: 00478313 addi t1,a5,4 4a64: 0108a423 sw a6,8(a7) 4a68: 01182223 sw a7,4(a6) 4a6c: 0046a883 lw a7,4(a3) 4a70: 00689463 bne a7,t1,4a78 4a74: 0106a223 sw a6,4(a3) 4a78: 0006a803 lw a6,0(a3) 4a7c: 0007aa23 sw zero,20(a5) 4a80: 187d addi a6,a6,-1 4a82: 0106a023 sw a6,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2813 if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) 4a86: 5794 lw a3,40(a5) 4a88: ca95 beqz a3,4abc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2815 listREMOVE_ITEM( &( pxTCB->xEventListItem ) ); 4a8a: 01c7a803 lw a6,28(a5) 4a8e: 0207a883 lw a7,32(a5) 4a92: 0046af83 lw t6,4(a3) 4a96: 01182423 sw a7,8(a6) 4a9a: 0207a883 lw a7,32(a5) 4a9e: 0108a223 sw a6,4(a7) 4aa2: 01878813 addi a6,a5,24 4aa6: 010f9463 bne t6,a6,4aae 4aaa: 0116a223 sw a7,4(a3) 4aae: 0006a803 lw a6,0(a3) 4ab2: 0207a423 sw zero,40(a5) 4ab6: 187d addi a6,a6,-1 4ab8: 0106a023 sw a6,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2824 prvAddTaskToReadyList( pxTCB ); 4abc: 120e8693 addi a3,t4,288 # 20000120 4ac0: 02c7a803 lw a6,44(a5) 4ac4: 0006a883 lw a7,0(a3) 4ac8: 0108f463 bgeu a7,a6,4ad0 4acc: 0106a023 sw a6,0(a3) 4ad0: 03e806b3 mul a3,a6,t5 4ad4: 96ba add a3,a3,a4 4ad6: 0046a883 lw a7,4(a3) 4ada: 0088af83 lw t6,8(a7) 4ade: 0117a423 sw a7,8(a5) 4ae2: 01f7a623 sw t6,12(a5) 4ae6: 0088af83 lw t6,8(a7) 4aea: 006fa223 sw t1,4(t6) 4aee: 0068a423 sw t1,8(a7) 4af2: cbd4 sw a3,20(a5) 4af4: 429c lw a5,0(a3) 4af6: 0785 addi a5,a5,1 4af8: c29c sw a5,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2834 if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) 4afa: 419c lw a5,0(a1) 4afc: 57dc lw a5,44(a5) 4afe: f2f86ce3 bltu a6,a5,4a36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2836 xSwitchRequired = pdTRUE; 4b02: 4505 li a0,1 4b04: bf0d j 4a36 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2894 ++xPendedTicks; 4b06: 200007b7 lui a5,0x20000 4b0a: 13078793 addi a5,a5,304 # 20000130 4b0e: 4398 lw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2740 BaseType_t xSwitchRequired = pdFALSE; 4b10: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2894 ++xPendedTicks; 4b12: 0705 addi a4,a4,1 4b14: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2906 } 4b16: 8082 ret 00004b18 : xTaskResumeAll(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2221 { 4b18: 9e5fb2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2227 configASSERT( uxSchedulerSuspended ); 4b1c: 20000437 lui s0,0x20000 4b20: 11840413 addi s0,s0,280 # 20000118 4b24: 401c lw a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2221 { 4b26: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2227 configASSERT( uxSchedulerSuspended ); 4b28: e785 bnez a5,4b50 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2227 (discriminator 1) 4b2a: 67a1 lui a5,0x8 4b2c: 80078793 addi a5,a5,-2048 # 7800 4b30: 30079073 csrw mstatus,a5 4b34: 0000d637 lui a2,0xd 4b38: 6585 lui a1,0x1 4b3a: 0000d537 lui a0,0xd 4b3e: 34460613 addi a2,a2,836 # d344 4b42: 8b358593 addi a1,a1,-1869 # 8b3 4b46: 2e450513 addi a0,a0,740 # d2e4 4b4a: 72d070ef jal ra,ca76 4b4e: a001 j 4b4e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2234 taskENTER_CRITICAL(); 4b50: fa1fe0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2236 --uxSchedulerSuspended; 4b54: 401c lw a5,0(s0) 4b56: 17fd addi a5,a5,-1 4b58: c01c sw a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2238 if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) 4b5a: 401c lw a5,0(s0) 4b5c: cb89 beqz a5,4b6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2223 BaseType_t xAlreadyYielded = pdFALSE; 4b5e: 4501 li a0,0 4b60: c62a sw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2326 taskEXIT_CRITICAL(); 4b62: fa5fe0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2329 } 4b66: 4532 lw a0,12(sp) 4b68: 0141 addi sp,sp,16 4b6a: 9c7fb06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2240 if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U ) 4b6e: 200007b7 lui a5,0x20000 4b72: 1107a783 lw a5,272(a5) # 20000110 4b76: d7e5 beqz a5,4b5e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2244 while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) 4b78: 200156b7 lui a3,0x20015 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2250 prvAddTaskToReadyList( pxTCB ); 4b7c: 20015537 lui a0,0x20015 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2222 TCB_t * pxTCB = NULL; 4b80: 4781 li a5,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2244 while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) 4b82: 6a468693 addi a3,a3,1700 # 200156a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2250 prvAddTaskToReadyList( pxTCB ); 4b86: 20000f37 lui t5,0x20000 4b8a: 55050513 addi a0,a0,1360 # 20015550 4b8e: 48d1 li a7,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2254 if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) 4b90: 20000337 lui t1,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2256 xYieldPending = pdTRUE; 4b94: 20000e37 lui t3,0x20000 4b98: 4e85 li t4,1 4b9a: a859 j 4c30 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2246 pxTCB = listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4b9c: 46dc lw a5,12(a3) 4b9e: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2247 listREMOVE_ITEM( &( pxTCB->xEventListItem ) ); 4ba0: 4fcc lw a1,28(a5) 4ba2: 5390 lw a2,32(a5) 4ba4: 5798 lw a4,40(a5) 4ba6: c590 sw a2,8(a1) 4ba8: 0207a803 lw a6,32(a5) 4bac: 00b82223 sw a1,4(a6) 4bb0: 00472803 lw a6,4(a4) 4bb4: 01878593 addi a1,a5,24 4bb8: 00b81363 bne a6,a1,4bbe 4bbc: c350 sw a2,4(a4) 4bbe: 4310 lw a2,0(a4) 4bc0: 0207a423 sw zero,40(a5) 4bc4: 167d addi a2,a2,-1 4bc6: c310 sw a2,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2249 listREMOVE_ITEM( &( pxTCB->xStateListItem ) ); 4bc8: 478c lw a1,8(a5) 4bca: 47d0 lw a2,12(a5) 4bcc: 4bd8 lw a4,20(a5) 4bce: 00478813 addi a6,a5,4 4bd2: c590 sw a2,8(a1) 4bd4: c24c sw a1,4(a2) 4bd6: 434c lw a1,4(a4) 4bd8: 01059363 bne a1,a6,4bde 4bdc: c350 sw a2,4(a4) 4bde: 4310 lw a2,0(a4) 4be0: 0007aa23 sw zero,20(a5) 4be4: 167d addi a2,a2,-1 4be6: c310 sw a2,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2250 prvAddTaskToReadyList( pxTCB ); 4be8: 120f0713 addi a4,t5,288 # 20000120 4bec: 57d0 lw a2,44(a5) 4bee: 430c lw a1,0(a4) 4bf0: 00c5f363 bgeu a1,a2,4bf6 4bf4: c310 sw a2,0(a4) 4bf6: 03160733 mul a4,a2,a7 4bfa: 972a add a4,a4,a0 4bfc: 434c lw a1,4(a4) 4bfe: 0085af83 lw t6,8(a1) 4c02: c78c sw a1,8(a5) 4c04: 01f7a623 sw t6,12(a5) 4c08: 0085af83 lw t6,8(a1) 4c0c: 010fa223 sw a6,4(t6) 4c10: 0105a423 sw a6,8(a1) 4c14: 430c lw a1,0(a4) 4c16: cbd8 sw a4,20(a5) 4c18: 0585 addi a1,a1,1 4c1a: c30c sw a1,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2254 if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) 4c1c: 10430713 addi a4,t1,260 # 20000104 4c20: 4318 lw a4,0(a4) 4c22: 5758 lw a4,44(a4) 4c24: 00e66663 bltu a2,a4,4c30 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2256 xYieldPending = pdTRUE; 4c28: 13ce0713 addi a4,t3,316 # 2000013c 4c2c: 01d72023 sw t4,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2244 while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) 4c30: 4298 lw a4,0(a3) 4c32: f72d bnez a4,4b9c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2264 if( pxTCB != NULL ) 4c34: c399 beqz a5,4c3a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2272 prvResetNextTaskUnblockTime(); 4c36: 96bff0ef jal ra,45a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2280 TickType_t xPendedCounts = xPendedTicks; /* Non-volatile copy. */ 4c3a: 200007b7 lui a5,0x20000 4c3e: 13078713 addi a4,a5,304 # 20000130 4c42: 4304 lw s1,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2282 if( xPendedCounts > ( TickType_t ) 0U ) 4c44: 13078413 addi s0,a5,304 4c48: cc99 beqz s1,4c66 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2288 xYieldPending = pdTRUE; 4c4a: 20000937 lui s2,0x20000 4c4e: 4985 li s3,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2286 if( xTaskIncrementTick() != pdFALSE ) 4c50: d1dff0ef jal ra,496c 4c54: c509 beqz a0,4c5e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2288 xYieldPending = pdTRUE; 4c56: 13c90793 addi a5,s2,316 # 2000013c 4c5a: 0137a023 sw s3,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2295 --xPendedCounts; 4c5e: 14fd addi s1,s1,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2296 } while( xPendedCounts > ( TickType_t ) 0U ); 4c60: f8e5 bnez s1,4c50 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2298 xPendedTicks = 0; 4c62: 00042023 sw zero,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2306 if( xYieldPending != pdFALSE ) 4c66: 200007b7 lui a5,0x20000 4c6a: 13c7a783 lw a5,316(a5) # 2000013c 4c6e: ee0788e3 beqz a5,4b5e NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4c72: e000e7b7 lui a5,0xe000e 4c76: 6711 lui a4,0x4 4c78: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> xTaskResumeAll(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:2310 xAlreadyYielded = pdTRUE; 4c7c: 4505 li a0,1 4c7e: b5cd j 4b60 00004c80 : vTaskDelay(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1351 if( xTicksToDelay > ( TickType_t ) 0U ) 4c80: e519 bnez a0,4c8e NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4c82: e000e7b7 lui a5,0xe000e 4c86: 6711 lui a4,0x4 4c88: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> 4c8c: 8082 ret vTaskDelay(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1347 { 4c8e: 889fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1353 configASSERT( uxSchedulerSuspended == 0 ); 4c92: 200007b7 lui a5,0x20000 4c96: 1187a783 lw a5,280(a5) # 20000118 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1347 { 4c9a: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1353 configASSERT( uxSchedulerSuspended == 0 ); 4c9c: c39d beqz a5,4cc2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1353 (discriminator 1) 4c9e: 67a1 lui a5,0x8 4ca0: 80078793 addi a5,a5,-2048 # 7800 4ca4: 30079073 csrw mstatus,a5 4ca8: 0000d637 lui a2,0xd 4cac: 0000d537 lui a0,0xd 4cb0: 34460613 addi a2,a2,836 # d344 4cb4: 54900593 li a1,1353 4cb8: 2e450513 addi a0,a0,740 # d2e4 4cbc: 5bb070ef jal ra,ca76 4cc0: a001 j 4cc0 4cc2: c62a sw a0,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1354 (discriminator 2) vTaskSuspendAll(); 4cc4: c8fff0ef jal ra,4952 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1365 (discriminator 2) prvAddCurrentTaskToDelayedList( xTicksToDelay, pdFALSE ); 4cc8: 4532 lw a0,12(sp) 4cca: 4581 li a1,0 4ccc: 8f9ff0ef jal ra,45c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1367 (discriminator 2) xAlreadyYielded = xTaskResumeAll(); 4cd0: e49ff0ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1376 (discriminator 2) if( xAlreadyYielded == pdFALSE ) 4cd4: e511 bnez a0,4ce0 NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 4cd6: e000e7b7 lui a5,0xe000e 4cda: 6711 lui a4,0x4 4cdc: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> vTaskDelay(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:1384 } 4ce0: 0141 addi sp,sp,16 4ce2: 859fb06f j 53a <__riscv_restore_0> 00004ce6 : vTaskSwitchContext(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3023 if( uxSchedulerSuspended != ( UBaseType_t ) pdFALSE ) 4ce6: 200007b7 lui a5,0x20000 4cea: 1187a703 lw a4,280(a5) # 20000118 4cee: 200007b7 lui a5,0x20000 4cf2: 13c78793 addi a5,a5,316 # 2000013c 4cf6: c701 beqz a4,4cfe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3027 xYieldPending = pdTRUE; 4cf8: 4705 li a4,1 4cfa: c398 sw a4,0(a5) 4cfc: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3031 xYieldPending = pdFALSE; 4cfe: 0007a023 sw zero,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4d02: 200007b7 lui a5,0x20000 4d06: 12078713 addi a4,a5,288 # 20000120 4d0a: 4318 lw a4,0(a4) 4d0c: 12078613 addi a2,a5,288 4d10: 200157b7 lui a5,0x20015 4d14: 55078793 addi a5,a5,1360 # 20015550 4d18: 4851 li a6,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 5) 4d1a: 030706b3 mul a3,a4,a6 4d1e: 00d785b3 add a1,a5,a3 4d22: 4188 lw a0,0(a1) 4d24: c515 beqz a0,4d50 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 7) 4d26: 41c8 lw a0,4(a1) 4d28: 06a1 addi a3,a3,8 4d2a: 96be add a3,a3,a5 4d2c: 4148 lw a0,4(a0) 4d2e: c1c8 sw a0,4(a1) 4d30: 00d51463 bne a0,a3,4d38 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 8) 4d34: 4154 lw a3,4(a0) 4d36: c1d4 sw a3,4(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 10) 4d38: 46d1 li a3,20 4d3a: 02d706b3 mul a3,a4,a3 4d3e: 97b6 add a5,a5,a3 4d40: 43dc lw a5,4(a5) 4d42: 47d4 lw a3,12(a5) 4d44: 200007b7 lui a5,0x20000 4d48: 10d7a223 sw a3,260(a5) # 20000104 4d4c: c218 sw a4,0(a2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3075 (discriminator 10) traceTASK_SWITCHED_IN(); 4d4e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 6) taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4d50: e715 bnez a4,4d7c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3022 { 4d52: fc4fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 taskSELECT_HIGHEST_PRIORITY_TASK(); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4d56: 67a1 lui a5,0x8 4d58: 80078793 addi a5,a5,-2048 # 7800 4d5c: 30079073 csrw mstatus,a5 4d60: 0000d637 lui a2,0xd 4d64: 6585 lui a1,0x1 4d66: 0000d537 lui a0,0xd 4d6a: 34460613 addi a2,a2,836 # d344 4d6e: c0258593 addi a1,a1,-1022 # c02 4d72: 2e450513 addi a0,a0,740 # d2e4 4d76: 501070ef jal ra,ca76 4d7a: a001 j 4d7a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3074 (discriminator 3) 4d7c: 177d addi a4,a4,-1 4d7e: bf71 j 4d1a 00004d80 : vTaskPlaceOnEventList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3099 { 4d80: f96fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3100 configASSERT( pxEventList ); 4d84: e505 bnez a0,4dac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3100 (discriminator 1) 4d86: 67a1 lui a5,0x8 4d88: 80078793 addi a5,a5,-2048 # 7800 4d8c: 30079073 csrw mstatus,a5 4d90: 0000d637 lui a2,0xd 4d94: 6585 lui a1,0x1 4d96: 0000d537 lui a0,0xd 4d9a: 34460613 addi a2,a2,836 # d344 4d9e: c1c58593 addi a1,a1,-996 # c1c 4da2: 2e450513 addi a0,a0,740 # d2e4 4da6: 4d1070ef jal ra,ca76 4daa: a001 j 4daa D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3116 (discriminator 2) vListInsert( pxEventList, &( pxCurrentTCB->xEventListItem ) ); 4dac: 200007b7 lui a5,0x20000 4db0: 842e mv s0,a1 4db2: 1047a583 lw a1,260(a5) # 20000104 4db6: 05e1 addi a1,a1,24 4db8: dbdfe0ef jal ra,3b74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3118 (discriminator 2) prvAddCurrentTaskToDelayedList( xTicksToWait, pdTRUE ); 4dbc: 4585 li a1,1 4dbe: 8522 mv a0,s0 4dc0: 805ff0ef jal ra,45c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3119 (discriminator 2) } 4dc4: f76fb06f j 53a <__riscv_restore_0> 00004dc8 : vTaskPlaceOnEventListRestricted(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3153 { 4dc8: f4efb2ef jal t0,516 <__riscv_save_0> 4dcc: 872a mv a4,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3154 configASSERT( pxEventList ); 4dce: e505 bnez a0,4df6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3154 (discriminator 1) 4dd0: 67a1 lui a5,0x8 4dd2: 80078793 addi a5,a5,-2048 # 7800 4dd6: 30079073 csrw mstatus,a5 4dda: 0000d637 lui a2,0xd 4dde: 6585 lui a1,0x1 4de0: 0000d537 lui a0,0xd 4de4: 34460613 addi a2,a2,836 # d344 4de8: c5258593 addi a1,a1,-942 # c52 4dec: 2e450513 addi a0,a0,740 # d2e4 4df0: 487070ef jal ra,ca76 4df4: a001 j 4df4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3166 (discriminator 2) listINSERT_END( pxEventList, &( pxCurrentTCB->xEventListItem ) ); 4df6: 200007b7 lui a5,0x20000 4dfa: 10478793 addi a5,a5,260 # 20000104 4dfe: 4354 lw a3,4(a4) 4e00: 852e mv a0,a1 4e02: 438c lw a1,0(a5) 4e04: 0086a803 lw a6,8(a3) 4e08: cdd4 sw a3,28(a1) 4e0a: 438c lw a1,0(a5) 4e0c: 0305a023 sw a6,32(a1) 4e10: 0007a803 lw a6,0(a5) 4e14: 468c lw a1,8(a3) 4e16: 0861 addi a6,a6,24 4e18: 0105a223 sw a6,4(a1) 4e1c: 0007a803 lw a6,0(a5) 4e20: 439c lw a5,0(a5) 4e22: 0861 addi a6,a6,24 4e24: 0106a423 sw a6,8(a3) 4e28: d798 sw a4,40(a5) 4e2a: 431c lw a5,0(a4) 4e2c: 0785 addi a5,a5,1 4e2e: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3171 (discriminator 2) if( xWaitIndefinitely != pdFALSE ) 4e30: c211 beqz a2,4e34 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3173 xTicksToWait = portMAX_DELAY; 4e32: 557d li a0,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3177 prvAddCurrentTaskToDelayedList( xTicksToWait, xWaitIndefinitely ); 4e34: 85b2 mv a1,a2 4e36: f8eff0ef jal ra,45c4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3178 } 4e3a: f00fb06f j 53a <__riscv_restore_0> 00004e3e : xTaskRemoveFromEventList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3201 pxUnblockedTCB = listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 4e3e: 455c lw a5,12(a0) 4e40: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3202 configASSERT( pxUnblockedTCB ); 4e42: e795 bnez a5,4e6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3184 (discriminator 1) { 4e44: ed2fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3202 (discriminator 1) configASSERT( pxUnblockedTCB ); 4e48: 67a1 lui a5,0x8 4e4a: 80078793 addi a5,a5,-2048 # 7800 4e4e: 30079073 csrw mstatus,a5 4e52: 0000d637 lui a2,0xd 4e56: 6585 lui a1,0x1 4e58: 0000d537 lui a0,0xd 4e5c: 34460613 addi a2,a2,836 # d344 4e60: c8258593 addi a1,a1,-894 # c82 4e64: 2e450513 addi a0,a0,740 # d2e4 4e68: 40f070ef jal ra,ca76 4e6c: a001 j 4e6c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3203 (discriminator 2) listREMOVE_ITEM( &( pxUnblockedTCB->xEventListItem ) ); 4e6e: 4fd0 lw a2,28(a5) 4e70: 5394 lw a3,32(a5) 4e72: 5798 lw a4,40(a5) 4e74: 01878593 addi a1,a5,24 4e78: c614 sw a3,8(a2) 4e7a: c2d0 sw a2,4(a3) 4e7c: 4350 lw a2,4(a4) 4e7e: 00b61363 bne a2,a1,4e84 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3203 (discriminator 1) 4e82: c354 sw a3,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3203 (discriminator 3) 4e84: 4314 lw a3,0(a4) 4e86: 0207a423 sw zero,40(a5) 4e8a: 16fd addi a3,a3,-1 4e8c: c314 sw a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3205 (discriminator 3) if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) 4e8e: 20000737 lui a4,0x20000 4e92: 11872703 lw a4,280(a4) # 20000118 4e96: 57d4 lw a3,44(a5) 4e98: ef25 bnez a4,4f10 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3207 listREMOVE_ITEM( &( pxUnblockedTCB->xStateListItem ) ); 4e9a: 478c lw a1,8(a5) 4e9c: 47d0 lw a2,12(a5) 4e9e: 4bd8 lw a4,20(a5) 4ea0: c590 sw a2,8(a1) 4ea2: 47d0 lw a2,12(a5) 4ea4: 4348 lw a0,4(a4) 4ea6: c24c sw a1,4(a2) 4ea8: 00478593 addi a1,a5,4 4eac: 00b51363 bne a0,a1,4eb2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3207 (discriminator 1) 4eb0: c350 sw a2,4(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3207 (discriminator 3) 4eb2: 4310 lw a2,0(a4) 4eb4: 0007aa23 sw zero,20(a5) 4eb8: 167d addi a2,a2,-1 4eba: c310 sw a2,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3208 (discriminator 3) prvAddTaskToReadyList( pxUnblockedTCB ); 4ebc: 20000737 lui a4,0x20000 4ec0: 12070713 addi a4,a4,288 # 20000120 4ec4: 4310 lw a2,0(a4) 4ec6: 00d67363 bgeu a2,a3,4ecc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3208 (discriminator 1) 4eca: c314 sw a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3208 (discriminator 3) 4ecc: 4751 li a4,20 4ece: 02e68633 mul a2,a3,a4 4ed2: 20015737 lui a4,0x20015 4ed6: 55070713 addi a4,a4,1360 # 20015550 4eda: 9732 add a4,a4,a2 4edc: 4350 lw a2,4(a4) 4ede: 4608 lw a0,8(a2) 4ee0: c790 sw a2,8(a5) 4ee2: c7c8 sw a0,12(a5) 4ee4: 4608 lw a0,8(a2) 4ee6: c14c sw a1,4(a0) 4ee8: c60c sw a1,8(a2) 4eea: cbd8 sw a4,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3228 listINSERT_END( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); 4eec: 431c lw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3244 xReturn = pdFALSE; 4eee: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3228 listINSERT_END( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); 4ef0: 0785 addi a5,a5,1 4ef2: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3231 if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority ) 4ef4: 200007b7 lui a5,0x20000 4ef8: 1047a783 lw a5,260(a5) # 20000104 4efc: 57dc lw a5,44(a5) 4efe: 00d7f863 bgeu a5,a3,4f0e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3240 xYieldPending = pdTRUE; 4f02: 200007b7 lui a5,0x20000 4f06: 4705 li a4,1 4f08: 12e7ae23 sw a4,316(a5) # 2000013c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3236 xReturn = pdTRUE; 4f0c: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3248 } 4f0e: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3228 listINSERT_END( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); 4f10: 20015737 lui a4,0x20015 4f14: 6a470713 addi a4,a4,1700 # 200156a4 4f18: 4350 lw a2,4(a4) 4f1a: 4608 lw a0,8(a2) 4f1c: cfd0 sw a2,28(a5) 4f1e: d388 sw a0,32(a5) 4f20: 4608 lw a0,8(a2) 4f22: c14c sw a1,4(a0) 4f24: c60c sw a1,8(a2) 4f26: d798 sw a4,40(a5) 4f28: b7d1 j 4eec 00004f2a : vTaskInternalSetTimeOutState(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3315 pxTimeOut->xOverflowCount = xNumOfOverflows; 4f2a: 200007b7 lui a5,0x20000 4f2e: 12c7a783 lw a5,300(a5) # 2000012c 4f32: c11c sw a5,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3316 pxTimeOut->xTimeOnEntering = xTickCount; 4f34: 200007b7 lui a5,0x20000 4f38: 1387a783 lw a5,312(a5) # 20000138 4f3c: c15c sw a5,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3317 } 4f3e: 8082 ret 00004f40 : xTaskCheckForTimeOut(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3322 { 4f40: dd6fb2ef jal t0,516 <__riscv_save_0> 4f44: 1141 addi sp,sp,-16 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3325 configASSERT( pxTimeOut ); 4f46: e505 bnez a0,4f6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3325 (discriminator 1) 4f48: 67a1 lui a5,0x8 4f4a: 80078793 addi a5,a5,-2048 # 7800 4f4e: 30079073 csrw mstatus,a5 4f52: 0000d637 lui a2,0xd 4f56: 6585 lui a1,0x1 4f58: 0000d537 lui a0,0xd 4f5c: 34460613 addi a2,a2,836 # d344 4f60: cfd58593 addi a1,a1,-771 # cfd 4f64: 2e450513 addi a0,a0,740 # d2e4 4f68: 30f070ef jal ra,ca76 4f6c: a001 j 4f6c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3326 (discriminator 2) configASSERT( pxTicksToWait ); 4f6e: e585 bnez a1,4f96 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3326 (discriminator 1) 4f70: 67a1 lui a5,0x8 4f72: 80078793 addi a5,a5,-2048 # 7800 4f76: 30079073 csrw mstatus,a5 4f7a: 0000d637 lui a2,0xd 4f7e: 6585 lui a1,0x1 4f80: 0000d537 lui a0,0xd 4f84: 34460613 addi a2,a2,836 # d344 4f88: cfe58593 addi a1,a1,-770 # cfe 4f8c: 2e450513 addi a0,a0,740 # d2e4 4f90: 2e7070ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3326 (discriminator 2) 4f94: a001 j 4f94 4f96: c62e sw a1,12(sp) 4f98: c42a sw a0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3328 (discriminator 2) taskENTER_CRITICAL(); 4f9a: b57fe0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3335 (discriminator 2) if( pxCurrentTCB->ucDelayAborted != ( uint8_t ) pdFALSE ) 4f9e: 20000737 lui a4,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3331 (discriminator 2) const TickType_t xConstTickCount = xTickCount; 4fa2: 200007b7 lui a5,0x20000 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3335 (discriminator 2) if( pxCurrentTCB->ucDelayAborted != ( uint8_t ) pdFALSE ) 4fa6: 10470713 addi a4,a4,260 # 20000104 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3331 (discriminator 2) const TickType_t xConstTickCount = xTickCount; 4faa: 1387a683 lw a3,312(a5) # 20000138 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3335 (discriminator 2) if( pxCurrentTCB->ucDelayAborted != ( uint8_t ) pdFALSE ) 4fae: 431c lw a5,0(a4) 4fb0: 4522 lw a0,8(sp) 4fb2: 45b2 lw a1,12(sp) 4fb4: 0517c783 lbu a5,81(a5) 4fb8: cb99 beqz a5,4fce D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3339 pxCurrentTCB->ucDelayAborted = pdFALSE; 4fba: 431c lw a5,0(a4) 4fbc: 040788a3 sb zero,81(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3363 xReturn = pdTRUE; 4fc0: 4405 li s0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3379 taskEXIT_CRITICAL(); 4fc2: b45fe0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3382 } 4fc6: 8522 mv a0,s0 4fc8: 0141 addi sp,sp,16 4fca: d70fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3346 if( *pxTicksToWait == portMAX_DELAY ) 4fce: 419c lw a5,0(a1) 4fd0: 577d li a4,-1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3351 xReturn = pdFALSE; 4fd2: 4401 li s0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3346 if( *pxTicksToWait == portMAX_DELAY ) 4fd4: fee787e3 beq a5,a4,4fc2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3356 if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xConstTickCount >= pxTimeOut->xTimeOnEntering ) ) /*lint !e525 Indentation preferred as is to make code within pre-processor directives clearer. */ 4fd8: 20000637 lui a2,0x20000 4fdc: 12c62603 lw a2,300(a2) # 2000012c 4fe0: 00052803 lw a6,0(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3332 const TickType_t xElapsedTime = xConstTickCount - pxTimeOut->xTimeOnEntering; 4fe4: 4158 lw a4,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3356 if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xConstTickCount >= pxTimeOut->xTimeOnEntering ) ) /*lint !e525 Indentation preferred as is to make code within pre-processor directives clearer. */ 4fe6: 00c80763 beq a6,a2,4ff4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3356 (discriminator 1) 4fea: 00e6e563 bltu a3,a4,4ff4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3364 *pxTicksToWait = ( TickType_t ) 0; 4fee: 0005a023 sw zero,0(a1) 4ff2: b7f9 j 4fc0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3332 const TickType_t xElapsedTime = xConstTickCount - pxTimeOut->xTimeOnEntering; 4ff4: 40e68633 sub a2,a3,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3366 else if( xElapsedTime < *pxTicksToWait ) /*lint !e961 Explicit casting is only redundant with some compilers, whereas others require it to prevent integer conversion errors. */ 4ff8: fef67be3 bgeu a2,a5,4fee D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3369 *pxTicksToWait -= xElapsedTime; 4ffc: 8f95 sub a5,a5,a3 4ffe: 97ba add a5,a5,a4 5000: c19c sw a5,0(a1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3370 vTaskInternalSetTimeOutState( pxTimeOut ); 5002: f29ff0ef jal ra,4f2a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3371 xReturn = pdFALSE; 5006: 4401 li s0,0 5008: bf6d j 4fc2 0000500a : vTaskMissedYield(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3387 xYieldPending = pdTRUE; 500a: 200007b7 lui a5,0x20000 500e: 4705 li a4,1 5010: 12e7ae23 sw a4,316(a5) # 2000013c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:3388 } 5014: 8082 ret 00005016 : xTaskGetSchedulerState(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4050 if( xSchedulerRunning == pdFALSE ) 5016: 200007b7 lui a5,0x20000 501a: 1347a783 lw a5,308(a5) # 20000134 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4052 xReturn = taskSCHEDULER_NOT_STARTED; 501e: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4050 if( xSchedulerRunning == pdFALSE ) 5020: cb81 beqz a5,5030 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4056 if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) 5022: 200007b7 lui a5,0x20000 5026: 1187a503 lw a0,280(a5) # 20000118 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4062 xReturn = taskSCHEDULER_SUSPENDED; 502a: 00153513 seqz a0,a0 502e: 0506 slli a0,a0,0x1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4067 } 5030: 8082 ret 00005032 : xTaskPriorityInherit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4082 if( pxMutexHolder != NULL ) 5032: c54d beqz a0,50dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4075 { 5034: cc8fb2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4087 if( pxMutexHolderTCB->uxPriority < pxCurrentTCB->uxPriority ) 5038: 20000937 lui s2,0x20000 503c: 10490793 addi a5,s2,260 # 20000104 5040: 4394 lw a3,0(a5) 5042: 5558 lw a4,44(a0) 5044: 10490913 addi s2,s2,260 5048: 56d4 lw a3,44(a3) 504a: 08d77363 bgeu a4,a3,50d0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4092 if( ( listGET_LIST_ITEM_VALUE( &( pxMutexHolderTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) 504e: 4d1c lw a5,24(a0) 5050: 0007c863 bltz a5,5060 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4094 listSET_LIST_ITEM_VALUE( &( pxMutexHolderTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 5054: 00092783 lw a5,0(s2) 5058: 57d4 lw a3,44(a5) 505a: 47bd li a5,15 505c: 8f95 sub a5,a5,a3 505e: cd1c sw a5,24(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4103 if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxMutexHolderTCB->uxPriority ] ), &( pxMutexHolderTCB->xStateListItem ) ) != pdFALSE ) 5060: 4651 li a2,20 5062: 02c70733 mul a4,a4,a2 5066: 200157b7 lui a5,0x20015 506a: 55078693 addi a3,a5,1360 # 20015550 506e: 55078493 addi s1,a5,1360 5072: 9736 add a4,a4,a3 5074: 4954 lw a3,20(a0) 5076: 04e69863 bne a3,a4,50c6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4105 if( uxListRemove( &( pxMutexHolderTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 507a: 00450993 addi s3,a0,4 507e: 842a mv s0,a0 5080: 854e mv a0,s3 5082: b21fe0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4118 pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority; 5086: 00092783 lw a5,0(s2) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4119 prvAddTaskToReadyList( pxMutexHolderTCB ); 508a: 20000737 lui a4,0x20000 508e: 12070713 addi a4,a4,288 # 20000120 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4118 pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority; 5092: 57dc lw a5,44(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4119 prvAddTaskToReadyList( pxMutexHolderTCB ); 5094: 4314 lw a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4118 pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority; 5096: d45c sw a5,44(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4119 prvAddTaskToReadyList( pxMutexHolderTCB ); 5098: 00f6f363 bgeu a3,a5,509e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4119 (discriminator 1) 509c: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4119 (discriminator 3) 509e: 4751 li a4,20 50a0: 02e787b3 mul a5,a5,a4 50a4: 97a6 add a5,a5,s1 50a6: 43d8 lw a4,4(a5) 50a8: 4714 lw a3,8(a4) 50aa: c418 sw a4,8(s0) 50ac: c454 sw a3,12(s0) 50ae: 4714 lw a3,8(a4) 50b0: 0136a223 sw s3,4(a3) 50b4: 01372423 sw s3,8(a4) 50b8: 4398 lw a4,0(a5) 50ba: c85c sw a5,20(s0) 50bc: 0705 addi a4,a4,1 50be: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4130 xReturn = pdTRUE; 50c0: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4157 } 50c2: c6efb06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4124 pxMutexHolderTCB->uxPriority = pxCurrentTCB->uxPriority; 50c6: 00092783 lw a5,0(s2) 50ca: 57dc lw a5,44(a5) 50cc: d55c sw a5,44(a0) 50ce: bfcd j 50c0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4134 if( pxMutexHolderTCB->uxBasePriority < pxCurrentTCB->uxPriority ) 50d0: 439c lw a5,0(a5) 50d2: 4168 lw a0,68(a0) 50d4: 57dc lw a5,44(a5) 50d6: 00f53533 sltu a0,a0,a5 50da: b7e5 j 50c2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4077 BaseType_t xReturn = pdFALSE; 50dc: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4157 } 50de: 8082 ret 000050e0 : xTaskPriorityDisinherit(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4169 if( pxMutexHolder != NULL ) 50e0: e511 bnez a0,50ec D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4167 BaseType_t xReturn = pdFALSE; 50e2: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4237 } 50e4: 8082 ret D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4167 BaseType_t xReturn = pdFALSE; 50e6: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4237 } 50e8: c52fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4165 { 50ec: c2afb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4175 configASSERT( pxTCB == pxCurrentTCB ); 50f0: 200007b7 lui a5,0x20000 50f4: 1047a783 lw a5,260(a5) # 20000104 50f8: 842a mv s0,a0 50fa: 02a78563 beq a5,a0,5124 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4175 (discriminator 1) 50fe: 67a1 lui a5,0x8 5100: 80078793 addi a5,a5,-2048 # 7800 5104: 30079073 csrw mstatus,a5 5108: 0000d637 lui a2,0xd 510c: 6585 lui a1,0x1 510e: 0000d537 lui a0,0xd 5112: 34460613 addi a2,a2,836 # d344 5116: 04f58593 addi a1,a1,79 # 104f 511a: 2e450513 addi a0,a0,740 # d2e4 511e: 159070ef jal ra,ca76 5122: a001 j 5122 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4176 (discriminator 2) configASSERT( pxTCB->uxMutexesHeld ); 5124: 47bc lw a5,72(a5) 5126: e785 bnez a5,514e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4176 (discriminator 1) 5128: 67a1 lui a5,0x8 512a: 80078793 addi a5,a5,-2048 # 7800 512e: 30079073 csrw mstatus,a5 5132: 0000d637 lui a2,0xd 5136: 6585 lui a1,0x1 5138: 0000d537 lui a0,0xd 513c: 34460613 addi a2,a2,836 # d344 5140: 05058593 addi a1,a1,80 # 1050 5144: 2e450513 addi a0,a0,740 # d2e4 5148: 12f070ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4176 (discriminator 2) 514c: a001 j 514c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4181 (discriminator 2) if( pxTCB->uxPriority != pxTCB->uxBasePriority ) 514e: 5554 lw a3,44(a0) 5150: 4178 lw a4,68(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4177 (discriminator 2) ( pxTCB->uxMutexesHeld )--; 5152: 17fd addi a5,a5,-1 5154: c53c sw a5,72(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4181 (discriminator 2) if( pxTCB->uxPriority != pxTCB->uxBasePriority ) 5156: f8e688e3 beq a3,a4,50e6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4184 if( pxTCB->uxMutexesHeld == ( UBaseType_t ) 0 ) 515a: f7d1 bnez a5,50e6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4191 if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 515c: 00450493 addi s1,a0,4 5160: 8526 mv a0,s1 5162: a41fe0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4203 pxTCB->uxPriority = pxTCB->uxBasePriority; 5166: 407c lw a5,68(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4208 listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 5168: 473d li a4,15 516a: 8f1d sub a4,a4,a5 516c: cc18 sw a4,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4209 prvAddTaskToReadyList( pxTCB ); 516e: 20000737 lui a4,0x20000 5172: 12070713 addi a4,a4,288 # 20000120 5176: 4314 lw a3,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4203 pxTCB->uxPriority = pxTCB->uxBasePriority; 5178: d45c sw a5,44(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4209 prvAddTaskToReadyList( pxTCB ); 517a: 00f6f363 bgeu a3,a5,5180 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4209 (discriminator 1) 517e: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4209 (discriminator 3) 5180: 4751 li a4,20 5182: 02e78733 mul a4,a5,a4 5186: 200157b7 lui a5,0x20015 518a: 55078793 addi a5,a5,1360 # 20015550 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4219 (discriminator 3) xReturn = pdTRUE; 518e: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4209 (discriminator 3) prvAddTaskToReadyList( pxTCB ); 5190: 97ba add a5,a5,a4 5192: 43d8 lw a4,4(a5) 5194: 4714 lw a3,8(a4) 5196: c418 sw a4,8(s0) 5198: c454 sw a3,12(s0) 519a: 4714 lw a3,8(a4) 519c: c2c4 sw s1,4(a3) 519e: c704 sw s1,8(a4) 51a0: 4398 lw a4,0(a5) 51a2: c85c sw a5,20(s0) 51a4: 0705 addi a4,a4,1 51a6: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4236 (discriminator 3) return xReturn; 51a8: b781 j 50e8 000051aa : vTaskPriorityDisinheritAfterTimeout(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4251 if( pxMutexHolder != NULL ) 51aa: c175 beqz a0,528e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4246 { 51ac: b6afb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4255 configASSERT( pxTCB->uxMutexesHeld ); 51b0: 4534 lw a3,72(a0) 51b2: 842a mv s0,a0 51b4: e685 bnez a3,51dc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4255 (discriminator 1) 51b6: 67a1 lui a5,0x8 51b8: 80078793 addi a5,a5,-2048 # 7800 51bc: 30079073 csrw mstatus,a5 51c0: 0000d637 lui a2,0xd 51c4: 6585 lui a1,0x1 51c6: 0000d537 lui a0,0xd 51ca: 34460613 addi a2,a2,836 # d344 51ce: 09f58593 addi a1,a1,159 # 109f 51d2: 2e450513 addi a0,a0,740 # d2e4 51d6: 0a1070ef jal ra,ca76 51da: a001 j 51da D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4261 (discriminator 2) if( pxTCB->uxBasePriority < uxHighestPriorityWaitingTask ) 51dc: 417c lw a5,68(a0) 51de: 00b7f363 bgeu a5,a1,51e4 51e2: 87ae mv a5,a1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4271 (discriminator 2) if( pxTCB->uxPriority != uxPriorityToUse ) 51e4: 5458 lw a4,44(s0) 51e6: 0af70263 beq a4,a5,528a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4277 if( pxTCB->uxMutexesHeld == uxOnlyOneMutexHeld ) 51ea: 4605 li a2,1 51ec: 08c69f63 bne a3,a2,528a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4282 configASSERT( pxTCB != pxCurrentTCB ); 51f0: 200006b7 lui a3,0x20000 51f4: 1046a683 lw a3,260(a3) # 20000104 51f8: 02869563 bne a3,s0,5222 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4282 (discriminator 1) 51fc: 67a1 lui a5,0x8 51fe: 80078793 addi a5,a5,-2048 # 7800 5202: 30079073 csrw mstatus,a5 5206: 0000d637 lui a2,0xd 520a: 6585 lui a1,0x1 520c: 0000d537 lui a0,0xd 5210: 34460613 addi a2,a2,836 # d344 5214: 0ba58593 addi a1,a1,186 # 10ba 5218: 2e450513 addi a0,a0,740 # d2e4 521c: 05b070ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4282 (discriminator 2) 5220: a001 j 5220 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4293 (discriminator 2) if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) 5222: 4c14 lw a3,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4289 (discriminator 2) pxTCB->uxPriority = uxPriorityToUse; 5224: d45c sw a5,44(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4293 (discriminator 2) if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) 5226: 0006c663 bltz a3,5232 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4295 listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriorityToUse ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 522a: 46bd li a3,15 522c: 40f687b3 sub a5,a3,a5 5230: cc1c sw a5,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4308 if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xStateListItem ) ) != pdFALSE ) 5232: 4651 li a2,20 5234: 02c70733 mul a4,a4,a2 5238: 200157b7 lui a5,0x20015 523c: 55078693 addi a3,a5,1360 # 20015550 5240: 55078493 addi s1,a5,1360 5244: 9736 add a4,a4,a3 5246: 4854 lw a3,20(s0) 5248: 04e69163 bne a3,a4,528a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4310 if( uxListRemove( &( pxTCB->xStateListItem ) ) == ( UBaseType_t ) 0 ) 524c: 00440913 addi s2,s0,4 5250: 854a mv a0,s2 5252: 951fe0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4322 prvAddTaskToReadyList( pxTCB ); 5256: 20000737 lui a4,0x20000 525a: 12070713 addi a4,a4,288 # 20000120 525e: 545c lw a5,44(s0) 5260: 4314 lw a3,0(a4) 5262: 00f6f363 bgeu a3,a5,5268 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4322 (discriminator 1) 5266: c31c sw a5,0(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4322 (discriminator 3) 5268: 4751 li a4,20 526a: 02e787b3 mul a5,a5,a4 526e: 97a6 add a5,a5,s1 5270: 43d8 lw a4,4(a5) 5272: 4714 lw a3,8(a4) 5274: c418 sw a4,8(s0) 5276: c454 sw a3,12(s0) 5278: 4714 lw a3,8(a4) 527a: 0126a223 sw s2,4(a3) 527e: 01272423 sw s2,8(a4) 5282: 4398 lw a4,0(a5) 5284: c85c sw a5,20(s0) 5286: 0705 addi a4,a4,1 5288: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4343 } 528a: ab0fb06f j 53a <__riscv_restore_0> 528e: 8082 ret 00005290 : pvTaskIncrementMutexHeldCount(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4691 if( pxCurrentTCB != NULL ) 5290: 200007b7 lui a5,0x20000 5294: 10478713 addi a4,a5,260 # 20000104 5298: 4318 lw a4,0(a4) 529a: 10478793 addi a5,a5,260 529e: c709 beqz a4,52a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4693 ( pxCurrentTCB->uxMutexesHeld )++; 52a0: 4394 lw a3,0(a5) 52a2: 46b8 lw a4,72(a3) 52a4: 0705 addi a4,a4,1 52a6: c6b8 sw a4,72(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4696 return pxCurrentTCB; 52a8: 4388 lw a0,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/tasks.c:4697 } 52aa: 8082 ret 000052ac : prvCheckForValidListAndQueue(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:929 pxOverflowTimerList = pxTemp; } /*-----------------------------------------------------------*/ static void prvCheckForValidListAndQueue( void ) { 52ac: a6afb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:933 /* Check that the list from which active timers are referenced, and the * queue used to communicate with the timer service, have been * initialised. */ taskENTER_CRITICAL(); 52b0: 841fe0ef jal ra,3af0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:935 { if( xTimerQueue == NULL ) 52b4: 90c18413 addi s0,gp,-1780 # 2000014c 52b8: 401c lw a5,0(s0) 52ba: e3b1 bnez a5,52fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:937 { vListInitialise( &xActiveTimerList1 ); 52bc: 20015537 lui a0,0x20015 52c0: 6e050913 addi s2,a0,1760 # 200156e0 52c4: 6e050513 addi a0,a0,1760 52c8: 893fe0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:938 vListInitialise( &xActiveTimerList2 ); 52cc: 20015537 lui a0,0x20015 52d0: 6f450493 addi s1,a0,1780 # 200156f4 52d4: 6f450513 addi a0,a0,1780 52d8: 883fe0ef jal ra,3b5a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:939 pxCurrentTimerList = &xActiveTimerList1; 52dc: 9121a023 sw s2,-1792(gp) # 20000140 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:953 xTimerQueue = xQueueCreateStatic( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, ( UBaseType_t ) sizeof( DaemonTaskMessage_t ), &( ucStaticTimerQueueStorage[ 0 ] ), &xStaticTimerQueue ); } #else { xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) ); 52e0: 4601 li a2,0 52e2: 45c1 li a1,16 52e4: 4511 li a0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:940 pxOverflowTimerList = &xActiveTimerList2; 52e6: 9091a223 sw s1,-1788(gp) # 20000144 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:953 xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) ); 52ea: acbfe0ef jal ra,3db4 52ee: c008 sw a0,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:959 } #endif /* if ( configSUPPORT_STATIC_ALLOCATION == 1 ) */ #if ( configQUEUE_REGISTRY_SIZE > 0 ) { if( xTimerQueue != NULL ) 52f0: c519 beqz a0,52fe D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:961 { vQueueAddToRegistry( xTimerQueue, "TmrQ" ); 52f2: 0000d5b7 lui a1,0xd 52f6: 38458593 addi a1,a1,900 # d384 52fa: 948ff0ef jal ra,4442 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:975 else { mtCOVERAGE_TEST_MARKER(); } } taskEXIT_CRITICAL(); 52fe: 809fe0ef jal ra,3b06 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:976 } 5302: a38fb06f j 53a <__riscv_restore_0> 00005306 : prvInsertTimerInActiveList(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:715 { 5306: a10fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:718 listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime ); 530a: c14c sw a1,4(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:719 listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); 530c: c908 sw a0,16(a0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:715 { 530e: 87aa mv a5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:721 if( xNextExpiryTime <= xTimeNow ) 5310: 02b66063 bltu a2,a1,5330 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:725 if( ( ( TickType_t ) ( xTimeNow - xCommandTime ) ) >= pxTimer->xTimerPeriodInTicks ) /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 5314: 4d18 lw a4,24(a0) 5316: 8e15 sub a2,a2,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:729 xProcessTimerNow = pdTRUE; 5318: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:725 if( ( ( TickType_t ) ( xTimeNow - xCommandTime ) ) >= pxTimer->xTimerPeriodInTicks ) /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 531a: 00e67963 bgeu a2,a4,532c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:733 vListInsert( pxOverflowTimerList, &( pxTimer->xTimerListItem ) ); 531e: 00478593 addi a1,a5,4 5322: 9041a503 lw a0,-1788(gp) # 20000144 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:747 vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); 5326: 84ffe0ef jal ra,3b74 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:716 BaseType_t xProcessTimerNow = pdFALSE; 532a: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:752 } 532c: a0efb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:738 if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) ) 5330: 00d67563 bgeu a2,a3,533a D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:729 (discriminator 1) xProcessTimerNow = pdTRUE; 5334: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:738 (discriminator 1) if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) ) 5336: fed5fbe3 bgeu a1,a3,532c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:747 vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); 533a: 00478593 addi a1,a5,4 533e: 9001a503 lw a0,-1792(gp) # 20000140 5342: b7d5 j 5326 00005344 : prvReloadTimer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:520 { 5344: 9d2fb2ef jal t0,516 <__riscv_save_0> 5348: 842a mv s0,a0 534a: 84ae mv s1,a1 534c: 8932 mv s2,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:524 while( prvInsertTimerInActiveList( pxTimer, ( xExpiredTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xExpiredTime ) != pdFALSE ) 534e: 4c0c lw a1,24(s0) 5350: 86a6 mv a3,s1 5352: 864a mv a2,s2 5354: 95a6 add a1,a1,s1 5356: 8522 mv a0,s0 5358: fafff0ef jal ra,5306 535c: e119 bnez a0,5362 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:533 } 535e: 9dcfb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:527 xExpiredTime += pxTimer->xTimerPeriodInTicks; 5362: 4c1c lw a5,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:531 pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); 5364: 8522 mv a0,s0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:527 xExpiredTime += pxTimer->xTimerPeriodInTicks; 5366: 94be add s1,s1,a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:531 pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); 5368: 501c lw a5,32(s0) 536a: 9782 jalr a5 536c: b7cd j 534e 0000536e : prvProcessExpiredTimer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:538 { 536e: 9a8fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:539 Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /*lint !e9087 !e9079 void * is used as this macro is used with tasks and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 5372: 9001a783 lw a5,-1792(gp) # 20000140 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:538 { 5376: 1141 addi sp,sp,-16 5378: 84aa mv s1,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:539 Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /*lint !e9087 !e9079 void * is used as this macro is used with tasks and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 537a: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:538 { 537c: c62e sw a1,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:539 Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); /*lint !e9087 !e9079 void * is used as this macro is used with tasks and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */ 537e: 47c0 lw s0,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:544 ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); 5380: 00440513 addi a0,s0,4 5384: 81ffe0ef jal ra,3ba2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:548 if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) != 0 ) 5388: 02444783 lbu a5,36(s0) 538c: 4632 lw a2,12(sp) 538e: 0047f713 andi a4,a5,4 5392: cb19 beqz a4,53a8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:550 prvReloadTimer( pxTimer, xNextExpireTime, xTimeNow ); 5394: 85a6 mv a1,s1 5396: 8522 mv a0,s0 5398: fadff0ef jal ra,5344 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:559 pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); 539c: 501c lw a5,32(s0) 539e: 8522 mv a0,s0 53a0: 9782 jalr a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:560 } 53a2: 0141 addi sp,sp,16 53a4: 996fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:554 pxTimer->ucStatus &= ( ( uint8_t ) ~tmrSTATUS_IS_ACTIVE ); 53a8: 9bf9 andi a5,a5,-2 53aa: 02f40223 sb a5,36(s0) 53ae: b7fd j 539c 000053b0 : prvSwitchTimerLists(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:904 { 53b0: 966fb2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:912 while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE ) 53b4: 90018693 addi a3,gp,-1792 # 20000140 53b8: 4298 lw a4,0(a3) 53ba: 431c lw a5,0(a4) 53bc: eb81 bnez a5,53cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:923 pxCurrentTimerList = pxOverflowTimerList; 53be: 90418793 addi a5,gp,-1788 # 20000144 53c2: 4390 lw a2,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:924 pxOverflowTimerList = pxTemp; 53c4: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:923 pxCurrentTimerList = pxOverflowTimerList; 53c6: c290 sw a2,0(a3) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:925 } 53c8: 972fb06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:914 xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); 53cc: 475c lw a5,12(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:919 prvProcessExpiredTimer( xNextExpireTime, tmrMAX_TIME_BEFORE_OVERFLOW ); 53ce: 55fd li a1,-1 53d0: 4388 lw a0,0(a5) 53d2: f9dff0ef jal ra,536e 53d6: bff9 j 53b4 000053d8 : prvTimerTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:564 { 53d8: 916fb2ef jal t0,4ee <__riscv_save_10> prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:814 switch( xMessage.xMessageID ) 53dc: 6935 lui s2,0xd prvTimerTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:564 { 53de: 1141 addi sp,sp,-16 prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:814 switch( xMessage.xMessageID ) 53e0: 36090913 addi s2,s2,864 # d360 prvGetNextExpireTime(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:672 (discriminator 1) *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); 53e4: 9001a783 lw a5,-1792(gp) # 20000140 53e8: 4398 lw a4,0(a5) 53ea: cb29 beqz a4,543c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:676 xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); 53ec: 47dc lw a5,12(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:672 *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); 53ee: 4c81 li s9,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:676 xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); 53f0: 0007ac03 lw s8,0(a5) prvProcessTimerOrBlockTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:605 vTaskSuspendAll(); 53f4: d5eff0ef jal ra,4952 prvSampleTimeNow(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:693 xTimeNow = xTaskGetTickCount(); 53f8: d6aff0ef jal ra,4962 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:695 if( xTimeNow < xLastTime ) 53fc: 9081a783 lw a5,-1784(gp) # 20000148 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:693 xTimeNow = xTaskGetTickCount(); 5400: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:695 if( xTimeNow < xLastTime ) 5402: 90818493 addi s1,gp,-1784 # 20000148 5406: 90c18a13 addi s4,gp,-1780 # 2000014c 540a: 02f56c63 bltu a0,a5,5442 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:705 xLastTime = xTimeNow; 540e: c088 sw a0,0(s1) prvProcessTimerOrBlockTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:617 if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) ) 5410: 040c8063 beqz s9,5450 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:634 xListWasEmpty = listLIST_IS_EMPTY( pxOverflowTimerList ); 5414: 9041a783 lw a5,-1788(gp) # 20000144 5418: 4390 lw a2,0(a5) 541a: 00163613 seqz a2,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:637 vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ), xListWasEmpty ); 541e: 000a2503 lw a0,0(s4) 5422: 408c05b3 sub a1,s8,s0 5426: 91eff0ef jal ra,4544 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:639 if( xTaskResumeAll() == pdFALSE ) 542a: eeeff0ef jal ra,4b18 542e: ed19 bnez a0,544c NVIC_SetPendingIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:229 5430: e000e7b7 lui a5,0xe000e 5434: 6711 lui a4,0x4 5436: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xbffde200> 543a: a809 j 544c prvGetNextExpireTime(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:672 *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); 543c: 4c85 li s9,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:681 xNextExpireTime = ( TickType_t ) 0U; 543e: 4c01 li s8,0 5440: bf55 j 53f4 prvSampleTimeNow(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:697 prvSwitchTimerLists(); 5442: f6fff0ef jal ra,53b0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:705 xLastTime = xTimeNow; 5446: c080 sw s0,0(s1) prvProcessTimerOrBlockTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:655 ( void ) xTaskResumeAll(); 5448: ed0ff0ef jal ra,4b18 prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:814 switch( xMessage.xMessageID ) 544c: 4c21 li s8,8 544e: a00d j 5470 prvProcessTimerOrBlockTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:617 if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) ) 5450: 4601 li a2,0 5452: fd8566e3 bltu a0,s8,541e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:619 ( void ) xTaskResumeAll(); 5456: ec2ff0ef jal ra,4b18 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:620 prvProcessExpiredTimer( xNextExpireTime, xTimeNow ); 545a: 85a2 mv a1,s0 545c: 8562 mv a0,s8 545e: f11ff0ef jal ra,536e 5462: b7ed j 544c prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:777 pxCallback->pxCallbackFunction( pxCallback->pvParameter1, pxCallback->ulParameter2 ); 5464: 4792 lw a5,4(sp) 5466: 45b2 lw a1,12(sp) 5468: 9782 jalr a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:788 if( xMessage.xMessageID >= ( BaseType_t ) 0 ) 546a: 4782 lw a5,0(sp) 546c: 0007dd63 bgez a5,5486 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:762 while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) /*lint !e603 xMessage does not have to be initialised as it is passed out, not in, and it is not used unless xQueueReceive() returns pdTRUE. */ 5470: 000a2503 lw a0,0(s4) 5474: 4601 li a2,0 5476: 858a mv a1,sp 5478: ca9fe0ef jal ra,4120 547c: d525 beqz a0,53e4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:768 if( xMessage.xMessageID < ( BaseType_t ) 0 ) 547e: 4782 lw a5,0(sp) 5480: 4522 lw a0,8(sp) 5482: fe07c1e3 bltz a5,5464 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:792 pxTimer = xMessage.u.xTimerParameters.pxTimer; 5486: 4422 lw s0,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:794 if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) /*lint !e961. The cast is only redundant when NULL is passed into the macro. */ 5488: 485c lw a5,20(s0) 548a: e39d bnez a5,54b0 prvSampleTimeNow(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:693 xTimeNow = xTaskGetTickCount(); 548c: cd6ff0ef jal ra,4962 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:695 if( xTimeNow < xLastTime ) 5490: 409c lw a5,0(s1) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:693 xTimeNow = xTaskGetTickCount(); 5492: 8caa mv s9,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:695 if( xTimeNow < xLastTime ) 5494: 00f57463 bgeu a0,a5,549c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:697 prvSwitchTimerLists(); 5498: f19ff0ef jal ra,53b0 prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:814 switch( xMessage.xMessageID ) 549c: 4782 lw a5,0(sp) prvSampleTimeNow(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:705 xLastTime = xTimeNow; 549e: 0194a023 sw s9,0(s1) prvProcessReceivedCommands(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:814 switch( xMessage.xMessageID ) 54a2: 17fd addi a5,a5,-1 54a4: fcfc66e3 bltu s8,a5,5470 54a8: 078a slli a5,a5,0x2 54aa: 97ca add a5,a5,s2 54ac: 439c lw a5,0(a5) 54ae: 8782 jr a5 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:797 ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); 54b0: 00440513 addi a0,s0,4 54b4: eeefe0ef jal ra,3ba2 54b8: bfd1 j 548c D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:821 pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; 54ba: 02444783 lbu a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:823 if( prvInsertTimerInActiveList( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) != pdFALSE ) 54be: 4c0c lw a1,24(s0) 54c0: 4692 lw a3,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:821 pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; 54c2: 0017e793 ori a5,a5,1 54c6: 02f40223 sb a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:823 if( prvInsertTimerInActiveList( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) != pdFALSE ) 54ca: 8666 mv a2,s9 54cc: 95b6 add a1,a1,a3 54ce: 8522 mv a0,s0 54d0: e37ff0ef jal ra,5306 54d4: dd51 beqz a0,5470 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:827 if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) != 0 ) 54d6: 02444783 lbu a5,36(s0) 54da: 0047f713 andi a4,a5,4 54de: cf01 beqz a4,54f6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:829 prvReloadTimer( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow ); 54e0: 4c1c lw a5,24(s0) 54e2: 4592 lw a1,4(sp) 54e4: 8666 mv a2,s9 54e6: 8522 mv a0,s0 54e8: 95be add a1,a1,a5 54ea: e5bff0ef jal ra,5344 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:838 pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); 54ee: 501c lw a5,32(s0) 54f0: 8522 mv a0,s0 54f2: 9782 jalr a5 54f4: bfb5 j 5470 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:833 pxTimer->ucStatus &= ( ( uint8_t ) ~tmrSTATUS_IS_ACTIVE ); 54f6: 9bf9 andi a5,a5,-2 54f8: 02f40223 sb a5,36(s0) 54fc: bfcd j 54ee D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:850 pxTimer->ucStatus &= ( ( uint8_t ) ~tmrSTATUS_IS_ACTIVE ); 54fe: 02444783 lbu a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:880 pxTimer->ucStatus &= ( ( uint8_t ) ~tmrSTATUS_IS_ACTIVE ); 5502: 9bf9 andi a5,a5,-2 5504: 02f40223 sb a5,36(s0) 5508: b7a5 j 5470 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:855 pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; 550a: 02444783 lbu a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:856 pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue; 550e: 4592 lw a1,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:855 pxTimer->ucStatus |= tmrSTATUS_IS_ACTIVE; 5510: 0017e793 ori a5,a5,1 5514: 02f40223 sb a5,36(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:856 pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue; 5518: cc0c sw a1,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:857 configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); 551a: e19d bnez a1,5540 551c: 67a1 lui a5,0x8 551e: 80078793 addi a5,a5,-2048 # 7800 5522: 30079073 csrw mstatus,a5 5526: 0000d637 lui a2,0xd 552a: 0000d537 lui a0,0xd 552e: 38c60613 addi a2,a2,908 # d38c 5532: 35900593 li a1,857 5536: 2e450513 addi a0,a0,740 # d2e4 553a: 53c070ef jal ra,ca76 553e: a001 j 553e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:865 ( void ) prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); 5540: 86e6 mv a3,s9 5542: 8666 mv a2,s9 5544: 95e6 add a1,a1,s9 5546: 8522 mv a0,s0 5548: dbfff0ef jal ra,5306 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:866 break; 554c: b715 j 5470 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:874 if( ( pxTimer->ucStatus & tmrSTATUS_IS_STATICALLY_ALLOCATED ) == ( uint8_t ) 0 ) 554e: 02444783 lbu a5,36(s0) 5552: 0027f713 andi a4,a5,2 5556: f755 bnez a4,5502 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:876 vPortFree( pxTimer ); 5558: 8522 mv a0,s0 555a: becfe0ef jal ra,3946 555e: bf09 j 5470 00005560 : xTimerCreateTimerTask(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:234 { 5560: fb7fa2ef jal t0,516 <__riscv_save_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:241 prvCheckForValidListAndQueue(); 5564: d49ff0ef jal ra,52ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:243 if( xTimerQueue != NULL ) 5568: 90c1a783 lw a5,-1780(gp) # 2000014c 556c: e39d bnez a5,5592 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:281 configASSERT( xReturn ); 556e: 67a1 lui a5,0x8 5570: 80078793 addi a5,a5,-2048 # 7800 5574: 30079073 csrw mstatus,a5 5578: 0000d637 lui a2,0xd 557c: 0000d537 lui a0,0xd 5580: 38c60613 addi a2,a2,908 # d38c 5584: 11900593 li a1,281 5588: 2e450513 addi a0,a0,740 # d2e4 558c: 4ea070ef jal ra,ca76 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:281 (discriminator 1) 5590: a001 j 5590 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:267 xReturn = xTaskCreate( prvTimerTask, 5592: 0000d5b7 lui a1,0xd 5596: 00005537 lui a0,0x5 559a: 91018793 addi a5,gp,-1776 # 20000150 559e: 4739 li a4,14 55a0: 4681 li a3,0 55a2: 10000613 li a2,256 55a6: 3a458593 addi a1,a1,932 # d3a4 55aa: 3d850513 addi a0,a0,984 # 53d8 55ae: 90eff0ef jal ra,46bc D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:281 configASSERT( xReturn ); 55b2: dd55 beqz a0,556e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:283 } 55b4: f87fa06f j 53a <__riscv_restore_0> 000055b8 : xTimerCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:293 { 55b8: f45fa2ef jal t0,4fc <__riscv_save_4> 55bc: 8aaa mv s5,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:296 pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); /*lint !e9087 !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack, and the first member of Timer_t is always a pointer to the timer's mame. */ 55be: 02800513 li a0,40 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:293 { 55c2: 84ae mv s1,a1 55c4: 8932 mv s2,a2 55c6: 8a36 mv s4,a3 55c8: 89ba mv s3,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:296 pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); /*lint !e9087 !e9079 All values returned by pvPortMalloc() have at least the alignment required by the MCU's stack, and the first member of Timer_t is always a pointer to the timer's mame. */ 55ca: 9f0fe0ef jal ra,37ba 55ce: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:298 if( pxNewTimer != NULL ) 55d0: c939 beqz a0,5626 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:303 pxNewTimer->ucStatus = 0x00; 55d2: 02050223 sb zero,36(a0) prvInitialiseNewTimer(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:363 configASSERT( ( xTimerPeriodInTicks > 0 ) ); 55d6: e09d bnez s1,55fc 55d8: 67a1 lui a5,0x8 55da: 80078793 addi a5,a5,-2048 # 7800 55de: 30079073 csrw mstatus,a5 55e2: 0000d637 lui a2,0xd 55e6: 0000d537 lui a0,0xd 55ea: 38c60613 addi a2,a2,908 # d38c 55ee: 16b00593 li a1,363 55f2: 2e450513 addi a0,a0,740 # d2e4 55f6: 480070ef jal ra,ca76 55fa: a001 j 55fa D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:367 prvCheckForValidListAndQueue(); 55fc: cb1ff0ef jal ra,52ac D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:375 vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); 5600: 00440513 addi a0,s0,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:371 pxNewTimer->pcTimerName = pcTimerName; 5604: 01542023 sw s5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:372 pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; 5608: cc04 sw s1,24(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:373 pxNewTimer->pvTimerID = pvTimerID; 560a: 01442e23 sw s4,28(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:374 pxNewTimer->pxCallbackFunction = pxCallbackFunction; 560e: 03342023 sw s3,32(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:375 vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); 5612: d5cfe0ef jal ra,3b6e D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:377 if( uxAutoReload != pdFALSE ) 5616: 00090863 beqz s2,5626 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:379 pxNewTimer->ucStatus |= tmrSTATUS_IS_AUTORELOAD; 561a: 02444783 lbu a5,36(s0) 561e: 0047e793 ori a5,a5,4 5622: 02f40223 sb a5,36(s0) xTimerCreate(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:308 } 5626: 8522 mv a0,s0 5628: f09fa06f j 530 <__riscv_restore_4> 0000562c : xTimerGenericCommand(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:391 { 562c: eebfa2ef jal t0,516 <__riscv_save_0> 5630: 1101 addi sp,sp,-32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:395 configASSERT( xTimer ); 5632: e11d bnez a0,5658 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:395 (discriminator 1) 5634: 67a1 lui a5,0x8 5636: 80078793 addi a5,a5,-2048 # 7800 563a: 30079073 csrw mstatus,a5 563e: 0000d637 lui a2,0xd 5642: 0000d537 lui a0,0xd 5646: 38c60613 addi a2,a2,908 # d38c 564a: 18b00593 li a1,395 564e: 2e450513 addi a0,a0,740 # d2e4 5652: 424070ef jal ra,ca76 5656: a001 j 5656 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:399 (discriminator 2) if( xTimerQueue != NULL ) 5658: 90c18413 addi s0,gp,-1780 # 2000014c 565c: 401c lw a5,0(s0) 565e: c63a sw a4,12(sp) 5660: 882a mv a6,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:392 (discriminator 2) BaseType_t xReturn = pdFAIL; 5662: 4501 li a0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:399 (discriminator 2) if( xTimerQueue != NULL ) 5664: c78d beqz a5,568e 5666: 88b6 mv a7,a3 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:402 xMessage.xMessageID = xCommandID; 5668: c82e sw a1,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:403 xMessage.u.xTimerParameters.xMessageValue = xOptionalValue; 566a: ca32 sw a2,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:404 xMessage.u.xTimerParameters.pxTimer = xTimer; 566c: cc42 sw a6,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:406 if( xCommandID < tmrFIRST_FROM_ISR_COMMAND ) 566e: 4695 li a3,5 5670: 02b6c263 blt a3,a1,5694 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:408 if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) 5674: 9a3ff0ef jal ra,5016 5678: 4732 lw a4,12(sp) 567a: 4789 li a5,2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:410 xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait ); 567c: 4681 li a3,0 567e: 863a mv a2,a4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:408 if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) 5680: 00f50363 beq a0,a5,5686 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:414 xReturn = xQueueSendToBack( xTimerQueue, &xMessage, tmrNO_DELAY ); 5684: 4601 li a2,0 5686: 4008 lw a0,0(s0) 5688: 080c addi a1,sp,16 568a: f98fe0ef jal ra,3e22 D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:430 } 568e: 6105 addi sp,sp,32 5690: eabfa06f j 53a <__riscv_restore_0> D:\zj\ch32v307_camera\prj\TCPClient\obj/../FreeRTOS/timers.c:419 xReturn = xQueueSendToBackFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); 5694: 4681 li a3,0 5696: 8646 mv a2,a7 5698: 080c addi a1,sp,16 569a: 853e mv a0,a5 569c: 95dfe0ef jal ra,3ff8 56a0: b7fd j 568e 000056a2 : Delay_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:30 * * @return none */ void Delay_Init(void) { p_us = SystemCoreClock / 8000000; 56a2: 8101a783 lw a5,-2032(gp) # 20000050 56a6: 007a1737 lui a4,0x7a1 56aa: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x793cec> 56ae: 02e7d7b3 divu a5,a5,a4 56b2: 0ff7f793 andi a5,a5,255 56b6: 90f18b23 sb a5,-1770(gp) # 20000156 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:31 p_ms = (uint16_t)p_us * 1000; 56ba: 3e800713 li a4,1000 56be: 02e787b3 mul a5,a5,a4 56c2: 90f19a23 sh a5,-1772(gp) # 20000154 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:32 } 56c6: 8082 ret 000056c8 : Delay_Us(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:47 */ void Delay_Us(uint32_t n) { uint32_t i; SysTick->SR &= ~(1 << 0); 56c8: e000f7b7 lui a5,0xe000f 56cc: 43d8 lw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:50 i = (uint32_t)n * p_us; SysTick->CMP = i; 56ce: 4681 li a3,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:47 SysTick->SR &= ~(1 << 0); 56d0: 9b79 andi a4,a4,-2 56d2: c3d8 sw a4,4(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:48 i = (uint32_t)n * p_us; 56d4: 9161c703 lbu a4,-1770(gp) # 20000156 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:50 SysTick->CMP = i; 56d8: 02a70633 mul a2,a4,a0 56dc: cb90 sw a2,16(a5) 56de: cbd4 sw a3,20(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:51 SysTick->CTLR |= (1 << 4); 56e0: 4398 lw a4,0(a5) 56e2: 01076713 ori a4,a4,16 56e6: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:52 SysTick->CTLR |= (1 << 5) | (1 << 0); 56e8: 4398 lw a4,0(a5) 56ea: 02176713 ori a4,a4,33 56ee: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:54 (discriminator 1) while((SysTick->SR & (1 << 0)) != (1 << 0)) 56f0: 43d8 lw a4,4(a5) 56f2: 8b05 andi a4,a4,1 56f4: df75 beqz a4,56f0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:56 ; SysTick->CTLR &= ~(1 << 0); 56f6: 4398 lw a4,0(a5) 56f8: 9b79 andi a4,a4,-2 56fa: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:57 } 56fc: 8082 ret 000056fe : USART_Printf_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:94 * @param baudrate - USART communication baud rate. * * @return None */ void USART_Printf_Init(uint32_t baudrate) { 56fe: e19fa2ef jal t0,516 <__riscv_save_0> 5702: 1101 addi sp,sp,-32 5704: 842a mv s0,a0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 5706: 4585 li a1,1 5708: 00040537 lui a0,0x40 570c: dfdfb0ef jal ra,1508 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:117 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); 5710: 4585 li a1,1 5712: 4521 li a0,8 5714: dd7fb0ef jal ra,14ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:119 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; 5718: 40000793 li a5,1024 571c: 827c sh a5,4(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:122 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); 571e: 40011537 lui a0,0x40011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:120 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 5722: 478d li a5,3 5724: c43e sw a5,8(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:122 GPIO_Init(GPIOB, &GPIO_InitStructure); 5726: 004c addi a1,sp,4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:121 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 5728: 47e1 li a5,24 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:122 GPIO_Init(GPIOB, &GPIO_InitStructure); 572a: c0050513 addi a0,a0,-1024 # 40010c00 <__freertos_irq_stack_top+0x1ffe0c00> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:121 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 572e: c63e sw a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:122 GPIO_Init(GPIOB, &GPIO_InitStructure); 5730: afffb0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:126 #endif USART_InitStructure.USART_BaudRate = baudrate; 5734: c822 sw s0,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 5736: 40005437 lui s0,0x40005 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:129 USART_InitStructure.USART_Parity = USART_Parity_No; 573a: 000807b7 lui a5,0x80 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:142 USART_Init(USART3, &USART_InitStructure); 573e: 080c addi a1,sp,16 5740: 80040513 addi a0,s0,-2048 # 40004800 <__freertos_irq_stack_top+0x1ffd4800> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:129 USART_InitStructure.USART_Parity = USART_Parity_No; 5744: cc3e sw a5,24(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:127 USART_InitStructure.USART_WordLength = USART_WordLength_8b; 5746: ca02 sw zero,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:130 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 5748: 00011e23 sh zero,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:142 USART_Init(USART3, &USART_InitStructure); 574c: f5bfb0ef jal ra,16a6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:143 USART_Cmd(USART3, ENABLE); 5750: 4585 li a1,1 5752: 80040513 addi a0,s0,-2048 5756: fdffb0ef jal ra,1734 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:146 #endif } 575a: 6105 addi sp,sp,32 575c: ddffa06f j 53a <__riscv_restore_0> 00005760 <_write>: _write(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:175 * size - Data length * * @return size: Data length */ __attribute__((used)) int _write(int fd, char *buf, int size) { 5760: d9dfa2ef jal t0,4fc <__riscv_save_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../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); 5764: 400054b7 lui s1,0x40005 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:175 { 5768: 89ae mv s3,a1 576a: 8932 mv s2,a2 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:215 for(i = 0; i < size; i++) 576c: 4401 li s0,0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:224 while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET); 576e: 80048493 addi s1,s1,-2048 # 40004800 <__freertos_irq_stack_top+0x1ffd4800> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:215 (discriminator 1) for(i = 0; i < size; i++) 5772: 01244563 blt s0,s2,577c <_write+0x1c> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:230 USART_SendData(USART3, *buf++); #endif } #endif return size; } 5776: 854a mv a0,s2 5778: db9fa06f j 530 <__riscv_restore_4> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:224 (discriminator 1) while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET); 577c: 04000593 li a1,64 5780: 8526 mv a0,s1 5782: fd1fb0ef jal ra,1752 5786: d97d beqz a0,577c <_write+0x1c> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:225 (discriminator 2) USART_SendData(USART3, *buf++); 5788: 008987b3 add a5,s3,s0 578c: 00078583 lb a1,0(a5) # 80000 <_data_lma+0x72aec> 5790: 8526 mv a0,s1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:215 (discriminator 2) for(i = 0; i < size; i++) 5792: 0405 addi s0,s0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/debug.c:225 (discriminator 2) USART_SendData(USART3, *buf++); 5794: 05c2 slli a1,a1,0x10 5796: 81c1 srli a1,a1,0x10 5798: fb3fb0ef jal ra,174a 579c: bfd9 j 5772 <_write+0x12> 0000579e : DVP_Init(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:18 extern u8 socket[]; extern volatile uint32_t sys_tick_ms; void DVP_Init(void) { 579e: d79fa2ef jal t0,516 <__riscv_save_0> 57a2: 1101 addi sp,sp,-32 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:22 GPIO_InitTypeDef GPIO_InitStructure = {0}; NVIC_InitTypeDef NVIC_InitStructure = {0}; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); 57a4: 4585 li a1,1 57a6: 4571 li a0,28 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:19 GPIO_InitTypeDef GPIO_InitStructure = {0}; 57a8: ca02 sw zero,20(sp) 57aa: cc02 sw zero,24(sp) 57ac: ce02 sw zero,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:20 NVIC_InitTypeDef NVIC_InitStructure = {0}; 57ae: c602 sw zero,12(sp) 57b0: c802 sw zero,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:22 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); 57b2: d39fb0ef jal ra,14ea D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:23 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DVP, ENABLE); 57b6: 4585 li a1,1 57b8: 6509 lui a0,0x2 57ba: d13fb0ef jal ra,14cc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:27 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); 57be: 40011437 lui s0,0x40011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:25 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 57c2: 4791 li a5,4 57c4: ce3e sw a5,28(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:27 GPIO_Init(GPIOA, &GPIO_InitStructure); 57c6: 084c addi a1,sp,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:26 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_9 | GPIO_Pin_10; 57c8: 67000793 li a5,1648 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:27 GPIO_Init(GPIOA, &GPIO_InitStructure); 57cc: 80040513 addi a0,s0,-2048 # 40010800 <__freertos_irq_stack_top+0x1ffe0800> D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:26 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_9 | GPIO_Pin_10; 57d0: 82fc sh a5,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:27 GPIO_Init(GPIOA, &GPIO_InitStructure); 57d2: a5dfb0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:28 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11; 57d6: 6785 lui a5,0x1 57d8: b0078793 addi a5,a5,-1280 # b00 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:29 GPIO_Init(GPIOC, &GPIO_InitStructure); 57dc: 084c addi a1,sp,20 57de: 40011537 lui a0,0x40011 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:28 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11; 57e2: 82fc sh a5,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:29 GPIO_Init(GPIOC, &GPIO_InitStructure); 57e4: a4bfb0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:31 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_Init(GPIOB, &GPIO_InitStructure); 57e8: 084c addi a1,sp,20 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:30 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9; 57ea: 30800793 li a5,776 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:31 GPIO_Init(GPIOB, &GPIO_InitStructure); 57ee: c0040513 addi a0,s0,-1024 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:30 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_8 | GPIO_Pin_9; 57f2: 82fc sh a5,20(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:31 GPIO_Init(GPIOB, &GPIO_InitStructure); 57f4: a3bfb0ef jal ra,122e D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:33 NVIC_InitStructure.NVIC_IRQChannel = DVP_IRQn; 57f8: 05600793 li a5,86 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:36 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 57fc: 4485 li s1,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:37 NVIC_Init(&NVIC_InitStructure); 57fe: 0068 addi a0,sp,12 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:33 NVIC_InitStructure.NVIC_IRQChannel = DVP_IRQn; 5800: 867c sh a5,12(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:36 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 5802: c826 sw s1,16(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:35 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; 5804: 00010723 sb zero,14(sp) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:37 NVIC_Init(&NVIC_InitStructure); 5808: aeffb0ef jal ra,12f6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:39 DVP_Cfg(DVP_DMA_Disable, DVP_FLAG_FIFO_RESET_Enable, DVP_RX_RESET_Enable); 580c: 4605 li a2,1 580e: 4585 li a1,1 5810: 4501 li a0,0 5812: e1afb0ef jal ra,e2c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:40 DVP_Mode(RB_DVP_D8_MOD, Video_Mode); 5816: 4581 li a1,0 5818: 4501 li a0,0 581a: de0fb0ef jal ra,dfa D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:41 DVP->CR0 &= ~(RB_DVP_P_POLAR | RB_DVP_V_POLAR | RB_DVP_H_POLAR); 581e: 50050437 lui s0,0x50050 5822: 201c lbu a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:46 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); 5824: 458d li a1,3 5826: 4505 li a0,1 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:41 DVP->CR0 &= ~(RB_DVP_P_POLAR | RB_DVP_V_POLAR | RB_DVP_H_POLAR); 5828: 0f17f793 andi a5,a5,241 582c: a01c sb a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:42 DVP->DMA_BUF0 = (uint32_t)DMA_LineBuf0; 582e: 200157b7 lui a5,0x20015 5832: 70878793 addi a5,a5,1800 # 20015708 5836: c41c sw a5,8(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:43 DVP->DMA_BUF1 = (uint32_t)DMA_LineBuf1; 5838: 200167b7 lui a5,0x20016 583c: 90878793 addi a5,a5,-1784 # 20015908 5840: c45c sw a5,12(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:44 DVP->ROW_NUM = 1; 5842: a046 sh s1,4(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:45 DVP->COL_NUM = BYTES_PER_LINE; 5844: 20000793 li a5,512 5848: a07e sh a5,6(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:46 DVP_INTCfg(ENABLE, RB_DVP_IE_STR_FRM | RB_DVP_IE_ROW_DONE); 584a: d9afb0ef jal ra,de4 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:47 DVP_Cfg(DVP_DMA_Enable, DVP_FLAG_FIFO_RESET_Disable, DVP_RX_RESET_Disable); 584e: 4601 li a2,0 5850: 4581 li a1,0 5852: 4505 li a0,1 5854: dd8fb0ef jal ra,e2c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:48 DVP->CR0 |= RB_DVP_ENABLE; 5858: 201c lbu a5,0(s0) 585a: 0017e793 ori a5,a5,1 585e: a01c sb a5,0(s0) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:49 } 5860: 6105 addi sp,sp,32 5862: cd9fa06f j 53a <__riscv_restore_0> 00005866 : DVP_Task(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:59 volatile uint8_t Frame_Ready_Flag = 0; volatile uint32_t Ready_Frame_Count = 0; void DVP_Task(void) { if (!Line_Ready_Flag) return; 5866: 91818793 addi a5,gp,-1768 # 20000158 586a: 2398 lbu a4,0(a5) 586c: 0ff77713 andi a4,a4,255 5870: cf29 beqz a4,58ca D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:58 { 5872: ca5fa2ef jal t0,516 <__riscv_save_0> NVIC_DisableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:184 NVIC->IRER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 5876: e000e737 lui a4,0xe000e 587a: 004006b7 lui a3,0x400 587e: 18d72423 sw a3,392(a4) # e000e188 <__freertos_irq_stack_top+0xbffde188> D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:185 __asm volatile ("fence.i"); 5882: 0000100f fence.i DVP_Task(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:62 NVIC_DisableIRQ(DVP_IRQn); uint8_t *line = (uint8_t *)Ready_Line_Ptr; 5886: 9201a583 lw a1,-1760(gp) # 20000160 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:63 uint32_t idx = current_line_idx; 588a: 9241a403 lw s0,-1756(gp) # 20000164 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:64 Line_Ready_Flag = 0; 588e: 00078023 sb zero,0(a5) NVIC_EnableIRQ(): D:\zj\ch32v307_camera\prj\TCPClient\Core/core_riscv.h:170 NVIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); 5892: 10d72423 sw a3,264(a4) DVP_Task(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:67 NVIC_EnableIRQ(DVP_IRQn); if (idx < SENSOR_HEIGHT) 5896: 0bf00493 li s1,191 589a: 0284e663 bltu s1,s0,58c6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:69 { memcpy(FrameBuffer[idx], line, BYTES_PER_LINE); 589e: 200167b7 lui a5,0x20016 58a2: 00941513 slli a0,s0,0x9 58a6: b0878793 addi a5,a5,-1272 # 20015b08 58aa: 20000613 li a2,512 58ae: 953e add a0,a0,a5 58b0: 620070ef jal ra,ced0 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:71 if (idx == SENSOR_HEIGHT - 1) 58b4: 00941963 bne s0,s1,58c6 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:73 { Frame_Ready_Flag = 1; 58b8: 4705 li a4,1 58ba: 90e18ba3 sb a4,-1769(gp) # 20000157 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:74 Ready_Frame_Count = frame_count; 58be: 9281a703 lw a4,-1752(gp) # 20000168 58c2: 90e1ae23 sw a4,-1764(gp) # 2000015c D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:77 } } } 58c6: c75fa06f j 53a <__riscv_restore_0> 58ca: 8082 ret 000058cc : DVP_IRQHandler(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:82 void DVP_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); void DVP_IRQHandler(void) { if (DVP->IFR & RB_DVP_IF_STR_FRM) 58cc: 50050737 lui a4,0x50050 58d0: 2b1c lbu a5,16(a4) 58d2: 8b85 andi a5,a5,1 58d4: cb91 beqz a5,58e8 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:84 { DVP->IFR = RB_DVP_IF_STR_FRM; 58d6: 4785 li a5,1 58d8: ab1c sb a5,16(a4) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:85 current_line_idx = 0; 58da: 9201a223 sw zero,-1756(gp) # 20000164 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:86 frame_count++; 58de: 92818793 addi a5,gp,-1752 # 20000168 58e2: 4398 lw a4,0(a5) 58e4: 0705 addi a4,a4,1 58e6: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:88 } if (DVP->IFR & RB_DVP_IF_ROW_DONE) 58e8: 500507b7 lui a5,0x50050 58ec: 2b98 lbu a4,16(a5) 58ee: 8b09 andi a4,a4,2 58f0: c705 beqz a4,5918 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:90 { DVP->IFR = RB_DVP_IF_ROW_DONE; 58f2: 4709 li a4,2 58f4: ab98 sb a4,16(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:91 Ready_Line_Ptr = (DVP->CR1 & RB_DVP_BUF_TOG) ? DMA_LineBuf0 : DMA_LineBuf1; 58f6: 339c lbu a5,1(a5) 58f8: 8ba1 andi a5,a5,8 58fa: e38d bnez a5,591c 58fc: 200167b7 lui a5,0x20016 5900: 90878793 addi a5,a5,-1784 # 20015908 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:91 (discriminator 4) 5904: 92f1a023 sw a5,-1760(gp) # 20000160 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:92 (discriminator 4) current_line_idx++; 5908: 92418793 addi a5,gp,-1756 # 20000164 590c: 4398 lw a4,0(a5) 590e: 0705 addi a4,a4,1 5910: c398 sw a4,0(a5) D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:93 (discriminator 4) Line_Ready_Flag = 1; 5912: 4705 li a4,1 5914: 90e18c23 sb a4,-1768(gp) # 20000158 D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:95 } } 5918: 30200073 mret D:\zj\ch32v307_camera\prj\TCPClient\obj/../Debug/dvp.c:91 Ready_Line_Ptr = (DVP->CR1 & RB_DVP_BUF_TOG) ? DMA_LineBuf0 : DMA_LineBuf1; 591c: 200157b7 lui a5,0x20015 5920: 70878793 addi a5,a5,1800 # 20015708 5924: b7c5 j 5904 00005926 <__get_MEPC>: __get_MEPC(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:248 */ uint32_t __get_MEPC(void) { uint32_t result; __ASM volatile ( "csrr %0," "mepc" : "=r" (result) ); 5926: 34102573 csrr a0,mepc D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:250 return (result); } 592a: 8082 ret 0000592c <__get_MCAUSE>: __get_MCAUSE(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:275 */ uint32_t __get_MCAUSE(void) { uint32_t result; __ASM volatile ( "csrr %0," "mcause" : "=r" (result) ); 592c: 34202573 csrr a0,mcause D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:277 return (result); } 5930: 8082 ret 00005932 <__get_MTVAL>: __get_MTVAL(): D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:302 */ uint32_t __get_MTVAL(void) { uint32_t result; __ASM volatile ( "csrr %0," "mtval" : "=r" (result) ); 5932: 34302573 csrr a0,mtval D:\zj\ch32v307_camera\prj\TCPClient\obj/../Core/core_riscv.c:304 return (result); } 5936: 8082 ret 00005938 : WCHNET_PeriodicHandle(): 5938: bdffa2ef jal t0,516 <__riscv_save_0> 593c: 20000437 lui s0,0x20000 5940: 0c842783 lw a5,200(s0) # 200000c8 5944: 1141 addi sp,sp,-16 5946: c63e sw a5,12(sp) 5948: 19c010ef jal ra,6ae4 594c: 8911 andi a0,a0,4 594e: 14050363 beqz a0,5a94 5952: 94418793 addi a5,gp,-1724 # 20000184 5956: 4398 lw a4,0(a5) 5958: 46b2 lw a3,12(sp) 595a: 8e99 sub a3,a3,a4 595c: 2002e737 lui a4,0x2002e 5960: ba872703 lw a4,-1112(a4) # 2002dba8 5964: 8305 srli a4,a4,0x1 5966: 00d77663 bgeu a4,a3,5972 596a: 4732 lw a4,12(sp) 596c: c398 sw a4,0(a5) 596e: 4d1030ef jal ra,963e 5972: 06e040ef jal ra,99e0 5976: 9601a783 lw a5,-1696(gp) # 200001a0 597a: c791 beqz a5,5986 597c: 4e5030ef jal ra,9660 5980: e119 bnez a0,5986 5982: 9601a023 sw zero,-1696(gp) # 200001a0 5986: 94018493 addi s1,gp,-1728 # 20000180 598a: 4098 lw a4,0(s1) 598c: 47b2 lw a5,12(sp) 598e: 8f99 sub a5,a5,a4 5990: 3e700713 li a4,999 5994: 00f77663 bgeu a4,a5,59a0 5998: 218020ef jal ra,7bb0 599c: 47b2 lw a5,12(sp) 599e: c09c sw a5,0(s1) 59a0: 92c18793 addi a5,gp,-1748 # 2000016c 59a4: 4398 lw a4,0(a5) 59a6: 46b2 lw a3,12(sp) 59a8: 06400613 li a2,100 59ac: 8e99 sub a3,a3,a4 59ae: 9511c703 lbu a4,-1711(gp) # 20000191 59b2: 02c70733 mul a4,a4,a2 59b6: 00e6e663 bltu a3,a4,59c2 59ba: 4732 lw a4,12(sp) 59bc: c398 sw a4,0(a5) 59be: 7fc010ef jal ra,71ba 59c2: 2002e7b7 lui a5,0x2002e 59c6: b6c78793 addi a5,a5,-1172 # 2002db6c 59ca: 47d8 lw a4,12(a5) 59cc: cf11 beqz a4,59e8 59ce: 93c18713 addi a4,gp,-1732 # 2000017c 59d2: 4310 lw a2,0(a4) 59d4: 46b2 lw a3,12(sp) 59d6: 8e91 sub a3,a3,a2 59d8: 3e700613 li a2,999 59dc: 00d67663 bgeu a2,a3,59e8 59e0: 46b2 lw a3,12(sp) 59e2: 43dc lw a5,4(a5) 59e4: c314 sw a3,0(a4) 59e6: 9782 jalr a5 59e8: 2002e4b7 lui s1,0x2002e 59ec: b144a783 lw a5,-1260(s1) # 2002db14 59f0: cba9 beqz a5,5a42 59f2: 93818713 addi a4,gp,-1736 # 20000178 59f6: 431c lw a5,0(a4) 59f8: 46b2 lw a3,12(sp) 59fa: 0fa00613 li a2,250 59fe: 8e9d sub a3,a3,a5 5a00: 2002e7b7 lui a5,0x2002e 5a04: be47a783 lw a5,-1052(a5) # 2002dbe4 5a08: 83ed srli a5,a5,0x1b 5a0a: 02c787b3 mul a5,a5,a2 5a0e: 00f6e963 bltu a3,a5,5a20 5a12: 47b2 lw a5,12(sp) 5a14: c31c sw a5,0(a4) 5a16: b1448793 addi a5,s1,-1260 5a1a: 4b9c lw a5,16(a5) 5a1c: c391 beqz a5,5a20 5a1e: 9782 jalr a5 5a20: 93418793 addi a5,gp,-1740 # 20000174 5a24: 4398 lw a4,0(a5) 5a26: 46b2 lw a3,12(sp) 5a28: 8e99 sub a3,a3,a4 5a2a: 673d lui a4,0xf 5a2c: a5f70713 addi a4,a4,-1441 # ea5f <_data_lma+0x154b> 5a30: 00d77963 bgeu a4,a3,5a42 5a34: 4732 lw a4,12(sp) 5a36: b1448493 addi s1,s1,-1260 5a3a: c398 sw a4,0(a5) 5a3c: 48dc lw a5,20(s1) 5a3e: c391 beqz a5,5a42 5a40: 9782 jalr a5 5a42: 4532 lw a0,12(sp) 5a44: 93018493 addi s1,gp,-1744 # 20000170 5a48: 2cd9 jal 5d1e 5a4a: 409c lw a5,0(s1) 5a4c: 4732 lw a4,12(sp) 5a4e: 8f1d sub a4,a4,a5 5a50: 67bd lui a5,0xf 5a52: a5f78793 addi a5,a5,-1441 # ea5f <_data_lma+0x154b> 5a56: 00e7f563 bgeu a5,a4,5a60 5a5a: 2471 jal 5ce6 5a5c: 47b2 lw a5,12(sp) 5a5e: c09c sw a5,0(s1) 5a60: 95c1c703 lbu a4,-1700(gp) # 2000019c 5a64: 84be mv s1,a5 5a66: 0ff77713 andi a4,a4,255 5a6a: c70d beqz a4,5a94 5a6c: 95c1c703 lbu a4,-1700(gp) # 2000019c 5a70: 0c077713 andi a4,a4,192 5a74: e31d bnez a4,5a9a 5a76: 2002e7b7 lui a5,0x2002e 5a7a: bec7a783 lw a5,-1044(a5) # 2002dbec 5a7e: c399 beqz a5,5a84 5a80: 4505 li a0,1 5a82: 9782 jalr a5 5a84: 0c842703 lw a4,200(s0) 5a88: 94e1a623 sw a4,-1716(gp) # 2000018c 5a8c: 04000793 li a5,64 5a90: 94f18e23 sb a5,-1700(gp) # 2000019c 5a94: 0141 addi sp,sp,16 5a96: aa5fa06f j 53a <__riscv_restore_0> 5a9a: 95c1c703 lbu a4,-1700(gp) # 2000019c 5a9e: 04077713 andi a4,a4,64 5aa2: cb15 beqz a4,5ad6 5aa4: 94c1a683 lw a3,-1716(gp) # 2000018c 5aa8: 0c842703 lw a4,200(s0) 5aac: 94c18913 addi s2,gp,-1716 # 2000018c 5ab0: 8f15 sub a4,a4,a3 5ab2: 06400693 li a3,100 5ab6: fce6ffe3 bgeu a3,a4,5a94 5aba: 2002e7b7 lui a5,0x2002e 5abe: bec7a783 lw a5,-1044(a5) # 2002dbec 5ac2: c399 beqz a5,5ac8 5ac4: 4501 li a0,0 5ac6: 9782 jalr a5 5ac8: 0c842783 lw a5,200(s0) 5acc: 00f92023 sw a5,0(s2) 5ad0: f8000793 li a5,-128 5ad4: bf75 j 5a90 5ad6: 95c1c703 lbu a4,-1700(gp) # 2000019c 5ada: 0762 slli a4,a4,0x18 5adc: 8761 srai a4,a4,0x18 5ade: fa075be3 bgez a4,5a94 5ae2: 94c1a683 lw a3,-1716(gp) # 2000018c 5ae6: 0c842703 lw a4,200(s0) 5aea: 8f15 sub a4,a4,a3 5aec: 06400693 li a3,100 5af0: fae6f2e3 bgeu a3,a4,5a94 5af4: 94018e23 sb zero,-1700(gp) # 2000019c 5af8: bf71 j 5a94 00005afa : WCHNET_NetInput(): 5afa: a1dfa2ef jal t0,516 <__riscv_save_0> 5afe: 2002e537 lui a0,0x2002e 5b02: bfc50513 addi a0,a0,-1028 # 2002dbfc 5b06: 2b9010ef jal ra,75be 5b0a: a31fa06f j 53a <__riscv_restore_0> 00005b0e : WCHNET_PhyStatus(): 5b0e: a09fa2ef jal t0,516 <__riscv_save_0> 5b12: 2002e7b7 lui a5,0x2002e 5b16: b8c78793 addi a5,a5,-1140 # 2002db8c 5b1a: 57d8 lw a4,44(a5) 5b1c: 2002e437 lui s0,0x2002e 5b20: d388 sw a0,32(a5) 5b22: 00476713 ori a4,a4,4 5b26: d7d8 sw a4,44(a5) 5b28: 8911 andi a0,a0,4 5b2a: bd040793 addi a5,s0,-1072 # 2002dbd0 5b2e: 4f9c lw a5,24(a5) 5b30: bd040413 addi s0,s0,-1072 5b34: cd01 beqz a0,5b4c 5b36: c399 beqz a5,5b3c 5b38: 4501 li a0,0 5b3a: 9782 jalr a5 5b3c: 4c5c lw a5,28(s0) 5b3e: c399 beqz a5,5b44 5b40: 4501 li a0,0 5b42: 9782 jalr a5 5b44: 4505 li a0,1 5b46: 2abd jal 5cc4 5b48: 9f3fa06f j 53a <__riscv_restore_0> 5b4c: c399 beqz a5,5b52 5b4e: 4505 li a0,1 5b50: 9782 jalr a5 5b52: 4c5c lw a5,28(s0) 5b54: dbf5 beqz a5,5b48 5b56: 4505 li a0,1 5b58: 9782 jalr a5 5b5a: b7fd j 5b48 00005b5c : WCHNET_Rx(): 5b5c: 20000737 lui a4,0x20000 5b60: 0d072783 lw a5,208(a4) # 200000d0 5b64: 00052023 sw zero,0(a0) 5b68: cb9d beqz a5,5b9e 5b6a: 4394 lw a3,0(a5) 5b6c: 0006db63 bgez a3,5b82 5b70: 47d4 lw a3,12(a5) 5b72: 4290 lw a2,0(a3) 5b74: 02064563 bltz a2,5b9e 5b78: 439c lw a5,0(a5) 5b7a: 0007d463 bgez a5,5b82 5b7e: 0cd72823 sw a3,208(a4) 5b82: 0d072783 lw a5,208(a4) 5b86: 6591 lui a1,0x4 5b88: 4601 li a2,0 5b8a: 15fd addi a1,a1,-1 5b8c: 4835 li a6,13 5b8e: 800008b7 lui a7,0x80000 5b92: 4394 lw a3,0(a5) 5b94: 0006d763 bgez a3,5ba2 5b98: c219 beqz a2,5b9e 5b9a: 0cf72823 sw a5,208(a4) 5b9e: 4501 li a0,0 5ba0: 8082 ret 5ba2: 4394 lw a3,0(a5) 5ba4: 01069313 slli t1,a3,0x10 5ba8: 04034263 bltz t1,5bec 5bac: 4394 lw a3,0(a5) 5bae: 1006f693 andi a3,a3,256 5bb2: ce8d beqz a3,5bec 5bb4: 4394 lw a3,0(a5) 5bb6: 2006f693 andi a3,a3,512 5bba: ca8d beqz a3,5bec 5bbc: 4394 lw a3,0(a5) 5bbe: 82c1 srli a3,a3,0x10 5bc0: 8eed and a3,a3,a1 5bc2: 16f1 addi a3,a3,-4 5bc4: c114 sw a3,0(a0) 5bc6: 02d87163 bgeu a6,a3,5be8 5bca: 4394 lw a3,0(a5) 5bcc: 0206f693 andi a3,a3,32 5bd0: ea81 bnez a3,5be0 5bd2: c219 beqz a2,5bd8 5bd4: 0cf72823 sw a5,208(a4) 5bd8: 479c lw a5,8(a5) 5bda: c15c sw a5,4(a0) 5bdc: 4505 li a0,1 5bde: 8082 ret 5be0: 4394 lw a3,0(a5) 5be2: 0816f693 andi a3,a3,129 5be6: d6f5 beqz a3,5bd2 5be8: 00052023 sw zero,0(a0) 5bec: 0117a023 sw a7,0(a5) 5bf0: 4605 li a2,1 5bf2: 47dc lw a5,12(a5) 5bf4: bf79 j 5b92 00005bf6 : setRxBuffAddr(): 5bf6: 200007b7 lui a5,0x20000 5bfa: 0d07a703 lw a4,208(a5) # 200000d0 5bfe: 800006b7 lui a3,0x80000 5c02: c314 sw a3,0(a4) 5c04: 4758 lw a4,12(a4) 5c06: 0ce7a823 sw a4,208(a5) 5c0a: 8082 ret 00005c0c : WCHNET_Tx(): 5c0c: 90bfa2ef jal t0,516 <__riscv_save_0> 5c10: 95c1c783 lbu a5,-1700(gp) # 2000019c 5c14: 0ff7f793 andi a5,a5,255 5c18: e781 bnez a5,5c20 5c1a: 4785 li a5,1 5c1c: 94f18e23 sb a5,-1700(gp) # 2000019c 5c20: 200007b7 lui a5,0x20000 5c24: 0c87a703 lw a4,200(a5) # 200000c8 5c28: 94818793 addi a5,gp,-1720 # 20000188 5c2c: cb09 beqz a4,5c3e 5c2e: c398 sw a4,0(a5) 5c30: 2002e7b7 lui a5,0x2002e 5c34: bf07a783 lw a5,-1040(a5) # 2002dbf0 5c38: 9782 jalr a5 5c3a: 901fa06f j 53a <__riscv_restore_0> 5c3e: 4705 li a4,1 5c40: b7fd j 5c2e 00005c42 : GetChipID(): 5c42: 1ffff7b7 lui a5,0x1ffff 5c46: 7067d503 lhu a0,1798(a5) # 1ffff706 <_data_lma+0x1fff21f2> 5c4a: 0f057513 andi a0,a0,240 5c4e: 8082 ret 00005c50 : getTxBuffAddr(): 5c50: 8c7fa2ef jal t0,516 <__riscv_save_0> 5c54: 2002e7b7 lui a5,0x2002e 5c58: bf07a783 lw a5,-1040(a5) # 2002dbf0 5c5c: 4901 li s2,0 5c5e: cbb9 beqz a5,5cb4 5c60: 200007b7 lui a5,0x20000 5c64: 0b47a483 lw s1,180(a5) # 200000b4 5c68: c4b1 beqz s1,5cb4 5c6a: 409c lw a5,0(s1) 5c6c: 0084a903 lw s2,8(s1) 5c70: 94818413 addi s0,gp,-1720 # 20000188 5c74: 0207de63 bgez a5,5cb0 5c78: fcbff0ef jal ra,5c42 5c7c: 4014 lw a3,0(s0) 5c7e: 4781 li a5,0 5c80: 08000613 li a2,128 5c84: 200005b7 lui a1,0x20000 5c88: 06300813 li a6,99 5c8c: 68a1 lui a7,0x8 5c8e: 03000313 li t1,48 5c92: 00c50463 beq a0,a2,5c9a 5c96: 02651263 bne a0,t1,5cba 5c9a: 0c85a703 lw a4,200(a1) # 200000c8 5c9e: 8f15 sub a4,a4,a3 5ca0: 00e86463 bltu a6,a4,5ca8 5ca4: 00f8fb63 bgeu a7,a5,5cba 5ca8: 409c lw a5,0(s1) 5caa: 0786 slli a5,a5,0x1 5cac: 8385 srli a5,a5,0x1 5cae: c09c sw a5,0(s1) 5cb0: 00042023 sw zero,0(s0) 5cb4: 854a mv a0,s2 5cb6: 885fa06f j 53a <__riscv_restore_0> 5cba: 4098 lw a4,0(s1) 5cbc: fe075ae3 bgez a4,5cb0 5cc0: 0785 addi a5,a5,1 5cc2: bfc1 j 5c92 00005cc4 : IPCheckParaInit(): 5cc4: 20000737 lui a4,0x20000 5cc8: 0c872703 lw a4,200(a4) # 200000c8 5ccc: 2002e7b7 lui a5,0x2002e 5cd0: b0878793 addi a5,a5,-1272 # 2002db08 5cd4: a388 sb a0,0(a5) 5cd6: 00079123 sh zero,2(a5) 5cda: 00079223 sh zero,4(a5) 5cde: c798 sw a4,8(a5) 5ce0: 000780a3 sb zero,1(a5) 5ce4: 8082 ret 00005ce6 : SelIPARPSend(): 5ce6: 831fa2ef jal t0,516 <__riscv_save_0> 5cea: 2002e4b7 lui s1,0x2002e 5cee: bfc48413 addi s0,s1,-1028 # 2002dbfc 5cf2: 405c lw a5,4(s0) 5cf4: 1141 addi sp,sp,-16 5cf6: 006c addi a1,sp,12 5cf8: bfc48513 addi a0,s1,-1028 5cfc: c63e sw a5,12(sp) 5cfe: 00042223 sw zero,4(s0) 5d02: 3ea010ef jal ra,70ec 5d06: 47b2 lw a5,12(sp) 5d08: 006c addi a1,sp,12 5d0a: bfc48513 addi a0,s1,-1028 5d0e: c05c sw a5,4(s0) 5d10: 445c lw a5,12(s0) 5d12: c63e sw a5,12(sp) 5d14: 3d8010ef jal ra,70ec 5d18: 0141 addi sp,sp,16 5d1a: 821fa06f j 53a <__riscv_restore_0> 00005d1e : IPCheckTmr(): 5d1e: 2002e7b7 lui a5,0x2002e 5d22: b0878793 addi a5,a5,-1272 # 2002db08 5d26: 2398 lbu a4,0(a5) 5d28: e319 bnez a4,5d2e 5d2a: c788 sw a0,8(a5) 5d2c: 8082 ret 5d2e: 4798 lw a4,8(a5) 5d30: 3e700693 li a3,999 5d34: 40e50733 sub a4,a0,a4 5d38: 02e6f363 bgeu a3,a4,5d5e 5d3c: fdafa2ef jal t0,516 <__riscv_save_0> 5d40: 23ba lhu a4,2(a5) 5d42: c788 sw a0,8(a5) 5d44: 4691 li a3,4 5d46: 00e6f763 bgeu a3,a4,5d54 5d4a: 4501 li a0,0 5d4c: f79ff0ef jal ra,5cc4 5d50: feafa06f j 53a <__riscv_restore_0> 5d54: 0705 addi a4,a4,1 5d56: a3ba sh a4,2(a5) 5d58: f8fff0ef jal ra,5ce6 5d5c: bfd5 j 5d50 5d5e: 8082 ret 00005d60 : IPConflictHandle(): 5d60: fb6fa2ef jal t0,516 <__riscv_save_0> 5d64: 842a mv s0,a0 5d66: 4501 li a0,0 5d68: f5dff0ef jal ra,5cc4 5d6c: 2002e7b7 lui a5,0x2002e 5d70: b0878793 addi a5,a5,-1272 # 2002db08 5d74: c811 beqz s0,5d88 5d76: 4705 li a4,1 5d78: b398 sb a4,1(a5) 5d7a: 2002e7b7 lui a5,0x2002e 5d7e: 4709 li a4,2 5d80: bae7ac23 sw a4,-1096(a5) # 2002dbb8 5d84: fb6fa06f j 53a <__riscv_restore_0> 5d88: 000780a3 sb zero,1(a5) 5d8c: bfe5 j 5d84 00005d8e : NET_TCPError(): 5d8e: 8082 ret 00005d90 : LwipTCPSendCallBack(): 5d90: 03852803 lw a6,56(a0) 5d94: 02080b63 beqz a6,5dca 5d98: f7efa2ef jal t0,516 <__riscv_save_0> 5d9c: 5dfc lw a5,124(a1) 5d9e: 4701 li a4,0 5da0: c791 beqz a5,5dac 5da2: 0705 addi a4,a4,1 5da4: 0742 slli a4,a4,0x10 5da6: 8341 srli a4,a4,0x10 5da8: 439c lw a5,0(a5) 5daa: bfdd j 5da0 5dac: 0805a783 lw a5,128(a1) 5db0: c791 beqz a5,5dbc 5db2: 0705 addi a4,a4,1 5db4: 0742 slli a4,a4,0x10 5db6: 8341 srli a4,a4,0x10 5db8: 439c lw a5,0(a5) 5dba: bfdd j 5db0 5dbc: 4681 li a3,0 5dbe: 4601 li a2,0 5dc0: 4581 li a1,0 5dc2: 9802 jalr a6 5dc4: 4501 li a0,0 5dc6: f74fa06f j 53a <__riscv_restore_0> 5dca: 4501 li a0,0 5dcc: 8082 ret 00005dce : LwipTCPPollCallBack(): 5dce: 4501 li a0,0 5dd0: 8082 ret 00005dd2 : SocketIPRAWReceive(): 5dd2: f1cfa2ef jal t0,4ee <__riscv_save_10> 5dd6: 425c lw a5,4(a2) 5dd8: 00852a03 lw s4,8(a0) 5ddc: 00c52903 lw s2,12(a0) 5de0: 4900 lw s0,16(a0) 5de2: 84aa mv s1,a0 5de4: 2388 lbu a0,0(a5) 5de6: 339c lbu a5,1(a5) 5de8: 89b2 mv s3,a2 5dea: 07a2 slli a5,a5,0x8 5dec: 8d5d or a0,a0,a5 5dee: 0c5010ef jal ra,76b2 5df2: 00655593 srli a1,a0,0x6 5df6: 03c5f593 andi a1,a1,60 5dfa: 40b005b3 neg a1,a1 5dfe: 854e mv a0,s3 5e00: 427020ef jal ra,8a26 5e04: e559 bnez a0,5e92 5e06: 44dc lw a5,12(s1) 5e08: 4c98 lw a4,24(s1) 5e0a: 0089db03 lhu s6,8(s3) 5e0e: 8f99 sub a5,a5,a4 5e10: 0167e463 bltu a5,s6,5e18 5e14: 000b1863 bnez s6,5e24 5e18: 854e mv a0,s3 5e1a: 47b020ef jal ra,8a94 5e1e: 4505 li a0,1 5e20: f06fa06f j 526 <__riscv_restore_10> 5e24: 9a4a add s4,s4,s2 5e26: 894e mv s2,s3 5e28: 00a95603 lhu a2,10(s2) 5e2c: 408a0ab3 sub s5,s4,s0 5e30: 00492b83 lw s7,4(s2) 5e34: 04caf463 bgeu s5,a2,5e7c 5e38: 8656 mv a2,s5 5e3a: 85de mv a1,s7 5e3c: 8522 mv a0,s0 5e3e: 092070ef jal ra,ced0 5e42: 00a95783 lhu a5,10(s2) 5e46: 4498 lw a4,8(s1) 5e48: 41440433 sub s0,s0,s4 5e4c: 943e add s0,s0,a5 5e4e: 8622 mv a2,s0 5e50: 015b85b3 add a1,s7,s5 5e54: 853a mv a0,a4 5e56: 07a070ef jal ra,ced0 5e5a: 942a add s0,s0,a0 5e5c: 00092903 lw s2,0(s2) 5e60: fc0914e3 bnez s2,5e28 5e64: 854e mv a0,s3 5e66: 42f020ef jal ra,8a94 5e6a: 4c9c lw a5,24(s1) 5e6c: c880 sw s0,16(s1) 5e6e: 97da add a5,a5,s6 5e70: cc9c sw a5,24(s1) 5e72: 409c lw a5,0(s1) 5e74: 0047e793 ori a5,a5,4 5e78: c09c sw a5,0(s1) 5e7a: b755 j 5e1e 5e7c: 8522 mv a0,s0 5e7e: 85de mv a1,s7 5e80: 050070ef jal ra,ced0 5e84: 00a95783 lhu a5,10(s2) 5e88: 943e add s0,s0,a5 5e8a: fd5799e3 bne a5,s5,5e5c 5e8e: 4480 lw s0,8(s1) 5e90: b7f1 j 5e5c 5e92: 4501 li a0,0 5e94: b771 j 5e20 00005e96 : SocketUdpReceive(): 5e96: ce61 beqz a2,5f6e 5e98: e56fa2ef jal t0,4ee <__riscv_save_10> 5e9c: 00c52b83 lw s7,12(a0) 5ea0: 4d1c lw a5,24(a0) 5ea2: 00865b03 lhu s6,8(a2) 5ea6: 8aba mv s5,a4 5ea8: 40fb87b3 sub a5,s7,a5 5eac: 8a36 mv s4,a3 5eae: 8932 mv s2,a2 5eb0: 842a mv s0,a0 5eb2: 0167e463 bltu a5,s6,5eba 5eb6: 000b1763 bnez s6,5ec4 5eba: 854a mv a0,s2 5ebc: 3d9020ef jal ra,8a94 5ec0: e66fa06f j 526 <__riscv_restore_10> 5ec4: 451c lw a5,8(a0) 5ec6: 4904 lw s1,16(a0) 5ec8: 89b2 mv s3,a2 5eca: 9bbe add s7,s7,a5 5ecc: 00a9d603 lhu a2,10(s3) 5ed0: 409b8c33 sub s8,s7,s1 5ed4: 0049ac83 lw s9,4(s3) 5ed8: 06cc7763 bgeu s8,a2,5f46 5edc: 8662 mv a2,s8 5ede: 85e6 mv a1,s9 5ee0: 8526 mv a0,s1 5ee2: 7ef060ef jal ra,ced0 5ee6: 00a9d783 lhu a5,10(s3) 5eea: 4418 lw a4,8(s0) 5eec: 417484b3 sub s1,s1,s7 5ef0: 94be add s1,s1,a5 5ef2: 8626 mv a2,s1 5ef4: 018c85b3 add a1,s9,s8 5ef8: 853a mv a0,a4 5efa: 7d7060ef jal ra,ced0 5efe: 94aa add s1,s1,a0 5f00: 0009a983 lw s3,0(s3) 5f04: fc0994e3 bnez s3,5ecc 5f08: 854a mv a0,s2 5f0a: 38b020ef jal ra,8a94 5f0e: 03842803 lw a6,56(s0) 5f12: 04080563 beqz a6,5f5c 5f16: 001a4583 lbu a1,1(s4) 5f1a: 000a4783 lbu a5,0(s4) 5f1e: 4814 lw a3,16(s0) 5f20: 05a2 slli a1,a1,0x8 5f22: 8ddd or a1,a1,a5 5f24: 002a4783 lbu a5,2(s4) 5f28: 875a mv a4,s6 5f2a: 8656 mv a2,s5 5f2c: 07c2 slli a5,a5,0x10 5f2e: 8fcd or a5,a5,a1 5f30: 003a4583 lbu a1,3(s4) 5f34: 8522 mv a0,s0 5f36: 05e2 slli a1,a1,0x18 5f38: 8ddd or a1,a1,a5 5f3a: 9802 jalr a6 5f3c: 441c lw a5,8(s0) 5f3e: 00042c23 sw zero,24(s0) 5f42: c81c sw a5,16(s0) 5f44: bfb5 j 5ec0 5f46: 8526 mv a0,s1 5f48: 85e6 mv a1,s9 5f4a: 787060ef jal ra,ced0 5f4e: 00a9d783 lhu a5,10(s3) 5f52: 94be add s1,s1,a5 5f54: fb8796e3 bne a5,s8,5f00 5f58: 4404 lw s1,8(s0) 5f5a: b75d j 5f00 5f5c: 4c18 lw a4,24(s0) 5f5e: 401c lw a5,0(s0) 5f60: c804 sw s1,16(s0) 5f62: 975a add a4,a4,s6 5f64: 0047e793 ori a5,a5,4 5f68: cc18 sw a4,24(s0) 5f6a: c01c sw a5,0(s0) 5f6c: bf91 j 5ec0 5f6e: 8082 ret 00005f70 : WCHSocketTCPReceive(): 5f70: 491c lw a5,16(a0) 5f72: c7f1 beqz a5,603e 5f74: d7afa2ef jal t0,4ee <__riscv_save_10> 5f78: 8a32 mv s4,a2 5f7a: 84ae mv s1,a1 5f7c: 842a mv s0,a0 5f7e: ca55 beqz a2,6032 5f80: 00852a83 lw s5,8(a0) 5f84: 4558 lw a4,12(a0) 5f86: 00865b83 lhu s7,8(a2) 5f8a: 8932 mv s2,a2 5f8c: 9aba add s5,s5,a4 5f8e: 0ac2 slli s5,s5,0x10 5f90: 010ada93 srli s5,s5,0x10 5f94: 01079993 slli s3,a5,0x10 5f98: 0109d993 srli s3,s3,0x10 5f9c: 413a8b33 sub s6,s5,s3 5fa0: 00a95603 lhu a2,10(s2) 5fa4: 0b42 slli s6,s6,0x10 5fa6: 010b5b13 srli s6,s6,0x10 5faa: 00492c03 lw s8,4(s2) 5fae: 06cb7663 bgeu s6,a2,601a 5fb2: 865a mv a2,s6 5fb4: 85e2 mv a1,s8 5fb6: 853e mv a0,a5 5fb8: 719060ef jal ra,ced0 5fbc: 00a95703 lhu a4,10(s2) 5fc0: 441c lw a5,8(s0) 5fc2: 016c05b3 add a1,s8,s6 5fc6: 41570733 sub a4,a4,s5 5fca: 99ba add s3,s3,a4 5fcc: 09c2 slli s3,s3,0x10 5fce: 0109d993 srli s3,s3,0x10 5fd2: 853e mv a0,a5 5fd4: 864e mv a2,s3 5fd6: 6fb060ef jal ra,ced0 5fda: 013507b3 add a5,a0,s3 5fde: 00092903 lw s2,0(s2) 5fe2: fa0919e3 bnez s2,5f94 5fe6: 4c18 lw a4,24(s0) 5fe8: c81c sw a5,16(s0) 5fea: 8552 mv a0,s4 5fec: 975e add a4,a4,s7 5fee: cc18 sw a4,24(s0) 5ff0: 4018 lw a4,0(s0) 5ff2: 00476713 ori a4,a4,4 5ff6: c018 sw a4,0(s0) 5ff8: 29d020ef jal ra,8a94 5ffc: 38fe lhu a5,54(s1) 5ffe: 4c18 lw a4,24(s0) 6000: 8526 mv a0,s1 6002: 41778bb3 sub s7,a5,s7 6006: 445c lw a5,12(s0) 6008: 03749b23 sh s7,54(s1) 600c: 8f99 sub a5,a5,a4 600e: b4de sh a5,44(s1) 6010: 05c030ef jal ra,906c 6014: 4501 li a0,0 6016: d10fa06f j 526 <__riscv_restore_10> 601a: 853e mv a0,a5 601c: 85e2 mv a1,s8 601e: 6b3060ef jal ra,ced0 6022: 00a95703 lhu a4,10(s2) 6026: 00e507b3 add a5,a0,a4 602a: fb671ae3 bne a4,s6,5fde 602e: 441c lw a5,8(s0) 6030: b77d j 5fde 6032: 4501 li a0,0 6034: f2ed bnez a3,6016 6036: 852e mv a0,a1 6038: 4c2030ef jal ra,94fa 603c: bfe9 j 6016 603e: 557d li a0,-1 6040: 8082 ret 00006042 : LwipTcpConnectedCallBack(): 6042: cd4fa2ef jal t0,516 <__riscv_save_0> 6046: 842e mv s0,a1 6048: 000065b7 lui a1,0x6 604c: 84aa mv s1,a0 604e: f7058593 addi a1,a1,-144 # 5f70 6052: 8522 mv a0,s0 6054: 110030ef jal ra,9164 6058: 000065b7 lui a1,0x6 605c: 8522 mv a0,s0 605e: d9058593 addi a1,a1,-624 # 5d90 6062: 108030ef jal ra,916a 6066: 000065b7 lui a1,0x6 606a: 8522 mv a0,s0 606c: 4605 li a2,1 606e: dce58593 addi a1,a1,-562 # 5dce 6072: 104030ef jal ra,9176 6076: 209c lbu a5,0(s1) 6078: 4501 li a0,0 607a: 0087e793 ori a5,a5,8 607e: c09c sw a5,0(s1) 6080: cbafa06f j 53a <__riscv_restore_0> 00006084 : ErrorEncode(): 6084: c919 beqz a0,609a 6086: 40a00533 neg a0,a0 608a: 67b5 lui a5,0xd 608c: 3ac78793 addi a5,a5,940 # d3ac 6090: 0ff57513 andi a0,a0,255 6094: 953e add a0,a0,a5 6096: 2108 lbu a0,0(a0) 6098: 8082 ret 609a: 4501 li a0,0 609c: 8082 ret 0000609e : WCHSocketInit(): 609e: c78fa2ef jal t0,516 <__riscv_save_0> 60a2: 03c00793 li a5,60 60a6: 02f587b3 mul a5,a1,a5 60aa: 2000f437 lui s0,0x2000f 60ae: 84c40713 addi a4,s0,-1972 # 2000e84c 60b2: 892a mv s2,a0 60b4: 84ae mv s1,a1 60b6: 03c00613 li a2,60 60ba: 4581 li a1,0 60bc: 84c40413 addi s0,s0,-1972 60c0: 97ba add a5,a5,a4 60c2: 853e mv a0,a5 60c4: c82fa0ef jal ra,546 60c8: 00090763 beqz s2,60d6 60cc: 03c00613 li a2,60 60d0: 85ca mv a1,s2 60d2: 5ff060ef jal ra,ced0 60d6: 03c00593 li a1,60 60da: 02b485b3 mul a1,s1,a1 60de: 95a2 add a1,a1,s0 60e0: 459c lw a5,8(a1) 60e2: c99c sw a5,16(a1) 60e4: c9dc sw a5,20(a1) 60e6: c54fa06f j 53a <__riscv_restore_0> 000060ea : WCHNET_Init(): 60ea: c12fa2ef jal t0,4fc <__riscv_save_4> 60ee: 8a2a mv s4,a0 60f0: 2002e537 lui a0,0x2002e 60f4: 1141 addi sp,sp,-16 60f6: 89ae mv s3,a1 60f8: 84b2 mv s1,a2 60fa: 4581 li a1,0 60fc: 4661 li a2,24 60fe: b1450513 addi a0,a0,-1260 # 2002db14 6102: c636 sw a3,12(sp) 6104: c42fa0ef jal ra,546 6108: 46b2 lw a3,12(sp) 610a: 2002e437 lui s0,0x2002e 610e: b8c40913 addi s2,s0,-1140 # 2002db8c 6112: 85b6 mv a1,a3 6114: 4619 li a2,6 6116: 00c90513 addi a0,s2,12 611a: 5b7060ef jal ra,ced0 611e: 4611 li a2,4 6120: 85d2 mv a1,s4 6122: b8c40513 addi a0,s0,-1140 6126: 5ab060ef jal ra,ced0 612a: 4611 li a2,4 612c: 85ce mv a1,s3 612e: 00490513 addi a0,s2,4 6132: 59f060ef jal ra,ced0 6136: b8c40413 addi s0,s0,-1140 613a: e0a1 bnez s1,617a 613c: 010007b7 lui a5,0x1000 6140: 17fd addi a5,a5,-1 6142: c41c sw a5,8(s0) 6144: 4481 li s1,0 6146: 9541c783 lbu a5,-1708(gp) # 20000194 614a: 02f4cf63 blt s1,a5,6188 614e: 4e0010ef jal ra,762e 6152: 4785 li a5,1 6154: d05c sw a5,36(s0) 6156: 6715 lui a4,0x5 6158: 2002e7b7 lui a5,0x2002e 615c: b8078793 addi a5,a5,-1152 # 2002db80 6160: e2070713 addi a4,a4,-480 # 4e20 6164: c398 sw a4,0(a5) 6166: 6711 lui a4,0x4 6168: a9870713 addi a4,a4,-1384 # 3a98 616c: c3d8 sw a4,4(a5) 616e: 4725 li a4,9 6170: c798 sw a4,8(a5) 6172: 4501 li a0,0 6174: 0141 addi sp,sp,16 6176: bbafa06f j 530 <__riscv_restore_4> 617a: 4611 li a2,4 617c: 85a6 mv a1,s1 617e: 00840513 addi a0,s0,8 6182: 54f060ef jal ra,ced0 6186: bf7d j 6144 6188: 0ff4f593 andi a1,s1,255 618c: 4501 li a0,0 618e: f11ff0ef jal ra,609e 6192: 0485 addi s1,s1,1 6194: bf4d j 6146 00006196 : WCHNET_ConfigKeepLive(): 6196: 4118 lw a4,0(a0) 6198: 2002e7b7 lui a5,0x2002e 619c: b8078793 addi a5,a5,-1152 # 2002db80 61a0: c398 sw a4,0(a5) 61a2: 4158 lw a4,4(a0) 61a4: c3d8 sw a4,4(a5) 61a6: 4518 lw a4,8(a0) 61a8: c798 sw a4,8(a5) 61aa: 8082 ret 000061ac : WCHNET_ConfigLIB(): 61ac: 5518 lw a4,40(a0) 61ae: 123457b7 lui a5,0x12345 61b2: 67878793 addi a5,a5,1656 # 12345678 <_data_lma+0x12338164> 61b6: 12f71a63 bne a4,a5,62ea 61ba: b42fa2ef jal t0,4fc <__riscv_save_4> 61be: 511c lw a5,32(a0) 61c0: 842a mv s0,a0 61c2: 4525 li a0,9 61c4: 10078b63 beqz a5,62da 61c8: 2002e937 lui s2,0x2002e 61cc: 04400613 li a2,68 61d0: 4581 li a1,0 61d2: b8c90513 addi a0,s2,-1140 # 2002db8c 61d6: b70fa0ef jal ra,546 61da: 2002e4b7 lui s1,0x2002e 61de: 02c00613 li a2,44 61e2: 4581 li a1,0 61e4: bd048513 addi a0,s1,-1072 # 2002dbd0 61e8: b5efa0ef jal ra,546 61ec: 02c00613 li a2,44 61f0: 85a2 mv a1,s0 61f2: bd048513 addi a0,s1,-1072 61f6: 4db060ef jal ra,ced0 61fa: bd048993 addi s3,s1,-1072 61fe: 0149a703 lw a4,20(s3) 6202: 864a mv a2,s2 6204: bd048793 addi a5,s1,-1072 6208: eb25 bnez a4,6278 620a: 66b5 lui a3,0xd 620c: 1846d703 lhu a4,388(a3) # d184 6210: 18468693 addi a3,a3,388 6214: 22ae lhu a1,2(a3) 6216: 972e add a4,a4,a1 6218: 22ce lhu a1,4(a3) 621a: 22f6 lhu a3,6(a3) 621c: 972e add a4,a4,a1 621e: 9736 add a4,a4,a3 6220: 01271693 slli a3,a4,0x12 6224: 0a06dd63 bgez a3,62de 6228: cbd8 sw a4,20(a5) 622a: 4bd8 lw a4,20(a5) 622c: 00e75693 srli a3,a4,0xe 6230: 8afd andi a3,a3,31 6232: ea89 bnez a3,6244 6234: fff846b7 lui a3,0xfff84 6238: 16fd addi a3,a3,-1 623a: 8f75 and a4,a4,a3 623c: 000506b7 lui a3,0x50 6240: 8f55 or a4,a4,a3 6242: cbd8 sw a4,20(a5) 6244: 4bd8 lw a4,20(a5) 6246: 01375693 srli a3,a4,0x13 624a: 8afd andi a3,a3,31 624c: ea89 bnez a3,625e 624e: fff846b7 lui a3,0xfff84 6252: 16fd addi a3,a3,-1 6254: 8f75 and a4,a4,a3 6256: 005006b7 lui a3,0x500 625a: 8f55 or a4,a4,a3 625c: cbd8 sw a4,20(a5) 625e: 4bd8 lw a4,20(a5) 6260: 00671693 slli a3,a4,0x6 6264: 0006ca63 bltz a3,6278 6268: fe0006b7 lui a3,0xfe000 626c: 16fd addi a3,a3,-1 626e: 8f75 and a4,a4,a3 6270: 140006b7 lui a3,0x14000 6274: 8f55 or a4,a4,a3 6276: cbd8 sw a4,20(a5) 6278: 4bd8 lw a4,20(a5) 627a: 01b75693 srli a3,a4,0x1b 627e: e689 bnez a3,6288 6280: 400006b7 lui a3,0x40000 6284: 8f55 or a4,a4,a3 6286: cbd8 sw a4,20(a5) 6288: 46a9 li a3,10 628a: 94d188a3 sb a3,-1711(gp) # 20000191 628e: 468d li a3,3 6290: 94d18823 sb a3,-1712(gp) # 20000190 6294: 12c00693 li a3,300 6298: 94d19923 sh a3,-1710(gp) # 20000192 629c: 53d8 lw a4,36(a5) 629e: e711 bnez a4,62aa 62a0: 00006737 lui a4,0x6 62a4: b5c70713 addi a4,a4,-1188 # 5b5c 62a8: d3d8 sw a4,36(a5) 62aa: 4bd4 lw a3,20(a5) 62ac: 4501 li a0,0 62ae: 00e6d713 srli a4,a3,0xe 62b2: 8b7d andi a4,a4,31 62b4: 94d18a23 sb a3,-1708(gp) # 20000194 62b8: b8c60793 addi a5,a2,-1140 62bc: cf98 sw a4,24(a5) 62be: 0136d713 srli a4,a3,0x13 62c2: 8b7d andi a4,a4,31 62c4: 03200613 li a2,50 62c8: 02c70733 mul a4,a4,a2 62cc: cfd8 sw a4,28(a5) 62ce: 00669713 slli a4,a3,0x6 62d2: 00075463 bgez a4,62da 62d6: 4709 li a4,2 62d8: c3b8 sw a4,64(a5) 62da: a56fa06f j 530 <__riscv_restore_4> 62de: 76f9 lui a3,0xffffe 62e0: 16fd addi a3,a3,-1 62e2: 8f75 and a4,a4,a3 62e4: 6689 lui a3,0x2 62e6: 8f55 or a4,a4,a3 62e8: b781 j 6228 62ea: 0ff00513 li a0,255 62ee: 8082 ret 000062f0 : WCHNET_GetVer(): 62f0: 456d li a0,27 62f2: 8082 ret 000062f4 : WCHFindCorrectTCBPcb(): 62f4: 9541c603 lbu a2,-1708(gp) # 20000194 62f8: 2000f7b7 lui a5,0x2000f 62fc: 84c78693 addi a3,a5,-1972 # 2000e84c 6300: 4701 li a4,0 6302: 84c78793 addi a5,a5,-1972 6306: 00e61763 bne a2,a4,6314 630a: 4781 li a5,0 630c: 02f71363 bne a4,a5,6332 6310: 4501 li a0,0 6312: 8082 ret 6314: 0307a803 lw a6,48(a5) 6318: 00a81763 bne a6,a0,6326 631c: c509 beqz a0,6326 631e: 4505 li a0,1 6320: d9ed beqz a1,6312 6322: a198 sb a4,0(a1) 6324: 8082 ret 6326: 0705 addi a4,a4,1 6328: 0ff77713 andi a4,a4,255 632c: 03c78793 addi a5,a5,60 6330: bfd9 j 6306 6332: 5ad0 lw a2,52(a3) 6334: 00a61963 bne a2,a0,6346 6338: c519 beqz a0,6346 633a: 4505 li a0,1 633c: d9f9 beqz a1,6312 633e: f807e793 ori a5,a5,-128 6342: a19c sb a5,0(a1) 6344: 8082 ret 6346: 0785 addi a5,a5,1 6348: 0ff7f793 andi a5,a5,255 634c: 03c68693 addi a3,a3,60 # 203c 6350: bf75 j 630c 00006352 : WCHNET_SocketCreat(): 6352: 9aafa2ef jal t0,4fc <__riscv_save_4> 6356: 2000f937 lui s2,0x2000f 635a: 00050023 sb zero,0(a0) 635e: 9541c703 lbu a4,-1708(gp) # 20000194 6362: 1141 addi sp,sp,-16 6364: 84c90793 addi a5,s2,-1972 # 2000e84c 6368: 4481 li s1,0 636a: 84c90913 addi s2,s2,-1972 636e: 00971763 bne a4,s1,637c 6372: 02000513 li a0,32 6376: 0141 addi sp,sp,16 6378: 9b8fa06f j 530 <__riscv_restore_4> 637c: 03c78793 addi a5,a5,60 6380: fe47a683 lw a3,-28(a5) 6384: 18068163 beqz a3,6506 6388: 0485 addi s1,s1,1 638a: 0ff4f493 andi s1,s1,255 638e: b7c5 j 636e 6390: 2002e7b7 lui a5,0x2002e 6394: b8c7a783 lw a5,-1140(a5) # 2002db8c 6398: 006c addi a1,sp,12 639a: c63e sw a5,12(sp) 639c: 22f020ef jal ra,8dca 63a0: 4611 li a2,4 63a2: 02c40593 addi a1,s0,44 63a6: 0068 addi a0,sp,12 63a8: 329060ef jal ra,ced0 63ac: 006c addi a1,sp,12 63ae: 854e mv a0,s3 63b0: 239020ef jal ra,8de8 63b4: 03c00613 li a2,60 63b8: 02c48633 mul a2,s1,a2 63bc: 000065b7 lui a1,0x6 63c0: dd258593 addi a1,a1,-558 # 5dd2 63c4: 854e mv a0,s3 63c6: 964a add a2,a2,s2 63c8: 23f020ef jal ra,8e06 63cc: 4795 li a5,5 63ce: 2002e537 lui a0,0x2002e 63d2: 006c addi a1,sp,12 63d4: 03342823 sw s3,48(s0) 63d8: d01c sw a5,32(s0) 63da: bfc50513 addi a0,a0,-1028 # 2002dbfc 63de: 50f000ef jal ra,70ec 63e2: 85a6 mv a1,s1 63e4: 8522 mv a0,s0 63e6: cb9ff0ef jal ra,609e 63ea: 4501 li a0,0 63ec: b769 j 6376 63ee: 4709 li a4,2 63f0: 0ae79063 bne a5,a4,6490 63f4: 427050ef jal ra,c01a 63f8: 89aa mv s3,a0 63fa: 12050363 beqz a0,6520 63fe: 02c40a93 addi s5,s0,44 6402: 4611 li a2,4 6404: 85d6 mv a1,s5 6406: 0068 addi a0,sp,12 6408: 2c9060ef jal ra,ced0 640c: 4a32 lw s4,12(sp) 640e: f0000537 lui a0,0xf0000 6412: 2d2010ef jal ra,76e4 6416: 00aa7a33 and s4,s4,a0 641a: e0000537 lui a0,0xe0000 641e: 2c6010ef jal ra,76e4 6422: 04aa0063 beq s4,a0,6462 6426: 2002e5b7 lui a1,0x2002e 642a: bfc58593 addi a1,a1,-1028 # 2002dbfc 642e: 0068 addi a0,sp,12 6430: 736010ef jal ra,7b66 6434: e51d bnez a0,6462 6436: 2002e7b7 lui a5,0x2002e 643a: b8c7a783 lw a5,-1140(a5) # 2002db8c 643e: 3412 lhu a2,40(s0) 6440: 006c addi a1,sp,12 6442: 854e mv a0,s3 6444: c63e sw a5,12(sp) 6446: 171050ef jal ra,bdb6 644a: e11d bnez a0,6470 644c: 85d6 mv a1,s5 644e: 4611 li a2,4 6450: 0068 addi a0,sp,12 6452: 27f060ef jal ra,ced0 6456: 3052 lhu a2,36(s0) 6458: 006c addi a1,sp,12 645a: 854e mv a0,s3 645c: 30b050ef jal ra,bf66 6460: a039 j 646e 6462: 3412 lhu a2,40(s0) 6464: 84c18593 addi a1,gp,-1972 # 2000008c 6468: 854e mv a0,s3 646a: 14d050ef jal ra,bdb6 646e: c501 beqz a0,6476 6470: c15ff0ef jal ra,6084 6474: b709 j 6376 6476: 03c00613 li a2,60 647a: 02c48633 mul a2,s1,a2 647e: 000065b7 lui a1,0x6 6482: e9658593 addi a1,a1,-362 # 5e96 6486: 854e mv a0,s3 6488: 964a add a2,a2,s2 648a: 35b050ef jal ra,bfe4 648e: bf3d j 63cc 6490: 470d li a4,3 6492: 02100513 li a0,33 6496: eee790e3 bne a5,a4,6376 649a: 420030ef jal ra,98ba 649e: 445c lw a5,12(s0) 64a0: 3412 lhu a2,40(s0) 64a2: 006c addi a1,sp,12 64a4: b95e sh a5,52(a0) 64a6: 2002e7b7 lui a5,0x2002e 64aa: b8c7a783 lw a5,-1140(a5) # 2002db8c 64ae: 89aa mv s3,a0 64b0: c63e sw a5,12(sp) 64b2: 2a5020ef jal ra,8f56 64b6: 8a2a mv s4,a0 64b8: c511 beqz a0,64c4 64ba: 854e mv a0,s3 64bc: 03e030ef jal ra,94fa 64c0: 8552 mv a0,s4 64c2: b77d j 6470 64c4: 03c00593 li a1,60 64c8: 02b485b3 mul a1,s1,a1 64cc: 854e mv a0,s3 64ce: 95ca add a1,a1,s2 64d0: 491020ef jal ra,9160 64d4: 000065b7 lui a1,0x6 64d8: 854e mv a0,s3 64da: d8e58593 addi a1,a1,-626 # 5d8e 64de: 493020ef jal ra,9170 64e2: 4795 li a5,5 64e4: 85a6 mv a1,s1 64e6: 8522 mv a0,s0 64e8: 03342823 sw s3,48(s0) 64ec: 03342a23 sw s3,52(s0) 64f0: d01c sw a5,32(s0) 64f2: badff0ef jal ra,609e 64f6: 2002e537 lui a0,0x2002e 64fa: 006c addi a1,sp,12 64fc: bfc50513 addi a0,a0,-1028 # 2002dbfc 6500: 3ed000ef jal ra,70ec 6504: b5dd j 63ea 6506: a104 sb s1,0(a0) 6508: 4ddc lw a5,28(a1) 650a: c1c4 sw s1,4(a1) 650c: 842e mv s0,a1 650e: ee0790e3 bnez a5,63ee 6512: 02844503 lbu a0,40(s0) 6516: 1b5020ef jal ra,8eca 651a: 89aa mv s3,a0 651c: e6051ae3 bnez a0,6390 6520: 4545 li a0,17 6522: bd91 j 6376 00006524 : tcp_recved_socket(): 6524: ff3f92ef jal t0,516 <__riscv_save_0> 6528: 08852783 lw a5,136(a0) 652c: b54e sh a1,44(a0) 652e: 842a mv s0,a0 6530: c781 beqz a5,6538 6532: 279e lhu a5,8(a5) 6534: 8d9d sub a1,a1,a5 6536: b54e sh a1,44(a0) 6538: 8522 mv a0,s0 653a: 333020ef jal ra,906c 653e: cd09 beqz a0,6558 6540: 02644783 lbu a5,38(s0) 6544: 8522 mv a0,s0 6546: 0027e793 ori a5,a5,2 654a: 02f40323 sb a5,38(s0) 654e: 77d040ef jal ra,b4ca 6552: 4505 li a0,1 6554: fe7f906f j 53a <__riscv_restore_0> 6558: 2002e7b7 lui a5,0x2002e 655c: be07a783 lw a5,-1056(a5) # 2002dbe0 6560: 83a1 srli a5,a5,0x8 6562: 8b85 andi a5,a5,1 6564: d7fd beqz a5,6552 6566: 02644783 lbu a5,38(s0) 656a: 8b85 andi a5,a5,1 656c: d3fd beqz a5,6552 656e: 4789 li a5,2 6570: 02f403a3 sb a5,39(s0) 6574: 4705 li a4,1 6576: 96e1a023 sw a4,-1696(gp) # 200001a0 657a: bfe1 j 6552 0000657c : WCHNET_ModifyRecvBuf(): 657c: 9541c783 lbu a5,-1708(gp) # 20000194 6580: 04f57663 bgeu a0,a5,65cc 6584: 03c00713 li a4,60 6588: 02e50533 mul a0,a0,a4 658c: 2000f7b7 lui a5,0x2000f 6590: 84c78793 addi a5,a5,-1972 # 2000e84c 6594: 953e add a0,a0,a5 6596: 4d58 lw a4,28(a0) 6598: 00052c23 sw zero,24(a0) 659c: c550 sw a2,12(a0) 659e: c50c sw a1,8(a0) 65a0: c90c sw a1,16(a0) 65a2: c94c sw a1,20(a0) 65a4: 478d li a5,3 65a6: 02f71363 bne a4,a5,65cc 65aa: 5908 lw a0,48(a0) 65ac: c105 beqz a0,65cc 65ae: 395a lhu a4,52(a0) 65b0: 00163793 seqz a5,a2 65b4: 00f71c63 bne a4,a5,65cc 65b8: f5ff92ef jal t0,516 <__riscv_save_0> 65bc: 01061593 slli a1,a2,0x10 65c0: 81c1 srli a1,a1,0x10 65c2: b94e sh a1,52(a0) 65c4: f61ff0ef jal ra,6524 65c8: f73f906f j 53a <__riscv_restore_0> 65cc: 8082 ret 000065ce : WCHNET_SocketRecv(): 65ce: f2ff92ef jal t0,4fc <__riscv_save_4> 65d2: 4214 lw a3,0(a2) 65d4: 4469 li s0,26 65d6: cecd beqz a3,6690 65d8: 00062023 sw zero,0(a2) 65dc: 8a32 mv s4,a2 65de: 03c00613 li a2,60 65e2: 02c50633 mul a2,a0,a2 65e6: 2000f4b7 lui s1,0x2000f 65ea: 84c48713 addi a4,s1,-1972 # 2000e84c 65ee: 89aa mv s3,a0 65f0: 87ae mv a5,a1 65f2: 84c48493 addi s1,s1,-1972 65f6: 9732 add a4,a4,a2 65f8: 00872b03 lw s6,8(a4) 65fc: 4750 lw a2,12(a4) 65fe: 01872903 lw s2,24(a4) 6602: 4b40 lw s0,20(a4) 6604: 9b32 add s6,s6,a2 6606: 0126f363 bgeu a3,s2,660c 660a: 8936 mv s2,a3 660c: 408b0ab3 sub s5,s6,s0 6610: 092af363 bgeu s5,s2,6696 6614: cb81 beqz a5,6624 6616: 853e mv a0,a5 6618: 8656 mv a2,s5 661a: 85a2 mv a1,s0 661c: 0b5060ef jal ra,ced0 6620: 015507b3 add a5,a0,s5 6624: 03c00713 li a4,60 6628: 02e98733 mul a4,s3,a4 662c: 944a add s0,s0,s2 662e: 41640433 sub s0,s0,s6 6632: 9726 add a4,a4,s1 6634: 00872a83 lw s5,8(a4) 6638: c791 beqz a5,6644 663a: 8622 mv a2,s0 663c: 85d6 mv a1,s5 663e: 853e mv a0,a5 6640: 091060ef jal ra,ced0 6644: 9456 add s0,s0,s5 6646: 03c00793 li a5,60 664a: 02f987b3 mul a5,s3,a5 664e: 012a2023 sw s2,0(s4) 6652: 97a6 add a5,a5,s1 6654: 4f98 lw a4,24(a5) 6656: cbc0 sw s0,20(a5) 6658: 41270933 sub s2,a4,s2 665c: 0127ac23 sw s2,24(a5) 6660: 00091863 bnez s2,6670 6664: 4798 lw a4,8(a5) 6666: cbd8 sw a4,20(a5) 6668: cb98 sw a4,16(a5) 666a: 4398 lw a4,0(a5) 666c: 9b6d andi a4,a4,-5 666e: c398 sw a4,0(a5) 6670: 03c00793 li a5,60 6674: 02f989b3 mul s3,s3,a5 6678: 478d li a5,3 667a: 4401 li s0,0 667c: 94ce add s1,s1,s3 667e: 4cd8 lw a4,28(s1) 6680: 00f71863 bne a4,a5,6690 6684: 00091663 bnez s2,6690 6688: 24ce lhu a1,12(s1) 668a: 5888 lw a0,48(s1) 668c: e99ff0ef jal ra,6524 6690: 8522 mv a0,s0 6692: e9ff906f j 530 <__riscv_restore_4> 6696: c791 beqz a5,66a2 6698: 864a mv a2,s2 669a: 85a2 mv a1,s0 669c: 853e mv a0,a5 669e: 033060ef jal ra,ced0 66a2: 944a add s0,s0,s2 66a4: fb2a91e3 bne s5,s2,6646 66a8: 03c00793 li a5,60 66ac: 02f987b3 mul a5,s3,a5 66b0: 97a6 add a5,a5,s1 66b2: 4780 lw s0,8(a5) 66b4: bf49 j 6646 000066b6 : SocketIPRawSend(): 66b6: e39f92ef jal t0,4ee <__riscv_save_10> 66ba: 4200 lw s0,0(a2) 66bc: 00062023 sw zero,0(a2) 66c0: c455 beqz s0,676c 66c2: 87aa mv a5,a0 66c4: 4569 li a0,26 66c6: c5d9 beqz a1,6754 66c8: 03c00513 li a0,60 66cc: 02a787b3 mul a5,a5,a0 66d0: 2000f537 lui a0,0x2000f 66d4: 84c50513 addi a0,a0,-1972 # 2000e84c 66d8: 2002eab7 lui s5,0x2002e 66dc: 4481 li s1,0 66de: 97aa add a5,a5,a0 66e0: 0307ab03 lw s6,48(a5) 66e4: b8ca8793 addi a5,s5,-1140 # 2002db8c 66e8: 43bc lw a5,64(a5) 66ea: b8ca8a93 addi s5,s5,-1140 66ee: 8b89 andi a5,a5,2 66f0: e399 bnez a5,66f6 66f2: 0c700493 li s1,199 66f6: 5c800793 li a5,1480 66fa: 0087f463 bgeu a5,s0,6702 66fe: 5c800413 li s0,1480 6702: 01041c93 slli s9,s0,0x10 6706: 8a32 mv s4,a2 6708: 892e mv s2,a1 670a: 010cdc93 srli s9,s9,0x10 670e: 0c800c13 li s8,200 6712: 4601 li a2,0 6714: 85e6 mv a1,s9 6716: 4501 li a0,0 6718: 3ca020ef jal ra,8ae2 671c: 89aa mv s3,a0 671e: c929 beqz a0,6770 6720: 4148 lw a0,4(a0) 6722: 8622 mv a2,s0 6724: 85ca mv a1,s2 6726: 020aae23 sw zero,60(s5) 672a: 7a6060ef jal ra,ced0 672e: 85ce mv a1,s3 6730: 855a mv a0,s6 6732: 758020ef jal ra,8e8a 6736: 8baa mv s7,a0 6738: 854e mv a0,s3 673a: 35a020ef jal ra,8a94 673e: 03caa783 lw a5,60(s5) 6742: cb99 beqz a5,6758 6744: 0485 addi s1,s1,1 6746: 04c2 slli s1,s1,0x10 6748: 80c1 srli s1,s1,0x10 674a: bb0ff0ef jal ra,5afa 674e: fd8492e3 bne s1,s8,6712 6752: 454d li a0,19 6754: dd3f906f j 526 <__riscv_restore_10> 6758: 000bd663 bgez s7,6764 675c: 855e mv a0,s7 675e: 927ff0ef jal ra,6084 6762: bfcd j 6754 6764: 008a2023 sw s0,0(s4) 6768: 4501 li a0,0 676a: b7ed j 6754 676c: 4569 li a0,26 676e: b7dd j 6754 6770: 4545 li a0,17 6772: b7cd j 6754 00006774 : SocketUdpSend(): 6774: d7bf92ef jal t0,4ee <__riscv_save_10> 6778: 4200 lw s0,0(a2) 677a: 00062023 sw zero,0(a2) 677e: c455 beqz s0,682a 6780: 87aa mv a5,a0 6782: 4569 li a0,26 6784: c5d9 beqz a1,6812 6786: 03c00513 li a0,60 678a: 02a787b3 mul a5,a5,a0 678e: 2000f537 lui a0,0x2000f 6792: 84c50513 addi a0,a0,-1972 # 2000e84c 6796: 2002eab7 lui s5,0x2002e 679a: 4481 li s1,0 679c: 97aa add a5,a5,a0 679e: 0307ab03 lw s6,48(a5) 67a2: b8ca8793 addi a5,s5,-1140 # 2002db8c 67a6: 43bc lw a5,64(a5) 67a8: b8ca8a93 addi s5,s5,-1140 67ac: 8b89 andi a5,a5,2 67ae: e399 bnez a5,67b4 67b0: 0c700493 li s1,199 67b4: 5c000793 li a5,1472 67b8: 0087f463 bgeu a5,s0,67c0 67bc: 5c000413 li s0,1472 67c0: 01041c93 slli s9,s0,0x10 67c4: 8a32 mv s4,a2 67c6: 892e mv s2,a1 67c8: 010cdc93 srli s9,s9,0x10 67cc: 0c800c13 li s8,200 67d0: 4601 li a2,0 67d2: 85e6 mv a1,s9 67d4: 4501 li a0,0 67d6: 30c020ef jal ra,8ae2 67da: 89aa mv s3,a0 67dc: c929 beqz a0,682e 67de: 4148 lw a0,4(a0) 67e0: 8622 mv a2,s0 67e2: 85ca mv a1,s2 67e4: 020aae23 sw zero,60(s5) 67e8: 6e8060ef jal ra,ced0 67ec: 85ce mv a1,s3 67ee: 855a mv a0,s6 67f0: 764050ef jal ra,bf54 67f4: 8baa mv s7,a0 67f6: 854e mv a0,s3 67f8: 29c020ef jal ra,8a94 67fc: 03caa783 lw a5,60(s5) 6800: cb99 beqz a5,6816 6802: 0485 addi s1,s1,1 6804: 04c2 slli s1,s1,0x10 6806: 80c1 srli s1,s1,0x10 6808: af2ff0ef jal ra,5afa 680c: fd8492e3 bne s1,s8,67d0 6810: 454d li a0,19 6812: d15f906f j 526 <__riscv_restore_10> 6816: 000bd663 bgez s7,6822 681a: 855e mv a0,s7 681c: 869ff0ef jal ra,6084 6820: bfcd j 6812 6822: 008a2023 sw s0,0(s4) 6826: 4501 li a0,0 6828: b7ed j 6812 682a: 4569 li a0,26 682c: b7dd j 6812 682e: 4545 li a0,17 6830: b7cd j 6812 00006832 : SocketTcpSend(): 6832: cbdf92ef jal t0,4ee <__riscv_save_10> 6836: 00062983 lw s3,0(a2) 683a: 00062023 sw zero,0(a2) 683e: 0c098e63 beqz s3,691a 6842: 87aa mv a5,a0 6844: 8b2e mv s6,a1 6846: 4569 li a0,26 6848: c1a1 beqz a1,6888 684a: 03c00513 li a0,60 684e: 02a787b3 mul a5,a5,a0 6852: 2000f537 lui a0,0x2000f 6856: 84c50513 addi a0,a0,-1972 # 2000e84c 685a: 2002ea37 lui s4,0x2002e 685e: 8bb2 mv s7,a2 6860: 0c900a93 li s5,201 6864: 4481 li s1,0 6866: 4c11 li s8,4 6868: bd0a0a13 addi s4,s4,-1072 # 2002dbd0 686c: 5cfd li s9,-1 686e: 97aa add a5,a5,a0 6870: 0307a903 lw s2,48(a5) 6874: 1afd addi s5,s5,-1 6876: 0ac2 slli s5,s5,0x10 6878: 010ada93 srli s5,s5,0x10 687c: 000a9863 bnez s5,688c 6880: 000ba783 lw a5,0(s7) # 4000 6884: cbc9 beqz a5,6916 6886: 4501 li a0,0 6888: c9ff906f j 526 <__riscv_restore_10> 688c: 01092783 lw a5,16(s2) 6890: 09879763 bne a5,s8,691e 6894: a66ff0ef jal ra,5afa 6898: 07695703 lhu a4,118(s2) 689c: e319 bnez a4,68a2 689e: 4545 li a0,17 68a0: b7e5 j 6888 68a2: 010a2783 lw a5,16(s4) 68a6: 8b85 andi a5,a5,1 68a8: e399 bnez a5,68ae 68aa: ff376ae3 bltu a4,s3,689e 68ae: 004a2403 lw s0,4(s4) 68b2: 00877363 bgeu a4,s0,68b8 68b6: 843a mv s0,a4 68b8: 0089f363 bgeu s3,s0,68be 68bc: 844e mv s0,s3 68be: 01041613 slli a2,s0,0x10 68c2: 8241 srli a2,a2,0x10 68c4: 4685 li a3,1 68c6: e391 bnez a5,68ca 68c8: 4681 li a3,0 68ca: 85da mv a1,s6 68cc: 854a mv a0,s2 68ce: 35d040ef jal ra,b42a 68d2: 84aa mv s1,a0 68d4: 854a mv a0,s2 68d6: e48d bnez s1,6900 68d8: 3f3040ef jal ra,b4ca 68dc: 000ba783 lw a5,0(s7) 68e0: 408989b3 sub s3,s3,s0 68e4: 84aa mv s1,a0 68e6: 97a2 add a5,a5,s0 68e8: 00fba023 sw a5,0(s7) 68ec: 9b22 add s6,s6,s0 68ee: f8098ce3 beqz s3,6886 68f2: 010a2783 lw a5,16(s4) 68f6: 8b85 andi a5,a5,1 68f8: ffb5 bnez a5,6874 68fa: f8aff0ef jal ra,6084 68fe: b769 j 6888 6900: 01949963 bne s1,s9,6912 6904: 3c7040ef jal ra,b4ca 6908: 010a2783 lw a5,16(s4) 690c: 8b85 andi a5,a5,1 690e: f3bd bnez a5,6874 6910: b779 j 689e 6912: 3b9040ef jal ra,b4ca 6916: 8526 mv a0,s1 6918: b7cd j 68fa 691a: 4569 li a0,26 691c: b7b5 j 6888 691e: 455d li a0,23 6920: b7a5 j 6888 00006922 : WCHNET_SocketSend(): 6922: 03c00793 li a5,60 6926: 02f507b3 mul a5,a0,a5 692a: 2000f737 lui a4,0x2000f 692e: 84c70713 addi a4,a4,-1972 # 2000e84c 6932: 97ba add a5,a5,a4 6934: 0207a803 lw a6,32(a5) 6938: 4715 li a4,5 693a: 00e80763 beq a6,a4,6948 693e: 47dd li a5,23 6940: 00062023 sw zero,0(a2) 6944: 853e mv a0,a5 6946: 8082 ret 6948: bcff92ef jal t0,516 <__riscv_save_0> 694c: 4fd8 lw a4,28(a5) 694e: 478d li a5,3 6950: 00f71863 bne a4,a5,6960 6954: edfff0ef jal ra,6832 6958: 87aa mv a5,a0 695a: 853e mv a0,a5 695c: bdff906f j 53a <__riscv_restore_0> 6960: e701 bnez a4,6968 6962: d55ff0ef jal ra,66b6 6966: bfcd j 6958 6968: 4689 li a3,2 696a: 0fa00793 li a5,250 696e: fed716e3 bne a4,a3,695a 6972: e03ff0ef jal ra,6774 6976: b7cd j 6958 00006978 : WCHScokedIntHandle(): 6978: b9ff92ef jal t0,516 <__riscv_save_0> 697c: 47a1 li a5,8 697e: 84aa mv s1,a0 6980: 2100 lbu s0,0(a0) 6982: 02f58a63 beq a1,a5,69b6 6986: 00b7ec63 bltu a5,a1,699e 698a: 4785 li a5,1 698c: 02f58163 beq a1,a5,69ae 6990: 4789 li a5,2 6992: 00246413 ori s0,s0,2 6996: 00f58e63 beq a1,a5,69b2 699a: ba1f906f j 53a <__riscv_restore_0> 699e: 47c1 li a5,16 69a0: 00f58e63 beq a1,a5,69bc 69a4: 04000793 li a5,64 69a8: 04046413 ori s0,s0,64 69ac: b7ed j 6996 69ae: 00146413 ori s0,s0,1 69b2: c080 sw s0,0(s1) 69b4: b7dd j 699a 69b6: 00846413 ori s0,s0,8 69ba: bfe5 j 69b2 69bc: 5948 lw a0,52(a0) 69be: 01046413 ori s0,s0,16 69c2: d965 beqz a0,69b2 69c4: 337020ef jal ra,94fa 69c8: b7ed j 69b2 000069ca : LwipRemoveTcpPcb(): 69ca: b33f92ef jal t0,4fc <__riscv_save_4> 69ce: 1141 addi sp,sp,-16 69d0: 00f10593 addi a1,sp,15 69d4: 89aa mv s3,a0 69d6: 000107a3 sb zero,15(sp) 69da: 91bff0ef jal ra,62f4 69de: c515 beqz a0,6a0a 69e0: 8784 lbu s1,15(sp) 69e2: 01849793 slli a5,s1,0x18 69e6: 87e1 srai a5,a5,0x18 69e8: 0207d463 bgez a5,6a10 69ec: 03c00413 li s0,60 69f0: 07f4f493 andi s1,s1,127 69f4: 028484b3 mul s1,s1,s0 69f8: 2000f437 lui s0,0x2000f 69fc: 84c40413 addi s0,s0,-1972 # 2000e84c 6a00: 9426 add s0,s0,s1 6a02: 02042a23 sw zero,52(s0) 6a06: 02042023 sw zero,32(s0) 6a0a: 0141 addi sp,sp,16 6a0c: b25f906f j 530 <__riscv_restore_4> 6a10: 9541c783 lbu a5,-1708(gp) # 20000194 6a14: fef4fbe3 bgeu s1,a5,6a0a 6a18: 03c00713 li a4,60 6a1c: 02e48733 mul a4,s1,a4 6a20: 2000f7b7 lui a5,0x2000f 6a24: 84c78413 addi s0,a5,-1972 # 2000e84c 6a28: 84c78913 addi s2,a5,-1972 6a2c: 943a add s0,s0,a4 6a2e: 4c54 lw a3,28(s0) 6a30: 470d li a4,3 6a32: fce69ce3 bne a3,a4,6a0a 6a36: 0109a783 lw a5,16(s3) 6a3a: 4705 li a4,1 6a3c: 17dd addi a5,a5,-9 6a3e: 0ff7f793 andi a5,a5,255 6a42: 00f76e63 bltu a4,a5,6a5e 6a46: 45c1 li a1,16 6a48: 8522 mv a0,s0 6a4a: f2fff0ef jal ra,6978 6a4e: 03c00793 li a5,60 6a52: 02f484b3 mul s1,s1,a5 6a56: 94ca add s1,s1,s2 6a58: 0204a823 sw zero,48(s1) 6a5c: b76d j 6a06 6a5e: 201c lbu a5,0(s0) 6a60: 0407e793 ori a5,a5,64 6a64: c01c sw a5,0(s0) 6a66: b7e5 j 6a4e 00006a68 : WCHNET_QueryGlobalInt(): 6a68: 2000f737 lui a4,0x2000f 6a6c: 9541c683 lbu a3,-1708(gp) # 20000194 6a70: 84c70713 addi a4,a4,-1972 # 2000e84c 6a74: 4781 li a5,0 6a76: 00f68f63 beq a3,a5,6a94 6a7a: 03c70713 addi a4,a4,60 6a7e: fc472603 lw a2,-60(a4) 6a82: ce11 beqz a2,6a9e 6a84: 2002e7b7 lui a5,0x2002e 6a88: b8c78793 addi a5,a5,-1140 # 2002db8c 6a8c: 57d8 lw a4,44(a5) 6a8e: 01076713 ori a4,a4,16 6a92: d7d8 sw a4,44(a5) 6a94: 2002e7b7 lui a5,0x2002e 6a98: bb87c503 lbu a0,-1096(a5) # 2002dbb8 6a9c: 8082 ret 6a9e: 0785 addi a5,a5,1 6aa0: 0ff7f793 andi a5,a5,255 6aa4: bfc9 j 6a76 00006aa6 : WCHNET_GetGlobalInt(): 6aa6: a71f92ef jal t0,516 <__riscv_save_0> 6aaa: fbfff0ef jal ra,6a68 6aae: 2002e7b7 lui a5,0x2002e 6ab2: ba07ac23 sw zero,-1096(a5) # 2002dbb8 6ab6: a85f906f j 53a <__riscv_restore_0> 00006aba : WCHNET_GetSocketInt(): 6aba: 9541c783 lbu a5,-1708(gp) # 20000194 6abe: 02f57163 bgeu a0,a5,6ae0 6ac2: 03c00793 li a5,60 6ac6: 02f50533 mul a0,a0,a5 6aca: 2000f7b7 lui a5,0x2000f 6ace: 84c78793 addi a5,a5,-1972 # 2000e84c 6ad2: 97aa add a5,a5,a0 6ad4: 4398 lw a4,0(a5) 6ad6: 0ff77513 andi a0,a4,255 6ada: 8b11 andi a4,a4,4 6adc: c398 sw a4,0(a5) 6ade: 8082 ret 6ae0: 4501 li a0,0 6ae2: 8082 ret 00006ae4 : WCHNET_GetPHYStatus(): 6ae4: 2002e7b7 lui a5,0x2002e 6ae8: bac7c503 lbu a0,-1108(a5) # 2002dbac 6aec: 8082 ret 00006aee : WCHNET_SocketConnect(): 6aee: 9541c783 lbu a5,-1708(gp) # 20000194 6af2: 06f57763 bgeu a0,a5,6b60 6af6: a21f92ef jal t0,516 <__riscv_save_0> 6afa: 03c00413 li s0,60 6afe: 02850533 mul a0,a0,s0 6b02: 2000f437 lui s0,0x2000f 6b06: 84c40413 addi s0,s0,-1972 # 2000e84c 6b0a: 1141 addi sp,sp,-16 6b0c: 942a add s0,s0,a0 6b0e: 5804 lw s1,48(s0) 6b10: 455d li a0,23 6b12: cc85 beqz s1,6b4a 6b14: 5018 lw a4,32(s0) 6b16: 4795 li a5,5 6b18: 02f71963 bne a4,a5,6b4a 6b1c: 545c lw a5,44(s0) 6b1e: 02042a23 sw zero,52(s0) 6b22: 000066b7 lui a3,0x6 6b26: c63e sw a5,12(sp) 6b28: 3052 lhu a2,36(s0) 6b2a: 04268693 addi a3,a3,66 # 6042 6b2e: 006c addi a1,sp,12 6b30: 8526 mv a0,s1 6b32: 5c7020ef jal ra,98f8 6b36: 892a mv s2,a0 6b38: cd01 beqz a0,6b50 6b3a: 8526 mv a0,s1 6b3c: 1bf020ef jal ra,94fa 6b40: 854a mv a0,s2 6b42: 02042023 sw zero,32(s0) 6b46: d3eff0ef jal ra,6084 6b4a: 0141 addi sp,sp,16 6b4c: 9eff906f j 53a <__riscv_restore_0> 6b50: 0264c783 lbu a5,38(s1) 6b54: 4501 li a0,0 6b56: fbf7f793 andi a5,a5,-65 6b5a: 02f48323 sb a5,38(s1) 6b5e: b7f5 j 6b4a 6b60: 4569 li a0,26 6b62: 8082 ret 00006b64 : CloseUpdConnect(): 6b64: 9b3f92ef jal t0,516 <__riscv_save_0> 6b68: 03c00413 li s0,60 6b6c: 02850433 mul s0,a0,s0 6b70: 2000f537 lui a0,0x2000f 6b74: 84c50513 addi a0,a0,-1972 # 2000e84c 6b78: 44dd li s1,23 6b7a: 942a add s0,s0,a0 6b7c: 5808 lw a0,48(s0) 6b7e: cd01 beqz a0,6b96 6b80: 5018 lw a4,32(s0) 6b82: 4795 li a5,5 6b84: 4481 li s1,0 6b86: 00f71863 bne a4,a5,6b96 6b8a: 460050ef jal ra,bfea 6b8e: 02042823 sw zero,48(s0) 6b92: 02042023 sw zero,32(s0) 6b96: 8526 mv a0,s1 6b98: 9a3f906f j 53a <__riscv_restore_0> 00006b9c : CloseIPRAWConnect(): 6b9c: 97bf92ef jal t0,516 <__riscv_save_0> 6ba0: 03c00413 li s0,60 6ba4: 02850433 mul s0,a0,s0 6ba8: 2000f537 lui a0,0x2000f 6bac: 84c50513 addi a0,a0,-1972 # 2000e84c 6bb0: 44dd li s1,23 6bb2: 942a add s0,s0,a0 6bb4: 5808 lw a0,48(s0) 6bb6: cd01 beqz a0,6bce 6bb8: 5018 lw a4,32(s0) 6bba: 4795 li a5,5 6bbc: 4481 li s1,0 6bbe: 00f71863 bne a4,a5,6bce 6bc2: 2d8020ef jal ra,8e9a 6bc6: 02042823 sw zero,48(s0) 6bca: 02042023 sw zero,32(s0) 6bce: 8526 mv a0,s1 6bd0: 96bf906f j 53a <__riscv_restore_0> 00006bd4 : CloseTcpPCB(): 6bd4: 929f92ef jal t0,4fc <__riscv_save_4> 6bd8: 03c00793 li a5,60 6bdc: 02f507b3 mul a5,a0,a5 6be0: 2000f437 lui s0,0x2000f 6be4: 84c40993 addi s3,s0,-1972 # 2000e84c 6be8: 892a mv s2,a0 6bea: 1141 addi sp,sp,-16 6bec: 84c40413 addi s0,s0,-1972 6bf0: 4481 li s1,0 6bf2: 99be add s3,s3,a5 6bf4: 0349a503 lw a0,52(s3) 6bf8: c901 beqz a0,6c08 6bfa: c62e sw a1,12(sp) 6bfc: 0ff020ef jal ra,94fa 6c00: 45b2 lw a1,12(sp) 6c02: 84aa mv s1,a0 6c04: 0209a023 sw zero,32(s3) 6c08: 03c00793 li a5,60 6c0c: 02f90933 mul s2,s2,a5 6c10: 944a add s0,s0,s2 6c12: 5808 lw a0,48(s0) 6c14: cd01 beqz a0,6c2c 6c16: ed99 bnez a1,6c34 6c18: 0e3020ef jal ra,94fa 6c1c: 84aa mv s1,a0 6c1e: e519 bnez a0,6c2c 6c20: 5018 lw a4,32(s0) 6c22: 4795 li a5,5 6c24: 00f71463 bne a4,a5,6c2c 6c28: 4799 li a5,6 6c2a: d01c sw a5,32(s0) 6c2c: 8526 mv a0,s1 6c2e: 0141 addi sp,sp,16 6c30: 901f906f j 530 <__riscv_restore_4> 6c34: 4918 lw a4,16(a0) 6c36: 47a9 li a5,10 6c38: 00f70e63 beq a4,a5,6c54 6c3c: 4785 li a5,1 6c3e: 00f59663 bne a1,a5,6c4a 6c42: 4585 li a1,1 6c44: 299020ef jal ra,96dc 6c48: b7d5 j 6c2c 6c4a: 4789 li a5,2 6c4c: 00f59663 bne a1,a5,6c58 6c50: 4581 li a1,0 6c52: bfcd j 6c44 6c54: 54c9 li s1,-14 6c56: bfd9 j 6c2c 6c58: 54d9 li s1,-10 6c5a: bfc9 j 6c2c 00006c5c : WCHNET_SocketClose(): 6c5c: 9541c703 lbu a4,-1708(gp) # 20000194 6c60: 04e57b63 bgeu a0,a4,6cb6 6c64: 03c00713 li a4,60 6c68: 02e507b3 mul a5,a0,a4 6c6c: 2000f737 lui a4,0x2000f 6c70: 84c70713 addi a4,a4,-1972 # 2000e84c 6c74: 4695 li a3,5 6c76: 97ba add a5,a5,a4 6c78: 5390 lw a2,32(a5) 6c7a: 475d li a4,23 6c7c: 02d61e63 bne a2,a3,6cb8 6c80: 897f92ef jal t0,516 <__riscv_save_0> 6c84: 4fdc lw a5,28(a5) 6c86: 4709 li a4,2 6c88: 00e79763 bne a5,a4,6c96 6c8c: ed9ff0ef jal ra,6b64 6c90: 0562 slli a0,a0,0x18 6c92: 8561 srai a0,a0,0x18 6c94: a031 j 6ca0 6c96: 470d li a4,3 6c98: 00e79a63 bne a5,a4,6cac 6c9c: f39ff0ef jal ra,6bd4 6ca0: be4ff0ef jal ra,6084 6ca4: 872a mv a4,a0 6ca6: 853a mv a0,a4 6ca8: 893f906f j 53a <__riscv_restore_0> 6cac: 4765 li a4,25 6cae: ffe5 bnez a5,6ca6 6cb0: eedff0ef jal ra,6b9c 6cb4: bff1 j 6c90 6cb6: 4769 li a4,26 6cb8: 853a mv a0,a4 6cba: 8082 ret 00006cbc : QueryPingEnable(): 6cbc: 2002e7b7 lui a5,0x2002e 6cc0: be47a503 lw a0,-1052(a5) # 2002dbe4 6cc4: 8135 srli a0,a0,0xd 6cc6: 8905 andi a0,a0,1 6cc8: 8082 ret 00006cca : LwipUnreachPort(): 6cca: 2002e7b7 lui a5,0x2002e 6cce: b8c78793 addi a5,a5,-1140 # 2002db8c 6cd2: 4705 li a4,1 6cd4: 1141 addi sp,sp,-16 6cd6: cbc8 sw a0,20(a5) 6cd8: db94 sw a3,48(a5) 6cda: dbd0 sw a2,52(a5) 6cdc: df8c sw a1,56(a5) 6cde: d7d8 sw a4,44(a5) 6ce0: 0141 addi sp,sp,16 6ce2: 8082 ret 00006ce4 : LwipArpCheck(): 6ce4: 2002e7b7 lui a5,0x2002e 6ce8: 4705 li a4,1 6cea: bce7a423 sw a4,-1080(a5) # 2002dbc8 6cee: 8082 ret 00006cf0 : find_entry(): 6cf0: 827f92ef jal t0,516 <__riscv_save_0> 6cf4: 2002e7b7 lui a5,0x2002e 6cf8: bdc7a603 lw a2,-1060(a5) # 2002dbdc 6cfc: 8241a683 lw a3,-2012(gp) # 20000064 6d00: 01861713 slli a4,a2,0x18 6d04: 8761 srai a4,a4,0x18 6d06: 14050c63 beqz a0,6e5e 6d0a: 9641c783 lbu a5,-1692(gp) # 200001a4 6d0e: 4861 li a6,24 6d10: 4889 li a7,2 6d12: 03078833 mul a6,a5,a6 6d16: 9836 add a6,a6,a3 6d18: 00c82303 lw t1,12(a6) 6d1c: 15131163 bne t1,a7,6e5e 6d20: 00154303 lbu t1,1(a0) 6d24: 00054883 lbu a7,0(a0) 6d28: 00082803 lw a6,0(a6) 6d2c: 0322 slli t1,t1,0x8 6d2e: 01136333 or t1,t1,a7 6d32: 00254883 lbu a7,2(a0) 6d36: 08c2 slli a7,a7,0x10 6d38: 0068e333 or t1,a7,t1 6d3c: 00354883 lbu a7,3(a0) 6d40: 08e2 slli a7,a7,0x18 6d42: 0068e8b3 or a7,a7,t1 6d46: 11089c63 bne a7,a6,6e5e 6d4a: 07e2 slli a5,a5,0x18 6d4c: 87e1 srai a5,a5,0x18 6d4e: 853e mv a0,a5 6d50: feaf906f j 53a <__riscv_restore_0> 6d54: 025788b3 mul a7,a5,t0 6d58: 98b6 add a7,a7,a3 6d5a: 00c8ae03 lw t3,12(a7) # 800c 6d5e: 07061a63 bne a2,a6,6dd2 6d62: 060e1863 bnez t3,6dd2 6d66: 01879813 slli a6,a5,0x18 6d6a: 41885813 srai a6,a6,0x18 6d6e: 0785 addi a5,a5,1 6d70: 07c2 slli a5,a5,0x10 6d72: 83c1 srli a5,a5,0x10 6d74: fec7e0e3 bltu a5,a2,6d54 6d78: 01061763 bne a2,a6,6d86 6d7c: 0015f893 andi a7,a1,1 6d80: 57fd li a5,-1 6d82: fc0886e3 beqz a7,6d4e 6d86: 8989 andi a1,a1,2 6d88: 57fd li a5,-1 6d8a: f1f1 bnez a1,6d4e 6d8c: 01081793 slli a5,a6,0x10 6d90: 00c86b63 bltu a6,a2,6da6 6d94: 01031793 slli a5,t1,0x10 6d98: 00c36763 bltu t1,a2,6da6 6d9c: 57fd li a5,-1 6d9e: fac778e3 bgeu a4,a2,6d4e 6da2: 01071793 slli a5,a4,0x10 6da6: 83c1 srli a5,a5,0x10 6da8: 4761 li a4,24 6daa: 02e78733 mul a4,a5,a4 6dae: 96ba add a3,a3,a4 6db0: 0006a623 sw zero,12(a3) 6db4: cd01 beqz a0,6dcc 6db6: 3110 lbu a2,1(a0) 6db8: 2118 lbu a4,0(a0) 6dba: 0622 slli a2,a2,0x8 6dbc: 8e59 or a2,a2,a4 6dbe: 2138 lbu a4,2(a0) 6dc0: 0742 slli a4,a4,0x10 6dc2: 8e59 or a2,a2,a4 6dc4: 3138 lbu a4,3(a0) 6dc6: 0762 slli a4,a4,0x18 6dc8: 8f51 or a4,a4,a2 6dca: c298 sw a4,0(a3) 6dcc: 00069823 sh zero,16(a3) 6dd0: a80d j 6e02 6dd2: 047e1463 bne t3,t2,6e1a 6dd6: c90d beqz a0,6e08 6dd8: 00154e83 lbu t4,1(a0) 6ddc: 00054e03 lbu t3,0(a0) 6de0: 0ea2 slli t4,t4,0x8 6de2: 01ceeeb3 or t4,t4,t3 6de6: 00254e03 lbu t3,2(a0) 6dea: 0e42 slli t3,t3,0x10 6dec: 01de6eb3 or t4,t3,t4 6df0: 00354e03 lbu t3,3(a0) 6df4: 0e62 slli t3,t3,0x18 6df6: 01de6e33 or t3,t3,t4 6dfa: 0008ae83 lw t4,0(a7) 6dfe: 01de1563 bne t3,t4,6e08 6e02: 96f18223 sb a5,-1692(gp) # 200001a4 6e06: b791 j 6d4a 6e08: 0108d883 lhu a7,16(a7) 6e0c: f7e8e1e3 bltu a7,t5,6d6e 6e10: 01879713 slli a4,a5,0x18 6e14: 8761 srai a4,a4,0x18 6e16: 8f46 mv t5,a7 6e18: bf99 j 6d6e 6e1a: f48e1ae3 bne t3,s0,6d6e 6e1e: c515 beqz a0,6e4a 6e20: 00154e83 lbu t4,1(a0) 6e24: 00054e03 lbu t3,0(a0) 6e28: 0ea2 slli t4,t4,0x8 6e2a: 01ceeeb3 or t4,t4,t3 6e2e: 00254e03 lbu t3,2(a0) 6e32: 0e42 slli t3,t3,0x10 6e34: 01de6eb3 or t4,t3,t4 6e38: 00354e03 lbu t3,3(a0) 6e3c: 0e62 slli t3,t3,0x18 6e3e: 01de6e33 or t3,t3,t4 6e42: 0008ae83 lw t4,0(a7) 6e46: fbde0ee3 beq t3,t4,6e02 6e4a: 0108d883 lhu a7,16(a7) 6e4e: f3f8e0e3 bltu a7,t6,6d6e 6e52: 01879313 slli t1,a5,0x18 6e56: 41835313 srai t1,t1,0x18 6e5a: 8fc6 mv t6,a7 6e5c: bf09 j 6d6e 6e5e: 883a mv a6,a4 6e60: 833a mv t1,a4 6e62: 4f81 li t6,0 6e64: 4f01 li t5,0 6e66: 4781 li a5,0 6e68: 42e1 li t0,24 6e6a: 4385 li t2,1 6e6c: 4409 li s0,2 6e6e: b719 j 6d74 00006e70 : update_arp_entry(): 6e70: e8cf92ef jal t0,4fc <__riscv_save_4> 6e74: 3198 lbu a4,1(a1) 6e76: 219c lbu a5,0(a1) 6e78: 8a36 mv s4,a3 6e7a: 0722 slli a4,a4,0x8 6e7c: 8f5d or a4,a4,a5 6e7e: 21bc lbu a5,2(a1) 6e80: 4154 lw a3,4(a0) 6e82: 07c2 slli a5,a5,0x10 6e84: 8f5d or a4,a4,a5 6e86: 31bc lbu a5,3(a1) 6e88: 07e2 slli a5,a5,0x18 6e8a: 8fd9 or a5,a5,a4 6e8c: 00f69b63 bne a3,a5,6ea2 6e90: e689 bnez a3,6e9a 6e92: 57d9 li a5,-10 6e94: 853e mv a0,a5 6e96: e9af906f j 530 <__riscv_restore_4> 6e9a: 4505 li a0,1 6e9c: ec5fe0ef jal ra,5d60 6ea0: bfcd j 6e92 6ea2: dbe5 beqz a5,6e92 6ea4: 842e mv s0,a1 6ea6: 892a mv s2,a0 6ea8: 85aa mv a1,a0 6eaa: 8522 mv a0,s0 6eac: 89b2 mv s3,a2 6eae: 4b9000ef jal ra,7b66 6eb2: f165 bnez a0,6e92 6eb4: 301c lbu a5,1(s0) 6eb6: 2004 lbu s1,0(s0) 6eb8: f0000537 lui a0,0xf0000 6ebc: 07a2 slli a5,a5,0x8 6ebe: 8fc5 or a5,a5,s1 6ec0: 2024 lbu s1,2(s0) 6ec2: 04c2 slli s1,s1,0x10 6ec4: 8fc5 or a5,a5,s1 6ec6: 3024 lbu s1,3(s0) 6ec8: 04e2 slli s1,s1,0x18 6eca: 8cdd or s1,s1,a5 6ecc: 019000ef jal ra,76e4 6ed0: 8ce9 and s1,s1,a0 6ed2: e0000537 lui a0,0xe0000 6ed6: 00f000ef jal ra,76e4 6eda: faa48ce3 beq s1,a0,6e92 6ede: 85d2 mv a1,s4 6ee0: 8522 mv a0,s0 6ee2: e0fff0ef jal ra,6cf0 6ee6: 87aa mv a5,a0 6ee8: fa0546e3 bltz a0,6e94 6eec: 47e1 li a5,24 6eee: 02f507b3 mul a5,a0,a5 6ef2: 8241a503 lw a0,-2012(gp) # 20000064 6ef6: 953e add a0,a0,a5 6ef8: 4789 li a5,2 6efa: c55c sw a5,12(a0) 6efc: 01252a23 sw s2,20(a0) # e0000014 <__freertos_irq_stack_top+0xbffd0014> 6f00: 00598793 addi a5,s3,5 6f04: 00950713 addi a4,a0,9 6f08: 2394 lbu a3,0(a5) 6f0a: 177d addi a4,a4,-1 6f0c: b314 sb a3,1(a4) 6f0e: fff78693 addi a3,a5,-1 6f12: 00f99663 bne s3,a5,6f1e 6f16: 00051823 sh zero,16(a0) 6f1a: 4781 li a5,0 6f1c: bfa5 j 6e94 6f1e: 87b6 mv a5,a3 6f20: b7e5 j 6f08 00006f22 : etharp_ip_input(): 6f22: cd21 beqz a0,6f7a 6f24: df2f92ef jal t0,516 <__riscv_save_0> 6f28: 41c4 lw s1,4(a1) 6f2a: 842a mv s0,a0 6f2c: 34dc lbu a5,13(s1) 6f2e: 24c8 lbu a0,12(s1) 6f30: 07a2 slli a5,a5,0x8 6f32: 8d5d or a0,a0,a5 6f34: 770000ef jal ra,76a4 6f38: 67a1 lui a5,0x8 6f3a: 10078793 addi a5,a5,256 # 8100 6f3e: 01248593 addi a1,s1,18 6f42: 00f50463 beq a0,a5,6f4a 6f46: 00e48593 addi a1,s1,14 6f4a: 35d8 lbu a4,13(a1) 6f4c: 25dc lbu a5,12(a1) 6f4e: 0722 slli a4,a4,0x8 6f50: 8f5d or a4,a4,a5 6f52: 25fc lbu a5,14(a1) 6f54: 07c2 slli a5,a5,0x10 6f56: 8f5d or a4,a4,a5 6f58: 35fc lbu a5,15(a1) 6f5a: 07e2 slli a5,a5,0x18 6f5c: 8fd9 or a5,a5,a4 6f5e: 4058 lw a4,4(s0) 6f60: 8fb9 xor a5,a5,a4 6f62: 4418 lw a4,8(s0) 6f64: 8ff9 and a5,a5,a4 6f66: eb81 bnez a5,6f76 6f68: 4681 li a3,0 6f6a: 00648613 addi a2,s1,6 6f6e: 05b1 addi a1,a1,12 6f70: 8522 mv a0,s0 6f72: effff0ef jal ra,6e70 6f76: dc4f906f j 53a <__riscv_restore_0> 6f7a: 8082 ret 00006f7c : etharp_arp_input(): 6f7c: 16050763 beqz a0,70ea 6f80: d7cf92ef jal t0,4fc <__riscv_save_4> 6f84: 263a lhu a4,10(a2) 6f86: 02900793 li a5,41 6f8a: 1141 addi sp,sp,-16 6f8c: 89b2 mv s3,a2 6f8e: 8a2e mv s4,a1 6f90: 84aa mv s1,a0 6f92: 00e7e863 bltu a5,a4,6fa2 6f96: 854e mv a0,s3 6f98: 2fd010ef jal ra,8a94 6f9c: 0141 addi sp,sp,16 6f9e: d92f906f j 530 <__riscv_restore_4> 6fa2: 00462903 lw s2,4(a2) 6fa6: 00d94783 lbu a5,13(s2) 6faa: 00c94503 lbu a0,12(s2) 6fae: 01290413 addi s0,s2,18 6fb2: 07a2 slli a5,a5,0x8 6fb4: 8d5d or a0,a0,a5 6fb6: 6ee000ef jal ra,76a4 6fba: 67a1 lui a5,0x8 6fbc: 10078793 addi a5,a5,256 # 8100 6fc0: 00f50463 beq a0,a5,6fc8 6fc4: 00e90413 addi s0,s2,14 6fc8: 00144a83 lbu s5,1(s0) 6fcc: 201c lbu a5,0(s0) 6fce: 4505 li a0,1 6fd0: 0aa2 slli s5,s5,0x8 6fd2: 00faeab3 or s5,s5,a5 6fd6: 6ce000ef jal ra,76a4 6fda: faaa9ee3 bne s5,a0,6f96 6fde: 00544a83 lbu s5,5(s0) 6fe2: 205c lbu a5,4(s0) 6fe4: 60400513 li a0,1540 6fe8: 0aa2 slli s5,s5,0x8 6fea: 00faeab3 or s5,s5,a5 6fee: 6b6000ef jal ra,76a4 6ff2: faaa92e3 bne s5,a0,6f96 6ff6: 00344a83 lbu s5,3(s0) 6ffa: 203c lbu a5,2(s0) 6ffc: 6505 lui a0,0x1 6ffe: 0aa2 slli s5,s5,0x8 7000: 80050513 addi a0,a0,-2048 # 800 <__stack_size> 7004: 00faeab3 or s5,s5,a5 7008: 69c000ef jal ra,76a4 700c: f8aa95e3 bne s5,a0,6f96 7010: 00e40a93 addi s5,s0,14 7014: 4611 li a2,4 7016: 85d6 mv a1,s5 7018: 0068 addi a0,sp,12 701a: 6b7050ef jal ra,ced0 701e: 40d4 lw a3,4(s1) 7020: 00840613 addi a2,s0,8 7024: c2ad beqz a3,7086 7026: 3c18 lbu a4,25(s0) 7028: 2c1c lbu a5,24(s0) 702a: 0722 slli a4,a4,0x8 702c: 8f5d or a4,a4,a5 702e: 2c3c lbu a5,26(s0) 7030: 07c2 slli a5,a5,0x10 7032: 8f5d or a4,a4,a5 7034: 3c3c lbu a5,27(s0) 7036: 07e2 slli a5,a5,0x18 7038: 8fd9 or a5,a5,a4 703a: 04f69663 bne a3,a5,7086 703e: 4685 li a3,1 7040: 006c addi a1,sp,12 7042: 8526 mv a0,s1 7044: e2dff0ef jal ra,6e70 7048: 4b05 li s6,1 704a: 307c lbu a5,7(s0) 704c: 2068 lbu a0,6(s0) 704e: 07a2 slli a5,a5,0x8 7050: 8d5d or a0,a0,a5 7052: 2d89 jal 76a4 7054: 4785 li a5,1 7056: 02f50f63 beq a0,a5,7094 705a: 4789 li a5,2 705c: f2f51de3 bne a0,a5,6f96 7060: 006c addi a1,sp,12 7062: 8526 mv a0,s1 7064: 3f8010ef jal ra,845c 7068: 2002e7b7 lui a5,0x2002e 706c: b147a703 lw a4,-1260(a5) # 2002db14 7070: f20703e3 beqz a4,6f96 7074: b1478793 addi a5,a5,-1260 7078: 47dc lw a5,12(a5) 707a: f0078ee3 beqz a5,6f96 707e: 006c addi a1,sp,12 7080: 8526 mv a0,s1 7082: 9782 jalr a5 7084: bf09 j 6f96 7086: 4681 li a3,0 7088: 006c addi a1,sp,12 708a: 8526 mv a0,s1 708c: de5ff0ef jal ra,6e70 7090: 4b01 li s6,0 7092: bf65 j 704a 7094: f00b01e3 beqz s6,6f96 7098: 4509 li a0,2 709a: 2529 jal 76a4 709c: a068 sb a0,6(s0) 709e: 8121 srli a0,a0,0x8 70a0: b068 sb a0,7(s0) 70a2: 4611 li a2,4 70a4: 85d6 mv a1,s5 70a6: 01840513 addi a0,s0,24 70aa: 627050ef jal ra,ced0 70ae: 4611 li a2,4 70b0: 00448593 addi a1,s1,4 70b4: 8556 mv a0,s5 70b6: 61b050ef jal ra,ced0 70ba: 0435 addi s0,s0,13 70bc: 0915 addi s2,s2,5 70be: 4795 li a5,5 70c0: 56fd li a3,-1 70c2: 2018 lbu a4,0(s0) 70c4: 197d addi s2,s2,-1 70c6: 147d addi s0,s0,-1 70c8: b438 sb a4,11(s0) 70ca: 00e900a3 sb a4,1(s2) 70ce: 00fa0733 add a4,s4,a5 70d2: 2318 lbu a4,0(a4) 70d4: 17fd addi a5,a5,-1 70d6: b018 sb a4,1(s0) 70d8: 00e903a3 sb a4,7(s2) 70dc: fed793e3 bne a5,a3,70c2 70e0: 4c9c lw a5,24(s1) 70e2: 85ce mv a1,s3 70e4: 8526 mv a0,s1 70e6: 9782 jalr a5 70e8: b57d j 6f96 70ea: 8082 ret 000070ec : etharp_request(): 70ec: c10f92ef jal t0,4fc <__riscv_save_4> 70f0: 892a mv s2,a0 70f2: 89ae mv s3,a1 70f4: 4601 li a2,0 70f6: 02a00593 li a1,42 70fa: 450d li a0,3 70fc: 1e7010ef jal ra,8ae2 7100: 547d li s0,-1 7102: c94d beqz a0,71b4 7104: 4140 lw s0,4(a0) 7106: 84aa mv s1,a0 7108: 4505 li a0,1 710a: 2b69 jal 76a4 710c: a848 sb a0,20(s0) 710e: 8121 srli a0,a0,0x8 7110: b848 sb a0,21(s0) 7112: 02e90693 addi a3,s2,46 7116: 00540793 addi a5,s0,5 711a: 4715 li a4,5 711c: 84418593 addi a1,gp,-1980 # 20000084 7120: 83c18613 addi a2,gp,-1988 # 2000007c 7124: 557d li a0,-1 7126: 0006c803 lbu a6,0(a3) 712a: 17fd addi a5,a5,-1 712c: 16fd addi a3,a3,-1 712e: 01078ba3 sb a6,23(a5) 7132: 00e58833 add a6,a1,a4 7136: 00084803 lbu a6,0(a6) 713a: 030780a3 sb a6,33(a5) 713e: 00e60833 add a6,a2,a4 7142: 00084803 lbu a6,0(a6) 7146: 177d addi a4,a4,-1 7148: 010780a3 sb a6,1(a5) 714c: 0016c803 lbu a6,1(a3) 7150: 010783a3 sb a6,7(a5) 7154: fca719e3 bne a4,a0,7126 7158: 4611 li a2,4 715a: 00490593 addi a1,s2,4 715e: 01c40513 addi a0,s0,28 7162: 56f050ef jal ra,ced0 7166: 85ce mv a1,s3 7168: 4611 li a2,4 716a: 02640513 addi a0,s0,38 716e: 563050ef jal ra,ced0 7172: 4505 li a0,1 7174: 2b05 jal 76a4 7176: a468 sb a0,14(s0) 7178: 6985 lui s3,0x1 717a: 8121 srli a0,a0,0x8 717c: b468 sb a0,15(s0) 717e: 80098513 addi a0,s3,-2048 # 800 <__stack_size> 7182: 230d jal 76a4 7184: a808 sb a0,16(s0) 7186: 8121 srli a0,a0,0x8 7188: b808 sb a0,17(s0) 718a: 60400513 li a0,1540 718e: 2b19 jal 76a4 7190: a828 sb a0,18(s0) 7192: 8121 srli a0,a0,0x8 7194: b828 sb a0,19(s0) 7196: 80698513 addi a0,s3,-2042 719a: 2329 jal 76a4 719c: 01892783 lw a5,24(s2) 71a0: a448 sb a0,12(s0) 71a2: 8121 srli a0,a0,0x8 71a4: b448 sb a0,13(s0) 71a6: 85a6 mv a1,s1 71a8: 854a mv a0,s2 71aa: 9782 jalr a5 71ac: 842a mv s0,a0 71ae: 8526 mv a0,s1 71b0: 0e5010ef jal ra,8a94 71b4: 8522 mv a0,s0 71b6: b7af906f j 530 <__riscv_restore_4> 000071ba : etharp_tmr(): 71ba: b34f92ef jal t0,4ee <__riscv_save_10> 71be: 2002e4b7 lui s1,0x2002e 71c2: 4401 li s0,0 71c4: bd048493 addi s1,s1,-1072 # 2002dbd0 71c8: 4ae1 li s5,24 71ca: 4b89 li s7,2 71cc: 4c05 li s8,1 71ce: 0ff00c93 li s9,255 71d2: 44dc lw a5,12(s1) 71d4: 00f46463 bltu s0,a5,71dc 71d8: b4ef906f j 526 <__riscv_restore_10> 71dc: 03540933 mul s2,s0,s5 71e0: 82418993 addi s3,gp,-2012 # 20000064 71e4: 0009a583 lw a1,0(s3) 71e8: 95ca add a1,a1,s2 71ea: 299e lhu a5,16(a1) 71ec: 45d8 lw a4,12(a1) 71ee: 0785 addi a5,a5,1 71f0: 07c2 slli a5,a5,0x10 71f2: 83c1 srli a5,a5,0x10 71f4: a99e sh a5,16(a1) 71f6: 01771a63 bne a4,s7,720a 71fa: 9521d703 lhu a4,-1710(gp) # 20000192 71fe: 00e7fc63 bgeu a5,a4,7216 7202: 0405 addi s0,s0,1 7204: 0ff47413 andi s0,s0,255 7208: b7e9 j 71d2 720a: ff871ce3 bne a4,s8,7202 720e: 9501c703 lbu a4,-1712(gp) # 20000190 7212: 00f77563 bgeu a4,a5,721c 7216: 0005a623 sw zero,12(a1) 721a: b7e5 j 7202 721c: 49c8 lw a0,20(a1) 721e: ecfff0ef jal ra,70ec 7222: 9501c783 lbu a5,-1712(gp) # 20000190 7226: fd979ee3 bne a5,s9,7202 722a: 0009a783 lw a5,0(s3) 722e: 97ca add a5,a5,s2 7230: 00079823 sh zero,16(a5) 7234: b7f9 j 7202 00007236 : etharp_query(): 7236: ac6f92ef jal t0,4fc <__riscv_save_4> 723a: 842e mv s0,a1 723c: 1141 addi sp,sp,-16 723e: 892a mv s2,a0 7240: 85aa mv a1,a0 7242: 8522 mv a0,s0 7244: 89b2 mv s3,a2 7246: 121000ef jal ra,7b66 724a: c509 beqz a0,7254 724c: 5559 li a0,-10 724e: 0141 addi sp,sp,16 7250: ae0f906f j 530 <__riscv_restore_4> 7254: 301c lbu a5,1(s0) 7256: 2004 lbu s1,0(s0) 7258: f0000537 lui a0,0xf0000 725c: 07a2 slli a5,a5,0x8 725e: 8fc5 or a5,a5,s1 7260: 2024 lbu s1,2(s0) 7262: 04c2 slli s1,s1,0x10 7264: 8fc5 or a5,a5,s1 7266: 3024 lbu s1,3(s0) 7268: 04e2 slli s1,s1,0x18 726a: 8cdd or s1,s1,a5 726c: 29a5 jal 76e4 726e: 8ce9 and s1,s1,a0 7270: e0000537 lui a0,0xe0000 7274: 2985 jal 76e4 7276: fca48be3 beq s1,a0,724c 727a: 3018 lbu a4,1(s0) 727c: 201c lbu a5,0(s0) 727e: 0722 slli a4,a4,0x8 7280: 8f5d or a4,a4,a5 7282: 203c lbu a5,2(s0) 7284: 07c2 slli a5,a5,0x10 7286: 8f5d or a4,a4,a5 7288: 303c lbu a5,3(s0) 728a: 07e2 slli a5,a5,0x18 728c: 8fd9 or a5,a5,a4 728e: dfdd beqz a5,724c 7290: 4585 li a1,1 7292: 8522 mv a0,s0 7294: a5dff0ef jal ra,6cf0 7298: fa054be3 bltz a0,724e 729c: 47e1 li a5,24 729e: 02f504b3 mul s1,a0,a5 72a2: 8241a783 lw a5,-2012(gp) # 20000064 72a6: 82418a13 addi s4,gp,-2012 # 20000064 72aa: 97a6 add a5,a5,s1 72ac: 47d8 lw a4,12(a5) 72ae: c711 beqz a4,72ba 72b0: 557d li a0,-1 72b2: 02099b63 bnez s3,72e8 72b6: 4a81 li s5,0 72b8: a031 j 72c4 72ba: 4705 li a4,1 72bc: c7d8 sw a4,12(a5) 72be: 0127aa23 sw s2,20(a5) 72c2: 4a85 li s5,1 72c4: a21ff0ef jal ra,6ce4 72c8: 85a2 mv a1,s0 72ca: 854a mv a0,s2 72cc: e21ff0ef jal ra,70ec 72d0: ed01 bnez a0,72e8 72d2: 000a2783 lw a5,0(s4) 72d6: 4705 li a4,1 72d8: 97a6 add a5,a5,s1 72da: 47d4 lw a3,12(a5) 72dc: 00e69663 bne a3,a4,72e8 72e0: 000a9463 bnez s5,72e8 72e4: 00079823 sh zero,16(a5) 72e8: 000a2783 lw a5,0(s4) 72ec: 97a6 add a5,a5,s1 72ee: 47d8 lw a4,12(a5) 72f0: 4785 li a5,1 72f2: 00f71663 bne a4,a5,72fe 72f6: c62a sw a0,12(sp) 72f8: 9edff0ef jal ra,6ce4 72fc: 4532 lw a0,12(sp) 72fe: f40988e3 beqz s3,724e 7302: 000a2783 lw a5,0(s4) 7306: 4709 li a4,2 7308: 97a6 add a5,a5,s1 730a: 47d4 lw a3,12(a5) 730c: f4e691e3 bne a3,a4,724e 7310: 0049a403 lw s0,4(s3) 7314: 00978713 addi a4,a5,9 7318: 02e90613 addi a2,s2,46 731c: 00540693 addi a3,s0,5 7320: 078d addi a5,a5,3 7322: 230c lbu a1,0(a4) 7324: 177d addi a4,a4,-1 7326: 16fd addi a3,a3,-1 7328: b28c sb a1,1(a3) 732a: 220c lbu a1,0(a2) 732c: 167d addi a2,a2,-1 732e: b2ec sb a1,7(a3) 7330: fef719e3 bne a4,a5,7322 7334: 6505 lui a0,0x1 7336: 80050513 addi a0,a0,-2048 # 800 <__stack_size> 733a: 26ad jal 76a4 733c: 01892783 lw a5,24(s2) 7340: a448 sb a0,12(s0) 7342: 8121 srli a0,a0,0x8 7344: b448 sb a0,13(s0) 7346: 85ce mv a1,s3 7348: 854a mv a0,s2 734a: 9782 jalr a5 734c: b709 j 724e 0000734e : etharp_output(): 734e: 9aef92ef jal t0,4fc <__riscv_save_4> 7352: 84ae mv s1,a1 7354: 1141 addi sp,sp,-16 7356: 892a mv s2,a0 7358: 45b9 li a1,14 735a: 8526 mv a0,s1 735c: 8432 mv s0,a2 735e: 6c8010ef jal ra,8a26 7362: 10051e63 bnez a0,747e 7366: 85ca mv a1,s2 7368: 8522 mv a0,s0 736a: 7fc000ef jal ra,7b66 736e: 10051563 bnez a0,7478 7372: 301c lbu a5,1(s0) 7374: 00044983 lbu s3,0(s0) 7378: f0000537 lui a0,0xf0000 737c: 07a2 slli a5,a5,0x8 737e: 0137e7b3 or a5,a5,s3 7382: 00244983 lbu s3,2(s0) 7386: 09c2 slli s3,s3,0x10 7388: 00f9e7b3 or a5,s3,a5 738c: 00344983 lbu s3,3(s0) 7390: 09e2 slli s3,s3,0x18 7392: 00f9e9b3 or s3,s3,a5 7396: 26b9 jal 76e4 7398: 00a9f9b3 and s3,s3,a0 739c: e0000537 lui a0,0xe0000 73a0: 2691 jal 76e4 73a2: 2010 lbu a2,0(s0) 73a4: 3014 lbu a3,1(s0) 73a6: 2038 lbu a4,2(s0) 73a8: 303c lbu a5,3(s0) 73aa: 08a99c63 bne s3,a0,7442 73ae: 00869513 slli a0,a3,0x8 73b2: 8d51 or a0,a0,a2 73b4: 0742 slli a4,a4,0x10 73b6: 8d59 or a0,a0,a4 73b8: 07e2 slli a5,a5,0x18 73ba: 4585 li a1,1 73bc: 846c sh a1,8(sp) 73be: 8d5d or a0,a0,a5 73c0: 05e00593 li a1,94 73c4: 854c sb a1,10(sp) 73c6: 2e39 jal 76e4 73c8: 8141 srli a0,a0,0x10 73ca: 07f57513 andi a0,a0,127 73ce: 85c8 sb a0,11(sp) 73d0: 3008 lbu a0,1(s0) 73d2: 201c lbu a5,0(s0) 73d4: 0522 slli a0,a0,0x8 73d6: 8d5d or a0,a0,a5 73d8: 203c lbu a5,2(s0) 73da: 07c2 slli a5,a5,0x10 73dc: 8fc9 or a5,a5,a0 73de: 3028 lbu a0,3(s0) 73e0: 0562 slli a0,a0,0x18 73e2: 8d5d or a0,a0,a5 73e4: 2601 jal 76e4 73e6: 8121 srli a0,a0,0x8 73e8: 8648 sb a0,12(sp) 73ea: 3008 lbu a0,1(s0) 73ec: 201c lbu a5,0(s0) 73ee: 0522 slli a0,a0,0x8 73f0: 8d5d or a0,a0,a5 73f2: 203c lbu a5,2(s0) 73f4: 07c2 slli a5,a5,0x10 73f6: 8fc9 or a5,a5,a0 73f8: 3028 lbu a0,3(s0) 73fa: 0562 slli a0,a0,0x18 73fc: 8d5d or a0,a0,a5 73fe: 24dd jal 76e4 7400: 86c8 sb a0,13(sp) 7402: 0034 addi a3,sp,8 7404: 40c0 lw s0,4(s1) 7406: 4795 li a5,5 7408: 567d li a2,-1 740a: 00540713 addi a4,s0,5 740e: 00f685b3 add a1,a3,a5 7412: 218c lbu a1,0(a1) 7414: 177d addi a4,a4,-1 7416: b30c sb a1,1(a4) 7418: 00f905b3 add a1,s2,a5 741c: 0295c583 lbu a1,41(a1) 7420: 17fd addi a5,a5,-1 7422: b36c sb a1,7(a4) 7424: fec795e3 bne a5,a2,740e 7428: 6505 lui a0,0x1 742a: 80050513 addi a0,a0,-2048 # 800 <__stack_size> 742e: 2c9d jal 76a4 7430: 01892783 lw a5,24(s2) 7434: a448 sb a0,12(s0) 7436: 8121 srli a0,a0,0x8 7438: b448 sb a0,13(s0) 743a: 85a6 mv a1,s1 743c: 854a mv a0,s2 743e: 9782 jalr a5 7440: a80d j 7472 7442: 06a2 slli a3,a3,0x8 7444: 8ed1 or a3,a3,a2 7446: 0742 slli a4,a4,0x10 7448: 8f55 or a4,a4,a3 744a: 07e2 slli a5,a5,0x18 744c: 8fd9 or a5,a5,a4 744e: 00492703 lw a4,4(s2) 7452: 8fb9 xor a5,a5,a4 7454: 00892703 lw a4,8(s2) 7458: 8ff9 and a5,a5,a4 745a: c799 beqz a5,7468 745c: 00c92783 lw a5,12(s2) 7460: 5571 li a0,-4 7462: cb81 beqz a5,7472 7464: 00c90413 addi s0,s2,12 7468: 8626 mv a2,s1 746a: 85a2 mv a1,s0 746c: 854a mv a0,s2 746e: dc9ff0ef jal ra,7236 7472: 0141 addi sp,sp,16 7474: 8bcf906f j 530 <__riscv_restore_4> 7478: 83c18693 addi a3,gp,-1988 # 2000007c 747c: b761 j 7404 747e: 5579 li a0,-2 7480: bfcd j 7472 00007482 : ethernet_input(): 7482: 894f92ef jal t0,516 <__riscv_save_0> 7486: 4144 lw s1,4(a0) 7488: 842a mv s0,a0 748a: 892e mv s2,a1 748c: 34dc lbu a5,13(s1) 748e: 24c8 lbu a0,12(s1) 7490: 07a2 slli a5,a5,0x8 7492: 8d5d or a0,a0,a5 7494: 2c01 jal 76a4 7496: 67a1 lui a5,0x8 7498: 10078793 addi a5,a5,256 # 8100 749c: 00f51763 bne a0,a5,74aa 74a0: 389c lbu a5,17(s1) 74a2: 2888 lbu a0,16(s1) 74a4: 07a2 slli a5,a5,0x8 74a6: 8d5d or a0,a0,a5 74a8: 2af5 jal 76a4 74aa: 80050793 addi a5,a0,-2048 74ae: cb91 beqz a5,74c2 74b0: 6785 lui a5,0x1 74b2: 80678793 addi a5,a5,-2042 # 806 <__stack_size+0x6> 74b6: 04f50263 beq a0,a5,74fa 74ba: 8522 mv a0,s0 74bc: 5d8010ef jal ra,8a94 74c0: a815 j 74f4 74c2: 85a2 mv a1,s0 74c4: 854a mv a0,s2 74c6: a5dff0ef jal ra,6f22 74ca: 34dc lbu a5,13(s1) 74cc: 24c8 lbu a0,12(s1) 74ce: 07a2 slli a5,a5,0x8 74d0: 8d5d or a0,a0,a5 74d2: 2ac9 jal 76a4 74d4: 67a1 lui a5,0x8 74d6: 10078793 addi a5,a5,256 # 8100 74da: 45b9 li a1,14 74dc: 00f51363 bne a0,a5,74e2 74e0: 45c9 li a1,18 74e2: 40b005b3 neg a1,a1 74e6: 8522 mv a0,s0 74e8: 53e010ef jal ra,8a26 74ec: f579 bnez a0,74ba 74ee: 85ca mv a1,s2 74f0: 8522 mv a0,s0 74f2: 24a9 jal 773c 74f4: 4501 li a0,0 74f6: 844f906f j 53a <__riscv_restore_0> 74fa: 8622 mv a2,s0 74fc: 02990593 addi a1,s2,41 7500: 854a mv a0,s2 7502: a7bff0ef jal ra,6f7c 7506: b7fd j 74f4 00007508 : ethernetif_init(): 7508: 80ef92ef jal t0,516 <__riscv_save_0> 750c: 2002e7b7 lui a5,0x2002e 7510: b2c78793 addi a5,a5,-1236 # 2002db2c 7514: d15c sw a5,36(a0) 7516: 06500793 li a5,101 751a: 02f509a3 sb a5,51(a0) 751e: 06e00793 li a5,110 7522: 02f50a23 sb a5,52(a0) 7526: 000077b7 lui a5,0x7 752a: 34e78793 addi a5,a5,846 # 734e 752e: c95c sw a5,20(a0) 7530: 000077b7 lui a5,0x7 7534: 56c78793 addi a5,a5,1388 # 756c 7538: cd1c sw a5,24(a0) 753a: 2002e5b7 lui a1,0x2002e 753e: 4799 li a5,6 7540: 842a mv s0,a0 7542: 02f50423 sb a5,40(a0) 7546: 00052e23 sw zero,28(a0) 754a: 4619 li a2,6 754c: c2558593 addi a1,a1,-987 # 2002dc25 7550: 02950513 addi a0,a0,41 7554: 17d050ef jal ra,ced0 7558: 5dc00793 li a5,1500 755c: b81e sh a5,48(s0) 755e: 03300793 li a5,51 7562: 02f40923 sb a5,50(s0) 7566: 4501 li a0,0 7568: fd3f806f j 53a <__riscv_restore_0> 0000756c : low_level_output(): 756c: fabf82ef jal t0,516 <__riscv_save_0> 7570: 64b1 lui s1,0xc 7572: 842e mv s0,a1 7574: 35148493 addi s1,s1,849 # c351 7578: d6cff0ef jal ra,6ae4 757c: 8911 andi a0,a0,4 757e: cd15 beqz a0,75ba 7580: 14fd addi s1,s1,-1 7582: cc85 beqz s1,75ba 7584: eccfe0ef jal ra,5c50 7588: 892a mv s2,a0 758a: d57d beqz a0,7578 758c: 87aa mv a5,a0 758e: 4481 li s1,0 7590: e801 bnez s0,75a0 7592: 85ca mv a1,s2 7594: 8526 mv a0,s1 7596: e76fe0ef jal ra,5c0c 759a: 4501 li a0,0 759c: f9ff806f j 53a <__riscv_restore_0> 75a0: 2432 lhu a2,10(s0) 75a2: 404c lw a1,4(s0) 75a4: 853e mv a0,a5 75a6: 12b050ef jal ra,ced0 75aa: 243a lhu a4,10(s0) 75ac: 4000 lw s0,0(s0) 75ae: 94ba add s1,s1,a4 75b0: 04c2 slli s1,s1,0x10 75b2: 00e507b3 add a5,a0,a4 75b6: 80c1 srli s1,s1,0x10 75b8: bfe1 j 7590 75ba: 5551 li a0,-12 75bc: b7c5 j 759c 000075be : ethernetif_input(): 75be: f3ff82ef jal t0,4fc <__riscv_save_4> 75c2: 2002e7b7 lui a5,0x2002e 75c6: bf47a783 lw a5,-1036(a5) # 2002dbf4 75ca: 89aa mv s3,a0 75cc: 96818513 addi a0,gp,-1688 # 200001a8 75d0: 96818493 addi s1,gp,-1688 # 200001a8 75d4: 9782 jalr a5 75d6: 408c lw a1,0(s1) 75d8: c9a9 beqz a1,762a 75da: 95c1c783 lbu a5,-1700(gp) # 2000019c 75de: 96818413 addi s0,gp,-1688 # 200001a8 75e2: 0ff7f793 andi a5,a5,255 75e6: e781 bnez a5,75ee 75e8: 4785 li a5,1 75ea: 94f18e23 sb a5,-1700(gp) # 2000019c 75ee: 05c2 slli a1,a1,0x10 75f0: 460d li a2,3 75f2: 81c1 srli a1,a1,0x10 75f4: 450d li a0,3 75f6: 4044 lw s1,4(s0) 75f8: 4ea010ef jal ra,8ae2 75fc: 892a mv s2,a0 75fe: c515 beqz a0,762a 7600: 842a mv s0,a0 7602: 2432 lhu a2,10(s0) 7604: 4048 lw a0,4(s0) 7606: 85a6 mv a1,s1 7608: 0c9050ef jal ra,ced0 760c: 243e lhu a5,10(s0) 760e: 4000 lw s0,0(s0) 7610: 94be add s1,s1,a5 7612: f865 bnez s0,7602 7614: de2fe0ef jal ra,5bf6 7618: 0109a783 lw a5,16(s3) 761c: 85ce mv a1,s3 761e: 854a mv a0,s2 7620: 9782 jalr a5 7622: c501 beqz a0,762a 7624: 854a mv a0,s2 7626: 46e010ef jal ra,8a94 762a: f07f806f j 530 <__riscv_restore_4> 0000762e : wch_ethernetif_init(): 762e: ee9f82ef jal t0,516 <__riscv_save_0> 7632: 1141 addi sp,sp,-16 7634: 2002e437 lui s0,0x2002e 7638: c202 sw zero,4(sp) 763a: c402 sw zero,8(sp) 763c: c602 sw zero,12(sp) 763e: 7a1000ef jal ra,85de 7642: bfc40513 addi a0,s0,-1028 # 2002dbfc 7646: 2002e5b7 lui a1,0x2002e 764a: 4619 li a2,6 764c: b9858593 addi a1,a1,-1128 # 2002db98 7650: 02950513 addi a0,a0,41 7654: 07d050ef jal ra,ced0 7658: 2002e7b7 lui a5,0x2002e 765c: b8c7a703 lw a4,-1140(a5) # 2002db8c 7660: b8c78793 addi a5,a5,-1140 7664: bfc40513 addi a0,s0,-1028 7668: c23a sw a4,4(sp) 766a: 4798 lw a4,8(a5) 766c: 43dc lw a5,4(a5) 766e: c43a sw a4,8(sp) 7670: c63e sw a5,12(sp) 7672: 9801a423 sw zero,-1656(gp) # 200001c8 7676: 9801a223 sw zero,-1660(gp) # 200001c4 767a: 39e010ef jal ra,8a18 767e: 00007837 lui a6,0x7 7682: 000077b7 lui a5,0x7 7686: 0074 addi a3,sp,12 7688: 0030 addi a2,sp,8 768a: 004c addi a1,sp,4 768c: 48280813 addi a6,a6,1154 # 7482 7690: 50878793 addi a5,a5,1288 # 7508 7694: 4701 li a4,0 7696: bfc40513 addi a0,s0,-1028 769a: 324010ef jal ra,89be 769e: 0141 addi sp,sp,16 76a0: e9bf806f j 53a <__riscv_restore_0> 000076a4 : htons(): 76a4: 00851793 slli a5,a0,0x8 76a8: 8121 srli a0,a0,0x8 76aa: 8d5d or a0,a0,a5 76ac: 0542 slli a0,a0,0x10 76ae: 8141 srli a0,a0,0x10 76b0: 8082 ret 000076b2 : ntohs(): 76b2: 00851793 slli a5,a0,0x8 76b6: 8121 srli a0,a0,0x8 76b8: 8d5d or a0,a0,a5 76ba: 0542 slli a0,a0,0x10 76bc: 8141 srli a0,a0,0x10 76be: 8082 ret 000076c0 : htonl(): 76c0: 01855713 srli a4,a0,0x18 76c4: 01851793 slli a5,a0,0x18 76c8: 8fd9 or a5,a5,a4 76ca: 00ff06b7 lui a3,0xff0 76ce: 00851713 slli a4,a0,0x8 76d2: 8f75 and a4,a4,a3 76d4: 8fd9 or a5,a5,a4 76d6: 6741 lui a4,0x10 76d8: f0070713 addi a4,a4,-256 # ff00 <_data_lma+0x29ec> 76dc: 8121 srli a0,a0,0x8 76de: 8d79 and a0,a0,a4 76e0: 8d5d or a0,a0,a5 76e2: 8082 ret 000076e4 : ntohl(): 76e4: e33f82ef jal t0,516 <__riscv_save_0> 76e8: fd9ff0ef jal ra,76c0 76ec: e4ff806f j 53a <__riscv_restore_0> 000076f0 : ip_route(): 76f0: e27f82ef jal t0,516 <__riscv_save_0> 76f4: 9881a403 lw s0,-1656(gp) # 200001c8 76f8: 84aa mv s1,a0 76fa: ec01 bnez s0,7712 76fc: 9841a503 lw a0,-1660(gp) # 200001c4 7700: c511 beqz a0,770c 7702: 31c010ef jal ra,8a1e 7706: c119 beqz a0,770c 7708: 9841a403 lw s0,-1660(gp) # 200001c4 770c: 8522 mv a0,s0 770e: e2df806f j 53a <__riscv_restore_0> 7712: 8522 mv a0,s0 7714: 30a010ef jal ra,8a1e 7718: c105 beqz a0,7738 771a: 3098 lbu a4,1(s1) 771c: 209c lbu a5,0(s1) 771e: 0722 slli a4,a4,0x8 7720: 8f5d or a4,a4,a5 7722: 20bc lbu a5,2(s1) 7724: 07c2 slli a5,a5,0x10 7726: 8f5d or a4,a4,a5 7728: 30bc lbu a5,3(s1) 772a: 07e2 slli a5,a5,0x18 772c: 8fd9 or a5,a5,a4 772e: 4058 lw a4,4(s0) 7730: 8fb9 xor a5,a5,a4 7732: 4418 lw a4,8(s0) 7734: 8ff9 and a5,a5,a4 7736: dbf9 beqz a5,770c 7738: 4000 lw s0,0(s0) 773a: b7c1 j 76fa 0000773c : ip_input(): 773c: db3f82ef jal t0,4ee <__riscv_save_10> 7740: 4140 lw s0,4(a0) 7742: 84aa mv s1,a0 7744: 89ae mv s3,a1 7746: 301c lbu a5,1(s0) 7748: 2008 lbu a0,0(s0) 774a: 07a2 slli a5,a5,0x8 774c: 8d5d or a0,a0,a5 774e: f65ff0ef jal ra,76b2 7752: 8131 srli a0,a0,0xc 7754: 0542 slli a0,a0,0x10 7756: 8141 srli a0,a0,0x10 7758: 4791 li a5,4 775a: 00f50663 beq a0,a5,7766 775e: 8526 mv a0,s1 7760: 334010ef jal ra,8a94 7764: a431 j 7970 7766: 301c lbu a5,1(s0) 7768: 2008 lbu a0,0(s0) 776a: 07a2 slli a5,a5,0x8 776c: 8d5d or a0,a0,a5 776e: f45ff0ef jal ra,76b2 7772: 8119 srli a0,a0,0x6 7774: 303c lbu a5,3(s0) 7776: 03c57a13 andi s4,a0,60 777a: 2028 lbu a0,2(s0) 777c: 07a2 slli a5,a5,0x8 777e: 8d5d or a0,a0,a5 7780: f33ff0ef jal ra,76b2 7784: 24be lhu a5,10(s1) 7786: 892a mv s2,a0 7788: fd47ebe3 bltu a5,s4,775e 778c: 249e lhu a5,8(s1) 778e: fca7e8e3 bltu a5,a0,775e 7792: 85d2 mv a1,s4 7794: 8522 mv a0,s0 7796: 51f040ef jal ra,c4b4 779a: f171 bnez a0,775e 779c: 85ca mv a1,s2 779e: 8526 mv a0,s1 77a0: 482010ef jal ra,8c22 77a4: f0000537 lui a0,0xf0000 77a8: f3dff0ef jal ra,76e4 77ac: e0000537 lui a0,0xe0000 77b0: f35ff0ef jal ra,76e4 77b4: 894e mv s2,s3 77b6: 4b05 li s6,1 77b8: 01040b93 addi s7,s0,16 77bc: 854a mv a0,s2 77be: 260010ef jal ra,8a1e 77c2: e511 bnez a0,77ce 77c4: 120b1363 bnez s6,78ea 77c8: 00092903 lw s2,0(s2) 77cc: a20d j 78ee 77ce: 00490793 addi a5,s2,4 77d2: dbed beqz a5,77c4 77d4: 00492683 lw a3,4(s2) 77d8: d6f5 beqz a3,77c4 77da: 3818 lbu a4,17(s0) 77dc: 281c lbu a5,16(s0) 77de: 0722 slli a4,a4,0x8 77e0: 8f5d or a4,a4,a5 77e2: 283c lbu a5,18(s0) 77e4: 07c2 slli a5,a5,0x10 77e6: 8f5d or a4,a4,a5 77e8: 383c lbu a5,19(s0) 77ea: 07e2 slli a5,a5,0x18 77ec: 8fd9 or a5,a5,a4 77ee: 04f68263 beq a3,a5,7832 77f2: 85ca mv a1,s2 77f4: 855e mv a0,s7 77f6: 2e85 jal 7b66 77f8: ed0d bnez a0,7832 77fa: 381c lbu a5,17(s0) 77fc: 01044a83 lbu s5,16(s0) 7800: f0000537 lui a0,0xf0000 7804: 07a2 slli a5,a5,0x8 7806: 0157e7b3 or a5,a5,s5 780a: 01244a83 lbu s5,18(s0) 780e: 0ac2 slli s5,s5,0x10 7810: 00fae7b3 or a5,s5,a5 7814: 01344a83 lbu s5,19(s0) 7818: 0ae2 slli s5,s5,0x18 781a: 00faeab3 or s5,s5,a5 781e: ec7ff0ef jal ra,76e4 7822: 00aafab3 and s5,s5,a0 7826: e0000537 lui a0,0xe0000 782a: ebbff0ef jal ra,76e4 782e: f8aa9be3 bne s5,a0,77c4 7832: 3458 lbu a4,13(s0) 7834: 245c lbu a5,12(s0) 7836: 0722 slli a4,a4,0x8 7838: 8f5d or a4,a4,a5 783a: 247c lbu a5,14(s0) 783c: 07c2 slli a5,a5,0x10 783e: 8f5d or a4,a4,a5 7840: 347c lbu a5,15(s0) 7842: 07e2 slli a5,a5,0x18 7844: 8fd9 or a5,a5,a4 7846: c3b9 beqz a5,788c 7848: 85ce mv a1,s3 784a: 00c40513 addi a0,s0,12 784e: 2e21 jal 7b66 7850: f00517e3 bnez a0,775e 7854: 345c lbu a5,13(s0) 7856: 00c44a03 lbu s4,12(s0) 785a: f0000537 lui a0,0xf0000 785e: 07a2 slli a5,a5,0x8 7860: 0147e7b3 or a5,a5,s4 7864: 00e44a03 lbu s4,14(s0) 7868: 0a42 slli s4,s4,0x10 786a: 00fa67b3 or a5,s4,a5 786e: 00f44a03 lbu s4,15(s0) 7872: 0a62 slli s4,s4,0x18 7874: 00fa6a33 or s4,s4,a5 7878: e6dff0ef jal ra,76e4 787c: 00aa7a33 and s4,s4,a0 7880: e0000537 lui a0,0xe0000 7884: e61ff0ef jal ra,76e4 7888: ecaa0be3 beq s4,a0,775e 788c: ec0909e3 beqz s2,775e 7890: 00744903 lbu s2,7(s0) 7894: 2068 lbu a0,6(s0) 7896: 0922 slli s2,s2,0x8 7898: 00a96933 or s2,s2,a0 789c: 6511 lui a0,0x4 789e: 157d addi a0,a0,-1 78a0: e05ff0ef jal ra,76a4 78a4: 00a97533 and a0,s2,a0 78a8: c511 beqz a0,78b4 78aa: 8526 mv a0,s1 78ac: 26ed jal 7c96 78ae: 84aa mv s1,a0 78b0: c161 beqz a0,7970 78b2: 4140 lw s0,4(a0) 78b4: 85ce mv a1,s3 78b6: 8526 mv a0,s1 78b8: 4aa010ef jal ra,8d62 78bc: e955 bnez a0,7970 78be: 341c lbu a5,9(s0) 78c0: 2408 lbu a0,8(s0) 78c2: 07a2 slli a5,a5,0x8 78c4: 8d5d or a0,a0,a5 78c6: dedff0ef jal ra,76b2 78ca: 0ff57513 andi a0,a0,255 78ce: 4799 li a5,6 78d0: 0af50363 beq a0,a5,7976 78d4: 47c5 li a5,17 78d6: 08f50963 beq a0,a5,7968 78da: 4785 li a5,1 78dc: 0af51263 bne a0,a5,7980 78e0: 85ce mv a1,s3 78e2: 8526 mv a0,s1 78e4: 7d0040ef jal ra,c0b4 78e8: a061 j 7970 78ea: 9881a903 lw s2,-1656(gp) # 200001c8 78ee: 01391463 bne s2,s3,78f6 78f2: 00092903 lw s2,0(s2) 78f6: 4b01 li s6,0 78f8: ec0912e3 bnez s2,77bc 78fc: 341c lbu a5,9(s0) 78fe: 2408 lbu a0,8(s0) 7900: 07a2 slli a5,a5,0x8 7902: 8d5d or a0,a0,a5 7904: dafff0ef jal ra,76b2 7908: 0ff57513 andi a0,a0,255 790c: 47c5 li a5,17 790e: 00f51e63 bne a0,a5,792a 7912: 014407b3 add a5,s0,s4 7916: 23a8 lbu a0,2(a5) 7918: 33bc lbu a5,3(a5) 791a: 07a2 slli a5,a5,0x8 791c: 8d5d or a0,a0,a5 791e: d95ff0ef jal ra,76b2 7922: 04400793 li a5,68 7926: 02f50d63 beq a0,a5,7960 792a: 4a85 li s5,1 792c: 341c lbu a5,9(s0) 792e: 2408 lbu a0,8(s0) 7930: 07a2 slli a5,a5,0x8 7932: 8d5d or a0,a0,a5 7934: d7fff0ef jal ra,76b2 7938: 0ff57513 andi a0,a0,255 793c: 47c5 li a5,17 793e: 08f51963 bne a0,a5,79d0 7942: 9a22 add s4,s4,s0 7944: 003a4783 lbu a5,3(s4) 7948: 002a4503 lbu a0,2(s4) 794c: 07a2 slli a5,a5,0x8 794e: 8d5d or a0,a0,a5 7950: d63ff0ef jal ra,76b2 7954: 76c00793 li a5,1900 7958: 06f51c63 bne a0,a5,79d0 795c: 894e mv s2,s3 795e: b73d j 788c 7960: f20998e3 bnez s3,7890 7964: 4a81 li s5,0 7966: b7d9 j 792c 7968: 85ce mv a1,s3 796a: 8526 mv a0,s1 796c: 212040ef jal ra,bb7e 7970: 4501 li a0,0 7972: bb5f806f j 526 <__riscv_restore_10> 7976: 85ce mv a1,s3 7978: 8526 mv a0,s1 797a: 351020ef jal ra,a4ca 797e: bfcd j 7970 7980: 85ce mv a1,s3 7982: 01040513 addi a0,s0,16 7986: 22c5 jal 7b66 7988: dc051be3 bnez a0,775e 798c: 381c lbu a5,17(s0) 798e: 01044903 lbu s2,16(s0) 7992: f0000537 lui a0,0xf0000 7996: 07a2 slli a5,a5,0x8 7998: 0127e7b3 or a5,a5,s2 799c: 01244903 lbu s2,18(s0) 79a0: 0942 slli s2,s2,0x10 79a2: 00f967b3 or a5,s2,a5 79a6: 01344903 lbu s2,19(s0) 79aa: 0962 slli s2,s2,0x18 79ac: 00f96933 or s2,s2,a5 79b0: d35ff0ef jal ra,76e4 79b4: 00a97933 and s2,s2,a0 79b8: e0000537 lui a0,0xe0000 79bc: d29ff0ef jal ra,76e4 79c0: d8a90fe3 beq s2,a0,775e 79c4: c0c0 sw s0,4(s1) 79c6: 4589 li a1,2 79c8: 8526 mv a0,s1 79ca: 13b040ef jal ra,c304 79ce: bb41 j 775e 79d0: e60a91e3 bnez s5,7832 79d4: b369 j 775e 000079d6 : ip_output_if(): 79d6: b19f82ef jal t0,4ee <__riscv_save_10> 79da: 89aa mv s3,a0 79dc: 8942 mv s2,a6 79de: 12060f63 beqz a2,7b1c 79e2: 8aae mv s5,a1 79e4: 45d1 li a1,20 79e6: 8a3a mv s4,a4 79e8: 84b2 mv s1,a2 79ea: 8bb6 mv s7,a3 79ec: 8b3e mv s6,a5 79ee: 038010ef jal ra,8a26 79f2: 5779 li a4,-2 79f4: 12051163 bnez a0,7b16 79f8: 0049a403 lw s0,4(s3) 79fc: 0ba2 slli s7,s7,0x8 79fe: 341c lbu a5,9(s0) 7a00: 2408 lbu a0,8(s0) 7a02: 07a2 slli a5,a5,0x8 7a04: 8d5d or a0,a0,a5 7a06: cadff0ef jal ra,76b2 7a0a: 0ff57513 andi a0,a0,255 7a0e: 01756533 or a0,a0,s7 7a12: c93ff0ef jal ra,76a4 7a16: 00855713 srli a4,a0,0x8 7a1a: b418 sb a4,9(s0) 7a1c: a408 sb a0,8(s0) 7a1e: c95ff0ef jal ra,76b2 7a22: 8121 srli a0,a0,0x8 7a24: 0542 slli a0,a0,0x10 7a26: 8141 srli a0,a0,0x10 7a28: 0522 slli a0,a0,0x8 7a2a: 01656533 or a0,a0,s6 7a2e: 0542 slli a0,a0,0x10 7a30: 8141 srli a0,a0,0x10 7a32: c73ff0ef jal ra,76a4 7a36: 3098 lbu a4,1(s1) 7a38: 209c lbu a5,0(s1) 7a3a: a408 sb a0,8(s0) 7a3c: 0722 slli a4,a4,0x8 7a3e: 8f5d or a4,a4,a5 7a40: 20bc lbu a5,2(s1) 7a42: 8121 srli a0,a0,0x8 7a44: b408 sb a0,9(s0) 7a46: 07c2 slli a5,a5,0x10 7a48: 8f5d or a4,a4,a5 7a4a: 30bc lbu a5,3(s1) 7a4c: 6511 lui a0,0x4 7a4e: 50050513 addi a0,a0,1280 # 4500 7a52: 07e2 slli a5,a5,0x18 7a54: 8fd9 or a5,a5,a4 7a56: 0087d713 srli a4,a5,0x8 7a5a: a81c sb a5,16(s0) 7a5c: b818 sb a4,17(s0) 7a5e: 0107d713 srli a4,a5,0x10 7a62: 83e1 srli a5,a5,0x18 7a64: b83c sb a5,19(s0) 7a66: a838 sb a4,18(s0) 7a68: 00aa6533 or a0,s4,a0 7a6c: c39ff0ef jal ra,76a4 7a70: a008 sb a0,0(s0) 7a72: 8121 srli a0,a0,0x8 7a74: b008 sb a0,1(s0) 7a76: 0089d503 lhu a0,8(s3) 7a7a: 97018a13 addi s4,gp,-1680 # 200001b0 7a7e: c27ff0ef jal ra,76a4 7a82: a028 sb a0,2(s0) 7a84: 8121 srli a0,a0,0x8 7a86: b028 sb a0,3(s0) 7a88: 000a5503 lhu a0,0(s4) 7a8c: 00040323 sb zero,6(s0) 7a90: 000403a3 sb zero,7(s0) 7a94: c11ff0ef jal ra,76a4 7a98: 000a5783 lhu a5,0(s4) 7a9c: a048 sb a0,4(s0) 7a9e: 8121 srli a0,a0,0x8 7aa0: 0785 addi a5,a5,1 7aa2: b048 sb a0,5(s0) 7aa4: 00fa1023 sh a5,0(s4) 7aa8: 020a8163 beqz s5,7aca 7aac: 001ac703 lbu a4,1(s5) 7ab0: 000ac783 lbu a5,0(s5) 7ab4: 0722 slli a4,a4,0x8 7ab6: 8f5d or a4,a4,a5 7ab8: 002ac783 lbu a5,2(s5) 7abc: 07c2 slli a5,a5,0x10 7abe: 8f5d or a4,a4,a5 7ac0: 003ac783 lbu a5,3(s5) 7ac4: 07e2 slli a5,a5,0x18 7ac6: 8fd9 or a5,a5,a4 7ac8: e799 bnez a5,7ad6 7aca: 00490713 addi a4,s2,4 7ace: 4781 li a5,0 7ad0: c319 beqz a4,7ad6 7ad2: 00492783 lw a5,4(s2) 7ad6: 0087d713 srli a4,a5,0x8 7ada: a45c sb a5,12(s0) 7adc: b458 sb a4,13(s0) 7ade: 0107d713 srli a4,a5,0x10 7ae2: 83e1 srli a5,a5,0x18 7ae4: a478 sb a4,14(s0) 7ae6: b47c sb a5,15(s0) 7ae8: 00040523 sb zero,10(s0) 7aec: 000405a3 sb zero,11(s0) 7af0: 45d1 li a1,20 7af2: 8522 mv a0,s0 7af4: 1c1040ef jal ra,c4b4 7af8: a428 sb a0,10(s0) 7afa: 8121 srli a0,a0,0x8 7afc: b428 sb a0,11(s0) 7afe: 03095783 lhu a5,48(s2) 7b02: c385 beqz a5,7b22 7b04: 0089d703 lhu a4,8(s3) 7b08: 00e7fd63 bgeu a5,a4,7b22 7b0c: 8626 mv a2,s1 7b0e: 85ca mv a1,s2 7b10: 854e mv a0,s3 7b12: 2385 jal 8072 7b14: 872a mv a4,a0 7b16: 853a mv a0,a4 7b18: a0ff806f j 526 <__riscv_restore_10> 7b1c: 4144 lw s1,4(a0) 7b1e: 04c1 addi s1,s1,16 7b20: bff9 j 7afe 7b22: 01492783 lw a5,20(s2) 7b26: 8626 mv a2,s1 7b28: 85ce mv a1,s3 7b2a: 854a mv a0,s2 7b2c: 9782 jalr a5 7b2e: b7dd j 7b14 00007b30 : ip_output(): 7b30: 9e7f82ef jal t0,516 <__riscv_save_0> 7b34: 1101 addi sp,sp,-32 7b36: 842a mv s0,a0 7b38: 8532 mv a0,a2 7b3a: ce2e sw a1,28(sp) 7b3c: cc36 sw a3,24(sp) 7b3e: ca3a sw a4,20(sp) 7b40: c83e sw a5,16(sp) 7b42: c632 sw a2,12(sp) 7b44: badff0ef jal ra,76f0 7b48: cd09 beqz a0,7b62 7b4a: 47c2 lw a5,16(sp) 7b4c: 4752 lw a4,20(sp) 7b4e: 46e2 lw a3,24(sp) 7b50: 4632 lw a2,12(sp) 7b52: 45f2 lw a1,28(sp) 7b54: 882a mv a6,a0 7b56: 8522 mv a0,s0 7b58: e7fff0ef jal ra,79d6 7b5c: 6105 addi sp,sp,32 7b5e: 9ddf806f j 53a <__riscv_restore_0> 7b62: 5571 li a0,-4 7b64: bfe5 j 7b5c 00007b66 : ip_addr_isbroadcast(): 7b66: 3118 lbu a4,1(a0) 7b68: 211c lbu a5,0(a0) 7b6a: 0722 slli a4,a4,0x8 7b6c: 8f5d or a4,a4,a5 7b6e: 213c lbu a5,2(a0) 7b70: 07c2 slli a5,a5,0x10 7b72: 8f5d or a4,a4,a5 7b74: 313c lbu a5,3(a0) 7b76: 07e2 slli a5,a5,0x18 7b78: 8fd9 or a5,a5,a4 7b7a: fff78693 addi a3,a5,-1 7b7e: 5775 li a4,-3 7b80: 02d76663 bltu a4,a3,7bac 7b84: 0325c703 lbu a4,50(a1) 7b88: 4501 li a0,0 7b8a: 8b09 andi a4,a4,2 7b8c: c30d beqz a4,7bae 7b8e: 41d8 lw a4,4(a1) 7b90: 00f70f63 beq a4,a5,7bae 7b94: 4594 lw a3,8(a1) 7b96: 8f3d xor a4,a4,a5 7b98: 8f75 and a4,a4,a3 7b9a: eb11 bnez a4,7bae 7b9c: fff6c513 not a0,a3 7ba0: 8fe9 and a5,a5,a0 7ba2: 40a78533 sub a0,a5,a0 7ba6: 00153513 seqz a0,a0 7baa: 8082 ret 7bac: 4505 li a0,1 7bae: 8082 ret 00007bb0 : ip_reass_tmr(): 7bb0: 93ff82ef jal t0,4ee <__riscv_save_10> 7bb4: 9741a403 lw s0,-1676(gp) # 200001b4 7bb8: 44c5 li s1,17 7bba: 4b01 li s6,0 7bbc: 97418913 addi s2,gp,-1676 # 200001b4 7bc0: e019 bnez s0,7bc6 7bc2: 965f806f j 526 <__riscv_restore_10> 7bc6: 14fd addi s1,s1,-1 7bc8: 0ff4f493 andi s1,s1,255 7bcc: d8fd beqz s1,7bc2 7bce: 3c7c lbu a5,31(s0) 7bd0: 00042c03 lw s8,0(s0) 7bd4: c791 beqz a5,7be0 7bd6: 17fd addi a5,a5,-1 7bd8: bc7c sb a5,31(s0) 7bda: 8b22 mv s6,s0 7bdc: 8462 mv s0,s8 7bde: b7cd j 7bc0 7be0: 00442983 lw s3,4(s0) 7be4: 4a81 li s5,0 7be6: 0049a503 lw a0,4(s3) 7bea: 315c lbu a5,5(a0) 7bec: 2158 lbu a4,4(a0) 7bee: 07a2 slli a5,a5,0x8 7bf0: 8fd9 or a5,a5,a4 7bf2: ef85 bnez a5,7c2a 7bf4: 3118 lbu a4,1(a0) 7bf6: 211c lbu a5,0(a0) 7bf8: 4651 li a2,20 7bfa: 0722 slli a4,a4,0x8 7bfc: 8f5d or a4,a4,a5 7bfe: 213c lbu a5,2(a0) 7c00: 00840593 addi a1,s0,8 7c04: 07c2 slli a5,a5,0x10 7c06: 8f5d or a4,a4,a5 7c08: 313c lbu a5,3(a0) 7c0a: 07e2 slli a5,a5,0x18 7c0c: 8fd9 or a5,a5,a4 7c0e: c05c sw a5,4(s0) 7c10: 2c0050ef jal ra,ced0 7c14: 4585 li a1,1 7c16: 854e mv a0,s3 7c18: 700040ef jal ra,c318 7c1c: 854e mv a0,s3 7c1e: 05c010ef jal ra,8c7a 7c22: 8aaa mv s5,a0 7c24: 854e mv a0,s3 7c26: 66f000ef jal ra,8a94 7c2a: 00442983 lw s3,4(s0) 7c2e: 02099663 bnez s3,7c5a 7c32: 00092703 lw a4,0(s2) 7c36: 401c lw a5,0(s0) 7c38: 04e41c63 bne s0,a4,7c90 7c3c: 00f92023 sw a5,0(s2) 7c40: 85a2 mv a1,s0 7c42: 4515 li a0,5 7c44: 47f000ef jal ra,88c2 7c48: 97218713 addi a4,gp,-1678 # 200001b2 7c4c: 231e lhu a5,0(a4) 7c4e: 845a mv s0,s6 7c50: 41578ab3 sub s5,a5,s5 7c54: 01571023 sh s5,0(a4) 7c58: b749 j 7bda 7c5a: 0049a703 lw a4,4(s3) 7c5e: 854e mv a0,s3 7c60: 331c lbu a5,1(a4) 7c62: 00074a03 lbu s4,0(a4) 7c66: 07a2 slli a5,a5,0x8 7c68: 0147e7b3 or a5,a5,s4 7c6c: 00274a03 lbu s4,2(a4) 7c70: 0a42 slli s4,s4,0x10 7c72: 00fa67b3 or a5,s4,a5 7c76: 00374a03 lbu s4,3(a4) 7c7a: 0a62 slli s4,s4,0x18 7c7c: 00fa6a33 or s4,s4,a5 7c80: 7fb000ef jal ra,8c7a 7c84: 9aaa add s5,s5,a0 7c86: 854e mv a0,s3 7c88: 60d000ef jal ra,8a94 7c8c: 89d2 mv s3,s4 7c8e: b745 j 7c2e 7c90: 00fb2023 sw a5,0(s6) # 4000 7c94: b775 j 7c40 00007c96 : ip_reass(): 7c96: 859f82ef jal t0,4ee <__riscv_save_10> 7c9a: 4144 lw s1,4(a0) 7c9c: 892a mv s2,a0 7c9e: 309c lbu a5,1(s1) 7ca0: 2088 lbu a0,0(s1) 7ca2: 07a2 slli a5,a5,0x8 7ca4: 8d5d or a0,a0,a5 7ca6: a0dff0ef jal ra,76b2 7caa: 8119 srli a0,a0,0x6 7cac: 03c57513 andi a0,a0,60 7cb0: 47d1 li a5,20 7cb2: 26f51263 bne a0,a5,7f16 7cb6: 30fc lbu a5,7(s1) 7cb8: 20e8 lbu a0,6(s1) 7cba: 07a2 slli a5,a5,0x8 7cbc: 8d5d or a0,a0,a5 7cbe: 9f5ff0ef jal ra,76b2 7cc2: 30bc lbu a5,3(s1) 7cc4: 8b2a mv s6,a0 7cc6: 20a8 lbu a0,2(s1) 7cc8: 07a2 slli a5,a5,0x8 7cca: 8d5d or a0,a0,a5 7ccc: 9e7ff0ef jal ra,76b2 7cd0: 309c lbu a5,1(s1) 7cd2: 8caa mv s9,a0 7cd4: 2088 lbu a0,0(s1) 7cd6: 07a2 slli a5,a5,0x8 7cd8: 8d5d or a0,a0,a5 7cda: 9d9ff0ef jal ra,76b2 7cde: 8c2a mv s8,a0 7ce0: 854a mv a0,s2 7ce2: 799000ef jal ra,8c7a 7ce6: 2002e7b7 lui a5,0x2002e 7cea: be07a783 lw a5,-1056(a5) # 2002dbe0 7cee: 9721d703 lhu a4,-1678(gp) # 200001b2 7cf2: 8d2a mv s10,a0 7cf4: 838d srli a5,a5,0x3 7cf6: 972a add a4,a4,a0 7cf8: 8bfd andi a5,a5,31 7cfa: 97218993 addi s3,gp,-1678 # 200001b2 7cfe: 20e7ec63 bltu a5,a4,7f16 7d02: 9741a403 lw s0,-1676(gp) # 200001b4 7d06: 4a81 li s5,0 7d08: 97418a13 addi s4,gp,-1676 # 200001b4 7d0c: e81d bnez s0,7d42 7d0e: 4515 li a0,5 7d10: 393000ef jal ra,88a2 7d14: 842a mv s0,a0 7d16: 20050063 beqz a0,7f16 7d1a: 4671 li a2,28 7d1c: 4581 li a1,0 7d1e: 00440513 addi a0,s0,4 7d22: 825f80ef jal ra,546 7d26: 478d li a5,3 7d28: bc7c sb a5,31(s0) 7d2a: 000a2783 lw a5,0(s4) 7d2e: 008a2023 sw s0,0(s4) 7d32: c01c sw a5,0(s0) 7d34: 4651 li a2,20 7d36: 85a6 mv a1,s1 7d38: 00840513 addi a0,s0,8 7d3c: 194050ef jal ra,ced0 7d40: ac95 j 7fb4 7d42: 34d8 lbu a4,13(s1) 7d44: 24dc lbu a5,12(s1) 7d46: 0722 slli a4,a4,0x8 7d48: 8f5d or a4,a4,a5 7d4a: 24fc lbu a5,14(s1) 7d4c: 07c2 slli a5,a5,0x10 7d4e: 8f5d or a4,a4,a5 7d50: 34fc lbu a5,15(s1) 7d52: 07e2 slli a5,a5,0x18 7d54: 8fd9 or a5,a5,a4 7d56: 4858 lw a4,20(s0) 7d58: 02f71663 bne a4,a5,7d84 7d5c: 3898 lbu a4,17(s1) 7d5e: 289c lbu a5,16(s1) 7d60: 0722 slli a4,a4,0x8 7d62: 8f5d or a4,a4,a5 7d64: 28bc lbu a5,18(s1) 7d66: 07c2 slli a5,a5,0x10 7d68: 8f5d or a4,a4,a5 7d6a: 38bc lbu a5,19(s1) 7d6c: 07e2 slli a5,a5,0x18 7d6e: 8fd9 or a5,a5,a4 7d70: 4c18 lw a4,24(s0) 7d72: 00f71963 bne a4,a5,7d84 7d76: 30dc lbu a5,5(s1) 7d78: 20d4 lbu a3,4(s1) 7d7a: 245a lhu a4,12(s0) 7d7c: 07a2 slli a5,a5,0x8 7d7e: 8fd5 or a5,a5,a3 7d80: 20f70663 beq a4,a5,7f8c 7d84: 8aa2 mv s5,s0 7d86: 4000 lw s0,0(s0) 7d88: b751 j 7d0c 7d8a: 42cc lw a1,4(a3) 7d8c: 0055c803 lbu a6,5(a1) 7d90: 0045c303 lbu t1,4(a1) 7d94: 0822 slli a6,a6,0x8 7d96: 00686833 or a6,a6,t1 7d9a: 0d067c63 bgeu a2,a6,7e72 7d9e: 0086d593 srli a1,a3,0x8 7da2: a394 sb a3,0(a5) 7da4: b38c sb a1,1(a5) 7da6: 0106d593 srli a1,a3,0x10 7daa: 82e1 srli a3,a3,0x18 7dac: a3ac sb a1,2(a5) 7dae: b3b4 sb a3,3(a5) 7db0: 2a070e63 beqz a4,806c 7db4: 3374 lbu a3,7(a4) 7db6: 236c lbu a1,6(a4) 7db8: 06a2 slli a3,a3,0x8 7dba: 8ecd or a3,a3,a1 7dbc: 14d66463 bltu a2,a3,7f04 7dc0: 14a86263 bltu a6,a0,7f04 7dc4: 00895693 srli a3,s2,0x8 7dc8: 01270023 sb s2,0(a4) 7dcc: b314 sb a3,1(a4) 7dce: 01095693 srli a3,s2,0x10 7dd2: 01895913 srli s2,s2,0x18 7dd6: a334 sb a3,2(a4) 7dd8: 012701a3 sb s2,3(a4) 7ddc: 2c78 lbu a4,30(s0) 7dde: 4b01 li s6,0 7de0: 8b05 andi a4,a4,1 7de2: 18070f63 beqz a4,7f80 7de6: 18088d63 beqz a7,7f80 7dea: 4058 lw a4,4(s0) 7dec: 4344 lw s1,4(a4) 7dee: 30d8 lbu a4,5(s1) 7df0: 20d4 lbu a3,4(s1) 7df2: 0722 slli a4,a4,0x8 7df4: 8f55 or a4,a4,a3 7df6: 18071563 bnez a4,7f80 7dfa: 3394 lbu a3,1(a5) 7dfc: 2398 lbu a4,0(a5) 7dfe: 06a2 slli a3,a3,0x8 7e00: 8ed9 or a3,a3,a4 7e02: 23b8 lbu a4,2(a5) 7e04: 0742 slli a4,a4,0x10 7e06: 8ed9 or a3,a3,a4 7e08: 33b8 lbu a4,3(a5) 7e0a: 0762 slli a4,a4,0x18 7e0c: 8f55 or a4,a4,a3 7e0e: e761 bnez a4,7ed6 7e10: 2c5e lhu a5,28(s0) 7e12: 0004c903 lbu s2,0(s1) 7e16: 4651 li a2,20 7e18: 07d1 addi a5,a5,20 7e1a: ac5e sh a5,28(s0) 7e1c: 309c lbu a5,1(s1) 7e1e: 00840593 addi a1,s0,8 7e22: 8526 mv a0,s1 7e24: 07a2 slli a5,a5,0x8 7e26: 0127e7b3 or a5,a5,s2 7e2a: 0024c903 lbu s2,2(s1) 7e2e: 0942 slli s2,s2,0x10 7e30: 00f967b3 or a5,s2,a5 7e34: 0034c903 lbu s2,3(s1) 7e38: 0962 slli s2,s2,0x18 7e3a: 00f96933 or s2,s2,a5 7e3e: 092050ef jal ra,ced0 7e42: 2c4a lhu a0,28(s0) 7e44: 861ff0ef jal ra,76a4 7e48: a0a8 sb a0,2(s1) 7e4a: 8121 srli a0,a0,0x8 7e4c: b0a8 sb a0,3(s1) 7e4e: 00048323 sb zero,6(s1) 7e52: 000483a3 sb zero,7(s1) 7e56: 00048523 sb zero,10(s1) 7e5a: 000485a3 sb zero,11(s1) 7e5e: 45d1 li a1,20 7e60: 8526 mv a0,s1 7e62: 652040ef jal ra,c4b4 7e66: a4a8 sb a0,10(s1) 7e68: 8121 srli a0,a0,0x8 7e6a: b4a8 sb a0,11(s1) 7e6c: 00442b03 lw s6,4(s0) 7e70: a0d5 j 7f54 7e72: 09060963 beq a2,a6,7f04 7e76: 31f4 lbu a3,7(a1) 7e78: 0065c303 lbu t1,6(a1) 7e7c: 06a2 slli a3,a3,0x8 7e7e: 0066e6b3 or a3,a3,t1 7e82: 08d66163 bltu a2,a3,7f04 7e86: cb01 beqz a4,7e96 7e88: 2374 lbu a3,6(a4) 7e8a: 3378 lbu a4,7(a4) 7e8c: 0722 slli a4,a4,0x8 7e8e: 8f55 or a4,a4,a3 7e90: 00e80363 beq a6,a4,7e96 7e94: 4881 li a7,0 7e96: 3198 lbu a4,1(a1) 7e98: 2194 lbu a3,0(a1) 7e9a: 0722 slli a4,a4,0x8 7e9c: 8f55 or a4,a4,a3 7e9e: 21b4 lbu a3,2(a1) 7ea0: 06c2 slli a3,a3,0x10 7ea2: 8f55 or a4,a4,a3 7ea4: 31b4 lbu a3,3(a1) 7ea6: 06e2 slli a3,a3,0x18 7ea8: 8ed9 or a3,a3,a4 7eaa: 872e mv a4,a1 7eac: aa65 j 8064 7eae: 00895693 srli a3,s2,0x8 7eb2: 01270023 sb s2,0(a4) 7eb6: b314 sb a3,1(a4) 7eb8: 01095693 srli a3,s2,0x10 7ebc: 01895913 srli s2,s2,0x18 7ec0: a334 sb a3,2(a4) 7ec2: 012701a3 sb s2,3(a4) 7ec6: 2374 lbu a3,6(a4) 7ec8: 3378 lbu a4,7(a4) 7eca: 0722 slli a4,a4,0x8 7ecc: 8f55 or a4,a4,a3 7ece: f0e607e3 beq a2,a4,7ddc 7ed2: 4881 li a7,0 7ed4: b721 j 7ddc 7ed6: 4354 lw a3,4(a4) 7ed8: 23ec lbu a1,6(a5) 7eda: 33f8 lbu a4,7(a5) 7edc: 32dc lbu a5,5(a3) 7ede: 22d0 lbu a2,4(a3) 7ee0: 0722 slli a4,a4,0x8 7ee2: 07a2 slli a5,a5,0x8 7ee4: 8f4d or a4,a4,a1 7ee6: 8fd1 or a5,a5,a2 7ee8: 02f71a63 bne a4,a5,7f1c 7eec: 329c lbu a5,1(a3) 7eee: 2298 lbu a4,0(a3) 7ef0: 07a2 slli a5,a5,0x8 7ef2: 8fd9 or a5,a5,a4 7ef4: 22b8 lbu a4,2(a3) 7ef6: 0742 slli a4,a4,0x10 7ef8: 8fd9 or a5,a5,a4 7efa: 32b8 lbu a4,3(a3) 7efc: 0762 slli a4,a4,0x18 7efe: 8f5d or a4,a4,a5 7f00: 87b6 mv a5,a3 7f02: b731 j 7e0e 7f04: 854a mv a0,s2 7f06: 575000ef jal ra,8c7a 7f0a: 0009d783 lhu a5,0(s3) 7f0e: 40a78533 sub a0,a5,a0 7f12: 00a99023 sh a0,0(s3) 7f16: 854a mv a0,s2 7f18: 37d000ef jal ra,8a94 7f1c: 4b01 li s6,0 7f1e: a08d j 7f80 7f20: 55b1 li a1,-20 7f22: 854a mv a0,s2 7f24: 00492483 lw s1,4(s2) 7f28: 2ff000ef jal ra,8a26 7f2c: 85ca mv a1,s2 7f2e: 855a mv a0,s6 7f30: 567000ef jal ra,8c96 7f34: 309c lbu a5,1(s1) 7f36: 0004c903 lbu s2,0(s1) 7f3a: 07a2 slli a5,a5,0x8 7f3c: 0127e7b3 or a5,a5,s2 7f40: 0024c903 lbu s2,2(s1) 7f44: 0942 slli s2,s2,0x10 7f46: 00f967b3 or a5,s2,a5 7f4a: 0034c903 lbu s2,3(s1) 7f4e: 0962 slli s2,s2,0x18 7f50: 00f96933 or s2,s2,a5 7f54: fc0916e3 bnez s2,7f20 7f58: 000a2703 lw a4,0(s4) 7f5c: 401c lw a5,0(s0) 7f5e: 02e41463 bne s0,a4,7f86 7f62: 00fa2023 sw a5,0(s4) 7f66: 85a2 mv a1,s0 7f68: 4515 li a0,5 7f6a: 159000ef jal ra,88c2 7f6e: 855a mv a0,s6 7f70: 50b000ef jal ra,8c7a 7f74: 0009d783 lhu a5,0(s3) 7f78: 40a78533 sub a0,a5,a0 7f7c: 00a99023 sh a0,0(s3) 7f80: 855a mv a0,s6 7f82: da4f806f j 526 <__riscv_restore_10> 7f86: 00faa023 sw a5,0(s5) 7f8a: bff1 j 7f66 7f8c: 30fc lbu a5,7(s1) 7f8e: 20e8 lbu a0,6(s1) 7f90: 6b89 lui s7,0x2 7f92: 07a2 slli a5,a5,0x8 7f94: 8d5d or a0,a0,a5 7f96: f1cff0ef jal ra,76b2 7f9a: 1bfd addi s7,s7,-1 7f9c: 01757533 and a0,a0,s7 7fa0: 0542 slli a0,a0,0x10 7fa2: 8141 srli a0,a0,0x10 7fa4: e901 bnez a0,7fb4 7fa6: 246a lhu a0,14(s0) 7fa8: f0aff0ef jal ra,76b2 7fac: 01757533 and a0,a0,s7 7fb0: d80512e3 bnez a0,7d34 7fb4: 0009d783 lhu a5,0(s3) 7fb8: 9d3e add s10,s10,a5 7fba: 01a99023 sh s10,0(s3) 7fbe: 30fc lbu a5,7(s1) 7fc0: 20e8 lbu a0,6(s1) 7fc2: 07a2 slli a5,a5,0x8 7fc4: 8d5d or a0,a0,a5 7fc6: eecff0ef jal ra,76b2 7fca: 01251793 slli a5,a0,0x12 7fce: 0207c263 bltz a5,7ff2 7fd2: 013b1513 slli a0,s6,0x13 7fd6: 2c7c lbu a5,30(s0) 7fd8: 814d srli a0,a0,0x13 7fda: 050e slli a0,a0,0x3 7fdc: 006c5c13 srli s8,s8,0x6 7fe0: 9566 add a0,a0,s9 7fe2: 03cc7c13 andi s8,s8,60 7fe6: 0017e793 ori a5,a5,1 7fea: 41850533 sub a0,a0,s8 7fee: ac7c sb a5,30(s0) 7ff0: ac4a sh a0,28(s0) 7ff2: 00492483 lw s1,4(s2) 7ff6: 30bc lbu a5,3(s1) 7ff8: 20a8 lbu a0,2(s1) 7ffa: 07a2 slli a5,a5,0x8 7ffc: 8d5d or a0,a0,a5 7ffe: eb4ff0ef jal ra,76b2 8002: 309c lbu a5,1(s1) 8004: 8b2a mv s6,a0 8006: 2088 lbu a0,0(s1) 8008: 07a2 slli a5,a5,0x8 800a: 8d5d or a0,a0,a5 800c: ea6ff0ef jal ra,76b2 8010: 30fc lbu a5,7(s1) 8012: 8baa mv s7,a0 8014: 20e8 lbu a0,6(s1) 8016: 07a2 slli a5,a5,0x8 8018: 006bdb93 srli s7,s7,0x6 801c: 8d5d or a0,a0,a5 801e: e94ff0ef jal ra,76b2 8022: 054e slli a0,a0,0x13 8024: 814d srli a0,a0,0x13 8026: 00351613 slli a2,a0,0x3 802a: 00cb0533 add a0,s6,a2 802e: 03cbfb13 andi s6,s7,60 8032: 00492783 lw a5,4(s2) 8036: 41650533 sub a0,a0,s6 803a: 0542 slli a0,a0,0x10 803c: 00865713 srli a4,a2,0x8 8040: 8141 srli a0,a0,0x10 8042: 4054 lw a3,4(s0) 8044: b3d8 sb a4,5(a5) 8046: 00855713 srli a4,a0,0x8 804a: b3f8 sb a4,7(a5) 804c: 00078023 sb zero,0(a5) 8050: 000780a3 sb zero,1(a5) 8054: 00078123 sb zero,2(a5) 8058: 000781a3 sb zero,3(a5) 805c: a3d0 sb a2,4(a5) 805e: a3e8 sb a0,6(a5) 8060: 4885 li a7,1 8062: 4701 li a4,0 8064: d20693e3 bnez a3,7d8a 8068: e40713e3 bnez a4,7eae 806c: 01242223 sw s2,4(s0) 8070: b3b5 j 7ddc 00008072 : ip_frag(): 8072: c74f82ef jal t0,4e6 <__riscv_save_12> 8076: 00452c03 lw s8,4(a0) 807a: 1101 addi sp,sp,-32 807c: ca32 sw a2,20(sp) 807e: 007c4703 lbu a4,7(s8) 8082: 8daa mv s11,a0 8084: 006c4503 lbu a0,6(s8) 8088: 0722 slli a4,a4,0x8 808a: 0305db83 lhu s7,48(a1) 808e: 8d59 or a0,a0,a4 8090: 8cae mv s9,a1 8092: e20ff0ef jal ra,76b2 8096: 6689 lui a3,0x2 8098: 00d577b3 and a5,a0,a3 809c: fecb8a13 addi s4,s7,-20 # 1fec 80a0: 46a1 li a3,8 80a2: 02da4a33 div s4,s4,a3 80a6: 008dd483 lhu s1,8(s11) 80aa: 6709 lui a4,0x2 80ac: 177d addi a4,a4,-1 80ae: c63e sw a5,12(sp) 80b0: 00e57933 and s2,a0,a4 80b4: 14b1 addi s1,s1,-20 80b6: 0942 slli s2,s2,0x10 80b8: 04c2 slli s1,s1,0x10 80ba: 01095913 srli s2,s2,0x10 80be: 80c1 srli s1,s1,0x10 80c0: 4401 li s0,0 80c2: 4d51 li s10,20 80c4: cc3a sw a4,24(sp) 80c6: 0a42 slli s4,s4,0x10 80c8: 010a5a13 srli s4,s4,0x10 80cc: 003a1693 slli a3,s4,0x3 80d0: 01069793 slli a5,a3,0x10 80d4: 83c1 srli a5,a5,0x10 80d6: c83e sw a5,16(sp) 80d8: fedb8793 addi a5,s7,-19 80dc: ce3e sw a5,28(sp) 80de: e489 bnez s1,80e8 80e0: 4501 li a0,0 80e2: 6105 addi sp,sp,32 80e4: c3ef806f j 522 <__riscv_restore_12> 80e8: 47e2 lw a5,24(sp) 80ea: 8aa6 mv s5,s1 80ec: 00f97b33 and s6,s2,a5 80f0: 47b2 lw a5,12(sp) 80f2: 0167eb33 or s6,a5,s6 80f6: 47f2 lw a5,28(sp) 80f8: 00f4c663 blt s1,a5,8104 80fc: 4ac2 lw s5,16(sp) 80fe: 6789 lui a5,0x2 8100: 00fb6b33 or s6,s6,a5 8104: 4601 li a2,0 8106: 45d1 li a1,20 8108: 4509 li a0,2 810a: 1d9000ef jal ra,8ae2 810e: 89aa mv s3,a0 8110: c939 beqz a0,8166 8112: 4148 lw a0,4(a0) 8114: 4651 li a2,20 8116: 85e2 mv a1,s8 8118: 5b9040ef jal ra,ced0 811c: 004da603 lw a2,4(s11) 8120: 0049ab83 lw s7,4(s3) 8124: 966a add a2,a2,s10 8126: 00cda223 sw a2,4(s11) 812a: 00add603 lhu a2,10(s11) 812e: 41a606b3 sub a3,a2,s10 8132: 00dd9523 sh a3,10(s11) 8136: 8d56 mv s10,s5 8138: 040d0963 beqz s10,818a 813c: 00add403 lhu s0,10(s11) 8140: 008d7363 bgeu s10,s0,8146 8144: 846a mv s0,s10 8146: 0442 slli s0,s0,0x10 8148: 8041 srli s0,s0,0x10 814a: e401 bnez s0,8152 814c: 000dad83 lw s11,0(s11) 8150: b7e5 j 8138 8152: 4581 li a1,0 8154: 4609 li a2,2 8156: 450d li a0,3 8158: 18b000ef jal ra,8ae2 815c: 85aa mv a1,a0 815e: e511 bnez a0,816a 8160: 854e mv a0,s3 8162: 133000ef jal ra,8a94 8166: 557d li a0,-1 8168: bfad j 80e2 816a: 004da603 lw a2,4(s11) 816e: a502 sh s0,8(a0) 8170: a522 sh s0,10(a0) 8172: c150 sw a2,4(a0) 8174: 854e mv a0,s3 8176: 321000ef jal ra,8c96 817a: 408d06b3 sub a3,s10,s0 817e: 01069d13 slli s10,a3,0x10 8182: 010d5d13 srli s10,s10,0x10 8186: fc0d13e3 bnez s10,814c 818a: 855a mv a0,s6 818c: d18ff0ef jal ra,76a4 8190: 00ab8323 sb a0,6(s7) 8194: 8121 srli a0,a0,0x8 8196: 00ab83a3 sb a0,7(s7) 819a: 014a8513 addi a0,s5,20 819e: 0542 slli a0,a0,0x10 81a0: 8141 srli a0,a0,0x10 81a2: d02ff0ef jal ra,76a4 81a6: 00ab8123 sb a0,2(s7) 81aa: 8121 srli a0,a0,0x8 81ac: 00ab81a3 sb a0,3(s7) 81b0: 45d1 li a1,20 81b2: 000b8523 sb zero,10(s7) 81b6: 000b85a3 sb zero,11(s7) 81ba: 855e mv a0,s7 81bc: 2f8040ef jal ra,c4b4 81c0: 014ca703 lw a4,20(s9) 81c4: 4652 lw a2,20(sp) 81c6: 00ab8523 sb a0,10(s7) 81ca: 8121 srli a0,a0,0x8 81cc: 00ab85a3 sb a0,11(s7) 81d0: 85ce mv a1,s3 81d2: 8566 mv a0,s9 81d4: 9702 jalr a4 81d6: 415484b3 sub s1,s1,s5 81da: 9952 add s2,s2,s4 81dc: 854e mv a0,s3 81de: 04c2 slli s1,s1,0x10 81e0: 0942 slli s2,s2,0x10 81e2: 0b3000ef jal ra,8a94 81e6: 80c1 srli s1,s1,0x10 81e8: 01095913 srli s2,s2,0x10 81ec: 8d22 mv s10,s0 81ee: bdc5 j 80de 000081f0 : dhcp_set_state(): 81f0: 293c lbu a5,18(a0) 81f2: 00b78963 beq a5,a1,8204 81f6: 2002e7b7 lui a5,0x2002e 81fa: a92c sb a1,18(a0) 81fc: 000509a3 sb zero,19(a0) 8200: b007ac23 sw zero,-1256(a5) # 2002db18 8204: 8082 ret 00008206 : dhcp_option(): 8206: 2d5e lhu a5,28(a0) 8208: 4d18 lw a4,24(a0) 820a: 00f706b3 add a3,a4,a5 820e: 0eb68823 sb a1,240(a3) # 20f0 8212: 00278693 addi a3,a5,2 8216: 0785 addi a5,a5,1 8218: 07c2 slli a5,a5,0x10 821a: 83c1 srli a5,a5,0x10 821c: ad56 sh a3,28(a0) 821e: 97ba add a5,a5,a4 8220: 0ec78823 sb a2,240(a5) 8224: 8082 ret 00008226 : dhcp_option_byte(): 8226: 2d5a lhu a4,28(a0) 8228: 4d1c lw a5,24(a0) 822a: 00170693 addi a3,a4,1 # 2001 822e: ad56 sh a3,28(a0) 8230: 97ba add a5,a5,a4 8232: 0eb78823 sb a1,240(a5) 8236: 8082 ret 00008238 : dhcp_option_long(): 8238: 2d5e lhu a5,28(a0) 823a: 4d18 lw a4,24(a0) 823c: 0185d613 srli a2,a1,0x18 8240: 00f706b3 add a3,a4,a5 8244: 0ec68823 sb a2,240(a3) 8248: 00178693 addi a3,a5,1 824c: 06c2 slli a3,a3,0x10 824e: 82c1 srli a3,a3,0x10 8250: 96ba add a3,a3,a4 8252: 0105d613 srli a2,a1,0x10 8256: 0ec68823 sb a2,240(a3) 825a: 00278693 addi a3,a5,2 825e: 06c2 slli a3,a3,0x10 8260: 82c1 srli a3,a3,0x10 8262: 96ba add a3,a3,a4 8264: 0085d613 srli a2,a1,0x8 8268: 0ec68823 sb a2,240(a3) 826c: 00478693 addi a3,a5,4 8270: 078d addi a5,a5,3 8272: 07c2 slli a5,a5,0x10 8274: 83c1 srli a5,a5,0x10 8276: ad56 sh a3,28(a0) 8278: 97ba add a5,a5,a4 827a: 0eb78823 sb a1,240(a5) 827e: 8082 ret 00008280 : dhcp_option_trailer(): 8280: c115 beqz a0,82a4 8282: 2d5e lhu a5,28(a0) 8284: 4d18 lw a4,24(a0) 8286: 04300613 li a2,67 828a: 00178693 addi a3,a5,1 828e: ad56 sh a3,28(a0) 8290: 97ba add a5,a5,a4 8292: 56fd li a3,-1 8294: 0ed78823 sb a3,240(a5) 8298: 2d5e lhu a5,28(a0) 829a: 00f67663 bgeu a2,a5,82a6 829e: 0037f693 andi a3,a5,3 82a2: e291 bnez a3,82a6 82a4: 8082 ret 82a6: 00178693 addi a3,a5,1 82aa: ad56 sh a3,28(a0) 82ac: 97ba add a5,a5,a4 82ae: 0e078823 sb zero,240(a5) 82b2: b7dd j 8298 000082b4 : dhcp_create_request(): 82b4: 18050263 beqz a0,8438 82b8: a5ef82ef jal t0,516 <__riscv_save_0> 82bc: 5104 lw s1,32(a0) 82be: 57dd li a5,-9 82c0: 16048963 beqz s1,8432 82c4: 892a mv s2,a0 82c6: 4601 li a2,0 82c8: 13400593 li a1,308 82cc: 4501 li a0,0 82ce: 015000ef jal ra,8ae2 82d2: c8c8 sw a0,20(s1) 82d4: 872a mv a4,a0 82d6: 57fd li a5,-1 82d8: 14050d63 beqz a0,8432 82dc: 38bc lbu a5,19(s1) 82de: ef99 bnez a5,82fc 82e0: 28bc lbu a5,18(s1) 82e2: 4605 li a2,1 82e4: 00c78c63 beq a5,a2,82fc 82e8: 17f1 addi a5,a5,-4 82ea: 0ff7f793 andi a5,a5,255 82ee: 00f67763 bgeu a2,a5,82fc 82f2: 8201a783 lw a5,-2016(gp) # 20000060 82f6: 0785 addi a5,a5,1 82f8: 82f1a023 sw a5,-2016(gp) # 20000060 82fc: 4340 lw s0,4(a4) 82fe: 8201a503 lw a0,-2016(gp) # 20000060 8302: 4785 li a5,1 8304: cc80 sw s0,24(s1) 8306: c088 sw a0,0(s1) 8308: a01c sb a5,0(s0) 830a: b01c sb a5,1(s0) 830c: 4799 li a5,6 830e: a03c sb a5,2(s0) 8310: 000401a3 sb zero,3(s0) 8314: bacff0ef jal ra,76c0 8318: 00855793 srli a5,a0,0x8 831c: a048 sb a0,4(s0) 831e: b05c sb a5,5(s0) 8320: 01055793 srli a5,a0,0x10 8324: 8161 srli a0,a0,0x18 8326: a07c sb a5,6(s0) 8328: b068 sb a0,7(s0) 832a: 4c80 lw s0,24(s1) 832c: 4729 li a4,10 832e: 00040423 sb zero,8(s0) 8332: 000404a3 sb zero,9(s0) 8336: 00040523 sb zero,10(s0) 833a: 000405a3 sb zero,11(s0) 833e: 00040623 sb zero,12(s0) 8342: 000406a3 sb zero,13(s0) 8346: 00040723 sb zero,14(s0) 834a: 000407a3 sb zero,15(s0) 834e: 28bc lbu a5,18(s1) 8350: 00e78863 beq a5,a4,8360 8354: 17f1 addi a5,a5,-4 8356: 0ff7f793 andi a5,a5,255 835a: 4705 li a4,1 835c: 00f76e63 bltu a4,a5,8378 8360: 00494783 lbu a5,4(s2) 8364: a45c sb a5,12(s0) 8366: 00594783 lbu a5,5(s2) 836a: b45c sb a5,13(s0) 836c: 00694783 lbu a5,6(s2) 8370: a47c sb a5,14(s0) 8372: 00794783 lbu a5,7(s2) 8376: b47c sb a5,15(s0) 8378: 00040823 sb zero,16(s0) 837c: 000408a3 sb zero,17(s0) 8380: 00040923 sb zero,18(s0) 8384: 000409a3 sb zero,19(s0) 8388: 00040a23 sb zero,20(s0) 838c: 00040aa3 sb zero,21(s0) 8390: 00040b23 sb zero,22(s0) 8394: 00040ba3 sb zero,23(s0) 8398: 00040c23 sb zero,24(s0) 839c: 00040ca3 sb zero,25(s0) 83a0: 00040d23 sb zero,26(s0) 83a4: 00040da3 sb zero,27(s0) 83a8: 02894583 lbu a1,40(s2) 83ac: 4781 li a5,0 83ae: 4641 li a2,16 83b0: 01079713 slli a4,a5,0x10 83b4: 8341 srli a4,a4,0x10 83b6: 4681 li a3,0 83b8: 00b77663 bgeu a4,a1,83c4 83bc: 00f90733 add a4,s2,a5 83c0: 02974683 lbu a3,41(a4) 83c4: 00f40733 add a4,s0,a5 83c8: af54 sb a3,28(a4) 83ca: 0785 addi a5,a5,1 83cc: fec792e3 bne a5,a2,83b0 83d0: 02c40713 addi a4,s0,44 83d4: 06c40793 addi a5,s0,108 83d8: 00070023 sb zero,0(a4) 83dc: 0705 addi a4,a4,1 83de: fee79de3 bne a5,a4,83d8 83e2: 0ec40713 addi a4,s0,236 83e6: 00078023 sb zero,0(a5) 83ea: 0785 addi a5,a5,1 83ec: fee79de3 bne a5,a4,83e6 83f0: 63825537 lui a0,0x63825 83f4: 36350513 addi a0,a0,867 # 63825363 <__freertos_irq_stack_top+0x437f5363> 83f8: ac8ff0ef jal ra,76c0 83fc: 00855793 srli a5,a0,0x8 8400: 0ea40623 sb a0,236(s0) 8404: 0ef406a3 sb a5,237(s0) 8408: 4c90 lw a2,24(s1) 840a: 01055793 srli a5,a0,0x10 840e: 8161 srli a0,a0,0x18 8410: 0ef40723 sb a5,238(s0) 8414: 0ea407a3 sb a0,239(s0) 8418: 00049e23 sh zero,28(s1) 841c: 4781 li a5,0 841e: 04400713 li a4,68 8422: 00f606b3 add a3,a2,a5 8426: 0ef68823 sb a5,240(a3) 842a: 0785 addi a5,a5,1 842c: fee79be3 bne a5,a4,8422 8430: 4781 li a5,0 8432: 853e mv a0,a5 8434: 906f806f j 53a <__riscv_restore_0> 8438: 57d9 li a5,-10 843a: 853e mv a0,a5 843c: 8082 ret 0000843e : dhcp_delete_request(): 843e: cd11 beqz a0,845a 8440: 8d6f82ef jal t0,516 <__riscv_save_0> 8444: 5100 lw s0,32(a0) 8446: c801 beqz s0,8456 8448: 4848 lw a0,20(s0) 844a: c111 beqz a0,844e 844c: 25a1 jal 8a94 844e: 00042a23 sw zero,20(s0) 8452: 00042c23 sw zero,24(s0) 8456: 8e4f806f j 53a <__riscv_restore_0> 845a: 8082 ret 0000845c : dhcp_arp_reply(): 845c: 18050063 beqz a0,85dc 8460: 8b6f82ef jal t0,516 <__riscv_save_0> 8464: 5100 lw s0,32(a0) 8466: 16040963 beqz s0,85d8 846a: 2838 lbu a4,18(s0) 846c: 47a1 li a5,8 846e: 16f71563 bne a4,a5,85d8 8472: 3198 lbu a4,1(a1) 8474: 219c lbu a5,0(a1) 8476: 0722 slli a4,a4,0x8 8478: 8f5d or a4,a4,a5 847a: 21bc lbu a5,2(a1) 847c: 07c2 slli a5,a5,0x10 847e: 8f5d or a4,a4,a5 8480: 31bc lbu a5,3(a1) 8482: 07e2 slli a5,a5,0x18 8484: 8fd9 or a5,a5,a4 8486: 5418 lw a4,40(s0) 8488: 14e79863 bne a5,a4,85d8 848c: 84aa mv s1,a0 848e: 45b1 li a1,12 8490: 8522 mv a0,s0 8492: d5fff0ef jal ra,81f0 8496: 8526 mv a0,s1 8498: e1dff0ef jal ra,82b4 849c: 12051963 bnez a0,85ce 84a0: 4605 li a2,1 84a2: 03500593 li a1,53 84a6: 8522 mv a0,s0 84a8: d5fff0ef jal ra,8206 84ac: 4591 li a1,4 84ae: 8522 mv a0,s0 84b0: d77ff0ef jal ra,8226 84b4: 4611 li a2,4 84b6: 03200593 li a1,50 84ba: 8522 mv a0,s0 84bc: d4bff0ef jal ra,8206 84c0: 5408 lw a0,40(s0) 84c2: a22ff0ef jal ra,76e4 84c6: 85aa mv a1,a0 84c8: 8522 mv a0,s0 84ca: d6fff0ef jal ra,8238 84ce: 4611 li a2,4 84d0: 03600593 li a1,54 84d4: 8522 mv a0,s0 84d6: d31ff0ef jal ra,8206 84da: 5048 lw a0,36(s0) 84dc: a08ff0ef jal ra,76e4 84e0: 85aa mv a1,a0 84e2: 8522 mv a0,s0 84e4: d55ff0ef jal ra,8238 84e8: 461d li a2,7 84ea: 03d00593 li a1,61 84ee: 8522 mv a0,s0 84f0: d17ff0ef jal ra,8206 84f4: 2c5e lhu a5,28(s0) 84f6: 4c18 lw a4,24(s0) 84f8: 4605 li a2,1 84fa: 8522 mv a0,s0 84fc: 00f706b3 add a3,a4,a5 8500: 0ec68823 sb a2,240(a3) 8504: 00278613 addi a2,a5,2 8508: 0642 slli a2,a2,0x10 850a: 8241 srli a2,a2,0x10 850c: ac52 sh a2,28(s0) 850e: 00178693 addi a3,a5,1 8512: 0294c583 lbu a1,41(s1) 8516: 06c2 slli a3,a3,0x10 8518: 82c1 srli a3,a3,0x10 851a: 96ba add a3,a3,a4 851c: 0eb68823 sb a1,240(a3) 8520: 00378693 addi a3,a5,3 8524: 06c2 slli a3,a3,0x10 8526: 82c1 srli a3,a3,0x10 8528: ac56 sh a3,28(s0) 852a: 02a4c583 lbu a1,42(s1) 852e: 963a add a2,a2,a4 8530: 96ba add a3,a3,a4 8532: 0eb60823 sb a1,240(a2) 8536: 00478613 addi a2,a5,4 853a: 0642 slli a2,a2,0x10 853c: 8241 srli a2,a2,0x10 853e: ac52 sh a2,28(s0) 8540: 02b4c583 lbu a1,43(s1) 8544: 963a add a2,a2,a4 8546: 0eb68823 sb a1,240(a3) 854a: 00578693 addi a3,a5,5 854e: 06c2 slli a3,a3,0x10 8550: 82c1 srli a3,a3,0x10 8552: ac56 sh a3,28(s0) 8554: 02c4c583 lbu a1,44(s1) 8558: 96ba add a3,a3,a4 855a: 0eb60823 sb a1,240(a2) 855e: 00678613 addi a2,a5,6 8562: 0642 slli a2,a2,0x10 8564: 8241 srli a2,a2,0x10 8566: ac52 sh a2,28(s0) 8568: 02d4c583 lbu a1,45(s1) 856c: 079d addi a5,a5,7 856e: 9732 add a4,a4,a2 8570: 0eb68823 sb a1,240(a3) 8574: ac5e sh a5,28(s0) 8576: 02e4c783 lbu a5,46(s1) 857a: 0ef70823 sb a5,240(a4) 857e: d03ff0ef jal ra,8280 8582: 2c4e lhu a1,28(s0) 8584: 4848 lw a0,20(s0) 8586: 0f058593 addi a1,a1,240 858a: 05c2 slli a1,a1,0x10 858c: 81c1 srli a1,a1,0x10 858e: 2d51 jal 8c22 8590: 02844703 lbu a4,40(s0) 8594: 4c1c lw a5,24(s0) 8596: 484c lw a1,20(s0) 8598: 4048 lw a0,4(s0) 859a: a7d8 sb a4,12(a5) 859c: 02944703 lbu a4,41(s0) 85a0: 0044a903 lw s2,4(s1) 85a4: b7d8 sb a4,13(a5) 85a6: 02a44703 lbu a4,42(s0) 85aa: 04300693 li a3,67 85ae: 85018613 addi a2,gp,-1968 # 20000090 85b2: a7f8 sb a4,14(a5) 85b4: 02b44703 lbu a4,43(s0) 85b8: b7f8 sb a4,15(a5) 85ba: 0004a223 sw zero,4(s1) 85be: 8726 mv a4,s1 85c0: 091030ef jal ra,be50 85c4: 8526 mv a0,s1 85c6: 0124a223 sw s2,4(s1) 85ca: e75ff0ef jal ra,843e 85ce: 383c lbu a5,19(s0) 85d0: 0785 addi a5,a5,1 85d2: b83c sb a5,19(s0) 85d4: 4785 li a5,1 85d6: ac7e sh a5,30(s0) 85d8: f63f706f j 53a <__riscv_restore_0> 85dc: 8082 ret 000085de : lwip_init(): 85de: f39f72ef jal t0,516 <__riscv_save_0> 85e2: 2811 jal 85f6 85e4: 24bd jal 8852 85e6: 2002e7b7 lui a5,0x2002e 85ea: b747a783 lw a5,-1164(a5) # 2002db74 85ee: c391 beqz a5,85f2 85f0: 9782 jalr a5 85f2: f49f706f j 53a <__riscv_restore_0> 000085f6 : mem_init(): 85f6: 2000a737 lui a4,0x2000a 85fa: 3bf70713 addi a4,a4,959 # 2000a3bf 85fe: 9b71 andi a4,a4,-4 8600: 96e1ae23 sw a4,-1668(gp) # 200001bc 8604: 2002e7b7 lui a5,0x2002e 8608: bd87a783 lw a5,-1064(a5) # 2002dbd8 860c: 00071123 sh zero,2(a4) 8610: 078d addi a5,a5,3 8612: 9bf1 andi a5,a5,-4 8614: 01079693 slli a3,a5,0x10 8618: 82c1 srli a3,a3,0x10 861a: 97ba add a5,a5,a4 861c: a316 sh a3,0(a4) 861e: 00070223 sb zero,4(a4) 8622: 98f1a023 sw a5,-1664(gp) # 200001c0 8626: 4605 li a2,1 8628: a3d0 sb a2,4(a5) 862a: a396 sh a3,0(a5) 862c: a3b6 sh a3,2(a5) 862e: 96e1ac23 sw a4,-1672(gp) # 200001b8 8632: 8082 ret 00008634 : mem_free(): 8634: c149 beqz a0,86b6 8636: 97c1a783 lw a5,-1668(gp) # 200001bc 863a: 06f56e63 bltu a0,a5,86b6 863e: 9801a583 lw a1,-1664(gp) # 200001c0 8642: 06b57a63 bgeu a0,a1,86b6 8646: 9781a683 lw a3,-1672(gp) # 200001b8 864a: ff850613 addi a2,a0,-8 864e: fe050e23 sb zero,-4(a0) 8652: 97818713 addi a4,gp,-1672 # 200001b8 8656: 00d67363 bgeu a2,a3,865c 865a: c310 sw a2,0(a4) 865c: ff855683 lhu a3,-8(a0) 8660: 96be add a3,a3,a5 8662: 02d60463 beq a2,a3,868a 8666: 0046c803 lbu a6,4(a3) 866a: 02081063 bnez a6,868a 866e: 00d58e63 beq a1,a3,868a 8672: 430c lw a1,0(a4) 8674: 00b69363 bne a3,a1,867a 8678: c310 sw a2,0(a4) 867a: 228e lhu a1,0(a3) 867c: feb51c23 sh a1,-8(a0) 8680: 2296 lhu a3,0(a3) 8682: 40f605b3 sub a1,a2,a5 8686: 96be add a3,a3,a5 8688: a2ae sh a1,2(a3) 868a: ffa55583 lhu a1,-6(a0) 868e: 00b786b3 add a3,a5,a1 8692: 02d60263 beq a2,a3,86b6 8696: 0046c803 lbu a6,4(a3) 869a: 00081e63 bnez a6,86b6 869e: 00072803 lw a6,0(a4) 86a2: 01061363 bne a2,a6,86a8 86a6: c314 sw a3,0(a4) 86a8: ff855703 lhu a4,-8(a0) 86ac: a29a sh a4,0(a3) 86ae: ff855703 lhu a4,-8(a0) 86b2: 97ba add a5,a5,a4 86b4: a3ae sh a1,2(a5) 86b6: 8082 ret 000086b8 : mem_realloc(): 86b8: 058d addi a1,a1,3 86ba: 05c2 slli a1,a1,0x10 86bc: 81c1 srli a1,a1,0x10 86be: 99f1 andi a1,a1,-4 86c0: 05c2 slli a1,a1,0x10 86c2: 81c1 srli a1,a1,0x10 86c4: 4731 li a4,12 86c6: 87ae mv a5,a1 86c8: 00e5f363 bgeu a1,a4,86ce 86cc: 47b1 li a5,12 86ce: 2002e737 lui a4,0x2002e 86d2: bd872603 lw a2,-1064(a4) # 2002dbd8 86d6: 07c2 slli a5,a5,0x10 86d8: 83c1 srli a5,a5,0x10 86da: 060d addi a2,a2,3 86dc: 9a71 andi a2,a2,-4 86de: 0af66063 bltu a2,a5,877e 86e2: 97c1a703 lw a4,-1668(gp) # 200001bc 86e6: 08e56d63 bltu a0,a4,8780 86ea: 9801a683 lw a3,-1664(gp) # 200001c0 86ee: 08d57963 bgeu a0,a3,8780 86f2: ff850693 addi a3,a0,-8 86f6: ff855883 lhu a7,-8(a0) 86fa: 8e99 sub a3,a3,a4 86fc: 06c2 slli a3,a3,0x10 86fe: 82c1 srli a3,a3,0x10 8700: ff888593 addi a1,a7,-8 8704: 8d95 sub a1,a1,a3 8706: 05c2 slli a1,a1,0x10 8708: 81c1 srli a1,a1,0x10 870a: 06f5ea63 bltu a1,a5,877e 870e: 06f58963 beq a1,a5,8780 8712: 01170333 add t1,a4,a7 8716: 00434803 lbu a6,4(t1) 871a: 02081463 bnez a6,8742 871e: 00868593 addi a1,a3,8 8722: 97818813 addi a6,gp,-1672 # 200001b8 8726: 97ae add a5,a5,a1 8728: 00082e03 lw t3,0(a6) 872c: 07c2 slli a5,a5,0x10 872e: 83c1 srli a5,a5,0x10 8730: 00035883 lhu a7,0(t1) 8734: 00f705b3 add a1,a4,a5 8738: 026e1663 bne t3,t1,8764 873c: 00b82023 sw a1,0(a6) 8740: a015 j 8764 8742: 01478813 addi a6,a5,20 8746: 0305ed63 bltu a1,a6,8780 874a: 00868593 addi a1,a3,8 874e: 97ae add a5,a5,a1 8750: 97818813 addi a6,gp,-1672 # 200001b8 8754: 07c2 slli a5,a5,0x10 8756: 00082303 lw t1,0(a6) 875a: 83c1 srli a5,a5,0x10 875c: 00f705b3 add a1,a4,a5 8760: fc65eee3 bltu a1,t1,873c 8764: 01159023 sh a7,0(a1) 8768: a1b6 sh a3,2(a1) 876a: 00058223 sb zero,4(a1) 876e: fef51c23 sh a5,-8(a0) 8772: 2196 lhu a3,0(a1) 8774: 00d60663 beq a2,a3,8780 8778: 9736 add a4,a4,a3 877a: a33e sh a5,2(a4) 877c: 8082 ret 877e: 4501 li a0,0 8780: 8082 ret 00008782 : mem_malloc(): 8782: c539 beqz a0,87d0 8784: 00350713 addi a4,a0,3 8788: 0742 slli a4,a4,0x10 878a: 8341 srli a4,a4,0x10 878c: 9b71 andi a4,a4,-4 878e: 0742 slli a4,a4,0x10 8790: 8341 srli a4,a4,0x10 8792: 46b1 li a3,12 8794: 87ba mv a5,a4 8796: 00d77363 bgeu a4,a3,879c 879a: 47b1 li a5,12 879c: 2002e737 lui a4,0x2002e 87a0: bd872603 lw a2,-1064(a4) # 2002dbd8 87a4: 07c2 slli a5,a5,0x10 87a6: 83c1 srli a5,a5,0x10 87a8: 060d addi a2,a2,3 87aa: 9a71 andi a2,a2,-4 87ac: 4501 li a0,0 87ae: 02f66263 bltu a2,a5,87d2 87b2: 9781a703 lw a4,-1672(gp) # 200001b8 87b6: 97c1ae83 lw t4,-1668(gp) # 200001bc 87ba: 97818593 addi a1,gp,-1672 # 200001b8 87be: 40f60333 sub t1,a2,a5 87c2: 41d706b3 sub a3,a4,t4 87c6: 06c2 slli a3,a3,0x10 87c8: 82c1 srli a3,a3,0x10 87ca: 5e61 li t3,-8 87cc: 0066e463 bltu a3,t1,87d4 87d0: 4501 li a0,0 87d2: 8082 ret 87d4: 00de8533 add a0,t4,a3 87d8: 00454803 lbu a6,4(a0) 87dc: 00055883 lhu a7,0(a0) 87e0: 06081763 bnez a6,884e 87e4: 40de0833 sub a6,t3,a3 87e8: 9846 add a6,a6,a7 87ea: 06f86263 bltu a6,a5,884e 87ee: 01478313 addi t1,a5,20 87f2: 04686263 bltu a6,t1,8836 87f6: 07a1 addi a5,a5,8 87f8: 97b6 add a5,a5,a3 87fa: 07c2 slli a5,a5,0x10 87fc: 83c1 srli a5,a5,0x10 87fe: 00fe8833 add a6,t4,a5 8802: 01181023 sh a7,0(a6) 8806: 00d81123 sh a3,2(a6) 880a: 00080223 sb zero,4(a6) 880e: 4685 li a3,1 8810: a11e sh a5,0(a0) 8812: a154 sb a3,4(a0) 8814: 00085683 lhu a3,0(a6) 8818: 00d60463 beq a2,a3,8820 881c: 96f6 add a3,a3,t4 881e: a2be sh a5,2(a3) 8820: 00a71963 bne a4,a0,8832 8824: 9801a683 lw a3,-1664(gp) # 200001c0 8828: 4781 li a5,0 882a: 2350 lbu a2,4(a4) 882c: ee01 bnez a2,8844 882e: c391 beqz a5,8832 8830: c198 sw a4,0(a1) 8832: 0521 addi a0,a0,8 8834: 8082 ret 8836: 4785 li a5,1 8838: a15c sb a5,4(a0) 883a: b7dd j 8820 883c: 231a lhu a4,0(a4) 883e: 4785 li a5,1 8840: 9776 add a4,a4,t4 8842: b7e5 j 882a 8844: fee69ce3 bne a3,a4,883c 8848: d7ed beqz a5,8832 884a: c194 sw a3,0(a1) 884c: b7dd j 8832 884e: 86c6 mv a3,a7 8850: bfb5 j 87cc 00008852 : memp_init(): 8852: 8281a583 lw a1,-2008(gp) # 20000068 8856: 82c1a683 lw a3,-2004(gp) # 2000006c 885a: 2000c7b7 lui a5,0x2000c 885e: 23378793 addi a5,a5,563 # 2000c233 8862: 2002e737 lui a4,0x2002e 8866: 9bf1 andi a5,a5,-4 8868: c3470713 addi a4,a4,-972 # 2002dc34 886c: 01068513 addi a0,a3,16 8870: 0005d803 lhu a6,0(a1) 8874: 00072023 sw zero,0(a4) 8878: 4601 li a2,0 887a: 00c81863 bne a6,a2,888a 887e: 0689 addi a3,a3,2 8880: 0711 addi a4,a4,4 8882: 0589 addi a1,a1,2 8884: fea696e3 bne a3,a0,8870 8888: 8082 ret 888a: 00072883 lw a7,0(a4) 888e: 0605 addi a2,a2,1 8890: 0642 slli a2,a2,0x10 8892: 0117a023 sw a7,0(a5) 8896: 0006d883 lhu a7,0(a3) 889a: c31c sw a5,0(a4) 889c: 8241 srli a2,a2,0x10 889e: 97c6 add a5,a5,a7 88a0: bfe9 j 887a 000088a2 : memp_malloc(): 88a2: 479d li a5,7 88a4: 00a7ed63 bltu a5,a0,88be 88a8: 2002e7b7 lui a5,0x2002e 88ac: 050a slli a0,a0,0x2 88ae: c3478793 addi a5,a5,-972 # 2002dc34 88b2: 97aa add a5,a5,a0 88b4: 4388 lw a0,0(a5) 88b6: c509 beqz a0,88c0 88b8: 4118 lw a4,0(a0) 88ba: c398 sw a4,0(a5) 88bc: 8082 ret 88be: 4501 li a0,0 88c0: 8082 ret 000088c2 : memp_free(): 88c2: c999 beqz a1,88d8 88c4: 00251793 slli a5,a0,0x2 88c8: 2002e537 lui a0,0x2002e 88cc: c3450513 addi a0,a0,-972 # 2002dc34 88d0: 953e add a0,a0,a5 88d2: 411c lw a5,0(a0) 88d4: c19c sw a5,0(a1) 88d6: c10c sw a1,0(a0) 88d8: 8082 ret 000088da : netif_set_ipaddr(): 88da: c23f72ef jal t0,4fc <__riscv_save_4> 88de: 3198 lbu a4,1(a1) 88e0: 219c lbu a5,0(a1) 88e2: 84aa mv s1,a0 88e4: 0722 slli a4,a4,0x8 88e6: 8f5d or a4,a4,a5 88e8: 21bc lbu a5,2(a1) 88ea: 842e mv s0,a1 88ec: 07c2 slli a5,a5,0x10 88ee: 8f5d or a4,a4,a5 88f0: 31bc lbu a5,3(a1) 88f2: 07e2 slli a5,a5,0x18 88f4: 8fd9 or a5,a5,a4 88f6: 4158 lw a4,4(a0) 88f8: 00e79f63 bne a5,a4,8916 88fc: 3018 lbu a4,1(s0) 88fe: 201c lbu a5,0(s0) 8900: 0722 slli a4,a4,0x8 8902: 8f5d or a4,a4,a5 8904: 203c lbu a5,2(s0) 8906: 07c2 slli a5,a5,0x10 8908: 8f5d or a4,a4,a5 890a: 303c lbu a5,3(s0) 890c: 07e2 slli a5,a5,0x18 890e: 8fd9 or a5,a5,a4 8910: c0dc sw a5,4(s1) 8912: c1ff706f j 530 <__riscv_restore_4> 8916: 9941a503 lw a0,-1644(gp) # 200001d4 891a: 4901 li s2,0 891c: 06400993 li s3,100 8920: c105 beqz a0,8940 8922: 4118 lw a4,0(a0) 8924: 40dc lw a5,4(s1) 8926: 00c52a03 lw s4,12(a0) 892a: 04f71163 bne a4,a5,896c 892e: 4585 li a1,1 8930: 5ad000ef jal ra,96dc 8934: 00190793 addi a5,s2,1 8938: 0ff7f793 andi a5,a5,255 893c: 0329f763 bgeu s3,s2,896a 8940: 99c1a783 lw a5,-1636(gp) # 200001dc 8944: dfc5 beqz a5,88fc 8946: 4398 lw a4,0(a5) 8948: cf19 beqz a4,8966 894a: 40d4 lw a3,4(s1) 894c: 00d71d63 bne a4,a3,8966 8950: 3014 lbu a3,1(s0) 8952: 2018 lbu a4,0(s0) 8954: 06a2 slli a3,a3,0x8 8956: 8ed9 or a3,a3,a4 8958: 2038 lbu a4,2(s0) 895a: 0742 slli a4,a4,0x10 895c: 8ed9 or a3,a3,a4 895e: 3038 lbu a4,3(s0) 8960: 0762 slli a4,a4,0x18 8962: 8f55 or a4,a4,a3 8964: c398 sw a4,0(a5) 8966: 47dc lw a5,12(a5) 8968: bff1 j 8944 896a: 893e mv s2,a5 896c: 8552 mv a0,s4 896e: bf4d j 8920 00008970 : netif_set_addr(): 8970: ba7f72ef jal t0,516 <__riscv_save_0> 8974: 1141 addi sp,sp,-16 8976: c632 sw a2,12(sp) 8978: c436 sw a3,8(sp) 897a: 842a mv s0,a0 897c: f5fff0ef jal ra,88da 8980: 4632 lw a2,12(sp) 8982: 46a2 lw a3,8(sp) 8984: 4781 li a5,0 8986: ca19 beqz a2,899c 8988: 3218 lbu a4,1(a2) 898a: 221c lbu a5,0(a2) 898c: 0722 slli a4,a4,0x8 898e: 8f5d or a4,a4,a5 8990: 223c lbu a5,2(a2) 8992: 07c2 slli a5,a5,0x10 8994: 8f5d or a4,a4,a5 8996: 323c lbu a5,3(a2) 8998: 07e2 slli a5,a5,0x18 899a: 8fd9 or a5,a5,a4 899c: c41c sw a5,8(s0) 899e: 4781 li a5,0 89a0: ca99 beqz a3,89b6 89a2: 3298 lbu a4,1(a3) 89a4: 229c lbu a5,0(a3) 89a6: 0722 slli a4,a4,0x8 89a8: 8f5d or a4,a4,a5 89aa: 22bc lbu a5,2(a3) 89ac: 07c2 slli a5,a5,0x10 89ae: 8f5d or a4,a4,a5 89b0: 32bc lbu a5,3(a3) 89b2: 07e2 slli a5,a5,0x18 89b4: 8fd9 or a5,a5,a4 89b6: c45c sw a5,12(s0) 89b8: 0141 addi sp,sp,16 89ba: b81f706f j 53a <__riscv_restore_0> 000089be : netif_add(): 89be: b59f72ef jal t0,516 <__riscv_save_0> 89c2: cd58 sw a4,28(a0) 89c4: 98c18713 addi a4,gp,-1652 # 200001cc 89c8: 00074883 lbu a7,0(a4) 89cc: 1141 addi sp,sp,-16 89ce: 00052223 sw zero,4(a0) 89d2: 00052423 sw zero,8(a0) 89d6: 00052623 sw zero,12(a0) 89da: 02050923 sb zero,50(a0) 89de: 02052023 sw zero,32(a0) 89e2: 00188313 addi t1,a7,1 89e6: 03150aa3 sb a7,53(a0) 89ea: 01052823 sw a6,16(a0) 89ee: 842a mv s0,a0 89f0: c63e sw a5,12(sp) 89f2: 00670023 sb t1,0(a4) 89f6: f7bff0ef jal ra,8970 89fa: 47b2 lw a5,12(sp) 89fc: 8522 mv a0,s0 89fe: 9782 jalr a5 8a00: e911 bnez a0,8a14 8a02: 98818793 addi a5,gp,-1656 # 200001c8 8a06: 4398 lw a4,0(a5) 8a08: c018 sw a4,0(s0) 8a0a: c380 sw s0,0(a5) 8a0c: 8522 mv a0,s0 8a0e: 0141 addi sp,sp,16 8a10: b2bf706f j 53a <__riscv_restore_0> 8a14: 4401 li s0,0 8a16: bfdd j 8a0c 00008a18 : netif_set_default(): 8a18: 98a1a223 sw a0,-1660(gp) # 200001c4 8a1c: 8082 ret 00008a1e : netif_is_up(): 8a1e: 03254503 lbu a0,50(a0) 8a22: 8905 andi a0,a0,1 8a24: 8082 ret 00008a26 : pbuf_header(): 8a26: 87aa mv a5,a0 8a28: 4501 li a0,0 8a2a: c5a5 beqz a1,8a92 8a2c: c3bd beqz a5,8a92 8a2e: 01059613 slli a2,a1,0x10 8a32: 8241 srli a2,a2,0x10 8a34: 8832 mv a6,a2 8a36: 0005db63 bgez a1,8a4c 8a3a: 40c00833 neg a6,a2 8a3e: 27ba lhu a4,10(a5) 8a40: 0842 slli a6,a6,0x10 8a42: 01085813 srli a6,a6,0x10 8a46: 4505 li a0,1 8a48: 05076563 bltu a4,a6,8a92 8a4c: 27d4 lbu a3,12(a5) 8a4e: 43d8 lw a4,4(a5) 8a50: c681 beqz a3,8a58 8a52: 450d li a0,3 8a54: 02a69163 bne a3,a0,8a76 8a58: 8f0d sub a4,a4,a1 8a5a: 01078693 addi a3,a5,16 8a5e: 4505 li a0,1 8a60: 02d76963 bltu a4,a3,8a92 8a64: c3d8 sw a4,4(a5) 8a66: 27ba lhu a4,10(a5) 8a68: 4501 li a0,0 8a6a: 9732 add a4,a4,a2 8a6c: a7ba sh a4,10(a5) 8a6e: 279a lhu a4,8(a5) 8a70: 963a add a2,a2,a4 8a72: a792 sh a2,8(a5) 8a74: 8082 ret 8a76: 16fd addi a3,a3,-1 8a78: 06c2 slli a3,a3,0x10 8a7a: 82c1 srli a3,a3,0x10 8a7c: 4885 li a7,1 8a7e: 4505 li a0,1 8a80: 00d8e963 bltu a7,a3,8a92 8a84: 0005d763 bgez a1,8a92 8a88: 27b6 lhu a3,10(a5) 8a8a: 0106e463 bltu a3,a6,8a92 8a8e: 8f0d sub a4,a4,a1 8a90: bfd1 j 8a64 8a92: 8082 ret 00008a94 : pbuf_free(): 8a94: a69f72ef jal t0,4fc <__riscv_save_4> 8a98: 4401 li s0,0 8a9a: cd0d beqz a0,8ad4 8a9c: 85aa mv a1,a0 8a9e: 4401 li s0,0 8aa0: 490d li s2,3 8aa2: 4985 li s3,1 8aa4: 25fe lhu a5,14(a1) 8aa6: 17fd addi a5,a5,-1 8aa8: 07c2 slli a5,a5,0x10 8aaa: 83c1 srli a5,a5,0x10 8aac: a5fe sh a5,14(a1) 8aae: e39d bnez a5,8ad4 8ab0: 25dc lbu a5,12(a1) 8ab2: 4184 lw s1,0(a1) 8ab4: 451d li a0,7 8ab6: 01278863 beq a5,s2,8ac6 8aba: 17fd addi a5,a5,-1 8abc: 07c2 slli a5,a5,0x10 8abe: 83c1 srli a5,a5,0x10 8ac0: 00f9ed63 bltu s3,a5,8ada 8ac4: 4519 li a0,6 8ac6: dfdff0ef jal ra,88c2 8aca: 0405 addi s0,s0,1 8acc: 0ff47413 andi s0,s0,255 8ad0: 85a6 mv a1,s1 8ad2: f8e9 bnez s1,8aa4 8ad4: 8522 mv a0,s0 8ad6: a5bf706f j 530 <__riscv_restore_4> 8ada: 852e mv a0,a1 8adc: b59ff0ef jal ra,8634 8ae0: b7ed j 8aca 00008ae2 : pbuf_alloc(): 8ae2: a1bf72ef jal t0,4fc <__riscv_save_4> 8ae6: 4785 li a5,1 8ae8: 00f50d63 beq a0,a5,8b02 8aec: c531 beqz a0,8b38 8aee: 4789 li a5,2 8af0: 04f50663 beq a0,a5,8b3c 8af4: 478d li a5,3 8af6: 04f50563 beq a0,a5,8b40 8afa: 4401 li s0,0 8afc: 8522 mv a0,s0 8afe: a33f706f j 530 <__riscv_restore_4> 8b02: 4481 li s1,0 8b04: 04d1 addi s1,s1,20 8b06: 04b9 addi s1,s1,14 8b08: 04c2 slli s1,s1,0x10 8b0a: 80c1 srli s1,s1,0x10 8b0c: 4789 li a5,2 8b0e: 89b2 mv s3,a2 8b10: 892e mv s2,a1 8b12: 02c7e963 bltu a5,a2,8b44 8b16: ca79 beqz a2,8bec 8b18: 4519 li a0,6 8b1a: d89ff0ef jal ra,88a2 8b1e: 842a mv s0,a0 8b20: dd69 beqz a0,8afa 8b22: 00052223 sw zero,4(a0) 8b26: 01251423 sh s2,8(a0) 8b2a: 01251523 sh s2,10(a0) 8b2e: 00052023 sw zero,0(a0) 8b32: 01350623 sb s3,12(a0) 8b36: a0b5 j 8ba2 8b38: 44d1 li s1,20 8b3a: b7e9 j 8b04 8b3c: 4481 li s1,0 8b3e: b7e1 j 8b06 8b40: 4481 li s1,0 8b42: b7e9 j 8b0c 8b44: 478d li a5,3 8b46: 4401 li s0,0 8b48: faf61ae3 bne a2,a5,8afc 8b4c: 451d li a0,7 8b4e: d55ff0ef jal ra,88a2 8b52: 842a mv s0,a0 8b54: d15d beqz a0,8afa 8b56: 009507b3 add a5,a0,s1 8b5a: 07cd addi a5,a5,19 8b5c: 9bf1 andi a5,a5,-4 8b5e: 2002e737 lui a4,0x2002e 8b62: c15c sw a5,4(a0) 8b64: bd070793 addi a5,a4,-1072 # 2002dbd0 8b68: 43dc lw a5,4(a5) 8b6a: 048d addi s1,s1,3 8b6c: 98f1 andi s1,s1,-4 8b6e: 03978793 addi a5,a5,57 8b72: 9bf1 andi a5,a5,-4 8b74: 01350623 sb s3,12(a0) 8b78: 00052023 sw zero,0(a0) 8b7c: 01251423 sh s2,8(a0) 8b80: 409784b3 sub s1,a5,s1 8b84: bd070993 addi s3,a4,-1072 8b88: 00997363 bgeu s2,s1,8b8e 8b8c: 84ca mv s1,s2 8b8e: 4785 li a5,1 8b90: a426 sh s1,10(s0) 8b92: a47e sh a5,14(s0) 8b94: 409904b3 sub s1,s2,s1 8b98: 4a0d li s4,3 8b9a: 8922 mv s2,s0 8b9c: 4a85 li s5,1 8b9e: 00904763 bgtz s1,8bac 8ba2: 4785 li a5,1 8ba4: a47e sh a5,14(s0) 8ba6: 000406a3 sb zero,13(s0) 8baa: bf89 j 8afc 8bac: 451d li a0,7 8bae: cf5ff0ef jal ra,88a2 8bb2: e509 bnez a0,8bbc 8bb4: 8522 mv a0,s0 8bb6: edfff0ef jal ra,8a94 8bba: b781 j 8afa 8bbc: 0049a783 lw a5,4(s3) 8bc0: 01451623 sh s4,12(a0) 8bc4: 00052023 sw zero,0(a0) 8bc8: 00a92023 sw a0,0(s2) 8bcc: 03978793 addi a5,a5,57 8bd0: a506 sh s1,8(a0) 8bd2: 9bf1 andi a5,a5,-4 8bd4: 00f4f363 bgeu s1,a5,8bda 8bd8: 87a6 mv a5,s1 8bda: 01050713 addi a4,a0,16 8bde: a53e sh a5,10(a0) 8be0: c158 sw a4,4(a0) 8be2: 01551723 sh s5,14(a0) 8be6: 8c9d sub s1,s1,a5 8be8: 892a mv s2,a0 8bea: bf55 j 8b9e 8bec: 00358793 addi a5,a1,3 8bf0: 01348513 addi a0,s1,19 8bf4: 9bf1 andi a5,a5,-4 8bf6: 9971 andi a0,a0,-4 8bf8: 953e add a0,a0,a5 8bfa: 0542 slli a0,a0,0x10 8bfc: 8141 srli a0,a0,0x10 8bfe: b85ff0ef jal ra,8782 8c02: 842a mv s0,a0 8c04: ee050be3 beqz a0,8afa 8c08: 94aa add s1,s1,a0 8c0a: 04cd addi s1,s1,19 8c0c: 98f1 andi s1,s1,-4 8c0e: c144 sw s1,4(a0) 8c10: 01251423 sh s2,8(a0) 8c14: 01251523 sh s2,10(a0) 8c18: 00052023 sw zero,0(a0) 8c1c: 00050623 sb zero,12(a0) 8c20: b749 j 8ba2 00008c22 : pbuf_realloc(): 8c22: 251e lhu a5,8(a0) 8c24: 04f5fa63 bgeu a1,a5,8c78 8c28: 8eff72ef jal t0,516 <__riscv_save_0> 8c2c: 842a mv s0,a0 8c2e: 84ae mv s1,a1 8c30: 40f587b3 sub a5,a1,a5 8c34: 242e lhu a1,10(s0) 8c36: 0295e963 bltu a1,s1,8c68 8c3a: 245c lbu a5,12(s0) 8c3c: ef81 bnez a5,8c54 8c3e: 00958b63 beq a1,s1,8c54 8c42: 404c lw a1,4(s0) 8c44: 8522 mv a0,s0 8c46: 8d81 sub a1,a1,s0 8c48: 95a6 add a1,a1,s1 8c4a: 05c2 slli a1,a1,0x10 8c4c: 81c1 srli a1,a1,0x10 8c4e: a6bff0ef jal ra,86b8 8c52: 842a mv s0,a0 8c54: 4008 lw a0,0(s0) 8c56: a426 sh s1,10(s0) 8c58: a406 sh s1,8(s0) 8c5a: c119 beqz a0,8c60 8c5c: e39ff0ef jal ra,8a94 8c60: 00042023 sw zero,0(s0) 8c64: 8d7f706f j 53a <__riscv_restore_0> 8c68: 241a lhu a4,8(s0) 8c6a: 8c8d sub s1,s1,a1 8c6c: 04c2 slli s1,s1,0x10 8c6e: 973e add a4,a4,a5 8c70: a41a sh a4,8(s0) 8c72: 80c1 srli s1,s1,0x10 8c74: 4000 lw s0,0(s0) 8c76: bf7d j 8c34 8c78: 8082 ret 00008c7a : pbuf_clen(): 8c7a: 4781 li a5,0 8c7c: e119 bnez a0,8c82 8c7e: 853e mv a0,a5 8c80: 8082 ret 8c82: 0785 addi a5,a5,1 8c84: 0ff7f793 andi a5,a5,255 8c88: 4108 lw a0,0(a0) 8c8a: bfcd j 8c7c 00008c8c : pbuf_ref(): 8c8c: c501 beqz a0,8c94 8c8e: 257e lhu a5,14(a0) 8c90: 0785 addi a5,a5,1 8c92: a57e sh a5,14(a0) 8c94: 8082 ret 00008c96 : pbuf_cat(): 8c96: cd09 beqz a0,8cb0 8c98: e199 bnez a1,8c9e 8c9a: 8082 ret 8c9c: 853a mv a0,a4 8c9e: 259e lhu a5,8(a1) 8ca0: 2516 lhu a3,8(a0) 8ca2: 4118 lw a4,0(a0) 8ca4: 97b6 add a5,a5,a3 8ca6: 07c2 slli a5,a5,0x10 8ca8: 83c1 srli a5,a5,0x10 8caa: a51e sh a5,8(a0) 8cac: fb65 bnez a4,8c9c 8cae: c10c sw a1,0(a0) 8cb0: 8082 ret 00008cb2 : pbuf_chain(): 8cb2: 865f72ef jal t0,516 <__riscv_save_0> 8cb6: 842e mv s0,a1 8cb8: fdfff0ef jal ra,8c96 8cbc: 8522 mv a0,s0 8cbe: fcfff0ef jal ra,8c8c 8cc2: 879f706f j 53a <__riscv_restore_0> 00008cc6 : pbuf_copy(): 8cc6: cd3d beqz a0,8d44 8cc8: 835f72ef jal t0,4fc <__riscv_save_4> 8ccc: 842a mv s0,a0 8cce: 84ae mv s1,a1 8cd0: 5559 li a0,-10 8cd2: c5ad beqz a1,8d3c 8cd4: 241a lhu a4,8(s0) 8cd6: 259e lhu a5,8(a1) 8cd8: 06f76263 bltu a4,a5,8d3c 8cdc: 4901 li s2,0 8cde: 4a01 li s4,0 8ce0: 00a45983 lhu s3,10(s0) 8ce4: 24be lhu a5,10(s1) 8ce6: 414989b3 sub s3,s3,s4 8cea: 412787b3 sub a5,a5,s2 8cee: 04f9c963 blt s3,a5,8d40 8cf2: 01079993 slli s3,a5,0x10 8cf6: 4048 lw a0,4(s0) 8cf8: 40cc lw a1,4(s1) 8cfa: 0109d993 srli s3,s3,0x10 8cfe: 9552 add a0,a0,s4 8d00: 95ca add a1,a1,s2 8d02: 864e mv a2,s3 8d04: 1cc040ef jal ra,ced0 8d08: 9a4e add s4,s4,s3 8d0a: 243e lhu a5,10(s0) 8d0c: 0a42 slli s4,s4,0x10 8d0e: 994e add s2,s2,s3 8d10: 0942 slli s2,s2,0x10 8d12: 010a5a13 srli s4,s4,0x10 8d16: 01095913 srli s2,s2,0x10 8d1a: 01479463 bne a5,s4,8d22 8d1e: 4000 lw s0,0(s0) 8d20: 4a01 li s4,0 8d22: 24be lhu a5,10(s1) 8d24: 00f96563 bltu s2,a5,8d2e 8d28: 4084 lw s1,0(s1) 8d2a: cc99 beqz s1,8d48 8d2c: 4901 li s2,0 8d2e: 24ba lhu a4,10(s1) 8d30: 249e lhu a5,8(s1) 8d32: 02f71663 bne a4,a5,8d5e 8d36: 409c lw a5,0(s1) 8d38: c39d beqz a5,8d5e 8d3a: 555d li a0,-9 8d3c: ff4f706f j 530 <__riscv_restore_4> 8d40: 09c2 slli s3,s3,0x10 8d42: bf55 j 8cf6 8d44: 5559 li a0,-10 8d46: 8082 ret 8d48: c809 beqz s0,8d5a 8d4a: 4901 li s2,0 8d4c: 243a lhu a4,10(s0) 8d4e: 241e lhu a5,8(s0) 8d50: 00f71463 bne a4,a5,8d58 8d54: 401c lw a5,0(s0) 8d56: f3f5 bnez a5,8d3a 8d58: f4c1 bnez s1,8ce0 8d5a: 4501 li a0,0 8d5c: b7c5 j 8d3c 8d5e: f47d bnez s0,8d4c 8d60: b741 j 8ce0 00008d62 : raw_input(): 8d62: f9af72ef jal t0,4fc <__riscv_save_4> 8d66: 00452903 lw s2,4(a0) 8d6a: 89aa mv s3,a0 8d6c: 00994783 lbu a5,9(s2) 8d70: 00894503 lbu a0,8(s2) 8d74: 4a01 li s4,0 8d76: 07a2 slli a5,a5,0x8 8d78: 8d5d or a0,a0,a5 8d7a: 939fe0ef jal ra,76b2 8d7e: 0ff57a93 andi s5,a0,255 8d82: 9901a403 lw s0,-1648(gp) # 200001d0 8d86: 0931 addi s2,s2,12 8d88: 99018493 addi s1,gp,-1648 # 200001d0 8d8c: e401 bnez s0,8d94 8d8e: 4501 li a0,0 8d90: fa0f706f j 530 <__riscv_restore_4> 8d94: 281c lbu a5,16(s0) 8d96: 4501 li a0,0 8d98: 03579463 bne a5,s5,8dc0 8d9c: 485c lw a5,20(s0) 8d9e: c38d beqz a5,8dc0 8da0: 4c08 lw a0,24(s0) 8da2: 86ca mv a3,s2 8da4: 864e mv a2,s3 8da6: 85a2 mv a1,s0 8da8: 9782 jalr a5 8daa: c919 beqz a0,8dc0 8dac: 000a0863 beqz s4,8dbc 8db0: 445c lw a5,12(s0) 8db2: 00fa2623 sw a5,12(s4) 8db6: 409c lw a5,0(s1) 8db8: c080 sw s0,0(s1) 8dba: c45c sw a5,12(s0) 8dbc: 4505 li a0,1 8dbe: 4981 li s3,0 8dc0: 445c lw a5,12(s0) 8dc2: 8a22 mv s4,s0 8dc4: f571 bnez a0,8d90 8dc6: 843e mv s0,a5 8dc8: b7d1 j 8d8c 00008dca : raw_bind(): 8dca: 4781 li a5,0 8dcc: c999 beqz a1,8de2 8dce: 3198 lbu a4,1(a1) 8dd0: 219c lbu a5,0(a1) 8dd2: 0722 slli a4,a4,0x8 8dd4: 8f5d or a4,a4,a5 8dd6: 21bc lbu a5,2(a1) 8dd8: 07c2 slli a5,a5,0x10 8dda: 8f5d or a4,a4,a5 8ddc: 31bc lbu a5,3(a1) 8dde: 07e2 slli a5,a5,0x18 8de0: 8fd9 or a5,a5,a4 8de2: c11c sw a5,0(a0) 8de4: 4501 li a0,0 8de6: 8082 ret 00008de8 : raw_connect(): 8de8: 4781 li a5,0 8dea: c999 beqz a1,8e00 8dec: 3198 lbu a4,1(a1) 8dee: 219c lbu a5,0(a1) 8df0: 0722 slli a4,a4,0x8 8df2: 8f5d or a4,a4,a5 8df4: 21bc lbu a5,2(a1) 8df6: 07c2 slli a5,a5,0x10 8df8: 8f5d or a4,a4,a5 8dfa: 31bc lbu a5,3(a1) 8dfc: 07e2 slli a5,a5,0x18 8dfe: 8fd9 or a5,a5,a4 8e00: c15c sw a5,4(a0) 8e02: 4501 li a0,0 8e04: 8082 ret 00008e06 : raw_recv(): 8e06: c94c sw a1,20(a0) 8e08: cd10 sw a2,24(a0) 8e0a: 8082 ret 00008e0c : raw_sendto(): 8e0c: ef0f72ef jal t0,4fc <__riscv_save_4> 8e10: 84ae mv s1,a1 8e12: 892a mv s2,a0 8e14: 45d1 li a1,20 8e16: 8526 mv a0,s1 8e18: 89b2 mv s3,a2 8e1a: c0dff0ef jal ra,8a26 8e1e: c915 beqz a0,8e52 8e20: 4601 li a2,0 8e22: 4581 li a1,0 8e24: 4505 li a0,1 8e26: cbdff0ef jal ra,8ae2 8e2a: 842a mv s0,a0 8e2c: e509 bnez a0,8e36 8e2e: 597d li s2,-1 8e30: 854a mv a0,s2 8e32: efef706f j 530 <__riscv_restore_4> 8e36: 85a6 mv a1,s1 8e38: e7bff0ef jal ra,8cb2 8e3c: 854e mv a0,s3 8e3e: 8b3fe0ef jal ra,76f0 8e42: ed19 bnez a0,8e60 8e44: 5971 li s2,-4 8e46: fe9405e3 beq s0,s1,8e30 8e4a: 8522 mv a0,s0 8e4c: c49ff0ef jal ra,8a94 8e50: b7c5 j 8e30 8e52: 55b1 li a1,-20 8e54: 8526 mv a0,s1 8e56: bd1ff0ef jal ra,8a26 8e5a: f971 bnez a0,8e2e 8e5c: 8426 mv s0,s1 8e5e: bff9 j 8e3c 8e60: 85ca mv a1,s2 8e62: 00090563 beqz s2,8e6c 8e66: 00092783 lw a5,0(s2) 8e6a: e399 bnez a5,8e70 8e6c: 00450593 addi a1,a0,4 8e70: 01094783 lbu a5,16(s2) 8e74: 00a94703 lbu a4,10(s2) 8e78: 00b94683 lbu a3,11(s2) 8e7c: 882a mv a6,a0 8e7e: 864e mv a2,s3 8e80: 8522 mv a0,s0 8e82: b55fe0ef jal ra,79d6 8e86: 892a mv s2,a0 8e88: bf7d j 8e46 00008e8a : raw_send(): 8e8a: e8cf72ef jal t0,516 <__riscv_save_0> 8e8e: 00450613 addi a2,a0,4 8e92: f7bff0ef jal ra,8e0c 8e96: ea4f706f j 53a <__riscv_restore_0> 00008e9a : raw_remove(): 8e9a: e7cf72ef jal t0,516 <__riscv_save_0> 8e9e: 99018713 addi a4,gp,-1648 # 200001d0 8ea2: 431c lw a5,0(a4) 8ea4: 85aa mv a1,a0 8ea6: 02a79063 bne a5,a0,8ec6 8eaa: 455c lw a5,12(a0) 8eac: c31c sw a5,0(a4) 8eae: 4501 li a0,0 8eb0: a13ff0ef jal ra,88c2 8eb4: e86f706f j 53a <__riscv_restore_0> 8eb8: 47d8 lw a4,12(a5) 8eba: c709 beqz a4,8ec4 8ebc: 00b71463 bne a4,a1,8ec4 8ec0: 45d8 lw a4,12(a1) 8ec2: c7d8 sw a4,12(a5) 8ec4: 47dc lw a5,12(a5) 8ec6: fbed bnez a5,8eb8 8ec8: b7dd j 8eae 00008eca : raw_new(): 8eca: e4cf72ef jal t0,516 <__riscv_save_0> 8ece: 84aa mv s1,a0 8ed0: 4501 li a0,0 8ed2: 9d1ff0ef jal ra,88a2 8ed6: 842a mv s0,a0 8ed8: cd11 beqz a0,8ef4 8eda: 4671 li a2,28 8edc: 4581 li a1,0 8ede: e68f70ef jal ra,546 8ee2: f8000793 li a5,-128 8ee6: b43c sb a5,11(s0) 8ee8: 99018793 addi a5,gp,-1648 # 200001d0 8eec: 4398 lw a4,0(a5) 8eee: a804 sb s1,16(s0) 8ef0: c380 sw s0,0(a5) 8ef2: c458 sw a4,12(s0) 8ef4: 8522 mv a0,s0 8ef6: e44f706f j 53a <__riscv_restore_0> 00008efa : tcp_new_port(): 8efa: 9941a683 lw a3,-1644(gp) # 200001d4 8efe: 9ac1a603 lw a2,-1620(gp) # 200001ec 8f02: 99c1a583 lw a1,-1636(gp) # 200001dc 8f06: 8341d503 lhu a0,-1996(gp) # 20000074 8f0a: 83418793 addi a5,gp,-1996 # 20000074 8f0e: 00150713 addi a4,a0,1 8f12: 01071513 slli a0,a4,0x10 8f16: 01071813 slli a6,a4,0x10 8f1a: 8141 srli a0,a0,0x10 8f1c: 00085363 bgez a6,8f22 8f20: 6505 lui a0,0x1 8f22: 8736 mv a4,a3 8f24: e719 bnez a4,8f32 8f26: 8732 mv a4,a2 8f28: eb19 bnez a4,8f3e 8f2a: 872e mv a4,a1 8f2c: ef19 bnez a4,8f4a 8f2e: a38a sh a0,0(a5) 8f30: 8082 ret 8f32: 01c75803 lhu a6,28(a4) 8f36: fca80ce3 beq a6,a0,8f0e 8f3a: 4758 lw a4,12(a4) 8f3c: b7e5 j 8f24 8f3e: 01c75803 lhu a6,28(a4) 8f42: fca806e3 beq a6,a0,8f0e 8f46: 4758 lw a4,12(a4) 8f48: b7c5 j 8f28 8f4a: 01c75803 lhu a6,28(a4) 8f4e: fca800e3 beq a6,a0,8f0e 8f52: 4758 lw a4,12(a4) 8f54: bfe1 j 8f2c 00008f56 : tcp_bind(): 8f56: 491c lw a5,16(a0) 8f58: 10079663 bnez a5,9064 8f5c: da0f72ef jal t0,4fc <__riscv_save_4> 8f60: 1141 addi sp,sp,-16 8f62: 84aa mv s1,a0 8f64: 8432 mv s0,a2 8f66: e611 bnez a2,8f72 8f68: c62e sw a1,12(sp) 8f6a: f91ff0ef jal ra,8efa 8f6e: 45b2 lw a1,12(sp) 8f70: 842a mv s0,a0 8f72: 99c1a703 lw a4,-1636(gp) # 200001dc 8f76: e731 bnez a4,8fc2 8f78: 9941a703 lw a4,-1644(gp) # 200001d4 8f7c: eb25 bnez a4,8fec 8f7e: 9981a983 lw s3,-1640(gp) # 200001d8 8f82: 99818913 addi s2,gp,-1640 # 200001d8 8f86: 874e mv a4,s3 8f88: e759 bnez a4,9016 8f8a: 9ac1a783 lw a5,-1620(gp) # 200001ec 8f8e: ebcd bnez a5,9040 8f90: c185 beqz a1,8fb0 8f92: 3198 lbu a4,1(a1) 8f94: 219c lbu a5,0(a1) 8f96: 0722 slli a4,a4,0x8 8f98: 8f5d or a4,a4,a5 8f9a: 21bc lbu a5,2(a1) 8f9c: 07c2 slli a5,a5,0x10 8f9e: 8f5d or a4,a4,a5 8fa0: 31bc lbu a5,3(a1) 8fa2: 07e2 slli a5,a5,0x18 8fa4: 8fd9 or a5,a5,a4 8fa6: c789 beqz a5,8fb0 8fa8: 4611 li a2,4 8faa: 8526 mv a0,s1 8fac: 725030ef jal ra,ced0 8fb0: acc2 sh s0,28(s1) 8fb2: 0134a623 sw s3,12(s1) 8fb6: 00992023 sw s1,0(s2) 8fba: 4501 li a0,0 8fbc: 0141 addi sp,sp,16 8fbe: d72f706f j 530 <__riscv_restore_4> 8fc2: 2f5e lhu a5,28(a4) 8fc4: 02879263 bne a5,s0,8fe8 8fc8: 4310 lw a2,0(a4) 8fca: ce59 beqz a2,9068 8fcc: cdd1 beqz a1,9068 8fce: 3194 lbu a3,1(a1) 8fd0: 219c lbu a5,0(a1) 8fd2: 06a2 slli a3,a3,0x8 8fd4: 8edd or a3,a3,a5 8fd6: 21bc lbu a5,2(a1) 8fd8: 07c2 slli a5,a5,0x10 8fda: 8edd or a3,a3,a5 8fdc: 31bc lbu a5,3(a1) 8fde: 07e2 slli a5,a5,0x18 8fe0: 8fd5 or a5,a5,a3 8fe2: c3d9 beqz a5,9068 8fe4: 08f60263 beq a2,a5,9068 8fe8: 4758 lw a4,12(a4) 8fea: b771 j 8f76 8fec: 2f5e lhu a5,28(a4) 8fee: 02879263 bne a5,s0,9012 8ff2: 4310 lw a2,0(a4) 8ff4: ca35 beqz a2,9068 8ff6: c9ad beqz a1,9068 8ff8: 3194 lbu a3,1(a1) 8ffa: 219c lbu a5,0(a1) 8ffc: 06a2 slli a3,a3,0x8 8ffe: 8edd or a3,a3,a5 9000: 21bc lbu a5,2(a1) 9002: 07c2 slli a5,a5,0x10 9004: 8edd or a3,a3,a5 9006: 31bc lbu a5,3(a1) 9008: 07e2 slli a5,a5,0x18 900a: 8fd5 or a5,a5,a3 900c: cfb1 beqz a5,9068 900e: 04f60d63 beq a2,a5,9068 9012: 4758 lw a4,12(a4) 9014: b7a5 j 8f7c 9016: 2f5e lhu a5,28(a4) 9018: 02879263 bne a5,s0,903c 901c: 4310 lw a2,0(a4) 901e: c629 beqz a2,9068 9020: c5a1 beqz a1,9068 9022: 3194 lbu a3,1(a1) 9024: 219c lbu a5,0(a1) 9026: 06a2 slli a3,a3,0x8 9028: 8edd or a3,a3,a5 902a: 21bc lbu a5,2(a1) 902c: 07c2 slli a5,a5,0x10 902e: 8edd or a3,a3,a5 9030: 31bc lbu a5,3(a1) 9032: 07e2 slli a5,a5,0x18 9034: 8fd5 or a5,a5,a3 9036: cb8d beqz a5,9068 9038: 02f60863 beq a2,a5,9068 903c: 4758 lw a4,12(a4) 903e: b7a9 j 8f88 9040: 2fda lhu a4,28(a5) 9042: 00871f63 bne a4,s0,9060 9046: 3194 lbu a3,1(a1) 9048: 2198 lbu a4,0(a1) 904a: 06a2 slli a3,a3,0x8 904c: 8ed9 or a3,a3,a4 904e: 21b8 lbu a4,2(a1) 9050: 0742 slli a4,a4,0x10 9052: 8ed9 or a3,a3,a4 9054: 31b8 lbu a4,3(a1) 9056: 0762 slli a4,a4,0x18 9058: 8f55 or a4,a4,a3 905a: 4394 lw a3,0(a5) 905c: 00e68663 beq a3,a4,9068 9060: 47dc lw a5,12(a5) 9062: b735 j 8f8e 9064: 554d li a0,-13 9066: 8082 ret 9068: 5555 li a0,-11 906a: bf89 j 8fbc 0000906c : tcp_update_rcv_ann_wnd(): 906c: 87aa mv a5,a0 906e: 02c55803 lhu a6,44(a0) # 102c 9072: 5914 lw a3,48(a0) 9074: 3bd2 lhu a2,52(a5) 9076: 550c lw a1,40(a0) 9078: 0407d883 lhu a7,64(a5) 907c: 40d80533 sub a0,a6,a3 9080: 8205 srli a2,a2,0x1 9082: 952e add a0,a0,a1 9084: 8732 mv a4,a2 9086: 00c8f363 bgeu a7,a2,908c 908a: 8746 mv a4,a7 908c: 0742 slli a4,a4,0x10 908e: 8341 srli a4,a4,0x10 9090: 40e50733 sub a4,a0,a4 9094: 00074563 bltz a4,909e 9098: 03079723 sh a6,46(a5) 909c: 8082 ret 909e: 40d58733 sub a4,a1,a3 90a2: 00e05663 blez a4,90ae 90a6: 02079723 sh zero,46(a5) 90aa: 4501 li a0,0 90ac: 8082 ret 90ae: 8e8d sub a3,a3,a1 90b0: b7f6 sh a3,46(a5) 90b2: bfe5 j 90aa 000090b4 : tcp_recved(): 90b4: c62f72ef jal t0,516 <__riscv_save_0> 90b8: 355e lhu a5,44(a0) 90ba: 842a mv s0,a0 90bc: 95be add a1,a1,a5 90be: 05c2 slli a1,a1,0x10 90c0: 395e lhu a5,52(a0) 90c2: 81c1 srli a1,a1,0x10 90c4: b54e sh a1,44(a0) 90c6: 00b7f363 bgeu a5,a1,90cc 90ca: b55e sh a5,44(a0) 90cc: 8522 mv a0,s0 90ce: f9fff0ef jal ra,906c 90d2: 385e lhu a5,52(s0) 90d4: 8389 srli a5,a5,0x2 90d6: 00f54b63 blt a0,a5,90ec 90da: 02644783 lbu a5,38(s0) 90de: 8522 mv a0,s0 90e0: 0027e793 ori a5,a5,2 90e4: 02f40323 sb a5,38(s0) 90e8: 3e2020ef jal ra,b4ca 90ec: c4ef706f j 53a <__riscv_restore_0> 000090f0 : tcp_seg_free(): 90f0: c26f72ef jal t0,516 <__riscv_save_0> 90f4: 1141 addi sp,sp,-16 90f6: 4401 li s0,0 90f8: cd09 beqz a0,9112 90fa: 85aa mv a1,a0 90fc: 4148 lw a0,4(a0) 90fe: 4401 li s0,0 9100: c511 beqz a0,910c 9102: c62e sw a1,12(sp) 9104: 991ff0ef jal ra,8a94 9108: 45b2 lw a1,12(sp) 910a: 842a mv s0,a0 910c: 4511 li a0,4 910e: fb4ff0ef jal ra,88c2 9112: 8522 mv a0,s0 9114: 0141 addi sp,sp,16 9116: c24f706f j 53a <__riscv_restore_0> 0000911a : tcp_segs_free(): 911a: bfcf72ef jal t0,516 <__riscv_save_0> 911e: 4401 li s0,0 9120: e501 bnez a0,9128 9122: 8522 mv a0,s0 9124: c16f706f j 53a <__riscv_restore_0> 9128: 4104 lw s1,0(a0) 912a: fc7ff0ef jal ra,90f0 912e: 942a add s0,s0,a0 9130: 0ff47413 andi s0,s0,255 9134: 8526 mv a0,s1 9136: b7ed j 9120 00009138 : tcp_seg_copy(): 9138: bdef72ef jal t0,516 <__riscv_save_0> 913c: 1141 addi sp,sp,-16 913e: c62a sw a0,12(sp) 9140: 4511 li a0,4 9142: f60ff0ef jal ra,88a2 9146: 842a mv s0,a0 9148: c901 beqz a0,9158 914a: 45b2 lw a1,12(sp) 914c: 4651 li a2,20 914e: 583030ef jal ra,ced0 9152: 4048 lw a0,4(s0) 9154: b39ff0ef jal ra,8c8c 9158: 8522 mv a0,s0 915a: 0141 addi sp,sp,16 915c: bdef706f j 53a <__riscv_restore_0> 00009160 : tcp_arg(): 9160: cd0c sw a1,24(a0) 9162: 8082 ret 00009164 : tcp_recv(): 9164: 08b52823 sw a1,144(a0) 9168: 8082 ret 0000916a : tcp_sent(): 916a: 08b52623 sw a1,140(a0) 916e: 8082 ret 00009170 : tcp_err(): 9170: 08b52e23 sw a1,156(a0) 9174: 8082 ret 00009176 : tcp_poll(): 9176: 08b52c23 sw a1,152(a0) 917a: 02c50ea3 sb a2,61(a0) 917e: 8082 ret 00009180 : tcp_pcb_purge(): 9180: 491c lw a5,16(a0) 9182: 4705 li a4,1 9184: 04f77463 bgeu a4,a5,91cc 9188: 4729 li a4,10 918a: 04e78163 beq a5,a4,91cc 918e: b88f72ef jal t0,516 <__riscv_save_0> 9192: 842a mv s0,a0 9194: 08852503 lw a0,136(a0) 9198: c509 beqz a0,91a2 919a: 8fbff0ef jal ra,8a94 919e: 08042423 sw zero,136(s0) 91a2: 08442503 lw a0,132(s0) 91a6: 57fd li a5,-1 91a8: bc7e sh a5,62(s0) 91aa: f71ff0ef jal ra,911a 91ae: 5c68 lw a0,124(s0) 91b0: 08042223 sw zero,132(s0) 91b4: f67ff0ef jal ra,911a 91b8: 08042503 lw a0,128(s0) 91bc: f5fff0ef jal ra,911a 91c0: 06042e23 sw zero,124(s0) 91c4: 08042023 sw zero,128(s0) 91c8: b72f706f j 53a <__riscv_restore_0> 91cc: 8082 ret 000091ce : tcp_slowtmr(): 91ce: b18f72ef jal t0,4e6 <__riscv_save_12> 91d2: 2002e4b7 lui s1,0x2002e 91d6: b8c48793 addi a5,s1,-1140 # 2002db8c 91da: 9a018713 addi a4,gp,-1632 # 200001e0 91de: 0187cc03 lbu s8,24(a5) 91e2: 431c lw a5,0(a4) 91e4: 6ab5 lui s5,0xd 91e6: 0785 addi a5,a5,1 91e8: 9941ad03 lw s10,-1644(gp) # 200001d4 91ec: c31c sw a5,0(a4) 91ee: 06600913 li s2,102 91f2: 4a01 li s4,0 91f4: b8c48493 addi s1,s1,-1140 91f8: 9a018413 addi s0,gp,-1632 # 200001e0 91fc: 99418993 addi s3,gp,-1644 # 200001d4 9200: 4c8d li s9,3 9202: 3dca8a93 addi s5,s5,988 # d3dc 9206: 85418b13 addi s6,gp,-1964 # 20000094 920a: 000d1a63 bnez s10,921e 920e: 9ac1a403 lw s0,-1620(gp) # 200001ec 9212: 9ac18493 addi s1,gp,-1620 # 200001ec 9216: 24041963 bnez s0,9468 921a: b08f706f j 522 <__riscv_restore_12> 921e: 197d addi s2,s2,-1 9220: 0ff97913 andi s2,s2,255 9224: fe090be3 beqz s2,921a 9228: 052d4603 lbu a2,82(s10) 922c: 010d2683 lw a3,16(s10) 9230: 4d85 li s11,1 9232: 02cc0263 beq s8,a2,9256 9236: 0b0d4d83 lbu s11,176(s10) 923a: 100d8463 beqz s11,9342 923e: 0acd2703 lw a4,172(s10) 9242: 01bb06b3 add a3,s6,s11 9246: fff6c683 lbu a3,-1(a3) 924a: 0705 addi a4,a4,1 924c: 0aed2623 sw a4,172(s10) 9250: 0cd77c63 bgeu a4,a3,9328 9254: 4d81 li s11,0 9256: 010d2703 lw a4,16(s10) 925a: 4699 li a3,6 925c: 00d71d63 bne a4,a3,9276 9260: 038d2603 lw a2,56(s10) 9264: 4014 lw a3,0(s0) 9266: 8e91 sub a3,a3,a2 9268: 4c90 lw a2,24(s1) 926a: 00d67663 bgeu a2,a3,9276 926e: 001d8793 addi a5,s11,1 9272: 0ff7fd93 andi s11,a5,255 9276: 008d5683 lhu a3,8(s10) 927a: 4b81 li s7,0 927c: 8aa1 andi a3,a3,8 927e: ce95 beqz a3,92ba 9280: 4691 li a3,4 9282: 00d70563 beq a4,a3,928c 9286: 469d li a3,7 9288: 02d71963 bne a4,a3,92ba 928c: 0a4d2883 lw a7,164(s10) 9290: 0a8d2683 lw a3,168(s10) 9294: 0a0d2503 lw a0,160(s10) 9298: 4ccc lw a1,28(s1) 929a: 02d886b3 mul a3,a7,a3 929e: 4010 lw a2,0(s0) 92a0: 038d2703 lw a4,56(s10) 92a4: 8e19 sub a2,a2,a4 92a6: 96aa add a3,a3,a0 92a8: 02b6d6b3 divu a3,a3,a1 92ac: 10c6fc63 bgeu a3,a2,93c4 92b0: 001d8793 addi a5,s11,1 92b4: 0ff7fd93 andi s11,a5,255 92b8: 4b85 li s7,1 92ba: 084d2503 lw a0,132(s10) 92be: c105 beqz a0,92de 92c0: 038d2703 lw a4,56(s10) 92c4: 4014 lw a3,0(s0) 92c6: 4619 li a2,6 92c8: 8e99 sub a3,a3,a4 92ca: 050d1703 lh a4,80(s10) 92ce: 02c70733 mul a4,a4,a2 92d2: 00e6e663 bltu a3,a4,92de 92d6: e45ff0ef jal ra,911a 92da: 080d2223 sw zero,132(s10) 92de: 010d2703 lw a4,16(s10) 92e2: 11971463 bne a4,s9,93ea 92e6: 038d2683 lw a3,56(s10) 92ea: 4018 lw a4,0(s0) 92ec: 8f15 sub a4,a4,a3 92ee: 4c94 lw a3,24(s1) 92f0: 10e6e863 bltu a3,a4,9400 92f4: 100d9663 bnez s11,9400 92f8: 03cd4783 lbu a5,60(s10) 92fc: 03dd4703 lbu a4,61(s10) 9300: 0785 addi a5,a5,1 9302: 0ff7f793 andi a5,a5,255 9306: 02fd0e23 sb a5,60(s10) 930a: 00e7eb63 bltu a5,a4,9320 930e: 098d2783 lw a5,152(s10) 9312: 020d0e23 sb zero,60(s10) 9316: 14079263 bnez a5,945a 931a: 856a mv a0,s10 931c: 1ae020ef jal ra,b4ca 9320: 8a6a mv s4,s10 9322: 00cd2d03 lw s10,12(s10) 9326: b5d5 j 920a 9328: 0a0d2623 sw zero,172(s10) 932c: 4719 li a4,6 932e: 01b76663 bltu a4,s11,933a 9332: 001d8793 addi a5,s11,1 9336: 0afd0823 sb a5,176(s10) 933a: 856a mv a0,s10 933c: 770020ef jal ra,baac 9340: bf11 j 9254 9342: 03ed1703 lh a4,62(s10) 9346: 00074563 bltz a4,9350 934a: 0705 addi a4,a4,1 934c: 02ed1f23 sh a4,62(s10) 9350: 080d2703 lw a4,128(s10) 9354: f00700e3 beqz a4,9254 9358: 03ed1583 lh a1,62(s10) 935c: 050d1703 lh a4,80(s10) 9360: eeb75ae3 bge a4,a1,9254 9364: 02dcf463 bgeu s9,a3,938c 9368: 04cd1703 lh a4,76(s10) 936c: 04ed1683 lh a3,78(s10) 9370: 47b1 li a5,12 9372: 870d srai a4,a4,0x3 9374: 9736 add a4,a4,a3 9376: 0ff67693 andi a3,a2,255 937a: 00c7f363 bgeu a5,a2,9380 937e: 46b1 li a3,12 9380: 96d6 add a3,a3,s5 9382: 2294 lbu a3,0(a3) 9384: 00d71733 sll a4,a4,a3 9388: 04ed1823 sh a4,80(s10) 938c: 05ad5683 lhu a3,90(s10) 9390: 064d5703 lhu a4,100(s10) 9394: 020d1f23 sh zero,62(s10) 9398: 00e6f363 bgeu a3,a4,939e 939c: 8736 mv a4,a3 939e: 0742 slli a4,a4,0x10 93a0: 8341 srli a4,a4,0x10 93a2: 040d5683 lhu a3,64(s10) 93a6: 8305 srli a4,a4,0x1 93a8: 04ed1e23 sh a4,92(s10) 93ac: 00d77663 bgeu a4,a3,93b8 93b0: 00169713 slli a4,a3,0x1 93b4: 04ed1e23 sh a4,92(s10) 93b8: 04dd1d23 sh a3,90(s10) 93bc: 856a mv a0,s10 93be: 57c020ef jal ra,b93a 93c2: bd51 j 9256 93c4: 0b1d4703 lbu a4,177(s10) 93c8: 4b81 li s7,0 93ca: 03170733 mul a4,a4,a7 93ce: 972a add a4,a4,a0 93d0: 02b75733 divu a4,a4,a1 93d4: eec773e3 bgeu a4,a2,92ba 93d8: 856a mv a0,s10 93da: 674020ef jal ra,ba4e 93de: 0b1d4703 lbu a4,177(s10) 93e2: 0705 addi a4,a4,1 93e4: 0aed08a3 sb a4,177(s10) 93e8: bdc9 j 92ba 93ea: 46a5 li a3,9 93ec: f0d714e3 bne a4,a3,92f4 93f0: 038d2703 lw a4,56(s10) 93f4: 4014 lw a3,0(s0) 93f6: 8e99 sub a3,a3,a4 93f8: 4c98 lw a4,24(s1) 93fa: 0706 slli a4,a4,0x1 93fc: eed77ce3 bgeu a4,a3,92f4 9400: 856a mv a0,s10 9402: dc8fd0ef jal ra,69ca 9406: 856a mv a0,s10 9408: d79ff0ef jal ra,9180 940c: 00cd2783 lw a5,12(s10) 9410: 040a0263 beqz s4,9454 9414: 00fa2623 sw a5,12(s4) 9418: 09cd2783 lw a5,156(s10) 941c: c789 beqz a5,9426 941e: 018d2503 lw a0,24(s10) 9422: 55ed li a1,-5 9424: 9782 jalr a5 9426: 000b8f63 beqz s7,9444 942a: 024d5783 lhu a5,36(s10) 942e: 01cd5703 lhu a4,28(s10) 9432: 028d2583 lw a1,40(s10) 9436: 060d2503 lw a0,96(s10) 943a: 004d0693 addi a3,s10,4 943e: 866a mv a2,s10 9440: 3f2020ef jal ra,b832 9444: 00cd2b83 lw s7,12(s10) 9448: 85ea mv a1,s10 944a: 4509 li a0,2 944c: c76ff0ef jal ra,88c2 9450: 8d5e mv s10,s7 9452: bb65 j 920a 9454: 00f9a023 sw a5,0(s3) 9458: b7c1 j 9418 945a: 018d2503 lw a0,24(s10) 945e: 85ea mv a1,s10 9460: 9782 jalr a5 9462: ea050ce3 beqz a0,931a 9466: bd6d j 9320 9468: 8522 mv a0,s0 946a: d60fd0ef jal ra,69ca 946e: 8522 mv a0,s0 9470: d11ff0ef jal ra,9180 9474: 00c42903 lw s2,12(s0) 9478: 85a2 mv a1,s0 947a: 4509 li a0,2 947c: 0124a023 sw s2,0(s1) 9480: 844a mv s0,s2 9482: c40ff0ef jal ra,88c2 9486: bb41 j 9216 00009488 : tcp_pcb_remove(): 9488: 88ef72ef jal t0,516 <__riscv_save_0> 948c: 411c lw a5,0(a0) 948e: 842e mv s0,a1 9490: 04b79063 bne a5,a1,94d0 9494: 45dc lw a5,12(a1) 9496: c11c sw a5,0(a0) 9498: 00042623 sw zero,12(s0) 949c: 8522 mv a0,s0 949e: ce3ff0ef jal ra,9180 94a2: 481c lw a5,16(s0) 94a4: 4729 li a4,10 94a6: 02e78163 beq a5,a4,94c8 94aa: 4705 li a4,1 94ac: 00e78e63 beq a5,a4,94c8 94b0: 02644783 lbu a5,38(s0) 94b4: 0017f713 andi a4,a5,1 94b8: cb01 beqz a4,94c8 94ba: 0027e793 ori a5,a5,2 94be: 02f40323 sb a5,38(s0) 94c2: 8522 mv a0,s0 94c4: 006020ef jal ra,b4ca 94c8: 00042823 sw zero,16(s0) 94cc: 86ef706f j 53a <__riscv_restore_0> 94d0: 9af1a423 sw a5,-1624(gp) # 200001e8 94d4: 4681 li a3,0 94d6: 9a818713 addi a4,gp,-1624 # 200001e8 94da: e789 bnez a5,94e4 94dc: ded5 beqz a3,9498 94de: 00072023 sw zero,0(a4) 94e2: bf5d j 9498 94e4: 47d0 lw a2,12(a5) 94e6: 00861763 bne a2,s0,94f4 94ea: c291 beqz a3,94ee 94ec: c31c sw a5,0(a4) 94ee: 4458 lw a4,12(s0) 94f0: c7d8 sw a4,12(a5) 94f2: b75d j 9498 94f4: 4685 li a3,1 94f6: 87b2 mv a5,a2 94f8: b7cd j 94da 000094fa : tcp_close(): 94fa: 491c lw a5,16(a0) 94fc: 471d li a4,7 94fe: 0af76563 bltu a4,a5,95a8 9502: 814f72ef jal t0,516 <__riscv_save_0> 9506: 6735 lui a4,0xd 9508: 078a slli a5,a5,0x2 950a: 3bc70713 addi a4,a4,956 # d3bc 950e: 97ba add a5,a5,a4 9510: 439c lw a5,0(a5) 9512: 842a mv s0,a0 9514: 8782 jr a5 9516: cb4fd0ef jal ra,69ca 951a: 99818713 addi a4,gp,-1640 # 200001d8 951e: 431c lw a5,0(a4) 9520: 00879963 bne a5,s0,9532 9524: 445c lw a5,12(s0) 9526: c31c sw a5,0(a4) 9528: 00042623 sw zero,12(s0) 952c: 85a2 mv a1,s0 952e: 4509 li a0,2 9530: a83d j 956e 9532: 9af1a423 sw a5,-1624(gp) # 200001e8 9536: 4681 li a3,0 9538: 9a818713 addi a4,gp,-1624 # 200001e8 953c: e789 bnez a5,9546 953e: d6ed beqz a3,9528 9540: 00072023 sw zero,0(a4) 9544: b7d5 j 9528 9546: 47d0 lw a2,12(a5) 9548: 00861763 bne a2,s0,9556 954c: c291 beqz a3,9550 954e: c31c sw a5,0(a4) 9550: 4458 lw a4,12(s0) 9552: c7d8 sw a4,12(a5) 9554: bfd1 j 9528 9556: 4685 li a3,1 9558: 87b2 mv a5,a2 955a: b7cd j 953c 955c: c6efd0ef jal ra,69ca 9560: 85a2 mv a1,s0 9562: 99c18513 addi a0,gp,-1636 # 200001dc 9566: f23ff0ef jal ra,9488 956a: 85a2 mv a1,s0 956c: 450d li a0,3 956e: b54ff0ef jal ra,88c2 9572: 4501 li a0,0 9574: a831 j 9590 9576: c54fd0ef jal ra,69ca 957a: 85a2 mv a1,s0 957c: 99418513 addi a0,gp,-1644 # 200001d4 9580: f09ff0ef jal ra,9488 9584: b765 j 952c 9586: 4585 li a1,1 9588: 68d010ef jal ra,b414 958c: 4795 li a5,5 958e: c901 beqz a0,959e 9590: fabf606f j 53a <__riscv_restore_0> 9594: 4585 li a1,1 9596: 67f010ef jal ra,b414 959a: f97d bnez a0,9590 959c: 47a5 li a5,9 959e: c81c sw a5,16(s0) 95a0: 8522 mv a0,s0 95a2: 729010ef jal ra,b4ca 95a6: b7f1 j 9572 95a8: 4501 li a0,0 95aa: 8082 ret 000095ac : tcp_recv_null(): 95ac: f6bf62ef jal t0,516 <__riscv_save_0> 95b0: 1141 addi sp,sp,-16 95b2: 852e mv a0,a1 95b4: ce11 beqz a2,95d0 95b6: 260e lhu a1,8(a2) 95b8: c632 sw a2,12(sp) 95ba: afbff0ef jal ra,90b4 95be: 4632 lw a2,12(sp) 95c0: 8532 mv a0,a2 95c2: cd2ff0ef jal ra,8a94 95c6: 4781 li a5,0 95c8: 853e mv a0,a5 95ca: 0141 addi sp,sp,16 95cc: f6ff606f j 53a <__riscv_restore_0> 95d0: 4781 li a5,0 95d2: fafd bnez a3,95c8 95d4: f27ff0ef jal ra,94fa 95d8: 87aa mv a5,a0 95da: b7fd j 95c8 000095dc : tcp_fasttmr(): 95dc: f3bf62ef jal t0,516 <__riscv_save_0> 95e0: 9941a403 lw s0,-1644(gp) # 200001d4 95e4: 06500493 li s1,101 95e8: e019 bnez s0,95ee 95ea: f51f606f j 53a <__riscv_restore_0> 95ee: 08842603 lw a2,136(s0) 95f2: ca19 beqz a2,9608 95f4: 09042783 lw a5,144(s0) 95f8: 4681 li a3,0 95fa: 85a2 mv a1,s0 95fc: cf8d beqz a5,9636 95fe: 4c08 lw a0,24(s0) 9600: 9782 jalr a5 9602: e119 bnez a0,9608 9604: 08042423 sw zero,136(s0) 9608: 14fd addi s1,s1,-1 960a: 0ff4f493 andi s1,s1,255 960e: dcf1 beqz s1,95ea 9610: 02644783 lbu a5,38(s0) 9614: 0017f713 andi a4,a5,1 9618: cf09 beqz a4,9632 961a: 0027e793 ori a5,a5,2 961e: 02f40323 sb a5,38(s0) 9622: 8522 mv a0,s0 9624: 6a7010ef jal ra,b4ca 9628: 02644783 lbu a5,38(s0) 962c: 9bf1 andi a5,a5,-4 962e: 02f40323 sb a5,38(s0) 9632: 4440 lw s0,12(s0) 9634: bf55 j 95e8 9636: 4501 li a0,0 9638: f75ff0ef jal ra,95ac 963c: b7d9 j 9602 0000963e : tcp_tmr(): 963e: ed9f62ef jal t0,516 <__riscv_save_0> 9642: f9bff0ef jal ra,95dc 9646: 9a418713 addi a4,gp,-1628 # 200001e4 964a: 231c lbu a5,0(a4) 964c: 0785 addi a5,a5,1 964e: 0ff7f793 andi a5,a5,255 9652: a31c sb a5,0(a4) 9654: 8b85 andi a5,a5,1 9656: c399 beqz a5,965c 9658: b77ff0ef jal ra,91ce 965c: edff606f j 53a <__riscv_restore_0> 00009660 : tcp_fastsendack(): 9660: eb7f62ef jal t0,516 <__riscv_save_0> 9664: 9941a403 lw s0,-1644(gp) # 200001d4 9668: 06500493 li s1,101 966c: 4901 li s2,0 966e: e401 bnez s0,9676 9670: 854a mv a0,s2 9672: ec9f606f j 53a <__riscv_restore_0> 9676: 08842603 lw a2,136(s0) 967a: ca19 beqz a2,9690 967c: 09042783 lw a5,144(s0) 9680: 4681 li a3,0 9682: 85a2 mv a1,s0 9684: c7b1 beqz a5,96d0 9686: 4c08 lw a0,24(s0) 9688: 9782 jalr a5 968a: e119 bnez a0,9690 968c: 08042423 sw zero,136(s0) 9690: 14fd addi s1,s1,-1 9692: 0ff4f493 andi s1,s1,255 9696: dce9 beqz s1,9670 9698: 02744783 lbu a5,39(s0) 969c: cb85 beqz a5,96cc 969e: 02644703 lbu a4,38(s0) 96a2: 00177693 andi a3,a4,1 96a6: c29d beqz a3,96cc 96a8: 17fd addi a5,a5,-1 96aa: 0ff7f793 andi a5,a5,255 96ae: 02f403a3 sb a5,39(s0) 96b2: e39d bnez a5,96d8 96b4: 00276713 ori a4,a4,2 96b8: 02e40323 sb a4,38(s0) 96bc: 8522 mv a0,s0 96be: 60d010ef jal ra,b4ca 96c2: 02644783 lbu a5,38(s0) 96c6: 9bf1 andi a5,a5,-4 96c8: 02f40323 sb a5,38(s0) 96cc: 4440 lw s0,12(s0) 96ce: b745 j 966e 96d0: 4501 li a0,0 96d2: edbff0ef jal ra,95ac 96d6: bf55 j 968a 96d8: 0905 addi s2,s2,1 96da: bfcd j 96cc 000096dc : tcp_abandon(): 96dc: e13f62ef jal t0,4ee <__riscv_save_10> 96e0: 4918 lw a4,16(a0) 96e2: 47a9 li a5,10 96e4: 1141 addi sp,sp,-16 96e6: 842a mv s0,a0 96e8: 00f71e63 bne a4,a5,9704 96ec: 85aa mv a1,a0 96ee: 9ac18513 addi a0,gp,-1620 # 200001ec 96f2: d97ff0ef jal ra,9488 96f6: 85a2 mv a1,s0 96f8: 4509 li a0,2 96fa: 9c8ff0ef jal ra,88c2 96fe: 0141 addi sp,sp,16 9700: e27f606f j 526 <__riscv_restore_10> 9704: 411c lw a5,0(a0) 9706: 8b2e mv s6,a1 9708: 06052903 lw s2,96(a0) 970c: c63e sw a5,12(sp) 970e: 415c lw a5,4(a0) 9710: 02852983 lw s3,40(a0) 9714: 01c55a03 lhu s4,28(a0) 9718: c43e sw a5,8(sp) 971a: 02455a83 lhu s5,36(a0) 971e: 09c52483 lw s1,156(a0) 9722: 01852b83 lw s7,24(a0) 9726: aa4fd0ef jal ra,69ca 972a: 99418513 addi a0,gp,-1644 # 200001d4 972e: 85a2 mv a1,s0 9730: d59ff0ef jal ra,9488 9734: 08042503 lw a0,128(s0) 9738: c119 beqz a0,973e 973a: 9e1ff0ef jal ra,911a 973e: 5c68 lw a0,124(s0) 9740: c119 beqz a0,9746 9742: 9d9ff0ef jal ra,911a 9746: 08442503 lw a0,132(s0) 974a: c119 beqz a0,9750 974c: 9cfff0ef jal ra,911a 9750: 85a2 mv a1,s0 9752: 4509 li a0,2 9754: 96eff0ef jal ra,88c2 9758: c481 beqz s1,9760 975a: 55ed li a1,-5 975c: 855e mv a0,s7 975e: 9482 jalr s1 9760: f80b0fe3 beqz s6,96fe 9764: 87d6 mv a5,s5 9766: 8752 mv a4,s4 9768: 0034 addi a3,sp,8 976a: 0070 addi a2,sp,12 976c: 85ce mv a1,s3 976e: 854a mv a0,s2 9770: 0c2020ef jal ra,b832 9774: b769 j 96fe 00009776 : tcp_next_iss(): 9776: 83018793 addi a5,gp,-2000 # 20000070 977a: 4388 lw a0,0(a5) 977c: 9a01a703 lw a4,-1632(gp) # 200001e0 9780: 953a add a0,a0,a4 9782: c388 sw a0,0(a5) 9784: 8082 ret 00009786 : tcp_alloc(): 9786: d77f62ef jal t0,4fc <__riscv_save_4> 978a: 892a mv s2,a0 978c: 4509 li a0,2 978e: 914ff0ef jal ra,88a2 9792: 2002e4b7 lui s1,0x2002e 9796: bd048493 addi s1,s1,-1072 # 2002dbd0 979a: 842a mv s0,a0 979c: e125 bnez a0,97fc 979e: 489c lw a5,16(s1) 97a0: 8389 srli a5,a5,0x2 97a2: 8b85 andi a5,a5,1 97a4: e789 bnez a5,97ae 97a6: 4401 li s0,0 97a8: 8522 mv a0,s0 97aa: d87f606f j 530 <__riscv_restore_4> 97ae: 9ac1a783 lw a5,-1620(gp) # 200001ec 97b2: 9a01a603 lw a2,-1632(gp) # 200001e0 97b6: 4501 li a0,0 97b8: 4681 li a3,0 97ba: 9a018993 addi s3,gp,-1632 # 200001e0 97be: e7f1 bnez a5,988a 97c0: c501 beqz a0,97c8 97c2: 4585 li a1,1 97c4: f19ff0ef jal ra,96dc 97c8: 4509 li a0,2 97ca: 8d8ff0ef jal ra,88a2 97ce: 842a mv s0,a0 97d0: e515 bnez a0,97fc 97d2: 9941a783 lw a5,-1644(gp) # 200001d4 97d6: 0009a503 lw a0,0(s3) 97da: 197d addi s2,s2,-1 97dc: 0ff97913 andi s2,s2,255 97e0: 07f00613 li a2,127 97e4: 4581 li a1,0 97e6: ebdd bnez a5,989c 97e8: c409 beqz s0,97f2 97ea: 4585 li a1,1 97ec: 8522 mv a0,s0 97ee: eefff0ef jal ra,96dc 97f2: 4509 li a0,2 97f4: 8aeff0ef jal ra,88a2 97f8: 842a mv s0,a0 97fa: d555 beqz a0,97a6 97fc: 0b400613 li a2,180 9800: 4581 li a1,0 9802: 8522 mv a0,s0 9804: d43f60ef jal ra,546 9808: 04000793 li a5,64 980c: a85c sb a5,20(s0) 980e: 449c lw a5,8(s1) 9810: 06041c23 sh zero,120(s0) 9814: 21800713 li a4,536 9818: 06f41b23 sh a5,118(s0) 981c: 385e lhu a5,52(s0) 981e: b45e sh a5,44(s0) 9820: b47e sh a5,46(s0) 9822: 77e1 lui a5,0xffff8 9824: a43e sh a5,10(s0) 9826: 40dc lw a5,4(s1) 9828: 00f77463 bgeu a4,a5,9830 982c: 21800793 li a5,536 9830: 04f41023 sh a5,64(s0) 9834: 67c1 lui a5,0x10 9836: 577d li a4,-1 9838: c47c sw a5,76(s0) 983a: 4785 li a5,1 983c: 04f41823 sh a5,80(s0) 9840: bc7a sh a4,62(s0) 9842: 04f41d23 sh a5,90(s0) 9846: f31ff0ef jal ra,9776 984a: 9a01a783 lw a5,-1632(gp) # 200001e0 984e: d468 sw a0,108(s0) 9850: d028 sw a0,96(s0) 9852: dc1c sw a5,56(s0) 9854: 000097b7 lui a5,0x9 9858: 5ac78793 addi a5,a5,1452 # 95ac 985c: 08f42823 sw a5,144(s0) 9860: 2002e7b7 lui a5,0x2002e 9864: b807a703 lw a4,-1152(a5) # 2002db80 9868: b8078793 addi a5,a5,-1152 986c: c868 sw a0,84(s0) 986e: 0ae42023 sw a4,160(s0) 9872: 43d8 lw a4,4(a5) 9874: 479c lw a5,8(a5) 9876: d828 sw a0,112(s0) 9878: 02040e23 sb zero,60(s0) 987c: 0ae42223 sw a4,164(s0) 9880: 0af42423 sw a5,168(s0) 9884: 0a0408a3 sb zero,177(s0) 9888: b705 j 97a8 988a: 5f98 lw a4,56(a5) 988c: 40e60733 sub a4,a2,a4 9890: 00d76463 bltu a4,a3,9898 9894: 86ba mv a3,a4 9896: 853e mv a0,a5 9898: 47dc lw a5,12(a5) 989a: b715 j 97be 989c: 2bd4 lbu a3,20(a5) 989e: 00d96c63 bltu s2,a3,98b6 98a2: 00d66a63 bltu a2,a3,98b6 98a6: 5f98 lw a4,56(a5) 98a8: 40e50733 sub a4,a0,a4 98ac: 00b76563 bltu a4,a1,98b6 98b0: 8636 mv a2,a3 98b2: 85ba mv a1,a4 98b4: 843e mv s0,a5 98b6: 47dc lw a5,12(a5) 98b8: b73d j 97e6 000098ba : tcp_new(): 98ba: c5df62ef jal t0,516 <__riscv_save_0> 98be: 04000513 li a0,64 98c2: ec5ff0ef jal ra,9786 98c6: c75f606f j 53a <__riscv_restore_0> 000098ca : tcp_eff_send_mss(): 98ca: c4df62ef jal t0,516 <__riscv_save_0> 98ce: 842a mv s0,a0 98d0: 852e mv a0,a1 98d2: e1ffd0ef jal ra,76f0 98d6: cd11 beqz a0,98f2 98d8: 391e lhu a5,48(a0) 98da: cf81 beqz a5,98f2 98dc: fd878793 addi a5,a5,-40 98e0: 873e mv a4,a5 98e2: 07c2 slli a5,a5,0x10 98e4: 83c1 srli a5,a5,0x10 98e6: 00f47363 bgeu s0,a5,98ec 98ea: 8722 mv a4,s0 98ec: 01071413 slli s0,a4,0x10 98f0: 8041 srli s0,s0,0x10 98f2: 8522 mv a0,s0 98f4: c47f606f j 53a <__riscv_restore_0> 000098f8 : tcp_connect(): 98f8: c05f62ef jal t0,4fc <__riscv_save_4> 98fc: 4918 lw a4,16(a0) 98fe: 54cd li s1,-13 9900: eb45 bnez a4,99b0 9902: 89ae mv s3,a1 9904: 54dd li s1,-9 9906: c5cd beqz a1,99b0 9908: 842a mv s0,a0 990a: 84b2 mv s1,a2 990c: 0511 addi a0,a0,4 990e: 4611 li a2,4 9910: 8936 mv s2,a3 9912: 5be030ef jal ra,ced0 9916: 2c5e lhu a5,28(s0) 9918: b046 sh s1,36(s0) 991a: e781 bnez a5,9922 991c: ddeff0ef jal ra,8efa 9920: ac4a sh a0,28(s0) 9922: e55ff0ef jal ra,9776 9926: 385e lhu a5,52(s0) 9928: d028 sw a0,96(s0) 992a: 157d addi a0,a0,-1 992c: b45e sh a5,44(s0) 992e: b47e sh a5,46(s0) 9930: 06f41223 sh a5,100(s0) 9934: 2002e7b7 lui a5,0x2002e 9938: c868 sw a0,84(s0) 993a: d828 sw a0,112(s0) 993c: bd47a503 lw a0,-1068(a5) # 2002dbd4 9940: 02042423 sw zero,40(s0) 9944: 02042823 sw zero,48(s0) 9948: 21800793 li a5,536 994c: 00a7f463 bgeu a5,a0,9954 9950: 21800513 li a0,536 9954: 0542 slli a0,a0,0x10 9956: 8141 srli a0,a0,0x10 9958: 04a41023 sh a0,64(s0) 995c: 85ce mv a1,s3 995e: f6dff0ef jal ra,98ca 9962: 4785 li a5,1 9964: 04f41d23 sh a5,90(s0) 9968: 47a9 li a5,10 996a: 04a41023 sh a0,64(s0) 996e: 02f50533 mul a0,a0,a5 9972: 4789 li a5,2 9974: 99818713 addi a4,gp,-1640 # 200001d8 9978: c81c sw a5,16(s0) 997a: 431c lw a5,0(a4) 997c: 09242a23 sw s2,148(s0) 9980: 04a41e23 sh a0,92(s0) 9984: 02879963 bne a5,s0,99b6 9988: 445c lw a5,12(s0) 998a: c31c sw a5,0(a4) 998c: 99418793 addi a5,gp,-1644 # 200001d4 9990: 4398 lw a4,0(a5) 9992: 4689 li a3,2 9994: c380 sw s0,0(a5) 9996: c458 sw a4,12(s0) 9998: 4785 li a5,1 999a: 4701 li a4,0 999c: 4601 li a2,0 999e: 4581 li a1,0 99a0: 8522 mv a0,s0 99a2: 62a010ef jal ra,afcc 99a6: 84aa mv s1,a0 99a8: e501 bnez a0,99b0 99aa: 8522 mv a0,s0 99ac: 31f010ef jal ra,b4ca 99b0: 8526 mv a0,s1 99b2: b7ff606f j 530 <__riscv_restore_4> 99b6: 9af1a423 sw a5,-1624(gp) # 200001e8 99ba: 4681 li a3,0 99bc: 9a818713 addi a4,gp,-1624 # 200001e8 99c0: e789 bnez a5,99ca 99c2: d6e9 beqz a3,998c 99c4: 00072023 sw zero,0(a4) 99c8: b7d1 j 998c 99ca: 47d0 lw a2,12(a5) 99cc: 00861763 bne a2,s0,99da 99d0: c291 beqz a3,99d4 99d2: c31c sw a5,0(a4) 99d4: 4458 lw a4,12(s0) 99d6: c7d8 sw a4,12(a5) 99d8: bf55 j 998c 99da: 4685 li a3,1 99dc: 87b2 mv a5,a2 99de: b7cd j 99c0 000099e0 : RemoveTimeWaiTCP(): 99e0: b37f62ef jal t0,516 <__riscv_save_0> 99e4: 9ac1a403 lw s0,-1620(gp) # 200001ec 99e8: 9ac18493 addi s1,gp,-1620 # 200001ec 99ec: e019 bnez s0,99f2 99ee: b4df606f j 53a <__riscv_restore_0> 99f2: 8522 mv a0,s0 99f4: fd7fc0ef jal ra,69ca 99f8: 8522 mv a0,s0 99fa: f86ff0ef jal ra,9180 99fe: 00c42903 lw s2,12(s0) 9a02: 85a2 mv a1,s0 9a04: 4509 li a0,2 9a06: 0124a023 sw s2,0(s1) 9a0a: 844a mv s0,s2 9a0c: eb7fe0ef jal ra,88c2 9a10: bff1 j 99ec 00009a12 : tcp_oos_insert_segment(): 9a12: aebf62ef jal t0,4fc <__riscv_save_4> 9a16: 491c lw a5,16(a0) 9a18: 84aa mv s1,a0 9a1a: 8a2e mv s4,a1 9a1c: 27c8 lbu a0,12(a5) 9a1e: 37dc lbu a5,13(a5) 9a20: 07a2 slli a5,a5,0x8 9a22: 8d5d or a0,a0,a5 9a24: c8ffd0ef jal ra,76b2 9a28: 8905 andi a0,a0,1 9a2a: e929 bnez a0,9a7c 9a2c: 6941 lui s2,0x10 9a2e: fc090913 addi s2,s2,-64 # ffc0 <_data_lma+0x2aac> 9a32: 010a2703 lw a4,16(s4) 9a36: 9c41a603 lw a2,-1596(gp) # 20000204 9a3a: 24de lhu a5,12(s1) 9a3c: 3354 lbu a3,5(a4) 9a3e: 234c lbu a1,4(a4) 9a40: 97b2 add a5,a5,a2 9a42: 06a2 slli a3,a3,0x8 9a44: 8dd5 or a1,a1,a3 9a46: 2374 lbu a3,6(a4) 9a48: 06c2 slli a3,a3,0x10 9a4a: 8ecd or a3,a3,a1 9a4c: 336c lbu a1,7(a4) 9a4e: 05e2 slli a1,a1,0x18 9a50: 8dd5 or a1,a1,a3 9a52: 00ca5683 lhu a3,12(s4) 9a56: 96ae add a3,a3,a1 9a58: 40d786b3 sub a3,a5,a3 9a5c: 0206d563 bgez a3,9a86 9a60: 8f8d sub a5,a5,a1 9a62: 00f05963 blez a5,9a74 9a66: 8d91 sub a1,a1,a2 9a68: 05c2 slli a1,a1,0x10 9a6a: 40c8 lw a0,4(s1) 9a6c: 81c1 srli a1,a1,0x10 9a6e: a4ce sh a1,12(s1) 9a70: 9b2ff0ef jal ra,8c22 9a74: 0144a023 sw s4,0(s1) 9a78: ab9f606f j 530 <__riscv_restore_4> 9a7c: 8552 mv a0,s4 9a7e: e9cff0ef jal ra,911a 9a82: 4a01 li s4,0 9a84: bfc5 j 9a74 9a86: 375c lbu a5,13(a4) 9a88: 2748 lbu a0,12(a4) 9a8a: 07a2 slli a5,a5,0x8 9a8c: 8d5d or a0,a0,a5 9a8e: c25fd0ef jal ra,76b2 9a92: 8905 andi a0,a0,1 9a94: cd15 beqz a0,9ad0 9a96: 489c lw a5,16(s1) 9a98: 37c0 lbu s0,13(a5) 9a9a: 27c8 lbu a0,12(a5) 9a9c: 0422 slli s0,s0,0x8 9a9e: 8c49 or s0,s0,a0 9aa0: 854a mv a0,s2 9aa2: c03fd0ef jal ra,76a4 9aa6: 489c lw a5,16(s1) 9aa8: 8c69 and s0,s0,a0 9aaa: 27c8 lbu a0,12(a5) 9aac: 37dc lbu a5,13(a5) 9aae: 07a2 slli a5,a5,0x8 9ab0: 8d5d or a0,a0,a5 9ab2: c01fd0ef jal ra,76b2 9ab6: 03e57513 andi a0,a0,62 9aba: 00156513 ori a0,a0,1 9abe: be7fd0ef jal ra,76a4 9ac2: 489c lw a5,16(s1) 9ac4: 8d41 or a0,a0,s0 9ac6: 0542 slli a0,a0,0x10 9ac8: 8141 srli a0,a0,0x10 9aca: a7c8 sb a0,12(a5) 9acc: 8121 srli a0,a0,0x8 9ace: b7c8 sb a0,13(a5) 9ad0: 000a2403 lw s0,0(s4) 9ad4: 8552 mv a0,s4 9ad6: e1aff0ef jal ra,90f0 9ada: d445 beqz s0,9a82 9adc: 8a22 mv s4,s0 9ade: bf91 j 9a32 00009ae0 : tcp_receive(): 9ae0: a0ff62ef jal t0,4ee <__riscv_save_10> 9ae4: 9b41c783 lbu a5,-1612(gp) # 200001f4 9ae8: 842a mv s0,a0 9aea: 8bc1 andi a5,a5,16 9aec: 9c418993 addi s3,gp,-1596 # 20000204 9af0: c7f1 beqz a5,9bbc 9af2: 0009a583 lw a1,0(s3) 9af6: 5538 lw a4,104(a0) 9af8: 06455683 lhu a3,100(a0) 9afc: 5570 lw a2,108(a0) 9afe: 40b70533 sub a0,a4,a1 9b02: 9b01a783 lw a5,-1616(gp) # 200001f0 9b06: 9b018493 addi s1,gp,-1616 # 200001f0 9b0a: 02054463 bltz a0,9b32 9b0e: 00b71663 bne a4,a1,9b1a 9b12: 40f60733 sub a4,a2,a5 9b16: 00074e63 bltz a4,9b32 9b1a: 02f61e63 bne a2,a5,9b56 9b1e: 9cc1a503 lw a0,-1588(gp) # 2000020c 9b22: 3578 lbu a4,15(a0) 9b24: 00e54803 lbu a6,14(a0) 9b28: 0722 slli a4,a4,0x8 9b2a: 01076733 or a4,a4,a6 9b2e: 02e6f463 bgeu a3,a4,9b56 9b32: 9cc1a503 lw a0,-1588(gp) # 2000020c 9b36: 3578 lbu a4,15(a0) 9b38: 00e54803 lbu a6,14(a0) 9b3c: d42c sw a1,104(s0) 9b3e: 0722 slli a4,a4,0x8 9b40: 01076733 or a4,a4,a6 9b44: 06e41223 sh a4,100(s0) 9b48: d47c sw a5,108(s0) 9b4a: c711 beqz a4,9b56 9b4c: 0b044703 lbu a4,176(s0) 9b50: c319 beqz a4,9b56 9b52: 0a040823 sb zero,176(s0) 9b56: 486c lw a1,84(s0) 9b58: 40b78733 sub a4,a5,a1 9b5c: 2ee04263 bgtz a4,9e40 9b60: 9d01d703 lhu a4,-1584(gp) # 20000210 9b64: 06041a23 sh zero,116(s0) 9b68: 2c071963 bnez a4,9e3a 9b6c: 06445703 lhu a4,100(s0) 9b70: 5468 lw a0,108(s0) 9b72: 96b2 add a3,a3,a2 9b74: 972a add a4,a4,a0 9b76: 2cd71263 bne a4,a3,9e3a 9b7a: 03e41703 lh a4,62(s0) 9b7e: 2a074e63 bltz a4,9e3a 9b82: 2af59c63 bne a1,a5,9e3a 9b86: 05844783 lbu a5,88(s0) 9b8a: 470d li a4,3 9b8c: 0785 addi a5,a5,1 9b8e: 0ff7f793 andi a5,a5,255 9b92: 04f40c23 sb a5,88(s0) 9b96: 28f77c63 bgeu a4,a5,9e2e 9b9a: 05a45703 lhu a4,90(s0) 9b9e: 04045783 lhu a5,64(s0) 9ba2: 97ba add a5,a5,a4 9ba4: 07c2 slli a5,a5,0x10 9ba6: 83c1 srli a5,a5,0x10 9ba8: 00f77463 bgeu a4,a5,9bb0 9bac: 04f41d23 sh a5,90(s0) 9bb0: 5c7c lw a5,124(s0) 9bb2: 3a079f63 bnez a5,9f70 9bb6: 4070 lw a2,68(s0) 9bb8: 44061a63 bnez a2,a00c 9bbc: 9d01d603 lhu a2,-1584(gp) # 20000210 9bc0: 0009a783 lw a5,0(s3) 9bc4: 5414 lw a3,40(s0) 9bc6: 9d018a13 addi s4,gp,-1584 # 20000210 9bca: 040600e3 beqz a2,a40a 9bce: 40f685b3 sub a1,a3,a5 9bd2: fff58713 addi a4,a1,-1 9bd6: 4a074b63 bltz a4,a08c 9bda: 4705 li a4,1 9bdc: 8f1d sub a4,a4,a5 9bde: 8f11 sub a4,a4,a2 9be0: 9736 add a4,a4,a3 9be2: 4ae04563 bgtz a4,a08c 9be6: 2002e937 lui s2,0x2002e 9bea: c5490793 addi a5,s2,-940 # 2002dc54 9bee: 43c4 lw s1,4(a5) 9bf0: 01059713 slli a4,a1,0x10 9bf4: 8341 srli a4,a4,0x10 9bf6: 24be lhu a5,10(s1) 9bf8: c5490913 addi s2,s2,-940 9bfc: 48b7d363 bge a5,a1,a082 9c00: 249e lhu a5,8(s1) 9c02: 8f99 sub a5,a5,a4 9c04: 07c2 slli a5,a5,0x10 9c06: 83c1 srli a5,a5,0x10 9c08: 24ba lhu a4,10(s1) 9c0a: 46b74663 blt a4,a1,a076 9c0e: 40b005b3 neg a1,a1 9c12: 05c2 slli a1,a1,0x10 9c14: 85c1 srai a1,a1,0x10 9c16: 8526 mv a0,s1 9c18: e0ffe0ef jal ra,8a26 9c1c: 40dc lw a5,4(s1) 9c1e: 00c95683 lhu a3,12(s2) 9c22: 0009a703 lw a4,0(s3) 9c26: 00f92423 sw a5,8(s2) 9c2a: 541c lw a5,40(s0) 9c2c: 9736 add a4,a4,a3 9c2e: 8f1d sub a4,a4,a5 9c30: 00e91623 sh a4,12(s2) 9c34: 01092703 lw a4,16(s2) 9c38: 0087d693 srli a3,a5,0x8 9c3c: 00f9a023 sw a5,0(s3) 9c40: a35c sb a5,4(a4) 9c42: b354 sb a3,5(a4) 9c44: 0107d693 srli a3,a5,0x10 9c48: 83e1 srli a5,a5,0x18 9c4a: a374 sb a3,6(a4) 9c4c: b37c sb a5,7(a4) 9c4e: 0009a683 lw a3,0(s3) 9c52: 5418 lw a4,40(s0) 9c54: 40e687b3 sub a5,a3,a4 9c58: 0007c963 bltz a5,9c6a 9c5c: 3452 lhu a2,44(s0) 9c5e: 00168793 addi a5,a3,1 9c62: 8f99 sub a5,a5,a4 9c64: 8f91 sub a5,a5,a2 9c66: 44f05063 blez a5,a0a6 9c6a: 2002e7b7 lui a5,0x2002e 9c6e: c647a783 lw a5,-924(a5) # 2002dc64 9c72: 27c8 lbu a0,12(a5) 9c74: 37dc lbu a5,13(a5) 9c76: 07a2 slli a5,a5,0x8 9c78: 8d5d or a0,a0,a5 9c7a: a39fd0ef jal ra,76b2 9c7e: 8905 andi a0,a0,1 9c80: 78050163 beqz a0,a402 9c84: 5418 lw a4,40(s0) 9c86: 0009a783 lw a5,0(s3) 9c8a: 76f71c63 bne a4,a5,a402 9c8e: 2002e4b7 lui s1,0x2002e 9c92: c5448a93 addi s5,s1,-940 # 2002dc54 9c96: 010aa783 lw a5,16(s5) 9c9a: 00cad903 lhu s2,12(s5) 9c9e: c5448493 addi s1,s1,-940 9ca2: 27c8 lbu a0,12(a5) 9ca4: 37dc lbu a5,13(a5) 9ca6: 07a2 slli a5,a5,0x8 9ca8: 8d5d or a0,a0,a5 9caa: a09fd0ef jal ra,76b2 9cae: 890d andi a0,a0,3 9cb0: 00a03533 snez a0,a0 9cb4: 992a add s2,s2,a0 9cb6: 010aa783 lw a5,16(s5) 9cba: 0942 slli s2,s2,0x10 9cbc: 01095913 srli s2,s2,0x10 9cc0: 012a1023 sh s2,0(s4) 9cc4: 27c8 lbu a0,12(a5) 9cc6: 37dc lbu a5,13(a5) 9cc8: 07a2 slli a5,a5,0x8 9cca: 8d5d or a0,a0,a5 9ccc: 9e7fd0ef jal ra,76b2 9cd0: 8905 andi a0,a0,1 9cd2: 3e051c63 bnez a0,a0ca 9cd6: 345e lhu a5,44(s0) 9cd8: 0b27f063 bgeu a5,s2,9d78 9cdc: 489c lw a5,16(s1) 9cde: 27c8 lbu a0,12(a5) 9ce0: 37dc lbu a5,13(a5) 9ce2: 07a2 slli a5,a5,0x8 9ce4: 8d5d or a0,a0,a5 9ce6: 9cdfd0ef jal ra,76b2 9cea: 8905 andi a0,a0,1 9cec: c131 beqz a0,9d30 9cee: 489c lw a5,16(s1) 9cf0: 00d7c903 lbu s2,13(a5) 9cf4: 27c8 lbu a0,12(a5) 9cf6: 0922 slli s2,s2,0x8 9cf8: 00a96933 or s2,s2,a0 9cfc: 6541 lui a0,0x10 9cfe: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x2aac> 9d02: 9a3fd0ef jal ra,76a4 9d06: 489c lw a5,16(s1) 9d08: 00a97933 and s2,s2,a0 9d0c: 27c8 lbu a0,12(a5) 9d0e: 37dc lbu a5,13(a5) 9d10: 07a2 slli a5,a5,0x8 9d12: 8d5d or a0,a0,a5 9d14: 99ffd0ef jal ra,76b2 9d18: 03e57513 andi a0,a0,62 9d1c: 989fd0ef jal ra,76a4 9d20: 489c lw a5,16(s1) 9d22: 00a96533 or a0,s2,a0 9d26: 0542 slli a0,a0,0x10 9d28: 8141 srli a0,a0,0x10 9d2a: a7c8 sb a0,12(a5) 9d2c: 8121 srli a0,a0,0x8 9d2e: b7c8 sb a0,13(a5) 9d30: 345e lhu a5,44(s0) 9d32: a4de sh a5,12(s1) 9d34: 489c lw a5,16(s1) 9d36: 27c8 lbu a0,12(a5) 9d38: 37dc lbu a5,13(a5) 9d3a: 07a2 slli a5,a5,0x8 9d3c: 8d5d or a0,a0,a5 9d3e: 975fd0ef jal ra,76b2 9d42: 8909 andi a0,a0,2 9d44: c501 beqz a0,9d4c 9d46: 24de lhu a5,12(s1) 9d48: 17fd addi a5,a5,-1 9d4a: a4de sh a5,12(s1) 9d4c: 24ce lhu a1,12(s1) 9d4e: 40c8 lw a0,4(s1) 9d50: ed3fe0ef jal ra,8c22 9d54: 489c lw a5,16(s1) 9d56: 00c4d903 lhu s2,12(s1) 9d5a: 27c8 lbu a0,12(a5) 9d5c: 37dc lbu a5,13(a5) 9d5e: 07a2 slli a5,a5,0x8 9d60: 8d5d or a0,a0,a5 9d62: 951fd0ef jal ra,76b2 9d66: 890d andi a0,a0,3 9d68: 00a03533 snez a0,a0 9d6c: 992a add s2,s2,a0 9d6e: 0942 slli s2,s2,0x10 9d70: 01095913 srli s2,s2,0x10 9d74: 012a1023 sh s2,0(s4) 9d78: 08442783 lw a5,132(s0) 9d7c: 36078463 beqz a5,a0e4 9d80: 489c lw a5,16(s1) 9d82: 27c8 lbu a0,12(a5) 9d84: 37dc lbu a5,13(a5) 9d86: 07a2 slli a5,a5,0x8 9d88: 8d5d or a0,a0,a5 9d8a: 929fd0ef jal ra,76b2 9d8e: 8905 andi a0,a0,1 9d90: 34051763 bnez a0,a0de 9d94: 08442b03 lw s6,132(s0) 9d98: 6bc1 lui s7,0x10 9d9a: fc0b8b93 addi s7,s7,-64 # ffc0 <_data_lma+0x2aac> 9d9e: 0009a503 lw a0,0(s3) 9da2: 000a5703 lhu a4,0(s4) 9da6: 972a add a4,a4,a0 9da8: 080b0063 beqz s6,9e28 9dac: 010b2603 lw a2,16(s6) 9db0: 324c lbu a1,5(a2) 9db2: 2254 lbu a3,4(a2) 9db4: 05a2 slli a1,a1,0x8 9db6: 8dd5 or a1,a1,a3 9db8: 2274 lbu a3,6(a2) 9dba: 06c2 slli a3,a3,0x10 9dbc: 8dd5 or a1,a1,a3 9dbe: 3274 lbu a3,7(a2) 9dc0: 06e2 slli a3,a3,0x18 9dc2: 8ecd or a3,a3,a1 9dc4: 00cb5583 lhu a1,12(s6) 9dc8: 95b6 add a1,a1,a3 9dca: 40b705b3 sub a1,a4,a1 9dce: 3605d263 bgez a1,a132 9dd2: 8f15 sub a4,a4,a3 9dd4: 04e05a63 blez a4,9e28 9dd8: 08442783 lw a5,132(s0) 9ddc: 4b98 lw a4,16(a5) 9dde: 335c lbu a5,5(a4) 9de0: 2354 lbu a3,4(a4) 9de2: 07a2 slli a5,a5,0x8 9de4: 8fd5 or a5,a5,a3 9de6: 8f89 sub a5,a5,a0 9de8: a4de sh a5,12(s1) 9dea: 489c lw a5,16(s1) 9dec: 27c8 lbu a0,12(a5) 9dee: 37dc lbu a5,13(a5) 9df0: 07a2 slli a5,a5,0x8 9df2: 8d5d or a0,a0,a5 9df4: 8bffd0ef jal ra,76b2 9df8: 8909 andi a0,a0,2 9dfa: c501 beqz a0,9e02 9dfc: 24de lhu a5,12(s1) 9dfe: 17fd addi a5,a5,-1 9e00: a4de sh a5,12(s1) 9e02: 24ce lhu a1,12(s1) 9e04: 40c8 lw a0,4(s1) 9e06: e1dfe0ef jal ra,8c22 9e0a: 489c lw a5,16(s1) 9e0c: 00c4da83 lhu s5,12(s1) 9e10: 27c8 lbu a0,12(a5) 9e12: 37dc lbu a5,13(a5) 9e14: 07a2 slli a5,a5,0x8 9e16: 8d5d or a0,a0,a5 9e18: 89bfd0ef jal ra,76b2 9e1c: 890d andi a0,a0,3 9e1e: 00a03533 snez a0,a0 9e22: 9aaa add s5,s5,a0 9e24: 015a1023 sh s5,0(s4) 9e28: 09642223 sw s6,132(s0) 9e2c: ac65 j a0e4 9e2e: d8e791e3 bne a5,a4,9bb0 9e32: 8522 mv a0,s0 9e34: 3b9010ef jal ra,b9ec 9e38: bba5 j 9bb0 9e3a: 04040c23 sb zero,88(s0) 9e3e: bb8d j 9bb0 9e40: 5034 lw a3,96(s0) 9e42: 40d786b3 sub a3,a5,a3 9e46: 12d04263 bgtz a3,9f6a 9e4a: 02644683 lbu a3,38(s0) 9e4e: 0046f613 andi a2,a3,4 9e52: ca01 beqz a2,9e62 9e54: 9aed andi a3,a3,-5 9e56: 02d40323 sb a3,38(s0) 9e5a: 05c45683 lhu a3,92(s0) 9e5e: 04d41d23 sh a3,90(s0) 9e62: 04c41683 lh a3,76(s0) 9e66: 04e45603 lhu a2,78(s0) 9e6a: 0742 slli a4,a4,0x10 9e6c: 868d srai a3,a3,0x3 9e6e: 96b2 add a3,a3,a2 9e70: 04d41823 sh a3,80(s0) 9e74: 07645683 lhu a3,118(s0) 9e78: 8341 srli a4,a4,0x10 9e7a: 06e41a23 sh a4,116(s0) 9e7e: 9736 add a4,a4,a3 9e80: 06e41b23 sh a4,118(s0) 9e84: 4818 lw a4,16(s0) 9e86: c87c sw a5,84(s0) 9e88: 04040923 sb zero,82(s0) 9e8c: 04040c23 sb zero,88(s0) 9e90: 478d li a5,3 9e92: 02e7f163 bgeu a5,a4,9eb4 9e96: 05a45703 lhu a4,90(s0) 9e9a: 05c45683 lhu a3,92(s0) 9e9e: 04045783 lhu a5,64(s0) 9ea2: 02d77663 bgeu a4,a3,9ece 9ea6: 97ba add a5,a5,a4 9ea8: 07c2 slli a5,a5,0x10 9eaa: 83c1 srli a5,a5,0x10 9eac: 00f77463 bgeu a4,a5,9eb4 9eb0: 04f41d23 sh a5,90(s0) 9eb4: 08042783 lw a5,128(s0) 9eb8: e385 bnez a5,9ed8 9eba: 08042783 lw a5,128(s0) 9ebe: 02040e23 sb zero,60(s0) 9ec2: 0017b793 seqz a5,a5 9ec6: 40f007b3 neg a5,a5 9eca: bc7e sh a5,62(s0) 9ecc: b1d5 j 9bb0 9ece: 02f787b3 mul a5,a5,a5 9ed2: 02e7c7b3 div a5,a5,a4 9ed6: bfc1 j 9ea6 9ed8: 4b98 lw a4,16(a5) 9eda: 3348 lbu a0,5(a4) 9edc: 235c lbu a5,4(a4) 9ede: 0522 slli a0,a0,0x8 9ee0: 8d5d or a0,a0,a5 9ee2: 237c lbu a5,6(a4) 9ee4: 07c2 slli a5,a5,0x10 9ee6: 8fc9 or a5,a5,a0 9ee8: 3368 lbu a0,7(a4) 9eea: 0562 slli a0,a0,0x18 9eec: 8d5d or a0,a0,a5 9eee: ff6fd0ef jal ra,76e4 9ef2: 08042783 lw a5,128(s0) 9ef6: 892a mv s2,a0 9ef8: 00c7da03 lhu s4,12(a5) 9efc: 4b9c lw a5,16(a5) 9efe: 27c8 lbu a0,12(a5) 9f00: 37dc lbu a5,13(a5) 9f02: 07a2 slli a5,a5,0x8 9f04: 8d5d or a0,a0,a5 9f06: facfd0ef jal ra,76b2 9f0a: 409c lw a5,0(s1) 9f0c: 890d andi a0,a0,3 9f0e: 00a03533 snez a0,a0 9f12: 9552 add a0,a0,s4 9f14: 40f90933 sub s2,s2,a5 9f18: 954a add a0,a0,s2 9f1a: faa040e3 bgtz a0,9eba 9f1e: 08042903 lw s2,128(s0) 9f22: 00092783 lw a5,0(s2) 9f26: 08f42023 sw a5,128(s0) 9f2a: 07445783 lhu a5,116(s0) 9f2e: c385 beqz a5,9f4e 9f30: 01092783 lw a5,16(s2) 9f34: 27c8 lbu a0,12(a5) 9f36: 37dc lbu a5,13(a5) 9f38: 07a2 slli a5,a5,0x8 9f3a: 8d5d or a0,a0,a5 9f3c: f76fd0ef jal ra,76b2 9f40: 8905 andi a0,a0,1 9f42: c511 beqz a0,9f4e 9f44: 07445783 lhu a5,116(s0) 9f48: 17fd addi a5,a5,-1 9f4a: 06f41a23 sh a5,116(s0) 9f4e: 00492503 lw a0,4(s2) 9f52: d29fe0ef jal ra,8c7a 9f56: 07845783 lhu a5,120(s0) 9f5a: 40a78533 sub a0,a5,a0 9f5e: 06a41c23 sh a0,120(s0) 9f62: 854a mv a0,s2 9f64: 98cff0ef jal ra,90f0 9f68: b7b1 j 9eb4 9f6a: 06041a23 sh zero,116(s0) 9f6e: b189 j 9bb0 9f70: 4b98 lw a4,16(a5) 9f72: 0004a903 lw s2,0(s1) 9f76: 3348 lbu a0,5(a4) 9f78: 235c lbu a5,4(a4) 9f7a: 0522 slli a0,a0,0x8 9f7c: 8d5d or a0,a0,a5 9f7e: 237c lbu a5,6(a4) 9f80: 07c2 slli a5,a5,0x10 9f82: 8fc9 or a5,a5,a0 9f84: 3368 lbu a0,7(a4) 9f86: 0562 slli a0,a0,0x18 9f88: 8d5d or a0,a0,a5 9f8a: f5afd0ef jal ra,76e4 9f8e: 5c7c lw a5,124(s0) 9f90: 8aaa mv s5,a0 9f92: 41590933 sub s2,s2,s5 9f96: 00c7da03 lhu s4,12(a5) 9f9a: 4b9c lw a5,16(a5) 9f9c: 27c8 lbu a0,12(a5) 9f9e: 37dc lbu a5,13(a5) 9fa0: 07a2 slli a5,a5,0x8 9fa2: 8d5d or a0,a0,a5 9fa4: f0efd0ef jal ra,76b2 9fa8: 890d andi a0,a0,3 9faa: 00a03533 snez a0,a0 9fae: 9552 add a0,a0,s4 9fb0: 40a90933 sub s2,s2,a0 9fb4: c00941e3 bltz s2,9bb6 9fb8: 409c lw a5,0(s1) 9fba: 5038 lw a4,96(s0) 9fbc: 8f99 sub a5,a5,a4 9fbe: bef04ce3 bgtz a5,9bb6 9fc2: 07c42903 lw s2,124(s0) 9fc6: 00092783 lw a5,0(s2) 9fca: dc7c sw a5,124(s0) 9fcc: 07445783 lhu a5,116(s0) 9fd0: c385 beqz a5,9ff0 9fd2: 01092783 lw a5,16(s2) 9fd6: 27c8 lbu a0,12(a5) 9fd8: 37dc lbu a5,13(a5) 9fda: 07a2 slli a5,a5,0x8 9fdc: 8d5d or a0,a0,a5 9fde: ed4fd0ef jal ra,76b2 9fe2: 8905 andi a0,a0,1 9fe4: c511 beqz a0,9ff0 9fe6: 07445783 lhu a5,116(s0) 9fea: 17fd addi a5,a5,-1 9fec: 06f41a23 sh a5,116(s0) 9ff0: 00492503 lw a0,4(s2) 9ff4: c87fe0ef jal ra,8c7a 9ff8: 07845783 lhu a5,120(s0) 9ffc: 40a78533 sub a0,a5,a0 a000: 06a41c23 sh a0,120(s0) a004: 854a mv a0,s2 a006: 8eaff0ef jal ra,90f0 a00a: b65d j 9bb0 a00c: 443c lw a5,72(s0) a00e: 4098 lw a4,0(s1) a010: 8f99 sub a5,a5,a4 a012: ba07d5e3 bgez a5,9bbc a016: 04c41683 lh a3,76(s0) a01a: 9a01d703 lhu a4,-1632(gp) # 200001e0 a01e: 0642 slli a2,a2,0x10 a020: 4036d593 srai a1,a3,0x3 a024: 8241 srli a2,a2,0x10 a026: 05c2 slli a1,a1,0x10 a028: 81c1 srli a1,a1,0x10 a02a: 40c707b3 sub a5,a4,a2 a02e: 8f8d sub a5,a5,a1 a030: 07c2 slli a5,a5,0x10 a032: 83c1 srli a5,a5,0x10 a034: 01079513 slli a0,a5,0x10 a038: 97b6 add a5,a5,a3 a03a: 07c2 slli a5,a5,0x10 a03c: 87c1 srai a5,a5,0x10 a03e: 8541 srai a0,a0,0x10 a040: 04f41623 sh a5,76(s0) a044: 00055763 bgez a0,a052 a048: 8e19 sub a2,a2,a4 a04a: 962e add a2,a2,a1 a04c: 01061513 slli a0,a2,0x10 a050: 8541 srai a0,a0,0x10 a052: 04e41683 lh a3,78(s0) a056: 878d srai a5,a5,0x3 a058: 04042223 sw zero,68(s0) a05c: 4026d713 srai a4,a3,0x2 a060: 40e68733 sub a4,a3,a4 a064: 972a add a4,a4,a0 a066: 0742 slli a4,a4,0x10 a068: 8341 srli a4,a4,0x10 a06a: 97ba add a5,a5,a4 a06c: 04e41723 sh a4,78(s0) a070: 04f41823 sh a5,80(s0) a074: b6a1 j 9bbc a076: a49e sh a5,8(s1) a078: 00049523 sh zero,10(s1) a07c: 8d99 sub a1,a1,a4 a07e: 4084 lw s1,0(s1) a080: b661 j 9c08 a082: 40e00733 neg a4,a4 a086: 01071593 slli a1,a4,0x10 a08a: b669 j 9c14 a08c: 8f95 sub a5,a5,a3 a08e: bc07d0e3 bgez a5,9c4e a092: 02644783 lbu a5,38(s0) a096: 8522 mv a0,s0 a098: 0027e793 ori a5,a5,2 a09c: 02f40323 sb a5,38(s0) a0a0: 42a010ef jal ra,b4ca a0a4: b66d j 9c4e a0a6: bee684e3 beq a3,a4,9c8e a0aa: 8522 mv a0,s0 a0ac: 3ae010ef jal ra,b45a a0b0: 08442483 lw s1,132(s0) a0b4: 1e049463 bnez s1,a29c a0b8: 2002e537 lui a0,0x2002e a0bc: c5450513 addi a0,a0,-940 # 2002dc54 a0c0: 878ff0ef jal ra,9138 a0c4: 08a42223 sw a0,132(s0) a0c8: aac1 j a298 a0ca: 197d addi s2,s2,-1 a0cc: 0942 slli s2,s2,0x10 a0ce: 01095913 srli s2,s2,0x10 a0d2: b111 j 9cd6 a0d4: 411c lw a5,0(a0) a0d6: 08f42223 sw a5,132(s0) a0da: 816ff0ef jal ra,90f0 a0de: 08442503 lw a0,132(s0) a0e2: f96d bnez a0,a0d4 a0e4: 0009a703 lw a4,0(s3) a0e8: 000a5783 lhu a5,0(s4) a0ec: 8522 mv a0,s0 a0ee: 97ba add a5,a5,a4 a0f0: d41c sw a5,40(s0) a0f2: 345e lhu a5,44(s0) a0f4: 41278933 sub s2,a5,s2 a0f8: 03241623 sh s2,44(s0) a0fc: f71fe0ef jal ra,906c a100: 40dc lw a5,4(s1) a102: 279a lhu a4,8(a5) a104: c709 beqz a4,a10e a106: 9af1ae23 sw a5,-1604(gp) # 200001fc a10a: 0004a223 sw zero,4(s1) a10e: 489c lw a5,16(s1) a110: 27c8 lbu a0,12(a5) a112: 37dc lbu a5,13(a5) a114: 07a2 slli a5,a5,0x8 a116: 8d5d or a0,a0,a5 a118: d9afd0ef jal ra,76b2 a11c: 8905 andi a0,a0,1 a11e: c519 beqz a0,a12c a120: 9c018793 addi a5,gp,-1600 # 20000200 a124: 2398 lbu a4,0(a5) a126: 02076713 ori a4,a4,32 a12a: a398 sb a4,0(a5) a12c: 4a91 li s5,4 a12e: 4b1d li s6,7 a130: aa39 j a24e a132: 365c lbu a5,13(a2) a134: 2648 lbu a0,12(a2) a136: 07a2 slli a5,a5,0x8 a138: 8d5d or a0,a0,a5 a13a: d78fd0ef jal ra,76b2 a13e: 8905 andi a0,a0,1 a140: c535 beqz a0,a1ac a142: 489c lw a5,16(s1) a144: 27c8 lbu a0,12(a5) a146: 37dc lbu a5,13(a5) a148: 07a2 slli a5,a5,0x8 a14a: 8d5d or a0,a0,a5 a14c: d66fd0ef jal ra,76b2 a150: 8909 andi a0,a0,2 a152: ed29 bnez a0,a1ac a154: 489c lw a5,16(s1) a156: 00d7ca83 lbu s5,13(a5) a15a: 27c8 lbu a0,12(a5) a15c: 0aa2 slli s5,s5,0x8 a15e: 00aaeab3 or s5,s5,a0 a162: 855e mv a0,s7 a164: d40fd0ef jal ra,76a4 a168: 489c lw a5,16(s1) a16a: 00aafab3 and s5,s5,a0 a16e: 27c8 lbu a0,12(a5) a170: 37dc lbu a5,13(a5) a172: 07a2 slli a5,a5,0x8 a174: 8d5d or a0,a0,a5 a176: d3cfd0ef jal ra,76b2 a17a: 03e57513 andi a0,a0,62 a17e: 00156513 ori a0,a0,1 a182: d22fd0ef jal ra,76a4 a186: 00aae533 or a0,s5,a0 a18a: 489c lw a5,16(s1) a18c: 0542 slli a0,a0,0x10 a18e: 8141 srli a0,a0,0x10 a190: 00855713 srli a4,a0,0x8 a194: a7c8 sb a0,12(a5) a196: b7d8 sb a4,13(a5) a198: 00c4da83 lhu s5,12(s1) a19c: d16fd0ef jal ra,76b2 a1a0: 890d andi a0,a0,3 a1a2: 00a03533 snez a0,a0 a1a6: 9aaa add s5,s5,a0 a1a8: 015a1023 sh s5,0(s4) a1ac: 000b2a83 lw s5,0(s6) a1b0: 855a mv a0,s6 a1b2: f3ffe0ef jal ra,90f0 a1b6: 8b56 mv s6,s5 a1b8: b6dd j 9d9e a1ba: 00f9a023 sw a5,0(s3) a1be: 375c lbu a5,13(a4) a1c0: 2748 lbu a0,12(a4) a1c2: 00c4db83 lhu s7,12(s1) a1c6: 07a2 slli a5,a5,0x8 a1c8: 8d5d or a0,a0,a5 a1ca: ce8fd0ef jal ra,76b2 a1ce: 541c lw a5,40(s0) a1d0: 890d andi a0,a0,3 a1d2: 00a03533 snez a0,a0 a1d6: 955e add a0,a0,s7 a1d8: 953e add a0,a0,a5 a1da: 489c lw a5,16(s1) a1dc: d408 sw a0,40(s0) a1de: 00c4db83 lhu s7,12(s1) a1e2: 27c8 lbu a0,12(a5) a1e4: 37dc lbu a5,13(a5) a1e6: 07a2 slli a5,a5,0x8 a1e8: 8d5d or a0,a0,a5 a1ea: cc8fd0ef jal ra,76b2 a1ee: 345e lhu a5,44(s0) a1f0: 890d andi a0,a0,3 a1f2: 00a03533 snez a0,a0 a1f6: 955e add a0,a0,s7 a1f8: 40a78533 sub a0,a5,a0 a1fc: b44a sh a0,44(s0) a1fe: 8522 mv a0,s0 a200: e6dfe0ef jal ra,906c a204: 40cc lw a1,4(s1) a206: 259e lhu a5,8(a1) a208: cb89 beqz a5,a21a a20a: 9bc18793 addi a5,gp,-1604 # 200001fc a20e: 4388 lw a0,0(a5) a210: cd35 beqz a0,a28c a212: a85fe0ef jal ra,8c96 a216: 0004a223 sw zero,4(s1) a21a: 489c lw a5,16(s1) a21c: 27c8 lbu a0,12(a5) a21e: 37dc lbu a5,13(a5) a220: 07a2 slli a5,a5,0x8 a222: 8d5d or a0,a0,a5 a224: c8efd0ef jal ra,76b2 a228: 8905 andi a0,a0,1 a22a: cd01 beqz a0,a242 a22c: 9c018713 addi a4,gp,-1600 # 20000200 a230: 231c lbu a5,0(a4) a232: 0207e793 ori a5,a5,32 a236: a31c sb a5,0(a4) a238: 481c lw a5,16(s0) a23a: 01579463 bne a5,s5,a242 a23e: 01642823 sw s6,16(s0) a242: 409c lw a5,0(s1) a244: 8526 mv a0,s1 a246: 08f42223 sw a5,132(s0) a24a: ea7fe0ef jal ra,90f0 a24e: 08442483 lw s1,132(s0) a252: cc99 beqz s1,a270 a254: 4898 lw a4,16(s1) a256: 3354 lbu a3,5(a4) a258: 235c lbu a5,4(a4) a25a: 06a2 slli a3,a3,0x8 a25c: 8edd or a3,a3,a5 a25e: 237c lbu a5,6(a4) a260: 07c2 slli a5,a5,0x10 a262: 8edd or a3,a3,a5 a264: 337c lbu a5,7(a4) a266: 07e2 slli a5,a5,0x18 a268: 8fd5 or a5,a5,a3 a26a: 5414 lw a3,40(s0) a26c: f4d787e3 beq a5,a3,a1ba a270: 02644783 lbu a5,38(s0) a274: 0017f713 andi a4,a5,1 a278: cf01 beqz a4,a290 a27a: 9bf9 andi a5,a5,-2 a27c: 0027e793 ori a5,a5,2 a280: 02f40323 sb a5,38(s0) a284: 8522 mv a0,s0 a286: 244010ef jal ra,b4ca a28a: a039 j a298 a28c: c38c sw a1,0(a5) a28e: b761 j a216 a290: 0017e793 ori a5,a5,1 a294: 02f40323 sb a5,38(s0) a298: a8ef606f j 526 <__riscv_restore_10> a29c: 0009a703 lw a4,0(s3) a2a0: 4901 li s2,0 a2a2: fff70513 addi a0,a4,-1 a2a6: 00170813 addi a6,a4,1 a2aa: 4890 lw a2,16(s1) a2ac: 3254 lbu a3,5(a2) a2ae: 225c lbu a5,4(a2) a2b0: 06a2 slli a3,a3,0x8 a2b2: 8edd or a3,a3,a5 a2b4: 227c lbu a5,6(a2) a2b6: 07c2 slli a5,a5,0x10 a2b8: 8edd or a3,a3,a5 a2ba: 327c lbu a5,7(a2) a2bc: 07e2 slli a5,a5,0x18 a2be: 8fd5 or a5,a5,a3 a2c0: 02e79c63 bne a5,a4,a2f8 a2c4: 2002e537 lui a0,0x2002e a2c8: c5450793 addi a5,a0,-940 # 2002dc54 a2cc: 27da lhu a4,12(a5) a2ce: 24de lhu a5,12(s1) a2d0: fce7f4e3 bgeu a5,a4,a298 a2d4: c5450513 addi a0,a0,-940 a2d8: e61fe0ef jal ra,9138 a2dc: dd55 beqz a0,a298 a2de: 00090a63 beqz s2,a2f2 a2e2: 00a92023 sw a0,0(s2) a2e6: 85a6 mv a1,s1 a2e8: f2aff0ef jal ra,9a12 a2ec: b775 j a298 a2ee: 84b6 mv s1,a3 a2f0: bf6d j a2aa a2f2: 08a42223 sw a0,132(s0) a2f6: bfc5 j a2e6 a2f8: 02091063 bnez s2,a318 a2fc: 40f706b3 sub a3,a4,a5 a300: 0806de63 bgez a3,a39c a304: 2002e537 lui a0,0x2002e a308: c5450513 addi a0,a0,-940 # 2002dc54 a30c: e2dfe0ef jal ra,9138 a310: d541 beqz a0,a298 a312: 08a42223 sw a0,132(s0) a316: bfc1 j a2e6 a318: 01092883 lw a7,16(s2) a31c: 0058c583 lbu a1,5(a7) a320: 0048c683 lbu a3,4(a7) a324: 05a2 slli a1,a1,0x8 a326: 8dd5 or a1,a1,a3 a328: 0068c683 lbu a3,6(a7) a32c: 06c2 slli a3,a3,0x10 a32e: 8dd5 or a1,a1,a3 a330: 0078c683 lbu a3,7(a7) a334: 06e2 slli a3,a3,0x18 a336: 8ecd or a3,a3,a1 a338: 40d506b3 sub a3,a0,a3 a33c: 0606c063 bltz a3,a39c a340: 40f806b3 sub a3,a6,a5 a344: 04d04c63 bgtz a3,a39c a348: 2002e537 lui a0,0x2002e a34c: c5450513 addi a0,a0,-940 # 2002dc54 a350: de9fe0ef jal ra,9138 a354: 842a mv s0,a0 a356: d129 beqz a0,a298 a358: 01092703 lw a4,16(s2) a35c: 335c lbu a5,5(a4) a35e: 234c lbu a1,4(a4) a360: 07a2 slli a5,a5,0x8 a362: 8ddd or a1,a1,a5 a364: 237c lbu a5,6(a4) a366: 07c2 slli a5,a5,0x10 a368: 8fcd or a5,a5,a1 a36a: 336c lbu a1,7(a4) a36c: 00c95703 lhu a4,12(s2) a370: 05e2 slli a1,a1,0x18 a372: 8fcd or a5,a5,a1 a374: 0009a583 lw a1,0(s3) a378: 973e add a4,a4,a5 a37a: 8f0d sub a4,a4,a1 a37c: 00e05b63 blez a4,a392 a380: 8d9d sub a1,a1,a5 a382: 05c2 slli a1,a1,0x10 a384: 00492503 lw a0,4(s2) a388: 81c1 srli a1,a1,0x10 a38a: 00b91623 sh a1,12(s2) a38e: 895fe0ef jal ra,8c22 a392: 00892023 sw s0,0(s2) a396: 85a6 mv a1,s1 a398: 8522 mv a0,s0 a39a: b7b9 j a2e8 a39c: 4094 lw a3,0(s1) a39e: 8926 mv s2,s1 a3a0: f6b9 bnez a3,a2ee a3a2: 40f707b3 sub a5,a4,a5 a3a6: eef059e3 blez a5,a298 a3aa: 365c lbu a5,13(a2) a3ac: 2648 lbu a0,12(a2) a3ae: 07a2 slli a5,a5,0x8 a3b0: 8d5d or a0,a0,a5 a3b2: b00fd0ef jal ra,76b2 a3b6: 8905 andi a0,a0,1 a3b8: ee0510e3 bnez a0,a298 a3bc: 2002e537 lui a0,0x2002e a3c0: c5450513 addi a0,a0,-940 # 2002dc54 a3c4: d75fe0ef jal ra,9138 a3c8: c088 sw a0,0(s1) a3ca: ec0507e3 beqz a0,a298 a3ce: 4898 lw a4,16(s1) a3d0: 335c lbu a5,5(a4) a3d2: 234c lbu a1,4(a4) a3d4: 07a2 slli a5,a5,0x8 a3d6: 8ddd or a1,a1,a5 a3d8: 237c lbu a5,6(a4) a3da: 07c2 slli a5,a5,0x10 a3dc: 8fcd or a5,a5,a1 a3de: 336c lbu a1,7(a4) a3e0: 24da lhu a4,12(s1) a3e2: 05e2 slli a1,a1,0x18 a3e4: 8fcd or a5,a5,a1 a3e6: 0009a583 lw a1,0(s3) a3ea: 973e add a4,a4,a5 a3ec: 8f0d sub a4,a4,a1 a3ee: eae055e3 blez a4,a298 a3f2: 8d9d sub a1,a1,a5 a3f4: 05c2 slli a1,a1,0x10 a3f6: 40c8 lw a0,4(s1) a3f8: 81c1 srli a1,a1,0x10 a3fa: a4ce sh a1,12(s1) a3fc: 827fe0ef jal ra,8c22 a400: bd61 j a298 a402: 8522 mv a0,s0 a404: 056010ef jal ra,b45a a408: bd41 j a298 a40a: 40d78733 sub a4,a5,a3 a40e: 00074863 bltz a4,a41e a412: 345a lhu a4,44(s0) a414: 0785 addi a5,a5,1 a416: 8f95 sub a5,a5,a3 a418: 8f99 sub a5,a5,a4 a41a: e6f05fe3 blez a5,a298 a41e: 02644783 lbu a5,38(s0) a422: bda9 j a27c 0000a424 : tcp_parseopt.isra.0(): a424: 8f2f62ef jal t0,516 <__riscv_save_0> a428: 9cc18493 addi s1,gp,-1588 # 2000020c a42c: 0004a903 lw s2,0(s1) a430: 842a mv s0,a0 a432: 00d94783 lbu a5,13(s2) a436: 00c94503 lbu a0,12(s2) a43a: 07a2 slli a5,a5,0x8 a43c: 8d5d or a0,a0,a5 a43e: a74fd0ef jal ra,76b2 a442: 8131 srli a0,a0,0xc a444: 0542 slli a0,a0,0x10 a446: 8141 srli a0,a0,0x10 a448: 4795 li a5,5 a44a: 02a7fc63 bgeu a5,a0,a482 a44e: 409c lw a5,0(s1) a450: 0951 addi s2,s2,20 a452: 27c8 lbu a0,12(a5) a454: 37dc lbu a5,13(a5) a456: 07a2 slli a5,a5,0x8 a458: 8d5d or a0,a0,a5 a45a: a58fd0ef jal ra,76b2 a45e: 2002e7b7 lui a5,0x2002e a462: bd47a603 lw a2,-1068(a5) # 2002dbd4 a466: 8131 srli a0,a0,0xc a468: 156d addi a0,a0,-5 a46a: 050a slli a0,a0,0x2 a46c: 0542 slli a0,a0,0x10 a46e: 01061593 slli a1,a2,0x10 a472: 8141 srli a0,a0,0x10 a474: 81c1 srli a1,a1,0x10 a476: 4781 li a5,0 a478: 4805 li a6,1 a47a: 4889 li a7,2 a47c: 4311 li t1,4 a47e: 00a7e463 bltu a5,a0,a486 a482: 8b8f606f j 53a <__riscv_restore_0> a486: 00f906b3 add a3,s2,a5 a48a: 2298 lbu a4,0(a3) a48c: 01070963 beq a4,a6,a49e a490: db6d beqz a4,a482 a492: 01170a63 beq a4,a7,a4a6 a496: 3298 lbu a4,1(a3) a498: d76d beqz a4,a482 a49a: 97ba add a5,a5,a4 a49c: a011 j a4a0 a49e: 0785 addi a5,a5,1 a4a0: 07c2 slli a5,a5,0x10 a4a2: 83c1 srli a5,a5,0x10 a4a4: bfe9 j a47e a4a6: 3298 lbu a4,1(a3) a4a8: fc671de3 bne a4,t1,a482 a4ac: 00378713 addi a4,a5,3 a4b0: fca759e3 bge a4,a0,a482 a4b4: 22b8 lbu a4,2(a3) a4b6: 32b4 lbu a3,3(a3) a4b8: 0722 slli a4,a4,0x8 a4ba: 8f55 or a4,a4,a3 a4bc: 00e66363 bltu a2,a4,a4c2 a4c0: e311 bnez a4,a4c4 a4c2: 872e mv a4,a1 a4c4: a01a sh a4,0(s0) a4c6: 0791 addi a5,a5,4 a4c8: bfe1 j a4a0 0000a4ca : tcp_input(): a4ca: 81cf62ef jal t0,4e6 <__riscv_save_12> a4ce: 4140 lw s0,4(a0) a4d0: 8baa mv s7,a0 a4d2: 301c lbu a5,1(s0) a4d4: 2008 lbu a0,0(s0) a4d6: 1141 addi sp,sp,-16 a4d8: 07a2 slli a5,a5,0x8 a4da: 9b818913 addi s2,gp,-1608 # 200001f8 a4de: 8d5d or a0,a0,a5 a4e0: 89ae mv s3,a1 a4e2: 00892023 sw s0,0(s2) a4e6: 9ccfd0ef jal ra,76b2 a4ea: 00092783 lw a5,0(s2) a4ee: 8119 srli a0,a0,0x6 a4f0: 03c57513 andi a0,a0,60 a4f4: 942a add s0,s0,a0 a4f6: 2388 lbu a0,0(a5) a4f8: 339c lbu a5,1(a5) a4fa: 9c81a623 sw s0,-1588(gp) # 2000020c a4fe: 07a2 slli a5,a5,0x8 a500: 8d5d or a0,a0,a5 a502: 9b0fd0ef jal ra,76b2 a506: 00655593 srli a1,a0,0x6 a50a: 03c5f593 andi a1,a1,60 a50e: 40b005b3 neg a1,a1 a512: 855e mv a0,s7 a514: d12fe0ef jal ra,8a26 a518: e511 bnez a0,a524 a51a: 008bd703 lhu a4,8(s7) a51e: 47cd li a5,19 a520: 00e7e863 bltu a5,a4,a530 a524: 855e mv a0,s7 a526: d6efe0ef jal ra,8a94 a52a: 0141 addi sp,sp,16 a52c: ff7f506f j 522 <__riscv_restore_12> a530: 9b818b13 addi s6,gp,-1608 # 200001f8 a534: 000b2503 lw a0,0(s6) a538: 85ce mv a1,s3 a53a: 0541 addi a0,a0,16 a53c: e2afd0ef jal ra,7b66 a540: f175 bnez a0,a524 a542: 000b2703 lw a4,0(s6) a546: f0000537 lui a0,0xf0000 a54a: 3b1c lbu a5,17(a4) a54c: 2b00 lbu s0,16(a4) a54e: 07a2 slli a5,a5,0x8 a550: 8fc1 or a5,a5,s0 a552: 2b20 lbu s0,18(a4) a554: 0442 slli s0,s0,0x10 a556: 8fc1 or a5,a5,s0 a558: 3b20 lbu s0,19(a4) a55a: 0462 slli s0,s0,0x18 a55c: 8c5d or s0,s0,a5 a55e: 986fd0ef jal ra,76e4 a562: 8c69 and s0,s0,a0 a564: e0000537 lui a0,0xe0000 a568: 97cfd0ef jal ra,76e4 a56c: faa40ce3 beq s0,a0,a524 a570: 000b2583 lw a1,0(s6) a574: 008bd703 lhu a4,8(s7) a578: 4699 li a3,6 a57a: 01058613 addi a2,a1,16 a57e: 855e mv a0,s7 a580: 05b1 addi a1,a1,12 a582: 629010ef jal ra,c3aa a586: fd59 bnez a0,a524 a588: 9cc18493 addi s1,gp,-1588 # 2000020c a58c: 409c lw a5,0(s1) a58e: 27c8 lbu a0,12(a5) a590: 37dc lbu a5,13(a5) a592: 07a2 slli a5,a5,0x8 a594: 8d5d or a0,a0,a5 a596: 91cfd0ef jal ra,76b2 a59a: 8131 srli a0,a0,0xc a59c: 55f1 li a1,-4 a59e: 02b505b3 mul a1,a0,a1 a5a2: 855e mv a0,s7 a5a4: 05c2 slli a1,a1,0x10 a5a6: 85c1 srai a1,a1,0x10 a5a8: c7efe0ef jal ra,8a26 a5ac: fd25 bnez a0,a524 a5ae: 4080 lw s0,0(s1) a5b0: 301c lbu a5,1(s0) a5b2: 2008 lbu a0,0(s0) a5b4: 07a2 slli a5,a5,0x8 a5b6: 8d5d or a0,a0,a5 a5b8: 8fafd0ef jal ra,76b2 a5bc: a008 sb a0,0(s0) a5be: 8121 srli a0,a0,0x8 a5c0: b008 sb a0,1(s0) a5c2: 4080 lw s0,0(s1) a5c4: 303c lbu a5,3(s0) a5c6: 2028 lbu a0,2(s0) a5c8: 07a2 slli a5,a5,0x8 a5ca: 8d5d or a0,a0,a5 a5cc: 8e6fd0ef jal ra,76b2 a5d0: a028 sb a0,2(s0) a5d2: 8121 srli a0,a0,0x8 a5d4: b028 sb a0,3(s0) a5d6: 4080 lw s0,0(s1) a5d8: 3048 lbu a0,5(s0) a5da: 205c lbu a5,4(s0) a5dc: 0522 slli a0,a0,0x8 a5de: 8d5d or a0,a0,a5 a5e0: 207c lbu a5,6(s0) a5e2: 07c2 slli a5,a5,0x10 a5e4: 8fc9 or a5,a5,a0 a5e6: 3068 lbu a0,7(s0) a5e8: 0562 slli a0,a0,0x18 a5ea: 8d5d or a0,a0,a5 a5ec: 8f8fd0ef jal ra,76e4 a5f0: 00855793 srli a5,a0,0x8 a5f4: b05c sb a5,5(s0) a5f6: 01055793 srli a5,a0,0x10 a5fa: a07c sb a5,6(s0) a5fc: 01855793 srli a5,a0,0x18 a600: a048 sb a0,4(s0) a602: b07c sb a5,7(s0) a604: 4080 lw s0,0(s1) a606: 9ca1a223 sw a0,-1596(gp) # 20000204 a60a: 9c418a93 addi s5,gp,-1596 # 20000204 a60e: 3408 lbu a0,9(s0) a610: 241c lbu a5,8(s0) a612: 0522 slli a0,a0,0x8 a614: 8d5d or a0,a0,a5 a616: 243c lbu a5,10(s0) a618: 07c2 slli a5,a5,0x10 a61a: 8fc9 or a5,a5,a0 a61c: 3428 lbu a0,11(s0) a61e: 0562 slli a0,a0,0x18 a620: 8d5d or a0,a0,a5 a622: 8c2fd0ef jal ra,76e4 a626: 00855793 srli a5,a0,0x8 a62a: b41c sb a5,9(s0) a62c: 01055793 srli a5,a0,0x10 a630: a43c sb a5,10(s0) a632: 01855793 srli a5,a0,0x18 a636: a408 sb a0,8(s0) a638: b43c sb a5,11(s0) a63a: 4080 lw s0,0(s1) a63c: 9aa1a823 sw a0,-1616(gp) # 200001f0 a640: 9b018913 addi s2,gp,-1616 # 200001f0 a644: 347c lbu a5,15(s0) a646: 2468 lbu a0,14(s0) a648: 07a2 slli a5,a5,0x8 a64a: 8d5d or a0,a0,a5 a64c: 866fd0ef jal ra,76b2 a650: 409c lw a5,0(s1) a652: a468 sb a0,14(s0) a654: 8121 srli a0,a0,0x8 a656: b468 sb a0,15(s0) a658: 27c8 lbu a0,12(a5) a65a: 37dc lbu a5,13(a5) a65c: 07a2 slli a5,a5,0x8 a65e: 8d5d or a0,a0,a5 a660: 852fd0ef jal ra,76b2 a664: 0ff57893 andi a7,a0,255 a668: 008bd503 lhu a0,8(s7) a66c: 0038f593 andi a1,a7,3 a670: 00b035b3 snez a1,a1 a674: 95aa add a1,a1,a0 a676: 9941a303 lw t1,-1644(gp) # 200001d4 a67a: 05c2 slli a1,a1,0x10 a67c: 4094 lw a3,0(s1) a67e: 000b2803 lw a6,0(s6) a682: 03f8f793 andi a5,a7,63 a686: 81c1 srli a1,a1,0x10 a688: 9af18a23 sb a5,-1612(gp) # 200001f4 a68c: 9cb19823 sh a1,-1584(gp) # 20000210 a690: 841a mv s0,t1 a692: 4601 li a2,0 a694: 9b418c93 addi s9,gp,-1612 # 200001f4 a698: 9d018c13 addi s8,gp,-1584 # 20000210 a69c: e401 bnez s0,a6a4 a69e: 9ac1a503 lw a0,-1620(gp) # 200001ec a6a2: aad9 j a878 a6a4: 329c lbu a5,1(a3) a6a6: 0006ce03 lbu t3,0(a3) a6aa: 305a lhu a4,36(s0) a6ac: 07a2 slli a5,a5,0x8 a6ae: 01c7e7b3 or a5,a5,t3 a6b2: 0ef71963 bne a4,a5,a7a4 a6b6: 32bc lbu a5,3(a3) a6b8: 0026ce03 lbu t3,2(a3) a6bc: 2c5a lhu a4,28(s0) a6be: 07a2 slli a5,a5,0x8 a6c0: 01c7e7b3 or a5,a5,t3 a6c4: 0ef71063 bne a4,a5,a7a4 a6c8: 00d84703 lbu a4,13(a6) a6cc: 00c84783 lbu a5,12(a6) a6d0: 0722 slli a4,a4,0x8 a6d2: 8f5d or a4,a4,a5 a6d4: 00e84783 lbu a5,14(a6) a6d8: 07c2 slli a5,a5,0x10 a6da: 8f5d or a4,a4,a5 a6dc: 00f84783 lbu a5,15(a6) a6e0: 07e2 slli a5,a5,0x18 a6e2: 8fd9 or a5,a5,a4 a6e4: 4058 lw a4,4(s0) a6e6: 0af71f63 bne a4,a5,a7a4 a6ea: 01184703 lbu a4,17(a6) a6ee: 01084783 lbu a5,16(a6) a6f2: 0722 slli a4,a4,0x8 a6f4: 8f5d or a4,a4,a5 a6f6: 01284783 lbu a5,18(a6) a6fa: 07c2 slli a5,a5,0x10 a6fc: 8f5d or a4,a4,a5 a6fe: 01384783 lbu a5,19(a6) a702: 07e2 slli a5,a5,0x18 a704: 8fd9 or a5,a5,a4 a706: 4018 lw a4,0(s0) a708: 08f71e63 bne a4,a5,a7a4 a70c: c619 beqz a2,a71a a70e: 445c lw a5,12(s0) a710: 9881aa23 sw s0,-1644(gp) # 200001d4 a714: c65c sw a5,12(a2) a716: 00642623 sw t1,12(s0) a71a: 004ba703 lw a4,4(s7) a71e: 2002edb7 lui s11,0x2002e a722: 08842603 lw a2,136(s0) a726: c54d8793 addi a5,s11,-940 # 2002dc54 a72a: 9a01ae23 sw zero,-1604(gp) # 200001fc a72e: 9c018023 sb zero,-1600(gp) # 20000200 a732: 0007a023 sw zero,0(a5) a736: a7ca sh a0,12(a5) a738: c798 sw a4,8(a5) a73a: 0177a223 sw s7,4(a5) a73e: cb94 sw a3,16(a5) a740: 9c018a13 addi s4,gp,-1600 # 20000200 a744: 9bc18d13 addi s10,gp,-1604 # 200001fc a748: c54d8d93 addi s11,s11,-940 a74c: ce09 beqz a2,a766 a74e: 09042783 lw a5,144(s0) a752: 4681 li a3,0 a754: 85a2 mv a1,s0 a756: 2e078f63 beqz a5,aa54 a75a: 4c08 lw a0,24(s0) a75c: 9782 jalr a5 a75e: dc0513e3 bnez a0,a524 a762: 08042423 sw zero,136(s0) a766: 000cc783 lbu a5,0(s9) a76a: 9c81a423 sw s0,-1592(gp) # 20000208 a76e: 0047f713 andi a4,a5,4 a772: 9c818b93 addi s7,gp,-1592 # 20000208 a776: 34070263 beqz a4,aaba a77a: 4818 lw a4,16(s0) a77c: 4789 li a5,2 a77e: 2cf71f63 bne a4,a5,aa5c a782: 5038 lw a4,96(s0) a784: 00092783 lw a5,0(s2) a788: 2ef71463 bne a4,a5,aa70 a78c: 000a4783 lbu a5,0(s4) a790: 0087e793 ori a5,a5,8 a794: 00fa0023 sb a5,0(s4) a798: 02644783 lbu a5,38(s0) a79c: 9bf9 andi a5,a5,-2 a79e: 02f40323 sb a5,38(s0) a7a2: a4f9 j aa70 a7a4: 8622 mv a2,s0 a7a6: 4440 lw s0,12(s0) a7a8: bdd5 j a69c a7aa: 3298 lbu a4,1(a3) a7ac: 229c lbu a5,0(a3) a7ae: 0722 slli a4,a4,0x8 a7b0: 8f5d or a4,a4,a5 a7b2: 315e lhu a5,36(a0) a7b4: 0ce79163 bne a5,a4,a876 a7b8: 32b0 lbu a2,3(a3) a7ba: 22b8 lbu a4,2(a3) a7bc: 0622 slli a2,a2,0x8 a7be: 8e59 or a2,a2,a4 a7c0: 2d5a lhu a4,28(a0) a7c2: 0ac71a63 bne a4,a2,a876 a7c6: 00d84303 lbu t1,13(a6) a7ca: 00c84603 lbu a2,12(a6) a7ce: 0322 slli t1,t1,0x8 a7d0: 00c36333 or t1,t1,a2 a7d4: 00e84603 lbu a2,14(a6) a7d8: 0642 slli a2,a2,0x10 a7da: 00666333 or t1,a2,t1 a7de: 00f84603 lbu a2,15(a6) a7e2: 0662 slli a2,a2,0x18 a7e4: 00666633 or a2,a2,t1 a7e8: 00452303 lw t1,4(a0) # e0000004 <__freertos_irq_stack_top+0xbffd0004> a7ec: 08c31563 bne t1,a2,a876 a7f0: 01184303 lbu t1,17(a6) a7f4: 01084603 lbu a2,16(a6) a7f8: 0322 slli t1,t1,0x8 a7fa: 00c36333 or t1,t1,a2 a7fe: 01284603 lbu a2,18(a6) a802: 0642 slli a2,a2,0x10 a804: 00666333 or t1,a2,t1 a808: 01384603 lbu a2,19(a6) a80c: 0662 slli a2,a2,0x18 a80e: 00666633 or a2,a2,t1 a812: 00052303 lw t1,0(a0) a816: 06c31063 bne t1,a2,a876 a81a: 0048f693 andi a3,a7,4 a81e: d00693e3 bnez a3,a524 a822: 0028f693 andi a3,a7,2 a826: c695 beqz a3,a852 a828: 000aa883 lw a7,0(s5) a82c: 5514 lw a3,40(a0) a82e: 40d886b3 sub a3,a7,a3 a832: 0206c763 bltz a3,a860 a836: 3552 lhu a2,44(a0) a838: 8e91 sub a3,a3,a2 a83a: 02d04363 bgtz a3,a860 a83e: 00c80693 addi a3,a6,12 a842: 01080613 addi a2,a6,16 a846: 95c6 add a1,a1,a7 a848: 00092503 lw a0,0(s2) a84c: 7e7000ef jal ra,b832 a850: b9d1 j a524 a852: 0018f893 andi a7,a7,1 a856: 00088563 beqz a7,a860 a85a: 9a01a783 lw a5,-1632(gp) # 200001e0 a85e: dd1c sw a5,56(a0) a860: cc0582e3 beqz a1,a524 a864: 02654783 lbu a5,38(a0) a868: 0027e793 ori a5,a5,2 a86c: 02f50323 sb a5,38(a0) a870: 45b000ef jal ra,b4ca a874: b945 j a524 a876: 4548 lw a0,12(a0) a878: f90d bnez a0,a7aa a87a: 99c1a303 lw t1,-1636(gp) # 200001dc a87e: 8e3e mv t3,a5 a880: 8a1a mv s4,t1 a882: 000a1c63 bnez s4,a89a a886: 36dc lbu a5,13(a3) a888: 26c8 lbu a0,12(a3) a88a: 07a2 slli a5,a5,0x8 a88c: 8d5d or a0,a0,a5 a88e: e25fc0ef jal ra,76b2 a892: 8911 andi a0,a0,4 a894: c80518e3 bnez a0,a524 a898: a045 j a938 a89a: 000a2603 lw a2,0(s4) a89e: c20d beqz a2,a8c0 a8a0: 01184703 lbu a4,17(a6) a8a4: 01084783 lbu a5,16(a6) a8a8: 0722 slli a4,a4,0x8 a8aa: 8f5d or a4,a4,a5 a8ac: 01284783 lbu a5,18(a6) a8b0: 07c2 slli a5,a5,0x10 a8b2: 8f5d or a4,a4,a5 a8b4: 01384783 lbu a5,19(a6) a8b8: 07e2 slli a5,a5,0x18 a8ba: 8fd9 or a5,a5,a4 a8bc: 18f61863 bne a2,a5,aa4c a8c0: 32b8 lbu a4,3(a3) a8c2: 22b0 lbu a2,2(a3) a8c4: 01ca5783 lhu a5,28(s4) a8c8: 0722 slli a4,a4,0x8 a8ca: 8f51 or a4,a4,a2 a8cc: 18e79063 bne a5,a4,aa4c a8d0: c901 beqz a0,a8e0 a8d2: 00ca2783 lw a5,12(s4) a8d6: 9941ae23 sw s4,-1636(gp) # 200001dc a8da: c55c sw a5,12(a0) a8dc: 006a2623 sw t1,12(s4) a8e0: 0108f793 andi a5,a7,16 a8e4: cf89 beqz a5,a8fe a8e6: 329c lbu a5,1(a3) a8e8: 2290 lbu a2,0(a3) a8ea: 000aa503 lw a0,0(s5) a8ee: 07a2 slli a5,a5,0x8 a8f0: 8fd1 or a5,a5,a2 a8f2: 00c80693 addi a3,a6,12 a8f6: 01080613 addi a2,a6,16 a8fa: 95aa add a1,a1,a0 a8fc: b7b1 j a848 a8fe: 0028f893 andi a7,a7,2 a902: c20881e3 beqz a7,a524 a906: 9581a883 lw a7,-1704(gp) # 20000198 a90a: 04088e63 beqz a7,a966 a90e: 00d84503 lbu a0,13(a6) a912: 00c84783 lbu a5,12(a6) a916: 228c lbu a1,0(a3) a918: 0522 slli a0,a0,0x8 a91a: 8d5d or a0,a0,a5 a91c: 00e84783 lbu a5,14(a6) a920: 3294 lbu a3,1(a3) a922: 863a mv a2,a4 a924: 07c2 slli a5,a5,0x10 a926: 8fc9 or a5,a5,a0 a928: 00f84503 lbu a0,15(a6) a92c: 06a2 slli a3,a3,0x8 a92e: 8dd5 or a1,a1,a3 a930: 0562 slli a0,a0,0x18 a932: 8d5d or a0,a0,a5 a934: 9882 jalr a7 a936: c905 beqz a0,a966 a938: 4094 lw a3,0(s1) a93a: 000b2603 lw a2,0(s6) a93e: 000c5503 lhu a0,0(s8) a942: 329c lbu a5,1(a3) a944: 32b8 lbu a4,3(a3) a946: 0006c883 lbu a7,0(a3) a94a: 0026c803 lbu a6,2(a3) a94e: 07a2 slli a5,a5,0x8 a950: 0722 slli a4,a4,0x8 a952: 00c60693 addi a3,a2,12 a956: 000aa583 lw a1,0(s5) a95a: 0117e7b3 or a5,a5,a7 a95e: 01076733 or a4,a4,a6 a962: 0641 addi a2,a2,16 a964: bf59 j a8fa a966: 014a4503 lbu a0,20(s4) a96a: e1dfe0ef jal ra,9786 a96e: 842a mv s0,a0 a970: ba050ae3 beqz a0,a524 a974: 000b2783 lw a5,0(s6) a978: 4701 li a4,0 a97a: 01078693 addi a3,a5,16 a97e: ca99 beqz a3,a994 a980: 3b94 lbu a3,17(a5) a982: 2b98 lbu a4,16(a5) a984: 06a2 slli a3,a3,0x8 a986: 8ed9 or a3,a3,a4 a988: 2bb8 lbu a4,18(a5) a98a: 0742 slli a4,a4,0x10 a98c: 8ed9 or a3,a3,a4 a98e: 3bb8 lbu a4,19(a5) a990: 0762 slli a4,a4,0x18 a992: 8f55 or a4,a4,a3 a994: c018 sw a4,0(s0) a996: 01ca5703 lhu a4,28(s4) a99a: 00c78693 addi a3,a5,12 a99e: ac5a sh a4,28(s0) a9a0: 4701 li a4,0 a9a2: ca99 beqz a3,a9b8 a9a4: 37d4 lbu a3,13(a5) a9a6: 27d8 lbu a4,12(a5) a9a8: 06a2 slli a3,a3,0x8 a9aa: 8ed9 or a3,a3,a4 a9ac: 27f8 lbu a4,14(a5) a9ae: 0742 slli a4,a4,0x10 a9b0: 8ed9 or a3,a3,a4 a9b2: 37f8 lbu a4,15(a5) a9b4: 0762 slli a4,a4,0x18 a9b6: 8f55 or a4,a4,a3 a9b8: 4094 lw a3,0(s1) a9ba: c058 sw a4,4(s0) a9bc: 04040513 addi a0,s0,64 a9c0: 329c lbu a5,1(a3) a9c2: 2298 lbu a4,0(a3) a9c4: 07a2 slli a5,a5,0x8 a9c6: 8fd9 or a5,a5,a4 a9c8: 000aa703 lw a4,0(s5) a9cc: b05e sh a5,36(s0) a9ce: 478d li a5,3 a9d0: c81c sw a5,16(s0) a9d2: 00170793 addi a5,a4,1 a9d6: d41c sw a5,40(s0) a9d8: d81c sw a5,48(s0) a9da: 36fc lbu a5,15(a3) a9dc: 26f0 lbu a2,14(a3) a9de: 177d addi a4,a4,-1 a9e0: 07a2 slli a5,a5,0x8 a9e2: 8fd1 or a5,a5,a2 a9e4: 06f41223 sh a5,100(s0) a9e8: 04f41e23 sh a5,92(s0) a9ec: 018a2783 lw a5,24(s4) a9f0: d438 sw a4,104(s0) a9f2: cc1c sw a5,24(s0) a9f4: 2002e7b7 lui a5,0x2002e a9f8: bd47d783 lhu a5,-1068(a5) # 2002dbd4 a9fc: b45e sh a5,44(s0) a9fe: b47e sh a5,46(s0) aa00: 020a2783 lw a5,32(s4) aa04: d01c sw a5,32(s0) aa06: 008a5783 lhu a5,8(s4) aa0a: 1997f793 andi a5,a5,409 aa0e: a41e sh a5,8(s0) aa10: 9941a783 lw a5,-1644(gp) # 200001d4 aa14: 9881aa23 sw s0,-1644(gp) # 200001d4 aa18: c45c sw a5,12(s0) aa1a: a0bff0ef jal ra,a424 aa1e: 04045503 lhu a0,64(s0) aa22: 00440593 addi a1,s0,4 aa26: ea5fe0ef jal ra,98ca aa2a: 04a41023 sh a0,64(s0) aa2e: 4785 li a5,1 aa30: 4701 li a4,0 aa32: 46c9 li a3,18 aa34: 4601 li a2,0 aa36: 4581 li a1,0 aa38: 8522 mv a0,s0 aa3a: 2b49 jal afcc aa3c: c511 beqz a0,aa48 aa3e: 4581 li a1,0 aa40: 8522 mv a0,s0 aa42: c9bfe0ef jal ra,96dc aa46: bcf9 j a524 aa48: 8522 mv a0,s0 aa4a: b51d j a870 aa4c: 8552 mv a0,s4 aa4e: 00ca2a03 lw s4,12(s4) aa52: bd05 j a882 aa54: 4501 li a0,0 aa56: b57fe0ef jal ra,95ac aa5a: b311 j a75e aa5c: 000aa783 lw a5,0(s5) aa60: 5418 lw a4,40(s0) aa62: 8f99 sub a5,a5,a4 aa64: 0007c663 bltz a5,aa70 aa68: 345a lhu a4,44(s0) aa6a: 8f99 sub a5,a5,a4 aa6c: d2f050e3 blez a5,a78c aa70: 000a4783 lbu a5,0(s4) aa74: 0087f713 andi a4,a5,8 aa78: 3e070063 beqz a4,ae58 aa7c: 00f10593 addi a1,sp,15 aa80: 8522 mv a0,s0 aa82: 873fb0ef jal ra,62f4 aa86: 4785 li a5,1 aa88: 00f51663 bne a0,a5,aa94 aa8c: 4818 lw a4,16(s0) aa8e: 4789 li a5,2 aa90: 1cf70163 beq a4,a5,ac52 aa94: 8522 mv a0,s0 aa96: f35fb0ef jal ra,69ca aa9a: 09c42783 lw a5,156(s0) aa9e: c781 beqz a5,aaa6 aaa0: 4c08 lw a0,24(s0) aaa2: 55e9 li a1,-6 aaa4: 9782 jalr a5 aaa6: 85a2 mv a1,s0 aaa8: 99418513 addi a0,gp,-1644 # 200001d4 aaac: 9ddfe0ef jal ra,9488 aab0: 85a2 mv a1,s0 aab2: 4509 li a0,2 aab4: e0ffd0ef jal ra,88c2 aab8: aa69 j ac52 aaba: 8b89 andi a5,a5,2 aabc: c385 beqz a5,aadc aabe: 481c lw a5,16(s0) aac0: 4705 li a4,1 aac2: 17f9 addi a5,a5,-2 aac4: 00f77c63 bgeu a4,a5,aadc aac8: 02644783 lbu a5,38(s0) aacc: 8522 mv a0,s0 aace: 0027e793 ori a5,a5,2 aad2: 02f40323 sb a5,38(s0) aad6: 1f5000ef jal ra,b4ca aada: bf59 j aa70 aadc: 9a01a783 lw a5,-1632(gp) # 200001e0 aae0: 0a0408a3 sb zero,177(s0) aae4: 04040513 addi a0,s0,64 aae8: dc1c sw a5,56(s0) aaea: 93bff0ef jal ra,a424 aaee: 481c lw a5,16(s0) aaf0: 471d li a4,7 aaf2: 17f9 addi a5,a5,-2 aaf4: f6f76ee3 bltu a4,a5,aa70 aaf8: 6735 lui a4,0xd aafa: 078a slli a5,a5,0x2 aafc: 3ec70713 addi a4,a4,1004 # d3ec ab00: 97ba add a5,a5,a4 ab02: 439c lw a5,0(a5) ab04: 8782 jr a5 ab06: 000cc783 lbu a5,0(s9) ab0a: 4749 li a4,18 ab0c: 8bc9 andi a5,a5,18 ab0e: 0ce79263 bne a5,a4,abd2 ab12: 08042783 lw a5,128(s0) ab16: 4b98 lw a4,16(a5) ab18: 3348 lbu a0,5(a4) ab1a: 235c lbu a5,4(a4) ab1c: 0522 slli a0,a0,0x8 ab1e: 8d5d or a0,a0,a5 ab20: 237c lbu a5,6(a4) ab22: 07c2 slli a5,a5,0x10 ab24: 8fc9 or a5,a5,a0 ab26: 3368 lbu a0,7(a4) ab28: 0562 slli a0,a0,0x18 ab2a: 8d5d or a0,a0,a5 ab2c: bb9fc0ef jal ra,76e4 ab30: 00092783 lw a5,0(s2) ab34: 0505 addi a0,a0,1 ab36: 08f51e63 bne a0,a5,abd2 ab3a: 07645783 lhu a5,118(s0) ab3e: 000aa703 lw a4,0(s5) ab42: 4094 lw a3,0(s1) ab44: 0785 addi a5,a5,1 ab46: 06f41b23 sh a5,118(s0) ab4a: 00170793 addi a5,a4,1 ab4e: c868 sw a0,84(s0) ab50: d41c sw a5,40(s0) ab52: d81c sw a5,48(s0) ab54: 36fc lbu a5,15(a3) ab56: 26f0 lbu a2,14(a3) ab58: 04045503 lhu a0,64(s0) ab5c: 07a2 slli a5,a5,0x8 ab5e: 8fd1 or a5,a5,a2 ab60: 177d addi a4,a4,-1 ab62: 06f41223 sh a5,100(s0) ab66: 4791 li a5,4 ab68: d438 sw a4,104(s0) ab6a: c81c sw a5,16(s0) ab6c: 00440593 addi a1,s0,4 ab70: d5bfe0ef jal ra,98ca ab74: 47a9 li a5,10 ab76: 02f507b3 mul a5,a0,a5 ab7a: 05a45703 lhu a4,90(s0) ab7e: 04a41023 sh a0,64(s0) ab82: 04f41e23 sh a5,92(s0) ab86: 4785 li a5,1 ab88: 00f71563 bne a4,a5,ab92 ab8c: 0506 slli a0,a0,0x1 ab8e: 0542 slli a0,a0,0x10 ab90: 8141 srli a0,a0,0x10 ab92: 07845783 lhu a5,120(s0) ab96: 04a41d23 sh a0,90(s0) ab9a: 08042503 lw a0,128(s0) ab9e: 17fd addi a5,a5,-1 aba0: 06f41c23 sh a5,120(s0) aba4: 411c lw a5,0(a0) aba6: 04040923 sb zero,82(s0) abaa: 04042223 sw zero,68(s0) abae: 08f42023 sw a5,128(s0) abb2: 0017b793 seqz a5,a5 abb6: 40f007b3 neg a5,a5 abba: bc7e sh a5,62(s0) abbc: d34fe0ef jal ra,90f0 abc0: 09442783 lw a5,148(s0) abc4: f00782e3 beqz a5,aac8 abc8: 4c08 lw a0,24(s0) abca: 4601 li a2,0 abcc: 85a2 mv a1,s0 abce: 9782 jalr a5 abd0: bde5 j aac8 abd2: 000cc783 lbu a5,0(s9) abd6: 8bc1 andi a5,a5,16 abd8: e8078ce3 beqz a5,aa70 abdc: 4094 lw a3,0(s1) abde: 000c5503 lhu a0,0(s8) abe2: 000aa583 lw a1,0(s5) abe6: 329c lbu a5,1(a3) abe8: 32b8 lbu a4,3(a3) abea: 000b2603 lw a2,0(s6) abee: 0006c883 lbu a7,0(a3) abf2: 0026c803 lbu a6,2(a3) abf6: 95aa add a1,a1,a0 abf8: 00092503 lw a0,0(s2) abfc: 07a2 slli a5,a5,0x8 abfe: 0722 slli a4,a4,0x8 ac00: 00c60693 addi a3,a2,12 ac04: 0117e7b3 or a5,a5,a7 ac08: 01076733 or a4,a4,a6 ac0c: 0641 addi a2,a2,16 ac0e: 425000ef jal ra,b832 ac12: bdb9 j aa70 ac14: 000cc783 lbu a5,0(s9) ac18: 0107f713 andi a4,a5,16 ac1c: c769 beqz a4,ace6 ac1e: 00092503 lw a0,0(s2) ac22: 4878 lw a4,84(s0) ac24: fff50793 addi a5,a0,-1 ac28: 8f99 sub a5,a5,a4 ac2a: 0807c663 bltz a5,acb6 ac2e: 503c lw a5,96(s0) ac30: 40f507b3 sub a5,a0,a5 ac34: 08f04163 bgtz a5,acb6 ac38: 4791 li a5,4 ac3a: c81c sw a5,16(s0) ac3c: 501c lw a5,32(s0) ac3e: c78d beqz a5,ac68 ac40: 4c08 lw a0,24(s0) ac42: 4601 li a2,0 ac44: 85a2 mv a1,s0 ac46: 9782 jalr a5 ac48: c105 beqz a0,ac68 ac4a: 4585 li a1,1 ac4c: 8522 mv a0,s0 ac4e: a8ffe0ef jal ra,96dc ac52: 004da503 lw a0,4(s11) ac56: 000ba023 sw zero,0(s7) ac5a: 8c0508e3 beqz a0,a52a ac5e: e37fd0ef jal ra,8a94 ac62: 000da223 sw zero,4(s11) ac66: b0d1 j a52a ac68: 8522 mv a0,s0 ac6a: 05a45483 lhu s1,90(s0) ac6e: e73fe0ef jal ra,9ae0 ac72: 07445783 lhu a5,116(s0) ac76: c781 beqz a5,ac7e ac78: 17fd addi a5,a5,-1 ac7a: 06f41a23 sh a5,116(s0) ac7e: 4705 li a4,1 ac80: 04045783 lhu a5,64(s0) ac84: 00e49563 bne s1,a4,ac8e ac88: 0786 slli a5,a5,0x1 ac8a: 07c2 slli a5,a5,0x10 ac8c: 83c1 srli a5,a5,0x10 ac8e: 04f41d23 sh a5,90(s0) ac92: 000a4783 lbu a5,0(s4) ac96: 0207f793 andi a5,a5,32 ac9a: dc078be3 beqz a5,aa70 ac9e: 02644783 lbu a5,38(s0) aca2: 8522 mv a0,s0 aca4: 0027e793 ori a5,a5,2 aca8: 02f40323 sb a5,38(s0) acac: 01f000ef jal ra,b4ca acb0: 479d li a5,7 acb2: c81c sw a5,16(s0) acb4: bb75 j aa70 acb6: 4094 lw a3,0(s1) acb8: 000b2603 lw a2,0(s6) acbc: 000c5803 lhu a6,0(s8) acc0: 329c lbu a5,1(a3) acc2: 32b8 lbu a4,3(a3) acc4: 0006c303 lbu t1,0(a3) acc8: 0026c883 lbu a7,2(a3) accc: 000aa583 lw a1,0(s5) acd0: 07a2 slli a5,a5,0x8 acd2: 0722 slli a4,a4,0x8 acd4: 00c60693 addi a3,a2,12 acd8: 0067e7b3 or a5,a5,t1 acdc: 01176733 or a4,a4,a7 ace0: 0641 addi a2,a2,16 ace2: 95c2 add a1,a1,a6 ace4: b72d j ac0e ace6: 8b89 andi a5,a5,2 ace8: d80784e3 beqz a5,aa70 acec: 541c lw a5,40(s0) acee: 000aa703 lw a4,0(s5) acf2: 17fd addi a5,a5,-1 acf4: d6e79ee3 bne a5,a4,aa70 acf8: 8522 mv a0,s0 acfa: 477000ef jal ra,b970 acfe: bb8d j aa70 ad00: 8522 mv a0,s0 ad02: ddffe0ef jal ra,9ae0 ad06: b771 j ac92 ad08: 8522 mv a0,s0 ad0a: dd7fe0ef jal ra,9ae0 ad0e: 000a4783 lbu a5,0(s4) ad12: 0207f793 andi a5,a5,32 ad16: c3c1 beqz a5,ad96 ad18: 000cc703 lbu a4,0(s9) ad1c: 02644783 lbu a5,38(s0) ad20: 8b41 andi a4,a4,16 ad22: 0027e793 ori a5,a5,2 ad26: c32d beqz a4,ad88 ad28: 5034 lw a3,96(s0) ad2a: 00092703 lw a4,0(s2) ad2e: 04e69d63 bne a3,a4,ad88 ad32: 02f40323 sb a5,38(s0) ad36: 8522 mv a0,s0 ad38: 792000ef jal ra,b4ca ad3c: 8522 mv a0,s0 ad3e: c42fe0ef jal ra,9180 ad42: 9941a783 lw a5,-1644(gp) # 200001d4 ad46: 00f41d63 bne s0,a5,ad60 ad4a: 445c lw a5,12(s0) ad4c: 98f1aa23 sw a5,-1644(gp) # 200001d4 ad50: 47a9 li a5,10 ad52: c81c sw a5,16(s0) ad54: 9ac1a703 lw a4,-1620(gp) # 200001ec ad58: 9a81a623 sw s0,-1620(gp) # 200001ec ad5c: c458 sw a4,12(s0) ad5e: bb09 j aa70 ad60: 9af1a423 sw a5,-1624(gp) # 200001e8 ad64: 4681 li a3,0 ad66: e789 bnez a5,ad70 ad68: d6e5 beqz a3,ad50 ad6a: 9a01a423 sw zero,-1624(gp) # 200001e8 ad6e: b7cd j ad50 ad70: 47d0 lw a2,12(a5) ad72: 00c41863 bne s0,a2,ad82 ad76: c299 beqz a3,ad7c ad78: 9af1a423 sw a5,-1624(gp) # 200001e8 ad7c: 4458 lw a4,12(s0) ad7e: c7d8 sw a4,12(a5) ad80: bfc1 j ad50 ad82: 4685 li a3,1 ad84: 87b2 mv a5,a2 ad86: b7c5 j ad66 ad88: 02f40323 sb a5,38(s0) ad8c: 8522 mv a0,s0 ad8e: 73c000ef jal ra,b4ca ad92: 47a1 li a5,8 ad94: bf39 j acb2 ad96: 000cc783 lbu a5,0(s9) ad9a: 8bc1 andi a5,a5,16 ad9c: cc078ae3 beqz a5,aa70 ada0: 5038 lw a4,96(s0) ada2: 00092783 lw a5,0(s2) ada6: ccf715e3 bne a4,a5,aa70 adaa: 4799 li a5,6 adac: b719 j acb2 adae: 8522 mv a0,s0 adb0: d31fe0ef jal ra,9ae0 adb4: 000a4783 lbu a5,0(s4) adb8: 0207f793 andi a5,a5,32 adbc: ca078ae3 beqz a5,aa70 adc0: 02644783 lbu a5,38(s0) adc4: 8522 mv a0,s0 adc6: 0027e793 ori a5,a5,2 adca: 02f40323 sb a5,38(s0) adce: 6fc000ef jal ra,b4ca add2: 8522 mv a0,s0 add4: bacfe0ef jal ra,9180 add8: 9941a783 lw a5,-1644(gp) # 200001d4 addc: f6f407e3 beq s0,a5,ad4a ade0: 9af1a423 sw a5,-1624(gp) # 200001e8 ade4: 4681 li a3,0 ade6: d3c9 beqz a5,ad68 ade8: 47d0 lw a2,12(a5) adea: f8c406e3 beq s0,a2,ad76 adee: 4685 li a3,1 adf0: 87b2 mv a5,a2 adf2: bfd5 j ade6 adf4: 8522 mv a0,s0 adf6: cebfe0ef jal ra,9ae0 adfa: 000cc783 lbu a5,0(s9) adfe: 8bc1 andi a5,a5,16 ae00: c60788e3 beqz a5,aa70 ae04: 5038 lw a4,96(s0) ae06: 00092783 lw a5,0(s2) ae0a: c6f713e3 bne a4,a5,aa70 ae0e: 8522 mv a0,s0 ae10: b70fe0ef jal ra,9180 ae14: 9941a783 lw a5,-1644(gp) # 200001d4 ae18: f2f409e3 beq s0,a5,ad4a ae1c: 9af1a423 sw a5,-1624(gp) # 200001e8 ae20: 4681 li a3,0 ae22: d3b9 beqz a5,ad68 ae24: 47d0 lw a2,12(a5) ae26: f4c408e3 beq s0,a2,ad76 ae2a: 4685 li a3,1 ae2c: 87b2 mv a5,a2 ae2e: bfd5 j ae22 ae30: 8522 mv a0,s0 ae32: caffe0ef jal ra,9ae0 ae36: 000cc783 lbu a5,0(s9) ae3a: 8bc1 andi a5,a5,16 ae3c: c2078ae3 beqz a5,aa70 ae40: 5038 lw a4,96(s0) ae42: 00092783 lw a5,0(s2) ae46: c2f715e3 bne a4,a5,aa70 ae4a: 000a4783 lbu a5,0(s4) ae4e: 0107e793 ori a5,a5,16 ae52: 00fa0023 sb a5,0(s4) ae56: b929 j aa70 ae58: 8bc1 andi a5,a5,16 ae5a: c785 beqz a5,ae82 ae5c: 8522 mv a0,s0 ae5e: b6dfb0ef jal ra,69ca ae62: 85a2 mv a1,s0 ae64: 99418513 addi a0,gp,-1644 # 200001d4 ae68: e20fe0ef jal ra,9488 ae6c: 4509 li a0,2 ae6e: 85a2 mv a1,s0 ae70: a53fd0ef jal ra,88c2 ae74: 000d2503 lw a0,0(s10) ae78: dc050de3 beqz a0,ac52 ae7c: c19fd0ef jal ra,8a94 ae80: bbc9 j ac52 ae82: 07445603 lhu a2,116(s0) ae86: c619 beqz a2,ae94 ae88: 08c42783 lw a5,140(s0) ae8c: c781 beqz a5,ae94 ae8e: 4c08 lw a0,24(s0) ae90: 85a2 mv a1,s0 ae92: 9782 jalr a5 ae94: 000d2603 lw a2,0(s10) ae98: c60d beqz a2,aec2 ae9a: 000cc783 lbu a5,0(s9) ae9e: 8ba1 andi a5,a5,8 aea0: c789 beqz a5,aeaa aea2: 365c lbu a5,13(a2) aea4: 0017e793 ori a5,a5,1 aea8: b65c sb a5,13(a2) aeaa: 09042783 lw a5,144(s0) aeae: 4681 li a3,0 aeb0: 85a2 mv a1,s0 aeb2: cb9d beqz a5,aee8 aeb4: 4c08 lw a0,24(s0) aeb6: 9782 jalr a5 aeb8: c509 beqz a0,aec2 aeba: 000d2783 lw a5,0(s10) aebe: 08f42423 sw a5,136(s0) aec2: 000a4783 lbu a5,0(s4) aec6: 0207f793 andi a5,a5,32 aeca: cb89 beqz a5,aedc aecc: 09042783 lw a5,144(s0) aed0: 4681 li a3,0 aed2: 4601 li a2,0 aed4: 85a2 mv a1,s0 aed6: cf89 beqz a5,aef0 aed8: 4c08 lw a0,24(s0) aeda: 9782 jalr a5 aedc: 8522 mv a0,s0 aede: 000ba023 sw zero,0(s7) aee2: 5e8000ef jal ra,b4ca aee6: b3b5 j ac52 aee8: 4501 li a0,0 aeea: ec2fe0ef jal ra,95ac aeee: b7e9 j aeb8 aef0: 4501 li a0,0 aef2: ebafe0ef jal ra,95ac aef6: b7dd j aedc 0000aef8 : tcp_output_set_header.isra.0.constprop.1(): aef8: e1ef52ef jal t0,516 <__riscv_save_0> aefc: 892a mv s2,a0 aefe: 2d4a lhu a0,28(a0) af00: 1141 addi sp,sp,-16 af02: 842e mv s0,a1 af04: c632 sw a2,12(sp) af06: f9efc0ef jal ra,76a4 af0a: a008 sb a0,0(s0) af0c: 8121 srli a0,a0,0x8 af0e: b008 sb a0,1(s0) af10: 02495503 lhu a0,36(s2) af14: f90fc0ef jal ra,76a4 af18: 4632 lw a2,12(sp) af1a: a028 sb a0,2(s0) af1c: 8121 srli a0,a0,0x8 af1e: b028 sb a0,3(s0) af20: 00865793 srli a5,a2,0x8 af24: 02892503 lw a0,40(s2) af28: a050 sb a2,4(s0) af2a: b05c sb a5,5(s0) af2c: 01065793 srli a5,a2,0x10 af30: 8261 srli a2,a2,0x18 af32: b070 sb a2,7(s0) af34: a07c sb a5,6(s0) af36: f8afc0ef jal ra,76c0 af3a: 00855793 srli a5,a0,0x8 af3e: a408 sb a0,8(s0) af40: b41c sb a5,9(s0) af42: 3444 lbu s1,13(s0) af44: 01055793 srli a5,a0,0x10 af48: 8161 srli a0,a0,0x18 af4a: b428 sb a0,11(s0) af4c: 2448 lbu a0,12(s0) af4e: 04a2 slli s1,s1,0x8 af50: a43c sb a5,10(s0) af52: 8cc9 or s1,s1,a0 af54: 6541 lui a0,0x10 af56: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x2aac> af5a: f4afc0ef jal ra,76a4 af5e: 8ce9 and s1,s1,a0 af60: 4541 li a0,16 af62: f42fc0ef jal ra,76a4 af66: 8d45 or a0,a0,s1 af68: 0542 slli a0,a0,0x10 af6a: 8141 srli a0,a0,0x10 af6c: a448 sb a0,12(s0) af6e: 8121 srli a0,a0,0x8 af70: b448 sb a0,13(s0) af72: 02e95503 lhu a0,46(s2) af76: f2efc0ef jal ra,76a4 af7a: 02e95783 lhu a5,46(s2) af7e: a468 sb a0,14(s0) af80: 8121 srli a0,a0,0x8 af82: b468 sb a0,15(s0) af84: 02f91b23 sh a5,54(s2) af88: 345c lbu a5,13(s0) af8a: 2448 lbu a0,12(s0) af8c: 00040923 sb zero,18(s0) af90: 07a2 slli a5,a5,0x8 af92: 000409a3 sb zero,19(s0) af96: 8d5d or a0,a0,a5 af98: f1afc0ef jal ra,76b2 af9c: 6795 lui a5,0x5 af9e: 03f57513 andi a0,a0,63 afa2: 8d5d or a0,a0,a5 afa4: f00fc0ef jal ra,76a4 afa8: 02e95703 lhu a4,46(s2) afac: 02892783 lw a5,40(s2) afb0: a448 sb a0,12(s0) afb2: 8121 srli a0,a0,0x8 afb4: b448 sb a0,13(s0) afb6: 00040823 sb zero,16(s0) afba: 000408a3 sb zero,17(s0) afbe: 97ba add a5,a5,a4 afc0: 02f92823 sw a5,48(s2) afc4: 8522 mv a0,s0 afc6: 0141 addi sp,sp,16 afc8: d72f506f j 53a <__riscv_restore_0> 0000afcc : tcp_enqueue(): afcc: d1af52ef jal t0,4e6 <__riscv_save_12> afd0: 7179 addi sp,sp,-48 afd2: c62e sw a1,12(sp) afd4: ca3a sw a4,20(sp) afd6: 892a mv s2,a0 afd8: 8ab2 mv s5,a2 afda: 8b36 mv s6,a3 afdc: 8dbe mv s11,a5 afde: ee01 bnez a2,aff6 afe0: 0036f793 andi a5,a3,3 afe4: 00fde7b3 or a5,s11,a5 afe8: 5a59 li s4,-10 afea: c391 beqz a5,afee afec: c18d beqz a1,b00e afee: 8552 mv a0,s4 aff0: 6145 addi sp,sp,48 aff2: d30f506f j 522 <__riscv_restore_12> aff6: 07655783 lhu a5,118(a0) affa: 00c7fa63 bgeu a5,a2,b00e affe: 02694783 lbu a5,38(s2) b002: 5a7d li s4,-1 b004: f807e793 ori a5,a5,-128 b008: 02f90323 sb a5,38(s2) b00c: b7cd j afee b00e: 002d9793 slli a5,s11,0x2 b012: 002df713 andi a4,s11,2 b016: 8b91 andi a5,a5,4 b018: 46b1 li a3,12 b01a: e311 bnez a4,b01e b01c: 4681 li a3,0 b01e: 97b6 add a5,a5,a3 b020: c23e sw a5,4(sp) b022: 07092783 lw a5,112(s2) b026: 2002ed37 lui s10,0x2002e b02a: bd0d0713 addi a4,s10,-1072 # 2002dbd0 b02e: c43e sw a5,8(sp) b030: 471c lw a5,8(a4) b032: 4358 lw a4,4(a4) b034: 07895483 lhu s1,120(s2) b038: 078a slli a5,a5,0x2 b03a: 02e7d7b3 divu a5,a5,a4 b03e: bd0d0d13 addi s10,s10,-1072 b042: faf4fee3 bgeu s1,a5,affe b046: 6741 lui a4,0x10 b048: ffc70693 addi a3,a4,-4 # fffc <_data_lma+0x2ae8> b04c: fa96e9e3 bltu a3,s1,affe b050: 4792 lw a5,4(sp) b052: 8230 lhu a2,4(sp) b054: fc070713 addi a4,a4,-64 b058: 8389 srli a5,a5,0x2 b05a: 0ff7f793 andi a5,a5,255 b05e: 0795 addi a5,a5,5 b060: c832 sw a2,16(sp) b062: 4652 lw a2,20(sp) b064: 07b2 slli a5,a5,0xc b066: 07c2 slli a5,a5,0x10 b068: d23a sw a4,36(sp) b06a: 4cb2 lw s9,12(sp) b06c: 010b1713 slli a4,s6,0x10 b070: 83c1 srli a5,a5,0x10 b072: 8a05 andi a2,a2,1 b074: 8341 srli a4,a4,0x10 b076: cc3e sw a5,24(sp) b078: 8bd6 mv s7,s5 b07a: 4981 li s3,0 b07c: 4781 li a5,0 b07e: ce32 sw a2,28(sp) b080: d036 sw a3,32(sp) b082: d43a sw a4,40(sp) b084: 04095a03 lhu s4,64(s2) b088: 4712 lw a4,4(sp) b08a: 40ea0a33 sub s4,s4,a4 b08e: 014bd363 bge s7,s4,b094 b092: 8a5e mv s4,s7 b094: 4511 li a0,4 b096: d63e sw a5,44(sp) b098: 010a1c13 slli s8,s4,0x10 b09c: 807fd0ef jal ra,88a2 b0a0: 010c5c13 srli s8,s8,0x10 b0a4: 842a mv s0,a0 b0a6: 18050663 beqz a0,b232 b0aa: 00052023 sw zero,0(a0) b0ae: 00052223 sw zero,4(a0) b0b2: 14098463 beqz s3,b1fa b0b6: 57b2 lw a5,44(sp) b0b8: c388 sw a0,0(a5) b0ba: 47f2 lw a5,28(sp) b0bc: 14078163 beqz a5,b1fe b0c0: 47c2 lw a5,16(sp) b0c2: 4601 li a2,0 b0c4: 4501 li a0,0 b0c6: 00fc05b3 add a1,s8,a5 b0ca: 05c2 slli a1,a1,0x10 b0cc: 81c1 srli a1,a1,0x10 b0ce: a15fd0ef jal ra,8ae2 b0d2: c048 sw a0,4(s0) b0d4: 14050f63 beqz a0,b232 b0d8: ba3fd0ef jal ra,8c7a b0dc: 47b2 lw a5,12(sp) b0de: 94aa add s1,s1,a0 b0e0: 04c2 slli s1,s1,0x10 b0e2: 80c1 srli s1,s1,0x10 b0e4: cf81 beqz a5,b0fc b0e6: 405c lw a5,4(s0) b0e8: 85e6 mv a1,s9 b0ea: 43c8 lw a0,4(a5) b0ec: 67c1 lui a5,0x10 b0ee: 17fd addi a5,a5,-1 b0f0: 00fa7633 and a2,s4,a5 b0f4: 4792 lw a5,4(sp) b0f6: 953e add a0,a0,a5 b0f8: 5d9010ef jal ra,ced0 b0fc: 405c lw a5,4(s0) b0fe: 43dc lw a5,4(a5) b100: c41c sw a5,8(s0) b102: 008d2783 lw a5,8(s10) b106: 004d2703 lw a4,4(s10) b10a: 078a slli a5,a5,0x2 b10c: 02e7d7b3 divu a5,a5,a4 b110: 1297e163 bltu a5,s1,b232 b114: 5782 lw a5,32(sp) b116: 1097ee63 bltu a5,s1,b232 b11a: 4048 lw a0,4(s0) b11c: 01841623 sh s8,12(s0) b120: 45d1 li a1,20 b122: 905fd0ef jal ra,8a26 b126: 10051663 bnez a0,b232 b12a: 405c lw a5,4(s0) b12c: 01c95503 lhu a0,28(s2) b130: 418b8bb3 sub s7,s7,s8 b134: 43dc lw a5,4(a5) b136: 0bc2 slli s7,s7,0x10 b138: 010bdb93 srli s7,s7,0x10 b13c: c81c sw a5,16(s0) b13e: d63e sw a5,44(sp) b140: d64fc0ef jal ra,76a4 b144: 57b2 lw a5,44(sp) b146: a388 sb a0,0(a5) b148: 8121 srli a0,a0,0x8 b14a: b388 sb a0,1(a5) b14c: 481c lw a5,16(s0) b14e: 02495503 lhu a0,36(s2) b152: d63e sw a5,44(sp) b154: d50fc0ef jal ra,76a4 b158: 57b2 lw a5,44(sp) b15a: a3a8 sb a0,2(a5) b15c: 8121 srli a0,a0,0x8 b15e: b3a8 sb a0,3(a5) b160: 481c lw a5,16(s0) b162: 4522 lw a0,8(sp) b164: d63e sw a5,44(sp) b166: d5afc0ef jal ra,76c0 b16a: 57b2 lw a5,44(sp) b16c: 00855713 srli a4,a0,0x8 b170: b3d8 sb a4,5(a5) b172: 01055713 srli a4,a0,0x10 b176: a3f8 sb a4,6(a5) b178: 4818 lw a4,16(s0) b17a: a3c8 sb a0,4(a5) b17c: 8161 srli a0,a0,0x18 b17e: b3e8 sb a0,7(a5) b180: 375c lbu a5,13(a4) b182: 2748 lbu a0,12(a4) b184: 00070923 sb zero,18(a4) b188: 07a2 slli a5,a5,0x8 b18a: 8fc9 or a5,a5,a0 b18c: 5512 lw a0,36(sp) b18e: 000709a3 sb zero,19(a4) b192: d63e sw a5,44(sp) b194: d10fc0ef jal ra,76a4 b198: 57b2 lw a5,44(sp) b19a: 8fe9 and a5,a5,a0 b19c: 5522 lw a0,40(sp) b19e: d63e sw a5,44(sp) b1a0: d04fc0ef jal ra,76a4 b1a4: 57b2 lw a5,44(sp) b1a6: 8d5d or a0,a0,a5 b1a8: 0542 slli a0,a0,0x10 b1aa: 481c lw a5,16(s0) b1ac: 8141 srli a0,a0,0x10 b1ae: 00855713 srli a4,a0,0x8 b1b2: b7d8 sb a4,13(a5) b1b4: a7c8 sb a0,12(a5) b1b6: 01b40723 sb s11,14(s0) b1ba: cf8fc0ef jal ra,76b2 b1be: 481c lw a5,16(s0) b1c0: 03f57513 andi a0,a0,63 b1c4: d63e sw a5,44(sp) b1c6: 47e2 lw a5,24(sp) b1c8: 8d5d or a0,a0,a5 b1ca: cdafc0ef jal ra,76a4 b1ce: 57b2 lw a5,44(sp) b1d0: a7c8 sb a0,12(a5) b1d2: 8121 srli a0,a0,0x8 b1d4: b7c8 sb a0,13(a5) b1d6: 67c1 lui a5,0x10 b1d8: 17fd addi a5,a5,-1 b1da: 00fa7a33 and s4,s4,a5 b1de: 47a2 lw a5,8(sp) b1e0: 9cd2 add s9,s9,s4 b1e2: 97d2 add a5,a5,s4 b1e4: c43e sw a5,8(sp) b1e6: 87a2 mv a5,s0 b1e8: e80b9ee3 bnez s7,b084 b1ec: 07c92a03 lw s4,124(s2) b1f0: 060a1963 bnez s4,b262 b1f4: 07392e23 sw s3,124(s2) b1f8: a251 j b37c b1fa: 89aa mv s3,a0 b1fc: bd7d j b0ba b1fe: 45c2 lw a1,16(sp) b200: 4601 li a2,0 b202: 4501 li a0,0 b204: 8dffd0ef jal ra,8ae2 b208: c048 sw a0,4(s0) b20a: c505 beqz a0,b232 b20c: a6ffd0ef jal ra,8c7a b210: 94aa add s1,s1,a0 b212: 04c2 slli s1,s1,0x10 b214: 80c1 srli s1,s1,0x10 b216: ee0b86e3 beqz s7,b102 b21a: 85e2 mv a1,s8 b21c: 4605 li a2,1 b21e: 450d li a0,3 b220: 8c3fd0ef jal ra,8ae2 b224: 85aa mv a1,a0 b226: 4048 lw a0,4(s0) b228: e195 bnez a1,b24c b22a: 86bfd0ef jal ra,8a94 b22e: 00042223 sw zero,4(s0) b232: 02694783 lbu a5,38(s2) b236: 5a7d li s4,-1 b238: f807e793 ori a5,a5,-128 b23c: 02f90323 sb a5,38(s2) b240: da0987e3 beqz s3,afee b244: 854e mv a0,s3 b246: ed5fd0ef jal ra,911a b24a: b355 j afee b24c: 0195a223 sw s9,4(a1) b250: 0485 addi s1,s1,1 b252: 04c2 slli s1,s1,0x10 b254: 01942423 sw s9,8(s0) b258: 80c1 srli s1,s1,0x10 b25a: a3dfd0ef jal ra,8c96 b25e: b555 j b102 b260: 8a3e mv s4,a5 b262: 000a2783 lw a5,0(s4) b266: ffed bnez a5,b260 b268: 010a2783 lw a5,16(s4) b26c: 00ca5b83 lhu s7,12(s4) b270: 27c8 lbu a0,12(a5) b272: 37dc lbu a5,13(a5) b274: 07a2 slli a5,a5,0x8 b276: 8d5d or a0,a0,a5 b278: c3afc0ef jal ra,76b2 b27c: 890d andi a0,a0,3 b27e: 00a03533 snez a0,a0 b282: 955e add a0,a0,s7 b284: 18050563 beqz a0,b40e b288: 010a2783 lw a5,16(s4) b28c: 27c8 lbu a0,12(a5) b28e: 37dc lbu a5,13(a5) b290: 07a2 slli a5,a5,0x8 b292: 8d5d or a0,a0,a5 b294: c1efc0ef jal ra,76b2 b298: 890d andi a0,a0,3 b29a: 16051a63 bnez a0,b40e b29e: 003b7793 andi a5,s6,3 b2a2: c781 beqz a5,b2aa b2a4: 4785 li a5,1 b2a6: 16fb1463 bne s6,a5,b40e b2aa: 00c9d703 lhu a4,12(s3) b2ae: 00ca5783 lhu a5,12(s4) b2b2: 97ba add a5,a5,a4 b2b4: 04095703 lhu a4,64(s2) b2b8: 14f74b63 blt a4,a5,b40e b2bc: 00ea4703 lbu a4,14(s4) b2c0: 00e9c783 lbu a5,14(s3) b2c4: 14f71563 bne a4,a5,b40e b2c8: 010a2703 lw a4,16(s4) b2cc: 3348 lbu a0,5(a4) b2ce: 235c lbu a5,4(a4) b2d0: 0522 slli a0,a0,0x8 b2d2: 8d5d or a0,a0,a5 b2d4: 237c lbu a5,6(a4) b2d6: 07c2 slli a5,a5,0x10 b2d8: 8fc9 or a5,a5,a0 b2da: 3368 lbu a0,7(a4) b2dc: 0562 slli a0,a0,0x18 b2de: 8d5d or a0,a0,a5 b2e0: c04fc0ef jal ra,76e4 b2e4: 0109a703 lw a4,16(s3) b2e8: 00ca5b83 lhu s7,12(s4) b2ec: 235c lbu a5,4(a4) b2ee: 9baa add s7,s7,a0 b2f0: 3348 lbu a0,5(a4) b2f2: 0522 slli a0,a0,0x8 b2f4: 8d5d or a0,a0,a5 b2f6: 237c lbu a5,6(a4) b2f8: 07c2 slli a5,a5,0x10 b2fa: 8fc9 or a5,a5,a0 b2fc: 3368 lbu a0,7(a4) b2fe: 0562 slli a0,a0,0x18 b300: 8d5d or a0,a0,a5 b302: be2fc0ef jal ra,76e4 b306: 10ab9463 bne s7,a0,b40e b30a: 47c2 lw a5,16(sp) b30c: 55b1 li a1,-20 b30e: 0049a503 lw a0,4(s3) b312: 8d9d sub a1,a1,a5 b314: 05c2 slli a1,a1,0x10 b316: 85c1 srai a1,a1,0x10 b318: f0efd0ef jal ra,8a26 b31c: f0051be3 bnez a0,b232 b320: 0049a503 lw a0,4(s3) b324: 253e lhu a5,10(a0) b326: eb99 bnez a5,b33c b328: 411c lw a5,0(a0) b32a: 14fd addi s1,s1,-1 b32c: 04c2 slli s1,s1,0x10 b32e: 00f9a223 sw a5,4(s3) b332: 00052023 sw zero,0(a0) b336: 80c1 srli s1,s1,0x10 b338: f5cfd0ef jal ra,8a94 b33c: 001b7793 andi a5,s6,1 b340: c7cd beqz a5,b3ea b342: 010a2783 lw a5,16(s4) b346: 00d7cb83 lbu s7,13(a5) # 1000d <_data_lma+0x2af9> b34a: 27c8 lbu a0,12(a5) b34c: 0ba2 slli s7,s7,0x8 b34e: 00abebb3 or s7,s7,a0 b352: 4505 li a0,1 b354: b50fc0ef jal ra,76a4 b358: 010a2783 lw a5,16(s4) b35c: 00abe533 or a0,s7,a0 b360: 0542 slli a0,a0,0x10 b362: 8141 srli a0,a0,0x10 b364: a7c8 sb a0,12(a5) b366: 8121 srli a0,a0,0x8 b368: b7c8 sb a0,13(a5) b36a: 00899563 bne s3,s0,b374 b36e: 00ca5c03 lhu s8,12(s4) b372: 8452 mv s0,s4 b374: 85ce mv a1,s3 b376: 4511 li a0,4 b378: d4afd0ef jal ra,88c2 b37c: 003b7793 andi a5,s6,3 b380: c789 beqz a5,b38a b382: 0a85 addi s5,s5,1 b384: 0ac2 slli s5,s5,0x10 b386: 010ada93 srli s5,s5,0x10 b38a: 001b7b13 andi s6,s6,1 b38e: 000b0863 beqz s6,b39e b392: 02694783 lbu a5,38(s2) b396: 0207e793 ori a5,a5,32 b39a: 02f90323 sb a5,38(s2) b39e: 07092783 lw a5,112(s2) b3a2: 06991c23 sh s1,120(s2) b3a6: 4a01 li s4,0 b3a8: 97d6 add a5,a5,s5 b3aa: 06f92823 sw a5,112(s2) b3ae: 07695783 lhu a5,118(s2) b3b2: 41578ab3 sub s5,a5,s5 b3b6: 07591b23 sh s5,118(s2) b3ba: c20c0ae3 beqz s8,afee b3be: 481c lw a5,16(s0) b3c0: c20787e3 beqz a5,afee b3c4: 4752 lw a4,20(sp) b3c6: 8b09 andi a4,a4,2 b3c8: c20713e3 bnez a4,afee b3cc: 37c4 lbu s1,13(a5) b3ce: 27c8 lbu a0,12(a5) b3d0: 04a2 slli s1,s1,0x8 b3d2: 8cc9 or s1,s1,a0 b3d4: 4521 li a0,8 b3d6: acefc0ef jal ra,76a4 b3da: 481c lw a5,16(s0) b3dc: 8d45 or a0,a0,s1 b3de: 0542 slli a0,a0,0x10 b3e0: 8141 srli a0,a0,0x10 b3e2: a7c8 sb a0,12(a5) b3e4: 8121 srli a0,a0,0x8 b3e6: b7c8 sb a0,13(a5) b3e8: b119 j afee b3ea: 0049a583 lw a1,4(s3) b3ee: 004a2503 lw a0,4(s4) b3f2: 8a5fd0ef jal ra,8c96 b3f6: 00c9d703 lhu a4,12(s3) b3fa: 00ca5783 lhu a5,12(s4) b3fe: 97ba add a5,a5,a4 b400: 00fa1623 sh a5,12(s4) b404: 0009a783 lw a5,0(s3) b408: 00fa2023 sw a5,0(s4) b40c: bfb9 j b36a b40e: 013a2023 sw s3,0(s4) b412: b7ad j b37c 0000b414 : tcp_send_ctrl(): b414: 902f52ef jal t0,516 <__riscv_save_0> b418: 86ae mv a3,a1 b41a: 4781 li a5,0 b41c: 4705 li a4,1 b41e: 4601 li a2,0 b420: 4581 li a1,0 b422: babff0ef jal ra,afcc b426: 914f506f j 53a <__riscv_restore_0> 0000b42a : tcp_write(): b42a: 87aa mv a5,a0 b42c: 4908 lw a0,16(a0) b42e: 471d li a4,7 b430: 00e50863 beq a0,a4,b440 b434: ffe50813 addi a6,a0,-2 b438: 4709 li a4,2 b43a: 5561 li a0,-8 b43c: 01076e63 bltu a4,a6,b458 b440: 4501 li a0,0 b442: ca19 beqz a2,b458 b444: 8d2f52ef jal t0,516 <__riscv_save_0> b448: 8736 mv a4,a3 b44a: 853e mv a0,a5 b44c: 4681 li a3,0 b44e: 4781 li a5,0 b450: b7dff0ef jal ra,afcc b454: 8e6f506f j 53a <__riscv_restore_0> b458: 8082 ret 0000b45a : tcp_send_empty_ack(): b45a: 8a2f52ef jal t0,4fc <__riscv_save_4> b45e: 842a mv s0,a0 b460: 4601 li a2,0 b462: 45d1 li a1,20 b464: 4505 li a0,1 b466: e7cfd0ef jal ra,8ae2 b46a: cd31 beqz a0,b4c6 b46c: 02644783 lbu a5,38(s0) b470: 84aa mv s1,a0 b472: 5028 lw a0,96(s0) b474: 9bf1 andi a5,a5,-4 b476: 02f40323 sb a5,38(s0) b47a: a46fc0ef jal ra,76c0 b47e: 40cc lw a1,4(s1) b480: 862a mv a2,a0 b482: 8522 mv a0,s0 b484: a75ff0ef jal ra,aef8 b488: 249a lhu a4,8(s1) b48a: 00440913 addi s2,s0,4 b48e: 89aa mv s3,a0 b490: 4699 li a3,6 b492: 864a mv a2,s2 b494: 85a2 mv a1,s0 b496: 8526 mv a0,s1 b498: 713000ef jal ra,c3aa b49c: 00a98823 sb a0,16(s3) b4a0: 8121 srli a0,a0,0x8 b4a2: 00a988a3 sb a0,17(s3) b4a6: 2438 lbu a4,10(s0) b4a8: 3434 lbu a3,11(s0) b4aa: 4799 li a5,6 b4ac: 864a mv a2,s2 b4ae: 85a2 mv a1,s0 b4b0: 8526 mv a0,s1 b4b2: e7efc0ef jal ra,7b30 b4b6: 8526 mv a0,s1 b4b8: ddcfd0ef jal ra,8a94 b4bc: 4501 li a0,0 b4be: 020403a3 sb zero,39(s0) b4c2: 86ef506f j 530 <__riscv_restore_4> b4c6: 5579 li a0,-2 b4c8: bfed j b4c2 0000b4ca : tcp_output(): b4ca: 9c81a783 lw a5,-1592(gp) # 20000208 b4ce: 36a78063 beq a5,a0,b82e b4d2: 814f52ef jal t0,4e6 <__riscv_save_12> b4d6: 06455783 lhu a5,100(a0) b4da: 05a55a03 lhu s4,90(a0) b4de: 0147f363 bgeu a5,s4,b4e4 b4e2: 8a3e mv s4,a5 b4e4: 02654783 lbu a5,38(a0) b4e8: 0a42 slli s4,s4,0x10 b4ea: 842a mv s0,a0 b4ec: 8b89 andi a5,a5,2 b4ee: 010a5a13 srli s4,s4,0x10 b4f2: 5d64 lw s1,124(a0) b4f4: cb95 beqz a5,b528 b4f6: e491 bnez s1,b502 b4f8: 8522 mv a0,s0 b4fa: f61ff0ef jal ra,b45a b4fe: 824f506f j 522 <__riscv_restore_12> b502: 4898 lw a4,16(s1) b504: 3348 lbu a0,5(a4) b506: 235c lbu a5,4(a4) b508: 0522 slli a0,a0,0x8 b50a: 8d5d or a0,a0,a5 b50c: 237c lbu a5,6(a4) b50e: 07c2 slli a5,a5,0x10 b510: 8fc9 or a5,a5,a0 b512: 3368 lbu a0,7(a4) b514: 0562 slli a0,a0,0x18 b516: 8d5d or a0,a0,a5 b518: 9ccfc0ef jal ra,76e4 b51c: 24de lhu a5,12(s1) b51e: 4878 lw a4,84(s0) b520: 8f99 sub a5,a5,a4 b522: 953e add a0,a0,a5 b524: fcaa6ae3 bltu s4,a0,b4f8 b528: 08042983 lw s3,128(s0) b52c: 08099663 bnez s3,b5b8 b530: 2002eab7 lui s5,0x2002e b534: 4b89 li s7,2 b536: bd0a8a93 addi s5,s5,-1072 # 2002dbd0 b53a: 02040c37 lui s8,0x2040 b53e: 00440b13 addi s6,s0,4 b542: 5cfd li s9,-1 b544: c0ad beqz s1,b5a6 b546: 4898 lw a4,16(s1) b548: 3348 lbu a0,5(a4) b54a: 235c lbu a5,4(a4) b54c: 0522 slli a0,a0,0x8 b54e: 8d5d or a0,a0,a5 b550: 237c lbu a5,6(a4) b552: 07c2 slli a5,a5,0x10 b554: 8fc9 or a5,a5,a0 b556: 3368 lbu a0,7(a4) b558: 0562 slli a0,a0,0x18 b55a: 8d5d or a0,a0,a5 b55c: 988fc0ef jal ra,76e4 b560: 24de lhu a5,12(s1) b562: 4878 lw a4,84(s0) b564: 8f99 sub a5,a5,a4 b566: 953e add a0,a0,a5 b568: 04aa7c63 bgeu s4,a0,b5c0 b56c: 0b044783 lbu a5,176(s0) b570: eb9d bnez a5,b5a6 b572: 4898 lw a4,16(s1) b574: 3348 lbu a0,5(a4) b576: 235c lbu a5,4(a4) b578: 0522 slli a0,a0,0x8 b57a: 8d5d or a0,a0,a5 b57c: 237c lbu a5,6(a4) b57e: 07c2 slli a5,a5,0x10 b580: 8fc9 or a5,a5,a0 b582: 3368 lbu a0,7(a4) b584: 0562 slli a0,a0,0x18 b586: 8d5d or a0,a0,a5 b588: 95cfc0ef jal ra,76e4 b58c: 24de lhu a5,12(s1) b58e: 4878 lw a4,84(s0) b590: 8f99 sub a5,a5,a4 b592: 953e add a0,a0,a5 b594: 06445783 lhu a5,100(s0) b598: 00a7f763 bgeu a5,a0,b5a6 b59c: 4785 li a5,1 b59e: 0a042623 sw zero,172(s0) b5a2: 0af40823 sb a5,176(s0) b5a6: 02644783 lbu a5,38(s0) b5aa: 4501 li a0,0 b5ac: 07f7f793 andi a5,a5,127 b5b0: 02f40323 sb a5,38(s0) b5b4: b7a9 j b4fe b5b6: 89be mv s3,a5 b5b8: 0009a783 lw a5,0(s3) b5bc: ffed bnez a5,b5b6 b5be: bf8d j b530 b5c0: 08042783 lw a5,128(s0) b5c4: c395 beqz a5,b5e8 b5c6: 02644783 lbu a5,38(s0) b5ca: 0447f713 andi a4,a5,68 b5ce: ef09 bnez a4,b5e8 b5d0: 5c78 lw a4,124(s0) b5d2: cb01 beqz a4,b5e2 b5d4: 4314 lw a3,0(a4) b5d6: ea89 bnez a3,b5e8 b5d8: 2756 lhu a3,12(a4) b5da: 04045703 lhu a4,64(s0) b5de: 00e6f563 bgeu a3,a4,b5e8 b5e2: 0a07f793 andi a5,a5,160 b5e6: d3d9 beqz a5,b56c b5e8: 409c lw a5,0(s1) b5ea: dc7c sw a5,124(s0) b5ec: 481c lw a5,16(s0) b5ee: 03778963 beq a5,s7,b620 b5f2: 489c lw a5,16(s1) b5f4: 00d7c903 lbu s2,13(a5) b5f8: 27c8 lbu a0,12(a5) b5fa: 0922 slli s2,s2,0x8 b5fc: 00a96933 or s2,s2,a0 b600: 4541 li a0,16 b602: 8a2fc0ef jal ra,76a4 b606: 489c lw a5,16(s1) b608: 00a96533 or a0,s2,a0 b60c: 0542 slli a0,a0,0x10 b60e: 8141 srli a0,a0,0x10 b610: a7c8 sb a0,12(a5) b612: 8121 srli a0,a0,0x8 b614: b7c8 sb a0,13(a5) b616: 02644783 lbu a5,38(s0) b61a: 9bf1 andi a5,a5,-4 b61c: 02f40323 sb a5,38(s0) b620: 5408 lw a0,40(s0) b622: 0104a903 lw s2,16(s1) b626: 89afc0ef jal ra,76c0 b62a: 00855793 srli a5,a0,0x8 b62e: 00a90423 sb a0,8(s2) b632: 00f904a3 sb a5,9(s2) b636: 01055793 srli a5,a0,0x10 b63a: 8161 srli a0,a0,0x18 b63c: 00a905a3 sb a0,11(s2) b640: 346a lhu a0,46(s0) b642: 00f90523 sb a5,10(s2) b646: 0104a903 lw s2,16(s1) b64a: 85afc0ef jal ra,76a4 b64e: 347a lhu a4,46(s0) b650: 541c lw a5,40(s0) b652: 00a90723 sb a0,14(s2) b656: 8121 srli a0,a0,0x8 b658: 00a907a3 sb a0,15(s2) b65c: 97ba add a5,a5,a4 b65e: b87a sh a4,54(s0) b660: d81c sw a5,48(s0) b662: 24fc lbu a5,14(s1) b664: 8b85 andi a5,a5,1 b666: cb99 beqz a5,b67c b668: 004aa503 lw a0,4(s5) b66c: 0104a903 lw s2,16(s1) b670: 00ac6533 or a0,s8,a0 b674: 84cfc0ef jal ra,76c0 b678: 00a92a23 sw a0,20(s2) b67c: 401c lw a5,0(s0) b67e: e799 bnez a5,b68c b680: 855a mv a0,s6 b682: 86efc0ef jal ra,76f0 b686: c559 beqz a0,b714 b688: 415c lw a5,4(a0) b68a: c01c sw a5,0(s0) b68c: 03e41783 lh a5,62(s0) b690: 01979463 bne a5,s9,b698 b694: 02041f23 sh zero,62(s0) b698: 407c lw a5,68(s0) b69a: e395 bnez a5,b6be b69c: 9a01a783 lw a5,-1632(gp) # 200001e0 b6a0: 4898 lw a4,16(s1) b6a2: c07c sw a5,68(s0) b6a4: 3348 lbu a0,5(a4) b6a6: 235c lbu a5,4(a4) b6a8: 0522 slli a0,a0,0x8 b6aa: 8d5d or a0,a0,a5 b6ac: 237c lbu a5,6(a4) b6ae: 07c2 slli a5,a5,0x10 b6b0: 8fc9 or a5,a5,a0 b6b2: 3368 lbu a0,7(a4) b6b4: 0562 slli a0,a0,0x18 b6b6: 8d5d or a0,a0,a5 b6b8: 82cfc0ef jal ra,76e4 b6bc: c428 sw a0,72(s0) b6be: 40c8 lw a0,4(s1) b6c0: 0104a903 lw s2,16(s1) b6c4: 4699 li a3,6 b6c6: 4158 lw a4,4(a0) b6c8: 01252223 sw s2,4(a0) b6cc: 865a mv a2,s6 b6ce: 40e90733 sub a4,s2,a4 b6d2: 01071793 slli a5,a4,0x10 b6d6: 253a lhu a4,10(a0) b6d8: 83c1 srli a5,a5,0x10 b6da: 85a2 mv a1,s0 b6dc: 8f1d sub a4,a4,a5 b6de: a53a sh a4,10(a0) b6e0: 251a lhu a4,8(a0) b6e2: 8f1d sub a4,a4,a5 b6e4: 0742 slli a4,a4,0x10 b6e6: 8341 srli a4,a4,0x10 b6e8: a51a sh a4,8(a0) b6ea: 00090823 sb zero,16(s2) b6ee: 000908a3 sb zero,17(s2) b6f2: 4b9000ef jal ra,c3aa b6f6: 00a90823 sb a0,16(s2) b6fa: 8121 srli a0,a0,0x8 b6fc: 00a908a3 sb a0,17(s2) b700: 2438 lbu a4,10(s0) b702: 3434 lbu a3,11(s0) b704: 40c8 lw a0,4(s1) b706: 4799 li a5,6 b708: 865a mv a2,s6 b70a: 85a2 mv a1,s0 b70c: c24fc0ef jal ra,7b30 b710: 020403a3 sb zero,39(s0) b714: 4898 lw a4,16(s1) b716: 3348 lbu a0,5(a4) b718: 235c lbu a5,4(a4) b71a: 0522 slli a0,a0,0x8 b71c: 8d5d or a0,a0,a5 b71e: 237c lbu a5,6(a4) b720: 07c2 slli a5,a5,0x10 b722: 8fc9 or a5,a5,a0 b724: 3368 lbu a0,7(a4) b726: 0562 slli a0,a0,0x18 b728: 8d5d or a0,a0,a5 b72a: fbbfb0ef jal ra,76e4 b72e: 489c lw a5,16(s1) b730: 892a mv s2,a0 b732: 00c4dd83 lhu s11,12(s1) b736: 27c8 lbu a0,12(a5) b738: 37dc lbu a5,13(a5) b73a: 07a2 slli a5,a5,0x8 b73c: 8d5d or a0,a0,a5 b73e: f75fb0ef jal ra,76b2 b742: 890d andi a0,a0,3 b744: 00a03533 snez a0,a0 b748: 503c lw a5,96(s0) b74a: 956e add a0,a0,s11 b74c: 954a add a0,a0,s2 b74e: 8f89 sub a5,a5,a0 b750: 0007d363 bgez a5,b756 b754: d028 sw a0,96(s0) b756: 489c lw a5,16(s1) b758: 00c4d903 lhu s2,12(s1) b75c: 27c8 lbu a0,12(a5) b75e: 37dc lbu a5,13(a5) b760: 07a2 slli a5,a5,0x8 b762: 8d5d or a0,a0,a5 b764: f4ffb0ef jal ra,76b2 b768: 890d andi a0,a0,3 b76a: 00a03533 snez a0,a0 b76e: 954a add a0,a0,s2 b770: c95d beqz a0,b826 b772: 08042783 lw a5,128(s0) b776: 0004a023 sw zero,0(s1) b77a: e789 bnez a5,b784 b77c: 08942023 sw s1,128(s0) b780: 89a6 mv s3,s1 b782: a899 j b7d8 b784: 4898 lw a4,16(s1) b786: 3348 lbu a0,5(a4) b788: 235c lbu a5,4(a4) b78a: 0522 slli a0,a0,0x8 b78c: 8d5d or a0,a0,a5 b78e: 237c lbu a5,6(a4) b790: 07c2 slli a5,a5,0x10 b792: 8fc9 or a5,a5,a0 b794: 3368 lbu a0,7(a4) b796: 0562 slli a0,a0,0x18 b798: 8d5d or a0,a0,a5 b79a: f4bfb0ef jal ra,76e4 b79e: 0109a703 lw a4,16(s3) b7a2: 892a mv s2,a0 b7a4: 3348 lbu a0,5(a4) b7a6: 235c lbu a5,4(a4) b7a8: 0522 slli a0,a0,0x8 b7aa: 8d5d or a0,a0,a5 b7ac: 237c lbu a5,6(a4) b7ae: 07c2 slli a5,a5,0x10 b7b0: 8fc9 or a5,a5,a0 b7b2: 3368 lbu a0,7(a4) b7b4: 0562 slli a0,a0,0x18 b7b6: 8d5d or a0,a0,a5 b7b8: f2dfb0ef jal ra,76e4 b7bc: 40a90533 sub a0,s2,a0 b7c0: 06055063 bgez a0,b820 b7c4: 08040913 addi s2,s0,128 b7c8: 00092783 lw a5,0(s2) b7cc: eb81 bnez a5,b7dc b7ce: 00092783 lw a5,0(s2) b7d2: c09c sw a5,0(s1) b7d4: 00992023 sw s1,0(s2) b7d8: 5c64 lw s1,124(s0) b7da: b3ad j b544 b7dc: 4b98 lw a4,16(a5) b7de: 3348 lbu a0,5(a4) b7e0: 235c lbu a5,4(a4) b7e2: 0522 slli a0,a0,0x8 b7e4: 8d5d or a0,a0,a5 b7e6: 237c lbu a5,6(a4) b7e8: 07c2 slli a5,a5,0x10 b7ea: 8fc9 or a5,a5,a0 b7ec: 3368 lbu a0,7(a4) b7ee: 0562 slli a0,a0,0x18 b7f0: 8d5d or a0,a0,a5 b7f2: ef3fb0ef jal ra,76e4 b7f6: 4898 lw a4,16(s1) b7f8: 8daa mv s11,a0 b7fa: 3348 lbu a0,5(a4) b7fc: 235c lbu a5,4(a4) b7fe: 0522 slli a0,a0,0x8 b800: 8d5d or a0,a0,a5 b802: 237c lbu a5,6(a4) b804: 07c2 slli a5,a5,0x10 b806: 8fc9 or a5,a5,a0 b808: 3368 lbu a0,7(a4) b80a: 0562 slli a0,a0,0x18 b80c: 8d5d or a0,a0,a5 b80e: ed7fb0ef jal ra,76e4 b812: 40ad8533 sub a0,s11,a0 b816: fa055ce3 bgez a0,b7ce b81a: 00092903 lw s2,0(s2) b81e: b76d j b7c8 b820: 0099a023 sw s1,0(s3) b824: bfb1 j b780 b826: 8526 mv a0,s1 b828: 8c9fd0ef jal ra,90f0 b82c: b775 j b7d8 b82e: 4501 li a0,0 b830: 8082 ret 0000b832 : tcp_rst(): b832: ccbf42ef jal t0,4fc <__riscv_save_4> b836: 1141 addi sp,sp,-16 b838: 8aaa mv s5,a0 b83a: 84ae mv s1,a1 b83c: 89b2 mv s3,a2 b83e: 45d1 li a1,20 b840: 4601 li a2,0 b842: 4505 li a0,1 b844: 8a36 mv s4,a3 b846: c63a sw a4,12(sp) b848: 8b3e mv s6,a5 b84a: a98fd0ef jal ra,8ae2 b84e: 0e050363 beqz a0,b934 b852: 4732 lw a4,12(sp) b854: 4140 lw s0,4(a0) b856: 892a mv s2,a0 b858: 853a mv a0,a4 b85a: e4bfb0ef jal ra,76a4 b85e: a008 sb a0,0(s0) b860: 8121 srli a0,a0,0x8 b862: b008 sb a0,1(s0) b864: 855a mv a0,s6 b866: e3ffb0ef jal ra,76a4 b86a: a028 sb a0,2(s0) b86c: 8121 srli a0,a0,0x8 b86e: b028 sb a0,3(s0) b870: 8556 mv a0,s5 b872: e4ffb0ef jal ra,76c0 b876: 00855793 srli a5,a0,0x8 b87a: a048 sb a0,4(s0) b87c: b05c sb a5,5(s0) b87e: 01055793 srli a5,a0,0x10 b882: 8161 srli a0,a0,0x18 b884: a07c sb a5,6(s0) b886: b068 sb a0,7(s0) b888: 8526 mv a0,s1 b88a: e37fb0ef jal ra,76c0 b88e: 00855793 srli a5,a0,0x8 b892: a408 sb a0,8(s0) b894: b41c sb a5,9(s0) b896: 3444 lbu s1,13(s0) b898: 01055793 srli a5,a0,0x10 b89c: 8161 srli a0,a0,0x18 b89e: b428 sb a0,11(s0) b8a0: 2448 lbu a0,12(s0) b8a2: 04a2 slli s1,s1,0x8 b8a4: a43c sb a5,10(s0) b8a6: 8cc9 or s1,s1,a0 b8a8: 6541 lui a0,0x10 b8aa: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x2aac> b8ae: df7fb0ef jal ra,76a4 b8b2: 8ce9 and s1,s1,a0 b8b4: 4551 li a0,20 b8b6: deffb0ef jal ra,76a4 b8ba: 8d45 or a0,a0,s1 b8bc: 0542 slli a0,a0,0x10 b8be: 8141 srli a0,a0,0x10 b8c0: 2002e7b7 lui a5,0x2002e b8c4: a448 sb a0,12(s0) b8c6: 8121 srli a0,a0,0x8 b8c8: b448 sb a0,13(s0) b8ca: bd47d503 lhu a0,-1068(a5) # 2002dbd4 b8ce: dd7fb0ef jal ra,76a4 b8d2: a468 sb a0,14(s0) b8d4: 345c lbu a5,13(s0) b8d6: 8121 srli a0,a0,0x8 b8d8: b468 sb a0,15(s0) b8da: 2448 lbu a0,12(s0) b8dc: 07a2 slli a5,a5,0x8 b8de: 00040923 sb zero,18(s0) b8e2: 8d5d or a0,a0,a5 b8e4: 000409a3 sb zero,19(s0) b8e8: dcbfb0ef jal ra,76b2 b8ec: 6795 lui a5,0x5 b8ee: 03f57513 andi a0,a0,63 b8f2: 8d5d or a0,a0,a5 b8f4: db1fb0ef jal ra,76a4 b8f8: 00895703 lhu a4,8(s2) b8fc: a448 sb a0,12(s0) b8fe: 8121 srli a0,a0,0x8 b900: b448 sb a0,13(s0) b902: 4699 li a3,6 b904: 8652 mv a2,s4 b906: 85ce mv a1,s3 b908: 00040823 sb zero,16(s0) b90c: 000408a3 sb zero,17(s0) b910: 854a mv a0,s2 b912: 299000ef jal ra,c3aa b916: a808 sb a0,16(s0) b918: 8121 srli a0,a0,0x8 b91a: b808 sb a0,17(s0) b91c: 4799 li a5,6 b91e: 4701 li a4,0 b920: 08000693 li a3,128 b924: 8652 mv a2,s4 b926: 85ce mv a1,s3 b928: 854a mv a0,s2 b92a: a06fc0ef jal ra,7b30 b92e: 854a mv a0,s2 b930: 964fd0ef jal ra,8a94 b934: 0141 addi sp,sp,16 b936: bfbf406f j 530 <__riscv_restore_4> 0000b93a : tcp_rexmit_rto(): b93a: 08052783 lw a5,128(a0) b93e: cb85 beqz a5,b96e b940: bd7f42ef jal t0,516 <__riscv_save_0> b944: 873e mv a4,a5 b946: 4314 lw a3,0(a4) b948: e28d bnez a3,b96a b94a: 5d74 lw a3,124(a0) b94c: c314 sw a3,0(a4) b94e: dd7c sw a5,124(a0) b950: 05254783 lbu a5,82(a0) b954: 08052023 sw zero,128(a0) b958: 04052223 sw zero,68(a0) b95c: 0785 addi a5,a5,1 b95e: 04f50923 sb a5,82(a0) b962: b69ff0ef jal ra,b4ca b966: bd5f406f j 53a <__riscv_restore_0> b96a: 8736 mv a4,a3 b96c: bfe9 j b946 b96e: 8082 ret 0000b970 : tcp_rexmit(): b970: b8df42ef jal t0,4fc <__riscv_save_4> b974: 08052483 lw s1,128(a0) b978: c495 beqz s1,b9a4 b97a: 409c lw a5,0(s1) b97c: 842a mv s0,a0 b97e: 07c50913 addi s2,a0,124 b982: 08f52023 sw a5,128(a0) b986: 00092783 lw a5,0(s2) b98a: ef99 bnez a5,b9a8 b98c: 00092783 lw a5,0(s2) b990: c09c sw a5,0(s1) b992: 00992023 sw s1,0(s2) b996: 05244783 lbu a5,82(s0) b99a: 04042223 sw zero,68(s0) b99e: 0785 addi a5,a5,1 b9a0: 04f40923 sb a5,82(s0) b9a4: b8df406f j 530 <__riscv_restore_4> b9a8: 4b98 lw a4,16(a5) b9aa: 3348 lbu a0,5(a4) b9ac: 235c lbu a5,4(a4) b9ae: 0522 slli a0,a0,0x8 b9b0: 8d5d or a0,a0,a5 b9b2: 237c lbu a5,6(a4) b9b4: 07c2 slli a5,a5,0x10 b9b6: 8fc9 or a5,a5,a0 b9b8: 3368 lbu a0,7(a4) b9ba: 0562 slli a0,a0,0x18 b9bc: 8d5d or a0,a0,a5 b9be: d27fb0ef jal ra,76e4 b9c2: 4898 lw a4,16(s1) b9c4: 89aa mv s3,a0 b9c6: 3348 lbu a0,5(a4) b9c8: 235c lbu a5,4(a4) b9ca: 0522 slli a0,a0,0x8 b9cc: 8d5d or a0,a0,a5 b9ce: 237c lbu a5,6(a4) b9d0: 07c2 slli a5,a5,0x10 b9d2: 8fc9 or a5,a5,a0 b9d4: 3368 lbu a0,7(a4) b9d6: 0562 slli a0,a0,0x18 b9d8: 8d5d or a0,a0,a5 b9da: d0bfb0ef jal ra,76e4 b9de: 40a98533 sub a0,s3,a0 b9e2: fa0555e3 bgez a0,b98c b9e6: 00092903 lw s2,0(s2) b9ea: bf71 j b986 0000b9ec : tcp_rexmit_fast(): b9ec: 08052783 lw a5,128(a0) b9f0: cfb1 beqz a5,ba4c b9f2: b25f42ef jal t0,516 <__riscv_save_0> b9f6: 02654783 lbu a5,38(a0) b9fa: 842a mv s0,a0 b9fc: 8b91 andi a5,a5,4 b9fe: e7a9 bnez a5,ba48 ba00: f71ff0ef jal ra,b970 ba04: 05a45683 lhu a3,90(s0) ba08: 06445783 lhu a5,100(s0) ba0c: 0016d713 srli a4,a3,0x1 ba10: 00d7f463 bgeu a5,a3,ba18 ba14: 0017d713 srli a4,a5,0x1 ba18: 04045783 lhu a5,64(s0) ba1c: 04e41e23 sh a4,92(s0) ba20: 00179693 slli a3,a5,0x1 ba24: 00d75463 bge a4,a3,ba2c ba28: 04d41e23 sh a3,92(s0) ba2c: 470d li a4,3 ba2e: 02e787b3 mul a5,a5,a4 ba32: 05c45703 lhu a4,92(s0) ba36: 97ba add a5,a5,a4 ba38: 04f41d23 sh a5,90(s0) ba3c: 02644783 lbu a5,38(s0) ba40: 0047e793 ori a5,a5,4 ba44: 02f40323 sb a5,38(s0) ba48: af3f406f j 53a <__riscv_restore_0> ba4c: 8082 ret 0000ba4e : tcp_keepalive(): ba4e: aaff42ef jal t0,4fc <__riscv_save_4> ba52: 84aa mv s1,a0 ba54: 4601 li a2,0 ba56: 45d1 li a1,20 ba58: 4505 li a0,1 ba5a: 888fd0ef jal ra,8ae2 ba5e: c529 beqz a0,baa8 ba60: 842a mv s0,a0 ba62: 50a8 lw a0,96(s1) ba64: 00448913 addi s2,s1,4 ba68: 157d addi a0,a0,-1 ba6a: c57fb0ef jal ra,76c0 ba6e: 404c lw a1,4(s0) ba70: 862a mv a2,a0 ba72: 8526 mv a0,s1 ba74: c84ff0ef jal ra,aef8 ba78: 241a lhu a4,8(s0) ba7a: 89aa mv s3,a0 ba7c: 4699 li a3,6 ba7e: 864a mv a2,s2 ba80: 85a6 mv a1,s1 ba82: 8522 mv a0,s0 ba84: 127000ef jal ra,c3aa ba88: 00a98823 sb a0,16(s3) ba8c: 8121 srli a0,a0,0x8 ba8e: 00a988a3 sb a0,17(s3) ba92: 34b4 lbu a3,11(s1) ba94: 4799 li a5,6 ba96: 4701 li a4,0 ba98: 864a mv a2,s2 ba9a: 85a6 mv a1,s1 ba9c: 8522 mv a0,s0 ba9e: 892fc0ef jal ra,7b30 baa2: 8522 mv a0,s0 baa4: ff1fc0ef jal ra,8a94 baa8: a89f406f j 530 <__riscv_restore_4> 0000baac : tcp_zero_window_probe(): baac: a51f42ef jal t0,4fc <__riscv_save_4> bab0: 08052403 lw s0,128(a0) bab4: e019 bnez s0,baba bab6: 5d60 lw s0,124(a0) bab8: c45d beqz s0,bb66 baba: 481c lw a5,16(s0) babc: 84aa mv s1,a0 babe: 27c8 lbu a0,12(a5) bac0: 37dc lbu a5,13(a5) bac2: 07a2 slli a5,a5,0x8 bac4: 8d5d or a0,a0,a5 bac6: bedfb0ef jal ra,76b2 baca: 8905 andi a0,a0,1 bacc: cd59 beqz a0,bb6a bace: 245e lhu a5,12(s0) bad0: efc9 bnez a5,bb6a bad2: 4a05 li s4,1 bad4: 45d1 li a1,20 bad6: 4601 li a2,0 bad8: 4505 li a0,1 bada: 808fd0ef jal ra,8ae2 bade: 892a mv s2,a0 bae0: c159 beqz a0,bb66 bae2: 4818 lw a4,16(s0) bae4: 414c lw a1,4(a0) bae6: 8526 mv a0,s1 bae8: 3350 lbu a2,5(a4) baea: 235c lbu a5,4(a4) baec: 0622 slli a2,a2,0x8 baee: 8e5d or a2,a2,a5 baf0: 237c lbu a5,6(a4) baf2: 07c2 slli a5,a5,0x10 baf4: 8fd1 or a5,a5,a2 baf6: 3370 lbu a2,7(a4) baf8: 0662 slli a2,a2,0x18 bafa: 8e5d or a2,a2,a5 bafc: bfcff0ef jal ra,aef8 bb00: 89aa mv s3,a0 bb02: 060a0763 beqz s4,bb70 bb06: 3540 lbu s0,13(a0) bb08: 255c lbu a5,12(a0) bb0a: 6541 lui a0,0x10 bb0c: 0422 slli s0,s0,0x8 bb0e: fc050513 addi a0,a0,-64 # ffc0 <_data_lma+0x2aac> bb12: 8c5d or s0,s0,a5 bb14: b91fb0ef jal ra,76a4 bb18: 8c69 and s0,s0,a0 bb1a: 4545 li a0,17 bb1c: b89fb0ef jal ra,76a4 bb20: 8c49 or s0,s0,a0 bb22: 01041793 slli a5,s0,0x10 bb26: 83c1 srli a5,a5,0x10 bb28: 00f98623 sb a5,12(s3) bb2c: 83a1 srli a5,a5,0x8 bb2e: 00f986a3 sb a5,13(s3) bb32: 00895703 lhu a4,8(s2) bb36: 00448413 addi s0,s1,4 bb3a: 4699 li a3,6 bb3c: 8622 mv a2,s0 bb3e: 85a6 mv a1,s1 bb40: 854a mv a0,s2 bb42: 069000ef jal ra,c3aa bb46: 00a98823 sb a0,16(s3) bb4a: 8121 srli a0,a0,0x8 bb4c: 00a988a3 sb a0,17(s3) bb50: 34b4 lbu a3,11(s1) bb52: 4799 li a5,6 bb54: 4701 li a4,0 bb56: 8622 mv a2,s0 bb58: 85a6 mv a1,s1 bb5a: 854a mv a0,s2 bb5c: fd5fb0ef jal ra,7b30 bb60: 854a mv a0,s2 bb62: f33fc0ef jal ra,8a94 bb66: 9cbf406f j 530 <__riscv_restore_4> bb6a: 4a01 li s4,0 bb6c: 45d5 li a1,21 bb6e: b7a5 j bad6 bb70: 4418 lw a4,8(s0) bb72: 00492783 lw a5,4(s2) bb76: 00070703 lb a4,0(a4) bb7a: abd8 sb a4,20(a5) bb7c: bf5d j bb32 0000bb7e : udp_input(): bb7e: 969f42ef jal t0,4e6 <__riscv_save_12> bb82: 4140 lw s0,4(a0) bb84: 2506 lhu s1,8(a0) bb86: 892a mv s2,a0 bb88: 301c lbu a5,1(s0) bb8a: 2008 lbu a0,0(s0) bb8c: 1141 addi sp,sp,-16 bb8e: 07a2 slli a5,a5,0x8 bb90: 8d5d or a0,a0,a5 bb92: 8a2e mv s4,a1 bb94: b1ffb0ef jal ra,76b2 bb98: 8121 srli a0,a0,0x8 bb9a: 893d andi a0,a0,15 bb9c: 0509 addi a0,a0,2 bb9e: 050a slli a0,a0,0x2 bba0: 02a4c263 blt s1,a0,bbc4 bba4: 301c lbu a5,1(s0) bba6: 2008 lbu a0,0(s0) bba8: 07a2 slli a5,a5,0x8 bbaa: 8d5d or a0,a0,a5 bbac: b07fb0ef jal ra,76b2 bbb0: 00655593 srli a1,a0,0x6 bbb4: 03c5f593 andi a1,a1,60 bbb8: 40b005b3 neg a1,a1 bbbc: 854a mv a0,s2 bbbe: e69fc0ef jal ra,8a26 bbc2: c519 beqz a0,bbd0 bbc4: 854a mv a0,s2 bbc6: ecffc0ef jal ra,8a94 bbca: 0141 addi sp,sp,16 bbcc: 957f406f j 522 <__riscv_restore_12> bbd0: 00492a83 lw s5,4(s2) bbd4: 01040c13 addi s8,s0,16 bbd8: 85d2 mv a1,s4 bbda: 8562 mv a0,s8 bbdc: f8bfb0ef jal ra,7b66 bbe0: 001ac783 lbu a5,1(s5) bbe4: 8b2a mv s6,a0 bbe6: 000ac503 lbu a0,0(s5) bbea: 07a2 slli a5,a5,0x8 bbec: 8d5d or a0,a0,a5 bbee: ac5fb0ef jal ra,76b2 bbf2: 003ac783 lbu a5,3(s5) bbf6: 8baa mv s7,a0 bbf8: 002ac503 lbu a0,2(s5) bbfc: 07a2 slli a5,a5,0x8 bbfe: 8d5d or a0,a0,a5 bc00: ab3fb0ef jal ra,76b2 bc04: 04400793 li a5,68 bc08: 86aa mv a3,a0 bc0a: 06f51d63 bne a0,a5,bc84 bc0e: 04300793 li a5,67 bc12: 12fb9963 bne s7,a5,bd44 bc16: 020a2783 lw a5,32(s4) bc1a: 12078563 beqz a5,bd44 bc1e: 43c4 lw s1,4(a5) bc20: 12048263 beqz s1,bd44 bc24: 40d4 lw a3,4(s1) bc26: ce89 beqz a3,bc40 bc28: 3458 lbu a4,13(s0) bc2a: 245c lbu a5,12(s0) bc2c: 0722 slli a4,a4,0x8 bc2e: 8f5d or a4,a4,a5 bc30: 247c lbu a5,14(s0) bc32: 07c2 slli a5,a5,0x10 bc34: 8f5d or a4,a4,a5 bc36: 347c lbu a5,15(s0) bc38: 07e2 slli a5,a5,0x18 bc3a: 8fd9 or a5,a5,a4 bc3c: 10f69463 bne a3,a5,bd44 bc40: 007ac783 lbu a5,7(s5) bc44: 006ac703 lbu a4,6(s5) bc48: 07a2 slli a5,a5,0x8 bc4a: 8fd9 or a5,a5,a4 bc4c: cb99 beqz a5,bc62 bc4e: 00895703 lhu a4,8(s2) bc52: 46c5 li a3,17 bc54: 8662 mv a2,s8 bc56: 00c40593 addi a1,s0,12 bc5a: 854a mv a0,s2 bc5c: 74e000ef jal ra,c3aa bc60: f135 bnez a0,bbc4 bc62: 55e1 li a1,-8 bc64: 854a mv a0,s2 bc66: dc1fc0ef jal ra,8a26 bc6a: fd29 bnez a0,bbc4 bc6c: 0e048c63 beqz s1,bd64 bc70: 4c9c lw a5,24(s1) bc72: dba9 beqz a5,bbc4 bc74: 4cc8 lw a0,28(s1) bc76: 875e mv a4,s7 bc78: 00c40693 addi a3,s0,12 bc7c: 864a mv a2,s2 bc7e: 85a6 mv a1,s1 bc80: 9782 jalr a5 bc82: b7a1 j bbca bc84: 9d41a483 lw s1,-1580(gp) # 20000214 bc88: 4d01 li s10,0 bc8a: 4d81 li s11,0 bc8c: 9d418c93 addi s9,gp,-1580 # 20000214 bc90: 76c00613 li a2,1900 bc94: e489 bnez s1,bc9e bc96: 0a0d0763 beqz s10,bd44 bc9a: 84ea mv s1,s10 bc9c: b755 j bc40 bc9e: 28be lhu a5,18(s1) bca0: 08d79c63 bne a5,a3,bd38 bca4: 4098 lw a4,0(s1) bca6: 040b1563 bnez s6,bcf0 bcaa: e339 bnez a4,bcf0 bcac: 000d1663 bnez s10,bcb8 bcb0: 289c lbu a5,16(s1) bcb2: 8b91 andi a5,a5,4 bcb4: e391 bnez a5,bcb8 bcb6: 8d26 mv s10,s1 bcb8: 28de lhu a5,20(s1) bcba: 09779263 bne a5,s7,bd3e bcbe: 40cc lw a1,4(s1) bcc0: cd89 beqz a1,bcda bcc2: 3458 lbu a4,13(s0) bcc4: 245c lbu a5,12(s0) bcc6: 0722 slli a4,a4,0x8 bcc8: 8f5d or a4,a4,a5 bcca: 247c lbu a5,14(s0) bccc: 07c2 slli a5,a5,0x10 bcce: 8f5d or a4,a4,a5 bcd0: 347c lbu a5,15(s0) bcd2: 07e2 slli a5,a5,0x18 bcd4: 8fd9 or a5,a5,a4 bcd6: 06f59463 bne a1,a5,bd3e bcda: f60d83e3 beqz s11,bc40 bcde: 44dc lw a5,12(s1) bce0: 00fda623 sw a5,12(s11) bce4: 000ca783 lw a5,0(s9) bce8: 009ca023 sw s1,0(s9) bcec: c4dc sw a5,12(s1) bcee: bf89 j bc40 bcf0: 381c lbu a5,17(s0) bcf2: 01044983 lbu s3,16(s0) bcf6: 07a2 slli a5,a5,0x8 bcf8: 0137e7b3 or a5,a5,s3 bcfc: 01244983 lbu s3,18(s0) bd00: 09c2 slli s3,s3,0x10 bd02: 00f9e7b3 or a5,s3,a5 bd06: 01344983 lbu s3,19(s0) bd0a: 09e2 slli s3,s3,0x18 bd0c: 00f9e9b3 or s3,s3,a5 bd10: f8e98ee3 beq s3,a4,bcac bd14: f0000537 lui a0,0xf0000 bd18: c636 sw a3,12(sp) bd1a: 9cbfb0ef jal ra,76e4 bd1e: 00a9f9b3 and s3,s3,a0 bd22: e0000537 lui a0,0xe0000 bd26: 9bffb0ef jal ra,76e4 bd2a: 46b2 lw a3,12(sp) bd2c: 76c00613 li a2,1900 bd30: f6a98ee3 beq s3,a0,bcac bd34: f60b1ce3 bnez s6,bcac bd38: 8da6 mv s11,s1 bd3a: 44c4 lw s1,12(s1) bd3c: bfa1 j bc94 bd3e: fec69de3 bne a3,a2,bd38 bd42: bdfd j bc40 bd44: 3818 lbu a4,17(s0) bd46: 281c lbu a5,16(s0) bd48: 0722 slli a4,a4,0x8 bd4a: 8f5d or a4,a4,a5 bd4c: 283c lbu a5,18(s0) bd4e: 07c2 slli a5,a5,0x10 bd50: 8f5d or a4,a4,a5 bd52: 383c lbu a5,19(s0) bd54: 07e2 slli a5,a5,0x18 bd56: 8fd9 or a5,a5,a4 bd58: 004a2703 lw a4,4(s4) bd5c: e6f714e3 bne a4,a5,bbc4 bd60: 4481 li s1,0 bd62: bdf9 j bc40 bd64: e60b10e3 bnez s6,bbc4 bd68: 381c lbu a5,17(s0) bd6a: 2804 lbu s1,16(s0) bd6c: f0000537 lui a0,0xf0000 bd70: 07a2 slli a5,a5,0x8 bd72: 8fc5 or a5,a5,s1 bd74: 2824 lbu s1,18(s0) bd76: 04c2 slli s1,s1,0x10 bd78: 8fc5 or a5,a5,s1 bd7a: 3824 lbu s1,19(s0) bd7c: 04e2 slli s1,s1,0x18 bd7e: 8cdd or s1,s1,a5 bd80: 965fb0ef jal ra,76e4 bd84: 8ce9 and s1,s1,a0 bd86: e0000537 lui a0,0xe0000 bd8a: 95bfb0ef jal ra,76e4 bd8e: e2a48be3 beq s1,a0,bbc4 bd92: 301c lbu a5,1(s0) bd94: 2008 lbu a0,0(s0) bd96: 07a2 slli a5,a5,0x8 bd98: 8d5d or a0,a0,a5 bd9a: 919fb0ef jal ra,76b2 bd9e: 00855593 srli a1,a0,0x8 bda2: 89bd andi a1,a1,15 bda4: 0589 addi a1,a1,2 bda6: 058a slli a1,a1,0x2 bda8: 854a mv a0,s2 bdaa: c7dfc0ef jal ra,8a26 bdae: 458d li a1,3 bdb0: 854a mv a0,s2 bdb2: 2b89 jal c304 bdb4: bd01 j bbc4 0000bdb6 : udp_bind(): bdb6: 9d41a883 lw a7,-1580(gp) # 20000214 bdba: 86aa mv a3,a0 bdbc: 4301 li t1,0 bdbe: 87c6 mv a5,a7 bdc0: 9d418813 addi a6,gp,-1580 # 20000214 bdc4: e79d bnez a5,bdf2 bdc6: c999 beqz a1,bddc bdc8: 3198 lbu a4,1(a1) bdca: 219c lbu a5,0(a1) bdcc: 0722 slli a4,a4,0x8 bdce: 8f5d or a4,a4,a5 bdd0: 21bc lbu a5,2(a1) bdd2: 07c2 slli a5,a5,0x10 bdd4: 8f5d or a4,a4,a5 bdd6: 31bc lbu a5,3(a1) bdd8: 07e2 slli a5,a5,0x18 bdda: 8fd9 or a5,a5,a4 bddc: c29c sw a5,0(a3) bdde: c625 beqz a2,be46 bde0: aab2 sh a2,18(a3) bde2: 4501 li a0,0 bde4: 00031663 bnez t1,bdf0 bde8: 0116a623 sw a7,12(a3) bdec: 00d82023 sw a3,0(a6) bdf0: 8082 ret bdf2: 02d78b63 beq a5,a3,be28 bdf6: 2bba lhu a4,18(a5) bdf8: 02c71663 bne a4,a2,be24 bdfc: 0007ae03 lw t3,0(a5) # 5000 be00: 000e1463 bnez t3,be08 be04: 5555 li a0,-11 be06: 8082 ret be08: ddf5 beqz a1,be04 be0a: 3188 lbu a0,1(a1) be0c: 2198 lbu a4,0(a1) be0e: 0522 slli a0,a0,0x8 be10: 8d59 or a0,a0,a4 be12: 21b8 lbu a4,2(a1) be14: 0742 slli a4,a4,0x10 be16: 8d59 or a0,a0,a4 be18: 31b8 lbu a4,3(a1) be1a: 0762 slli a4,a4,0x18 be1c: 8f49 or a4,a4,a0 be1e: d37d beqz a4,be04 be20: feee02e3 beq t3,a4,be04 be24: 47dc lw a5,12(a5) be26: bf79 j bdc4 be28: 4305 li t1,1 be2a: bfed j be24 be2c: 2bae lhu a1,18(a5) be2e: 00c59a63 bne a1,a2,be42 be32: 0605 addi a2,a2,1 be34: 0642 slli a2,a2,0x10 be36: 8241 srli a2,a2,0x10 be38: 87c6 mv a5,a7 be3a: d3dd beqz a5,bde0 be3c: fee618e3 bne a2,a4,be2c be40: b7d1 j be04 be42: 47dc lw a5,12(a5) be44: bfdd j be3a be46: 6721 lui a4,0x8 be48: 87c6 mv a5,a7 be4a: 6605 lui a2,0x1 be4c: 177d addi a4,a4,-1 be4e: b7f5 j be3a 0000be50 : udp_sendto_if(): be50: eacf42ef jal t0,4fc <__riscv_save_4> be54: 293e lhu a5,18(a0) be56: 892a mv s2,a0 be58: 89ae mv s3,a1 be5a: 8ab2 mv s5,a2 be5c: 8b36 mv s6,a3 be5e: 8a3a mv s4,a4 be60: c7ad beqz a5,beca be62: 45a1 li a1,8 be64: 854e mv a0,s3 be66: bc1fc0ef jal ra,8a26 be6a: 84ce mv s1,s3 be6c: cd01 beqz a0,be84 be6e: 4601 li a2,0 be70: 45a1 li a1,8 be72: 4505 li a0,1 be74: c6ffc0ef jal ra,8ae2 be78: 84aa mv s1,a0 be7a: 547d li s0,-1 be7c: cd29 beqz a0,bed6 be7e: 85ce mv a1,s3 be80: e33fc0ef jal ra,8cb2 be84: 01295503 lhu a0,18(s2) be88: 40c0 lw s0,4(s1) be8a: 81bfb0ef jal ra,76a4 be8e: a008 sb a0,0(s0) be90: 8121 srli a0,a0,0x8 be92: b008 sb a0,1(s0) be94: 855a mv a0,s6 be96: 80ffb0ef jal ra,76a4 be9a: 00092783 lw a5,0(s2) be9e: a028 sb a0,2(s0) bea0: 8121 srli a0,a0,0x8 bea2: b028 sb a0,3(s0) bea4: 00040323 sb zero,6(s0) bea8: 000403a3 sb zero,7(s0) beac: 004a0b13 addi s6,s4,4 beb0: c795 beqz a5,bedc beb2: 004a2703 lw a4,4(s4) beb6: 8b4a mv s6,s2 beb8: 02e78263 beq a5,a4,bedc bebc: 545d li s0,-9 bebe: 01348c63 beq s1,s3,bed6 bec2: 8526 mv a0,s1 bec4: bd1fc0ef jal ra,8a94 bec8: a039 j bed6 beca: 4601 li a2,0 becc: 85aa mv a1,a0 bece: ee9ff0ef jal ra,bdb6 bed2: 842a mv s0,a0 bed4: d559 beqz a0,be62 bed6: 8522 mv a0,s0 bed8: e58f406f j 530 <__riscv_restore_4> bedc: 248a lhu a0,8(s1) bede: fc6fb0ef jal ra,76a4 bee2: a048 sb a0,4(s0) bee4: 8121 srli a0,a0,0x8 bee6: b048 sb a0,5(s0) bee8: 01094783 lbu a5,16(s2) beec: 8b85 andi a5,a5,1 beee: eb99 bnez a5,bf04 bef0: 249a lhu a4,8(s1) bef2: 46c5 li a3,17 bef4: 8656 mv a2,s5 bef6: 85da mv a1,s6 bef8: 8526 mv a0,s1 befa: 2945 jal c3aa befc: c10d beqz a0,bf1e befe: a068 sb a0,6(s0) bf00: 8121 srli a0,a0,0x8 bf02: b068 sb a0,7(s0) bf04: 00a94703 lbu a4,10(s2) bf08: 00b94683 lbu a3,11(s2) bf0c: 8852 mv a6,s4 bf0e: 47c5 li a5,17 bf10: 8656 mv a2,s5 bf12: 85da mv a1,s6 bf14: 8526 mv a0,s1 bf16: ac1fb0ef jal ra,79d6 bf1a: 842a mv s0,a0 bf1c: b74d j bebe bf1e: 57fd li a5,-1 bf20: a07c sb a5,6(s0) bf22: b07c sb a5,7(s0) bf24: b7c5 j bf04 0000bf26 : udp_sendto(): bf26: df0f42ef jal t0,516 <__riscv_save_0> bf2a: 1141 addi sp,sp,-16 bf2c: 842a mv s0,a0 bf2e: 8532 mv a0,a2 bf30: c62e sw a1,12(sp) bf32: c436 sw a3,8(sp) bf34: c232 sw a2,4(sp) bf36: fbafb0ef jal ra,76f0 bf3a: c919 beqz a0,bf50 bf3c: 46a2 lw a3,8(sp) bf3e: 4612 lw a2,4(sp) bf40: 45b2 lw a1,12(sp) bf42: 872a mv a4,a0 bf44: 8522 mv a0,s0 bf46: f0bff0ef jal ra,be50 bf4a: 0141 addi sp,sp,16 bf4c: deef406f j 53a <__riscv_restore_0> bf50: 5571 li a0,-4 bf52: bfe5 j bf4a 0000bf54 : udp_send(): bf54: dc2f42ef jal t0,516 <__riscv_save_0> bf58: 2956 lhu a3,20(a0) bf5a: 00450613 addi a2,a0,4 # e0000004 <__freertos_irq_stack_top+0xbffd0004> bf5e: fc9ff0ef jal ra,bf26 bf62: dd8f406f j 53a <__riscv_restore_0> 0000bf66 : udp_connect(): bf66: db0f42ef jal t0,516 <__riscv_save_0> bf6a: 293e lhu a5,18(a0) bf6c: 842a mv s0,a0 bf6e: 84ae mv s1,a1 bf70: 8932 mv s2,a2 bf72: cbb1 beqz a5,bfc6 bf74: 4781 li a5,0 bf76: c899 beqz s1,bf8c bf78: 3098 lbu a4,1(s1) bf7a: 209c lbu a5,0(s1) bf7c: 0722 slli a4,a4,0x8 bf7e: 8f5d or a4,a4,a5 bf80: 20bc lbu a5,2(s1) bf82: 07c2 slli a5,a5,0x10 bf84: 8f5d or a4,a4,a5 bf86: 30bc lbu a5,3(s1) bf88: 07e2 slli a5,a5,0x18 bf8a: 8fd9 or a5,a5,a4 bf8c: 2818 lbu a4,16(s0) bf8e: c05c sw a5,4(s0) bf90: 01241a23 sh s2,20(s0) bf94: 00476713 ori a4,a4,4 bf98: a818 sb a4,16(s0) bf9a: 4018 lw a4,0(s0) bf9c: ef05 bnez a4,bfd4 bf9e: cf85 beqz a5,bfd6 bfa0: 00440513 addi a0,s0,4 bfa4: f4cfb0ef jal ra,76f0 bfa8: 87aa mv a5,a0 bfaa: 5571 li a0,-4 bfac: c395 beqz a5,bfd0 bfae: 43dc lw a5,4(a5) bfb0: c01c sw a5,0(s0) bfb2: 9d41a683 lw a3,-1580(gp) # 20000214 bfb6: 9d418793 addi a5,gp,-1580 # 20000214 bfba: 8736 mv a4,a3 bfbc: e305 bnez a4,bfdc bfbe: c454 sw a3,12(s0) bfc0: c380 sw s0,0(a5) bfc2: 4501 li a0,0 bfc4: a031 j bfd0 bfc6: 4601 li a2,0 bfc8: 85aa mv a1,a0 bfca: dedff0ef jal ra,bdb6 bfce: d15d beqz a0,bf74 bfd0: d6af406f j 53a <__riscv_restore_0> bfd4: fff9 bnez a5,bfb2 bfd6: 00042023 sw zero,0(s0) bfda: bfe1 j bfb2 bfdc: fe8703e3 beq a4,s0,bfc2 bfe0: 4758 lw a4,12(a4) bfe2: bfe9 j bfbc 0000bfe4 : udp_recv(): bfe4: cd0c sw a1,24(a0) bfe6: cd50 sw a2,28(a0) bfe8: 8082 ret 0000bfea : udp_remove(): bfea: d2cf42ef jal t0,516 <__riscv_save_0> bfee: 9d418713 addi a4,gp,-1580 # 20000214 bff2: 431c lw a5,0(a4) bff4: 85aa mv a1,a0 bff6: 02a79063 bne a5,a0,c016 bffa: 455c lw a5,12(a0) bffc: c31c sw a5,0(a4) bffe: 4505 li a0,1 c000: 8c3fc0ef jal ra,88c2 c004: d36f406f j 53a <__riscv_restore_0> c008: 47d8 lw a4,12(a5) c00a: c709 beqz a4,c014 c00c: 00b71463 bne a4,a1,c014 c010: 45d8 lw a4,12(a1) c012: c7d8 sw a4,12(a5) c014: 47dc lw a5,12(a5) c016: fbed bnez a5,c008 c018: b7dd j bffe 0000c01a : udp_new(): c01a: cfcf42ef jal t0,516 <__riscv_save_0> c01e: 4505 li a0,1 c020: 883fc0ef jal ra,88a2 c024: 842a mv s0,a0 c026: c909 beqz a0,c038 c028: 02000613 li a2,32 c02c: 4581 li a1,0 c02e: d18f40ef jal ra,546 c032: f8000793 li a5,-128 c036: b43c sb a5,11(s0) c038: 8522 mv a0,s0 c03a: d00f406f j 53a <__riscv_restore_0> 0000c03e : icmp_send_response.isra.0(): c03e: cbef42ef jal t0,4fc <__riscv_save_4> c042: 842a mv s0,a0 c044: 8a2e mv s4,a1 c046: 89b2 mv s3,a2 c048: 02400593 li a1,36 c04c: 4601 li a2,0 c04e: 4505 li a0,1 c050: a93fc0ef jal ra,8ae2 c054: cd31 beqz a0,c0b0 c056: 00042903 lw s2,0(s0) c05a: 4140 lw s0,4(a0) c05c: 84aa mv s1,a0 c05e: 4671 li a2,28 c060: 85ca mv a1,s2 c062: 01440023 sb s4,0(s0) c066: 013400a3 sb s3,1(s0) c06a: 00040223 sb zero,4(s0) c06e: 000402a3 sb zero,5(s0) c072: 00040323 sb zero,6(s0) c076: 000403a3 sb zero,7(s0) c07a: 00840513 addi a0,s0,8 c07e: 653000ef jal ra,ced0 c082: 24ae lhu a1,10(s1) c084: 00040123 sb zero,2(s0) c088: 000401a3 sb zero,3(s0) c08c: 8522 mv a0,s0 c08e: 211d jal c4b4 c090: a028 sb a0,2(s0) c092: 8121 srli a0,a0,0x8 c094: b028 sb a0,3(s0) c096: 4785 li a5,1 c098: 4701 li a4,0 c09a: 08000693 li a3,128 c09e: 00c90613 addi a2,s2,12 c0a2: 4581 li a1,0 c0a4: 8526 mv a0,s1 c0a6: a8bfb0ef jal ra,7b30 c0aa: 8526 mv a0,s1 c0ac: 9e9fc0ef jal ra,8a94 c0b0: c80f406f j 530 <__riscv_restore_4> 0000c0b4 : icmp_input(): c0b4: c3af42ef jal t0,4ee <__riscv_save_10> c0b8: 4140 lw s0,4(a0) c0ba: 84aa mv s1,a0 c0bc: 1141 addi sp,sp,-16 c0be: 301c lbu a5,1(s0) c0c0: 2008 lbu a0,0(s0) c0c2: 89ae mv s3,a1 c0c4: 07a2 slli a5,a5,0x8 c0c6: 8d5d or a0,a0,a5 c0c8: deafb0ef jal ra,76b2 c0cc: 00655913 srli s2,a0,0x6 c0d0: 03c97913 andi s2,s2,60 c0d4: 41200ab3 neg s5,s2 c0d8: 0ac2 slli s5,s5,0x10 c0da: 410ada93 srai s5,s5,0x10 c0de: 85d6 mv a1,s5 c0e0: 8526 mv a0,s1 c0e2: 945fc0ef jal ra,8a26 c0e6: e139 bnez a0,c12c c0e8: 249e lhu a5,8(s1) c0ea: 468d li a3,3 c0ec: 04f6f063 bgeu a3,a5,c12c c0f0: 40dc lw a5,4(s1) c0f2: 2398 lbu a4,0(a5) c0f4: 04d71263 bne a4,a3,c138 c0f8: 2798 lbu a4,8(a5) c0fa: 00878693 addi a3,a5,8 c0fe: 3f88 lbu a0,25(a5) c100: 8b3d andi a4,a4,15 c102: 070a slli a4,a4,0x2 c104: 9736 add a4,a4,a3 c106: 232c lbu a1,2(a4) c108: 00374803 lbu a6,3(a4) # 8003 c10c: 2f98 lbu a4,24(a5) c10e: 0522 slli a0,a0,0x8 c110: 3394 lbu a3,1(a5) c112: 8d59 or a0,a0,a4 c114: 2fb8 lbu a4,26(a5) c116: 3b90 lbu a2,17(a5) c118: 05a2 slli a1,a1,0x8 c11a: 0742 slli a4,a4,0x10 c11c: 8f49 or a4,a4,a0 c11e: 3fa8 lbu a0,27(a5) c120: 0105e5b3 or a1,a1,a6 c124: 0562 slli a0,a0,0x18 c126: 8d59 or a0,a0,a4 c128: ba3fa0ef jal ra,6cca c12c: 8526 mv a0,s1 c12e: 967fc0ef jal ra,8a94 c132: 0141 addi sp,sp,16 c134: bf2f406f j 526 <__riscv_restore_10> c138: 47a1 li a5,8 c13a: fef719e3 bne a4,a5,c12c c13e: 381c lbu a5,17(s0) c140: 01044a03 lbu s4,16(s0) c144: f0000537 lui a0,0xf0000 c148: 07a2 slli a5,a5,0x8 c14a: 0147e7b3 or a5,a5,s4 c14e: 01244a03 lbu s4,18(s0) c152: 4b01 li s6,0 c154: 0a42 slli s4,s4,0x10 c156: 00fa67b3 or a5,s4,a5 c15a: 01344a03 lbu s4,19(s0) c15e: 0a62 slli s4,s4,0x18 c160: 00fa6a33 or s4,s4,a5 c164: d80fb0ef jal ra,76e4 c168: 8c2a mv s8,a0 c16a: e0000537 lui a0,0xe0000 c16e: d76fb0ef jal ra,76e4 c172: 8baa mv s7,a0 c174: 85ce mv a1,s3 c176: 01040513 addi a0,s0,16 c17a: 9edfb0ef jal ra,7b66 c17e: e519 bnez a0,c18c c180: 018a7533 and a0,s4,s8 c184: 41750533 sub a0,a0,s7 c188: 00a03b33 snez s6,a0 c18c: b31fa0ef jal ra,6cbc c190: dd51 beqz a0,c12c c192: f80b0de3 beqz s6,c12c c196: 249a lhu a4,8(s1) c198: 479d li a5,7 c19a: f8e7f9e3 bgeu a5,a4,c12c c19e: 8526 mv a0,s1 c1a0: 2625 jal c4c8 c1a2: f549 bnez a0,c12c c1a4: 0942 slli s2,s2,0x10 c1a6: 02200593 li a1,34 c1aa: 8526 mv a0,s1 c1ac: 41095913 srai s2,s2,0x10 c1b0: 877fc0ef jal ra,8a26 c1b4: 12050463 beqz a0,c2dc c1b8: 85ca mv a1,s2 c1ba: 8526 mv a0,s1 c1bc: 86bfc0ef jal ra,8a26 c1c0: f535 bnez a0,c12c c1c2: 248e lhu a1,8(s1) c1c4: 4601 li a2,0 c1c6: 4509 li a0,2 c1c8: 91bfc0ef jal ra,8ae2 c1cc: 8a2a mv s4,a0 c1ce: dd39 beqz a0,c12c c1d0: 85a6 mv a1,s1 c1d2: af5fc0ef jal ra,8cc6 c1d6: f939 bnez a0,c12c c1d8: 85d6 mv a1,s5 c1da: 8552 mv a0,s4 c1dc: 004a2403 lw s0,4(s4) c1e0: 847fc0ef jal ra,8a26 c1e4: f521 bnez a0,c12c c1e6: 8526 mv a0,s1 c1e8: 8adfc0ef jal ra,8a94 c1ec: 84d2 mv s1,s4 c1ee: 3458 lbu a4,13(s0) c1f0: 245c lbu a5,12(s0) c1f2: 3814 lbu a3,17(s0) c1f4: 0722 slli a4,a4,0x8 c1f6: 8f5d or a4,a4,a5 c1f8: 247c lbu a5,14(s0) c1fa: 06a2 slli a3,a3,0x8 c1fc: 0044aa03 lw s4,4(s1) c200: 07c2 slli a5,a5,0x10 c202: 8f5d or a4,a4,a5 c204: 347c lbu a5,15(s0) c206: 653d lui a0,0xf c208: 7ff50513 addi a0,a0,2047 # f7ff <_data_lma+0x22eb> c20c: 07e2 slli a5,a5,0x18 c20e: 8fd9 or a5,a5,a4 c210: 2818 lbu a4,16(s0) c212: a81c sb a5,16(s0) c214: 8ed9 or a3,a3,a4 c216: 2838 lbu a4,18(s0) c218: 0742 slli a4,a4,0x10 c21a: 8ed9 or a3,a3,a4 c21c: 3838 lbu a4,19(s0) c21e: 0762 slli a4,a4,0x18 c220: 8f55 or a4,a4,a3 c222: 00875693 srli a3,a4,0x8 c226: a458 sb a4,12(s0) c228: b454 sb a3,13(s0) c22a: 01075693 srli a3,a4,0x10 c22e: 8361 srli a4,a4,0x18 c230: b478 sb a4,15(s0) c232: 0087d713 srli a4,a5,0x8 c236: b818 sb a4,17(s0) c238: 0107d713 srli a4,a5,0x10 c23c: 83e1 srli a5,a5,0x18 c23e: a474 sb a3,14(s0) c240: a838 sb a4,18(s0) c242: b83c sb a5,19(s0) c244: 003a4a83 lbu s5,3(s4) c248: 002a4783 lbu a5,2(s4) c24c: 000a0023 sb zero,0(s4) c250: 0aa2 slli s5,s5,0x8 c252: 00faeab3 or s5,s5,a5 c256: c4efb0ef jal ra,76a4 c25a: 08aae963 bltu s5,a0,c2ec c25e: 6505 lui a0,0x1 c260: 80050513 addi a0,a0,-2048 # 800 <__stack_size> c264: c40fb0ef jal ra,76a4 c268: 003a4783 lbu a5,3(s4) c26c: 002a4703 lbu a4,2(s4) c270: 07a2 slli a5,a5,0x8 c272: 8fd9 or a5,a5,a4 c274: 0785 addi a5,a5,1 c276: 953e add a0,a0,a5 c278: 0542 slli a0,a0,0x10 c27a: 8141 srli a0,a0,0x10 c27c: 00aa0123 sb a0,2(s4) c280: 8121 srli a0,a0,0x8 c282: 00aa01a3 sb a0,3(s4) c286: 341c lbu a5,9(s0) c288: 2408 lbu a0,8(s0) c28a: 07a2 slli a5,a5,0x8 c28c: 8d5d or a0,a0,a5 c28e: c24fb0ef jal ra,76b2 c292: 67a1 lui a5,0x8 c294: 0ff57513 andi a0,a0,255 c298: 8d5d or a0,a0,a5 c29a: c0afb0ef jal ra,76a4 c29e: a408 sb a0,8(s0) c2a0: 8121 srli a0,a0,0x8 c2a2: b408 sb a0,9(s0) c2a4: 45d1 li a1,20 c2a6: 00040523 sb zero,10(s0) c2aa: 000405a3 sb zero,11(s0) c2ae: 8522 mv a0,s0 c2b0: 2411 jal c4b4 c2b2: a428 sb a0,10(s0) c2b4: 8121 srli a0,a0,0x8 c2b6: b428 sb a0,11(s0) c2b8: 85ca mv a1,s2 c2ba: 8526 mv a0,s1 c2bc: f6afc0ef jal ra,8a26 c2c0: e60516e3 bnez a0,c12c c2c4: 884e mv a6,s3 c2c6: 4785 li a5,1 c2c8: 4701 li a4,0 c2ca: 08000693 li a3,128 c2ce: 4601 li a2,0 c2d0: 00c40593 addi a1,s0,12 c2d4: 8526 mv a0,s1 c2d6: f00fb0ef jal ra,79d6 c2da: bd89 j c12c c2dc: fde00593 li a1,-34 c2e0: 8526 mv a0,s1 c2e2: f44fc0ef jal ra,8a26 c2e6: f00504e3 beqz a0,c1ee c2ea: b589 j c12c c2ec: 6505 lui a0,0x1 c2ee: 80050513 addi a0,a0,-2048 # 800 <__stack_size> c2f2: bb2fb0ef jal ra,76a4 c2f6: 003a4783 lbu a5,3(s4) c2fa: 002a4703 lbu a4,2(s4) c2fe: 07a2 slli a5,a5,0x8 c300: 8fd9 or a5,a5,a4 c302: bf95 j c276 0000c304 : icmp_dest_unreach(): c304: a12f42ef jal t0,516 <__riscv_save_0> c308: 0ff5f613 andi a2,a1,255 c30c: 0511 addi a0,a0,4 c30e: 458d li a1,3 c310: d2fff0ef jal ra,c03e c314: a26f406f j 53a <__riscv_restore_0> 0000c318 : icmp_time_exceeded(): c318: 9fef42ef jal t0,516 <__riscv_save_0> c31c: 0ff5f613 andi a2,a1,255 c320: 0511 addi a0,a0,4 c322: 45ad li a1,11 c324: d1bff0ef jal ra,c03e c328: a12f406f j 53a <__riscv_restore_0> 0000c32c : lwip_standard_chksum(): c32c: 9eaf42ef jal t0,516 <__riscv_save_0> c330: 00b50833 add a6,a0,a1 c334: 0842 slli a6,a6,0x10 c336: 86aa mv a3,a0 c338: 4701 li a4,0 c33a: 01085813 srli a6,a6,0x10 c33e: 4885 li a7,1 c340: 40d807b3 sub a5,a6,a3 c344: 07c2 slli a5,a5,0x10 c346: 83c1 srli a5,a5,0x10 c348: 04f8e463 bltu a7,a5,c390 c34c: 0015d793 srli a5,a1,0x1 c350: 00179693 slli a3,a5,0x1 c354: 9536 add a0,a0,a3 c356: 56f9 li a3,-2 c358: 02d787b3 mul a5,a5,a3 c35c: 95be add a1,a1,a5 c35e: 05c2 slli a1,a1,0x10 c360: 81c1 srli a1,a1,0x10 c362: c581 beqz a1,c36a c364: 211c lbu a5,0(a0) c366: 07a2 slli a5,a5,0x8 c368: 973e add a4,a4,a5 c36a: 6541 lui a0,0x10 c36c: fff50693 addi a3,a0,-1 # ffff <_data_lma+0x2aeb> c370: 01075793 srli a5,a4,0x10 c374: 8f75 and a4,a4,a3 c376: 00e78533 add a0,a5,a4 c37a: 77c1 lui a5,0xffff0 c37c: 8fe9 and a5,a5,a0 c37e: c399 beqz a5,c384 c380: 8d75 and a0,a0,a3 c382: 0505 addi a0,a0,1 c384: 0542 slli a0,a0,0x10 c386: 8141 srli a0,a0,0x10 c388: b1cfb0ef jal ra,76a4 c38c: 9aef406f j 53a <__riscv_restore_0> c390: 329c lbu a5,1(a3) c392: 2290 lbu a2,0(a3) c394: 0689 addi a3,a3,2 c396: 07a2 slli a5,a5,0x8 c398: 8fd1 or a5,a5,a2 c39a: 00879613 slli a2,a5,0x8 c39e: 83a1 srli a5,a5,0x8 c3a0: 8fd1 or a5,a5,a2 c3a2: 07c2 slli a5,a5,0x10 c3a4: 83c1 srli a5,a5,0x10 c3a6: 973e add a4,a4,a5 c3a8: bf61 j c340 0000c3aa : inet_chksum_pseudo(): c3aa: 944f42ef jal t0,4ee <__riscv_save_10> c3ae: 2002e7b7 lui a5,0x2002e c3b2: be47a783 lw a5,-1052(a5) # 2002dbe4 c3b6: 84ba mv s1,a4 c3b8: 1141 addi sp,sp,-16 c3ba: 00579713 slli a4,a5,0x5 c3be: 0e074963 bltz a4,c4b0 c3c2: 6b41 lui s6,0x10 c3c4: 892a mv s2,a0 c3c6: 8aae mv s5,a1 c3c8: 8a32 mv s4,a2 c3ca: 4981 li s3,0 c3cc: 4401 li s0,0 c3ce: 1b7d addi s6,s6,-1 c3d0: 4b85 li s7,1 c3d2: 08091e63 bnez s2,c46e c3d6: 00098b63 beqz s3,c3ec c3da: 6741 lui a4,0x10 c3dc: 00841793 slli a5,s0,0x8 c3e0: 177d addi a4,a4,-1 c3e2: 8021 srli s0,s0,0x8 c3e4: 8ff9 and a5,a5,a4 c3e6: 0ff47413 andi s0,s0,255 c3ea: 8c5d or s0,s0,a5 c3ec: 001ac503 lbu a0,1(s5) c3f0: 000ac783 lbu a5,0(s5) c3f4: 000a4703 lbu a4,0(s4) c3f8: 0522 slli a0,a0,0x8 c3fa: 8d5d or a0,a0,a5 c3fc: 002ac783 lbu a5,2(s5) c400: 003a4603 lbu a2,3(s4) c404: 6941 lui s2,0x10 c406: 07c2 slli a5,a5,0x10 c408: 8d5d or a0,a0,a5 c40a: 003ac783 lbu a5,3(s5) c40e: 0662 slli a2,a2,0x18 c410: 197d addi s2,s2,-1 c412: 07e2 slli a5,a5,0x18 c414: 8fc9 or a5,a5,a0 c416: 001a4503 lbu a0,1(s4) c41a: 0522 slli a0,a0,0x8 c41c: 8f49 or a4,a4,a0 c41e: 002a4503 lbu a0,2(s4) c422: 0542 slli a0,a0,0x10 c424: 8d59 or a0,a0,a4 c426: 8e49 or a2,a2,a0 c428: 01267533 and a0,a2,s2 c42c: 8241 srli a2,a2,0x10 c42e: 0127f733 and a4,a5,s2 c432: 9532 add a0,a0,a2 c434: 953a add a0,a0,a4 c436: 83c1 srli a5,a5,0x10 c438: 953e add a0,a0,a5 c43a: 942a add s0,s0,a0 c43c: 8536 mv a0,a3 c43e: a66fb0ef jal ra,76a4 c442: 942a add s0,s0,a0 c444: 8526 mv a0,s1 c446: a5efb0ef jal ra,76a4 c44a: 9522 add a0,a0,s0 c44c: 01055413 srli s0,a0,0x10 c450: 01257533 and a0,a0,s2 c454: 942a add s0,s0,a0 c456: 01045513 srli a0,s0,0x10 c45a: 01247433 and s0,s0,s2 c45e: 9522 add a0,a0,s0 c460: fff54513 not a0,a0 c464: 0542 slli a0,a0,0x10 c466: 8141 srli a0,a0,0x10 c468: 0141 addi sp,sp,16 c46a: 8bcf406f j 526 <__riscv_restore_10> c46e: 00a95583 lhu a1,10(s2) # 1000a <_data_lma+0x2af6> c472: 00492503 lw a0,4(s2) c476: c636 sw a3,12(sp) c478: eb5ff0ef jal ra,c32c c47c: 942a add s0,s0,a0 c47e: 01045793 srli a5,s0,0x10 c482: 01647433 and s0,s0,s6 c486: 943e add s0,s0,a5 c488: 00a95783 lhu a5,10(s2) c48c: 46b2 lw a3,12(sp) c48e: 8b85 andi a5,a5,1 c490: cf89 beqz a5,c4aa c492: 00841793 slli a5,s0,0x8 c496: 8021 srli s0,s0,0x8 c498: 413b89b3 sub s3,s7,s3 c49c: 0167f7b3 and a5,a5,s6 c4a0: 0ff47413 andi s0,s0,255 c4a4: 0ff9f993 andi s3,s3,255 c4a8: 8c5d or s0,s0,a5 c4aa: 00092903 lw s2,0(s2) c4ae: b715 j c3d2 c4b0: 4501 li a0,0 c4b2: bf5d j c468 0000c4b4 : inet_chksum(): c4b4: 862f42ef jal t0,516 <__riscv_save_0> c4b8: e75ff0ef jal ra,c32c c4bc: fff54513 not a0,a0 c4c0: 0542 slli a0,a0,0x10 c4c2: 8141 srli a0,a0,0x10 c4c4: 876f406f j 53a <__riscv_restore_0> 0000c4c8 : inet_chksum_pbuf(): c4c8: 834f42ef jal t0,4fc <__riscv_save_4> c4cc: 69c1 lui s3,0x10 c4ce: 84aa mv s1,a0 c4d0: 4901 li s2,0 c4d2: 4401 li s0,0 c4d4: 19fd addi s3,s3,-1 c4d6: 4a05 li s4,1 c4d8: e095 bnez s1,c4fc c4da: 00090b63 beqz s2,c4f0 c4de: 6741 lui a4,0x10 c4e0: 00841793 slli a5,s0,0x8 c4e4: 177d addi a4,a4,-1 c4e6: 8021 srli s0,s0,0x8 c4e8: 8ff9 and a5,a5,a4 c4ea: 0ff47413 andi s0,s0,255 c4ee: 8c5d or s0,s0,a5 c4f0: fff44513 not a0,s0 c4f4: 0542 slli a0,a0,0x10 c4f6: 8141 srli a0,a0,0x10 c4f8: 838f406f j 530 <__riscv_restore_4> c4fc: 24ae lhu a1,10(s1) c4fe: 40c8 lw a0,4(s1) c500: e2dff0ef jal ra,c32c c504: 942a add s0,s0,a0 c506: 01045793 srli a5,s0,0x10 c50a: 01347433 and s0,s0,s3 c50e: 943e add s0,s0,a5 c510: 24be lhu a5,10(s1) c512: 8b85 andi a5,a5,1 c514: cf89 beqz a5,c52e c516: 00841793 slli a5,s0,0x8 c51a: 8021 srli s0,s0,0x8 c51c: 412a0933 sub s2,s4,s2 c520: 0137f7b3 and a5,a5,s3 c524: 0ff47413 andi s0,s0,255 c528: 0ff97913 andi s2,s2,255 c52c: 8c5d or s0,s0,a5 c52e: 4084 lw s1,0(s1) c530: b765 j c4d8 0000c532 : printchar(): c532: 1101 addi sp,sp,-32 c534: ce06 sw ra,28(sp) c536: c62e sw a1,12(sp) c538: cd0d beqz a0,c572 c53a: 4118 lw a4,0(a0) c53c: 87aa mv a5,a0 c53e: c305 beqz a4,c55e c540: 4158 lw a4,4(a0) c542: 557d li a0,-1 c544: cb11 beqz a4,c558 c546: 4685 li a3,1 c548: 00d71b63 bne a4,a3,c55e c54c: 4798 lw a4,8(a5) c54e: 00070023 sb zero,0(a4) # 10000 <_data_lma+0x2aec> c552: 0007a223 sw zero,4(a5) c556: 4505 li a0,1 c558: 40f2 lw ra,28(sp) c55a: 6105 addi sp,sp,32 c55c: 8082 ret c55e: 4798 lw a4,8(a5) c560: 46b2 lw a3,12(sp) c562: a314 sb a3,0(a4) c564: 4798 lw a4,8(a5) c566: 0705 addi a4,a4,1 c568: c798 sw a4,8(a5) c56a: 43d8 lw a4,4(a5) c56c: 177d addi a4,a4,-1 c56e: c3d8 sw a4,4(a5) c570: b7dd j c556 c572: 4605 li a2,1 c574: 006c addi a1,sp,12 c576: 9eaf90ef jal ra,5760 <_write> c57a: bff1 j c556 0000c57c : prints(): c57c: 7179 addi sp,sp,-48 c57e: d422 sw s0,40(sp) c580: d226 sw s1,36(sp) c582: ce4e sw s3,28(sp) c584: cc52 sw s4,24(sp) c586: ca56 sw s5,20(sp) c588: d606 sw ra,44(sp) c58a: d04a sw s2,32(sp) c58c: c85a sw s6,16(sp) c58e: 8a2a mv s4,a0 c590: 8aae mv s5,a1 c592: 8432 mv s0,a2 c594: 4481 li s1,0 c596: 02000993 li s3,32 c59a: 02064463 bltz a2,c5c2 c59e: 009a87b3 add a5,s5,s1 c5a2: 00078783 lb a5,0(a5) c5a6: e39d bnez a5,c5cc c5a8: 0284d663 bge s1,s0,c5d4 c5ac: 02e4d263 bge s1,a4,c5d0 c5b0: 8c19 sub s0,s0,a4 c5b2: 0026f793 andi a5,a3,2 c5b6: 02000993 li s3,32 c5ba: c781 beqz a5,c5c2 c5bc: e319 bnez a4,c5c2 c5be: 03000993 li s3,48 c5c2: 8a85 andi a3,a3,1 c5c4: 4901 li s2,0 c5c6: ea85 bnez a3,c5f6 c5c8: 8922 mv s2,s0 c5ca: a831 j c5e6 c5cc: 0485 addi s1,s1,1 c5ce: bfc1 j c59e c5d0: 8c05 sub s0,s0,s1 c5d2: b7c5 j c5b2 c5d4: 4401 li s0,0 c5d6: bff1 j c5b2 c5d8: 85ce mv a1,s3 c5da: 8552 mv a0,s4 c5dc: c63a sw a4,12(sp) c5de: f55ff0ef jal ra,c532 c5e2: 4732 lw a4,12(sp) c5e4: 197d addi s2,s2,-1 c5e6: ff2049e3 bgtz s2,c5d8 c5ea: 8922 mv s2,s0 c5ec: 00045363 bgez s0,c5f2 c5f0: 4901 li s2,0 c5f2: 41240433 sub s0,s0,s2 c5f6: 02e4cb63 blt s1,a4,c62c c5fa: 84ca mv s1,s2 c5fc: 412487b3 sub a5,s1,s2 c600: 97d6 add a5,a5,s5 c602: 00078583 lb a1,0(a5) c606: e1a1 bnez a1,c646 c608: 8922 mv s2,s0 c60a: 05204363 bgtz s2,c650 c60e: 00045363 bgez s0,c614 c612: 4401 li s0,0 c614: 00940533 add a0,s0,s1 c618: 50b2 lw ra,44(sp) c61a: 5422 lw s0,40(sp) c61c: 5492 lw s1,36(sp) c61e: 5902 lw s2,32(sp) c620: 49f2 lw s3,28(sp) c622: 4a62 lw s4,24(sp) c624: 4ad2 lw s5,20(sp) c626: 4b42 lw s6,16(sp) c628: 6145 addi sp,sp,48 c62a: 8082 ret c62c: 409704b3 sub s1,a4,s1 c630: 8b26 mv s6,s1 c632: 03000593 li a1,48 c636: 8552 mv a0,s4 c638: 1b7d addi s6,s6,-1 c63a: ef9ff0ef jal ra,c532 c63e: fe0b1ae3 bnez s6,c632 c642: 9926 add s2,s2,s1 c644: bf5d j c5fa c646: 8552 mv a0,s4 c648: eebff0ef jal ra,c532 c64c: 0485 addi s1,s1,1 c64e: b77d j c5fc c650: 85ce mv a1,s3 c652: 8552 mv a0,s4 c654: edfff0ef jal ra,c532 c658: 197d addi s2,s2,-1 c65a: bf45 j c60a 0000c65c : printInt(): c65c: 715d addi sp,sp,-80 c65e: c2a6 sw s1,68(sp) c660: dc52 sw s4,56(sp) c662: c686 sw ra,76(sp) c664: c4a2 sw s0,72(sp) c666: c0ca sw s2,64(sp) c668: de4e sw s3,60(sp) c66a: da56 sw s5,52(sp) c66c: 84ba mv s1,a4 c66e: 8a3e mv s4,a5 c670: e19d bnez a1,c696 c672: 03000793 li a5,48 c676: 4701 li a4,0 c678: 86d2 mv a3,s4 c67a: 8626 mv a2,s1 c67c: 082c addi a1,sp,24 c67e: 84fc sh a5,24(sp) c680: efdff0ef jal ra,c57c c684: 40b6 lw ra,76(sp) c686: 4426 lw s0,72(sp) c688: 4496 lw s1,68(sp) c68a: 4906 lw s2,64(sp) c68c: 59f2 lw s3,60(sp) c68e: 5a62 lw s4,56(sp) c690: 5ad2 lw s5,52(sp) c692: 6161 addi sp,sp,80 c694: 8082 ret c696: 892a mv s2,a0 c698: 8436 mv s0,a3 c69a: 8ac6 mv s5,a7 c69c: ca91 beqz a3,c6b0 c69e: 47a9 li a5,10 c6a0: 4401 li s0,0 c6a2: 00f61763 bne a2,a5,c6b0 c6a6: 0005d563 bgez a1,c6b0 c6aa: 40b005b3 neg a1,a1 c6ae: 4405 li s0,1 c6b0: 020107a3 sb zero,47(sp) c6b4: 02f10793 addi a5,sp,47 c6b8: 46a5 li a3,9 c6ba: fc680513 addi a0,a6,-58 c6be: 02c5f733 remu a4,a1,a2 c6c2: 00e6d363 bge a3,a4,c6c8 c6c6: 972a add a4,a4,a0 c6c8: 03070713 addi a4,a4,48 c6cc: fee78fa3 sb a4,-1(a5) c6d0: fff78993 addi s3,a5,-1 c6d4: 02c5d733 divu a4,a1,a2 c6d8: 04c5fb63 bgeu a1,a2,c72e c6dc: cc09 beqz s0,c6f6 c6de: c8b9 beqz s1,c734 c6e0: 002a7713 andi a4,s4,2 c6e4: cb21 beqz a4,c734 c6e6: 02d00593 li a1,45 c6ea: 854a mv a0,s2 c6ec: c642 sw a6,12(sp) c6ee: e45ff0ef jal ra,c532 c6f2: 4832 lw a6,12(sp) c6f4: 14fd addi s1,s1,-1 c6f6: 004a7793 andi a5,s4,4 c6fa: c38d beqz a5,c71c c6fc: 06100793 li a5,97 c700: 03000593 li a1,48 c704: 854a mv a0,s2 c706: 02f81f63 bne a6,a5,c744 c70a: e29ff0ef jal ra,c532 c70e: 07800593 li a1,120 c712: 854a mv a0,s2 c714: e1fff0ef jal ra,c532 c718: 0409 addi s0,s0,2 c71a: 14f9 addi s1,s1,-2 c71c: 8756 mv a4,s5 c71e: 86d2 mv a3,s4 c720: 8626 mv a2,s1 c722: 85ce mv a1,s3 c724: 854a mv a0,s2 c726: e57ff0ef jal ra,c57c c72a: 9522 add a0,a0,s0 c72c: bfa1 j c684 c72e: 85ba mv a1,a4 c730: 87ce mv a5,s3 c732: b771 j c6be c734: 02d00713 li a4,45 c738: fee98fa3 sb a4,-1(s3) # ffff <_data_lma+0x2aeb> c73c: 4401 li s0,0 c73e: ffe78993 addi s3,a5,-2 c742: bf55 j c6f6 c744: defff0ef jal ra,c532 c748: 05800593 li a1,88 c74c: b7d9 j c712 0000c74e : printLongLongInt(): c74e: 4501 li a0,0 c750: 8082 ret 0000c752 : printDouble(): c752: 4501 li a0,0 c754: 8082 ret 0000c756 : print(): c756: 7139 addi sp,sp,-64 c758: d05a sw s6,32(sp) c75a: 0000db37 lui s6,0xd c75e: dc22 sw s0,56(sp) c760: da26 sw s1,52(sp) c762: d84a sw s2,48(sp) c764: d64e sw s3,44(sp) c766: d452 sw s4,40(sp) c768: d256 sw s5,36(sp) c76a: ce5e sw s7,28(sp) c76c: cc62 sw s8,24(sp) c76e: de06 sw ra,60(sp) c770: ca66 sw s9,20(sp) c772: 89aa mv s3,a0 c774: 892e mv s2,a1 c776: 8432 mv s0,a2 c778: 4a01 li s4,0 c77a: 4481 li s1,0 c77c: 02500b93 li s7,37 c780: 02b00a93 li s5,43 c784: 4c29 li s8,10 c786: 40cb0b13 addi s6,s6,1036 # d40c c78a: 00090583 lb a1,0(s2) c78e: e58d bnez a1,c7b8 c790: 00098663 beqz s3,c79c c794: 4581 li a1,0 c796: 854e mv a0,s3 c798: d9bff0ef jal ra,c532 c79c: 50f2 lw ra,60(sp) c79e: 5462 lw s0,56(sp) c7a0: 8526 mv a0,s1 c7a2: 5942 lw s2,48(sp) c7a4: 54d2 lw s1,52(sp) c7a6: 59b2 lw s3,44(sp) c7a8: 5a22 lw s4,40(sp) c7aa: 5a92 lw s5,36(sp) c7ac: 5b02 lw s6,32(sp) c7ae: 4bf2 lw s7,28(sp) c7b0: 4c62 lw s8,24(sp) c7b2: 4cd2 lw s9,20(sp) c7b4: 6121 addi sp,sp,64 c7b6: 8082 ret c7b8: 01758863 beq a1,s7,c7c8 c7bc: 854e mv a0,s3 c7be: d75ff0ef jal ra,c532 c7c2: 0485 addi s1,s1,1 c7c4: 0905 addi s2,s2,1 c7c6: b7d1 j c78a c7c8: 00190783 lb a5,1(s2) c7cc: 00190c93 addi s9,s2,1 c7d0: 01779a63 bne a5,s7,c7e4 c7d4: 02500593 li a1,37 c7d8: 854e mv a0,s3 c7da: d59ff0ef jal ra,c532 c7de: 0485 addi s1,s1,1 c7e0: 8966 mv s2,s9 c7e2: b7cd j c7c4 c7e4: d7d5 beqz a5,c790 c7e6: 05578763 beq a5,s5,c834 c7ea: 00fac863 blt s5,a5,c7fa c7ee: 02300713 li a4,35 c7f2: 04e78463 beq a5,a4,c83a c7f6: 4781 li a5,0 c7f8: a005 j c818 c7fa: 02d00713 li a4,45 c7fe: 00e78a63 beq a5,a4,c812 c802: 03000713 li a4,48 c806: fee798e3 bne a5,a4,c7f6 c80a: 00290c93 addi s9,s2,2 c80e: 4789 li a5,2 c810: a021 j c818 c812: 00290c93 addi s9,s2,2 c816: 4785 li a5,1 c818: 000c8703 lb a4,0(s9) c81c: 05570363 beq a4,s5,c862 c820: 02eac163 blt s5,a4,c842 c824: 02300693 li a3,35 c828: 02d70b63 beq a4,a3,c85e c82c: 8966 mv s2,s9 c82e: 4601 li a2,0 c830: 45a5 li a1,9 c832: a835 j c86e c834: 00290c93 addi s9,s2,2 c838: bf7d j c7f6 c83a: 00290c93 addi s9,s2,2 c83e: 4791 li a5,4 c840: bfe1 j c818 c842: 02d00693 li a3,45 c846: 00d70963 beq a4,a3,c858 c84a: 03000693 li a3,48 c84e: fcd71fe3 bne a4,a3,c82c c852: 0027e793 ori a5,a5,2 c856: a031 j c862 c858: 0c85 addi s9,s9,1 c85a: 4785 li a5,1 c85c: bfc1 j c82c c85e: 0047e793 ori a5,a5,4 c862: 0c85 addi s9,s9,1 c864: b7e1 j c82c c866: 03860633 mul a2,a2,s8 c86a: 0905 addi s2,s2,1 c86c: 9636 add a2,a2,a3 c86e: 00090703 lb a4,0(s2) c872: fd070693 addi a3,a4,-48 c876: 0ff6f513 andi a0,a3,255 c87a: fea5f6e3 bgeu a1,a0,c866 c87e: 02e00593 li a1,46 c882: 4699 li a3,6 c884: 00b71e63 bne a4,a1,c8a0 c888: 0905 addi s2,s2,1 c88a: 4681 li a3,0 c88c: 45a5 li a1,9 c88e: 00090703 lb a4,0(s2) c892: fd070713 addi a4,a4,-48 c896: 0ff77513 andi a0,a4,255 c89a: 02a5f563 bgeu a1,a0,c8c4 c89e: 8a36 mv s4,a3 c8a0: 00090703 lb a4,0(s2) c8a4: 06a00593 li a1,106 c8a8: 0ab70163 beq a4,a1,c94a c8ac: 02e5c163 blt a1,a4,c8ce c8b0: 04c00593 li a1,76 c8b4: 08b70b63 beq a4,a1,c94a c8b8: 06800593 li a1,104 c8bc: 08b70063 beq a4,a1,c93c c8c0: 4581 li a1,0 c8c2: a02d j c8ec c8c4: 038686b3 mul a3,a3,s8 c8c8: 0905 addi s2,s2,1 c8ca: 96ba add a3,a3,a4 c8cc: b7c9 j c88e c8ce: 07400593 li a1,116 c8d2: 06b70c63 beq a4,a1,c94a c8d6: 07a00593 li a1,122 c8da: 06b70863 beq a4,a1,c94a c8de: 06c00513 li a0,108 c8e2: 4581 li a1,0 c8e4: 00a71463 bne a4,a0,c8ec c8e8: 0905 addi s2,s2,1 c8ea: 4591 li a1,4 c8ec: 00090703 lb a4,0(s2) c8f0: 06000513 li a0,96 c8f4: 06100813 li a6,97 c8f8: 00e54463 blt a0,a4,c900 c8fc: 04100813 li a6,65 c900: 06700513 li a0,103 c904: 06e54063 blt a0,a4,c964 c908: 06500513 li a0,101 c90c: 14a75563 bge a4,a0,ca56 c910: 04700513 li a0,71 c914: 02e54d63 blt a0,a4,c94e c918: 04500593 li a1,69 c91c: 12b75d63 bge a4,a1,ca56 c920: 04300693 li a3,67 c924: ead710e3 bne a4,a3,c7c4 c928: 4018 lw a4,0(s0) c92a: 00440c93 addi s9,s0,4 c92e: 000106a3 sb zero,13(sp) c932: 8658 sb a4,12(sp) c934: 86be mv a3,a5 c936: 4701 li a4,0 c938: 006c addi a1,sp,12 c93a: a041 j c9ba c93c: 00190503 lb a0,1(s2) c940: 4581 li a1,0 c942: fae515e3 bne a0,a4,c8ec c946: 0909 addi s2,s2,2 c948: b755 j c8ec c94a: 0905 addi s2,s2,1 c94c: bf95 j c8c0 c94e: 06300693 li a3,99 c952: fcd70be3 beq a4,a3,c928 c956: 06e6c663 blt a3,a4,c9c2 c95a: 05800693 li a3,88 c95e: 02d70363 beq a4,a3,c984 c962: b58d j c7c4 c964: 07300693 li a3,115 c968: 04d70163 beq a4,a3,c9aa c96c: 02e6c863 blt a3,a4,c99c c970: 06f00693 li a3,111 c974: 0ad70e63 beq a4,a3,ca30 c978: 07000693 li a3,112 c97c: 0047e793 ori a5,a5,4 c980: e4d712e3 bne a4,a3,c7c4 c984: cdd9 beqz a1,ca22 c986: 041d addi s0,s0,7 c988: ff847593 andi a1,s0,-8 c98c: 88c2 mv a7,a6 c98e: 00858413 addi s0,a1,8 c992: 883e mv a6,a5 c994: 4701 li a4,0 c996: 87b2 mv a5,a2 c998: 46c1 li a3,16 c99a: a83d j c9d8 c99c: 07500693 li a3,117 c9a0: 06d70063 beq a4,a3,ca00 c9a4: 07800693 li a3,120 c9a8: bf5d j c95e c9aa: 4018 lw a4,0(s0) c9ac: 00440c93 addi s9,s0,4 c9b0: 85da mv a1,s6 c9b2: c311 beqz a4,c9b6 c9b4: 85ba mv a1,a4 c9b6: 8752 mv a4,s4 c9b8: 86be mv a3,a5 c9ba: 854e mv a0,s3 c9bc: bc1ff0ef jal ra,c57c c9c0: a82d j c9fa c9c2: c195 beqz a1,c9e6 c9c4: 041d addi s0,s0,7 c9c6: ff847593 andi a1,s0,-8 c9ca: 88c2 mv a7,a6 c9cc: 00858413 addi s0,a1,8 c9d0: 883e mv a6,a5 c9d2: 4705 li a4,1 c9d4: 87b2 mv a5,a2 c9d6: 46a9 li a3,10 c9d8: 41d0 lw a2,4(a1) c9da: 418c lw a1,0(a1) c9dc: 854e mv a0,s3 c9de: d71ff0ef jal ra,c74e c9e2: 94aa add s1,s1,a0 c9e4: b3c5 j c7c4 c9e6: 00440c93 addi s9,s0,4 c9ea: 88d2 mv a7,s4 c9ec: 8732 mv a4,a2 c9ee: 4685 li a3,1 c9f0: 4629 li a2,10 c9f2: 400c lw a1,0(s0) c9f4: 854e mv a0,s3 c9f6: c67ff0ef jal ra,c65c c9fa: 94aa add s1,s1,a0 c9fc: 8466 mv s0,s9 c9fe: b3d9 j c7c4 ca00: c999 beqz a1,ca16 ca02: 041d addi s0,s0,7 ca04: ff847593 andi a1,s0,-8 ca08: 88c2 mv a7,a6 ca0a: 00858413 addi s0,a1,8 ca0e: 883e mv a6,a5 ca10: 4701 li a4,0 ca12: 87b2 mv a5,a2 ca14: b7c9 j c9d6 ca16: 00440c93 addi s9,s0,4 ca1a: 88d2 mv a7,s4 ca1c: 8732 mv a4,a2 ca1e: 4681 li a3,0 ca20: bfc1 j c9f0 ca22: 8732 mv a4,a2 ca24: 00440c93 addi s9,s0,4 ca28: 88d2 mv a7,s4 ca2a: 4681 li a3,0 ca2c: 4641 li a2,16 ca2e: b7d1 j c9f2 ca30: cd81 beqz a1,ca48 ca32: 041d addi s0,s0,7 ca34: ff847593 andi a1,s0,-8 ca38: 88c2 mv a7,a6 ca3a: 00858413 addi s0,a1,8 ca3e: 883e mv a6,a5 ca40: 4701 li a4,0 ca42: 87b2 mv a5,a2 ca44: 46a1 li a3,8 ca46: bf49 j c9d8 ca48: 8732 mv a4,a2 ca4a: 00440c93 addi s9,s0,4 ca4e: 88d2 mv a7,s4 ca50: 4681 li a3,0 ca52: 4621 li a2,8 ca54: bf79 j c9f2 ca56: 041d addi s0,s0,7 ca58: ff847593 andi a1,s0,-8 ca5c: 00858413 addi s0,a1,8 ca60: 8732 mv a4,a2 ca62: 41d0 lw a2,4(a1) ca64: 418c lw a1,0(a1) ca66: 88c2 mv a7,a6 ca68: 854e mv a0,s3 ca6a: 883e mv a6,a5 ca6c: 87b6 mv a5,a3 ca6e: 46a9 li a3,10 ca70: ce3ff0ef jal ra,c752 ca74: b7bd j c9e2 0000ca76 : printf(): ca76: 7139 addi sp,sp,-64 ca78: d22e sw a1,36(sp) ca7a: d432 sw a2,40(sp) ca7c: 85aa mv a1,a0 ca7e: 1050 addi a2,sp,36 ca80: 4501 li a0,0 ca82: ce06 sw ra,28(sp) ca84: d636 sw a3,44(sp) ca86: d83a sw a4,48(sp) ca88: da3e sw a5,52(sp) ca8a: dc42 sw a6,56(sp) ca8c: de46 sw a7,60(sp) ca8e: c632 sw a2,12(sp) ca90: cc7ff0ef jal ra,c756 ca94: 40f2 lw ra,28(sp) ca96: 6121 addi sp,sp,64 ca98: 8082 ret 0000ca9a : puts(): ca9a: 1101 addi sp,sp,-32 ca9c: cc22 sw s0,24(sp) ca9e: ca26 sw s1,20(sp) caa0: ce06 sw ra,28(sp) caa2: 211c lbu a5,0(a0) caa4: 84aa mv s1,a0 caa6: 4401 li s0,0 caa8: 87dc sb a5,15(sp) caaa: 00f10783 lb a5,15(sp) caae: 0405 addi s0,s0,1 cab0: ef99 bnez a5,cace cab2: 47a9 li a5,10 cab4: 00f10593 addi a1,sp,15 cab8: 4605 li a2,1 caba: 4501 li a0,0 cabc: 87dc sb a5,15(sp) cabe: ca3f80ef jal ra,5760 <_write> cac2: 8522 mv a0,s0 cac4: 40f2 lw ra,28(sp) cac6: 4462 lw s0,24(sp) cac8: 44d2 lw s1,20(sp) caca: 6105 addi sp,sp,32 cacc: 8082 ret cace: 4605 li a2,1 cad0: 00f10593 addi a1,sp,15 cad4: 4501 li a0,0 cad6: c8bf80ef jal ra,5760 <_write> cada: 008487b3 add a5,s1,s0 cade: 239c lbu a5,0(a5) cae0: 87dc sb a5,15(sp) cae2: b7e1 j caaa 0000cae4 : putchar(): cae4: 1101 addi sp,sp,-32 cae6: c62a sw a0,12(sp) cae8: 006c addi a1,sp,12 caea: 4605 li a2,1 caec: 4501 li a0,0 caee: ce06 sw ra,28(sp) caf0: c71f80ef jal ra,5760 <_write> caf4: 40f2 lw ra,28(sp) caf6: 4505 li a0,1 caf8: 6105 addi sp,sp,32 cafa: 8082 ret 0000cafc <__divdi3>: __divdi3(): cafc: 4801 li a6,0 cafe: 0e05c563 bltz a1,cbe8 <__divdi3+0xec> cb02: 0006db63 bgez a3,cb18 <__divdi3+0x1c> cb06: 40c00633 neg a2,a2 cb0a: 00c037b3 snez a5,a2 cb0e: 40d006b3 neg a3,a3 cb12: fff84813 not a6,a6 cb16: 8e9d sub a3,a3,a5 cb18: 87b6 mv a5,a3 cb1a: 8332 mv t1,a2 cb1c: 8eaa mv t4,a0 cb1e: 88ae mv a7,a1 cb20: 16069f63 bnez a3,cc9e <__divdi3+0x1a2> cb24: 0cc5fb63 bgeu a1,a2,cbfa <__divdi3+0xfe> cb28: 6741 lui a4,0x10 cb2a: 1ce66f63 bltu a2,a4,cd08 <__divdi3+0x20c> cb2e: 010007b7 lui a5,0x1000 cb32: 36f66363 bltu a2,a5,ce98 <__divdi3+0x39c> cb36: 01865693 srli a3,a2,0x18 cb3a: 47e1 li a5,24 cb3c: 00001717 auipc a4,0x1 cb40: 8d870713 addi a4,a4,-1832 # d414 <__clz_tab> cb44: 9736 add a4,a4,a3 cb46: 2318 lbu a4,0(a4) cb48: 97ba add a5,a5,a4 cb4a: 02000713 li a4,32 cb4e: 8f1d sub a4,a4,a5 cb50: cb19 beqz a4,cb66 <__divdi3+0x6a> cb52: 00e595b3 sll a1,a1,a4 cb56: 00f557b3 srl a5,a0,a5 cb5a: 00e61333 sll t1,a2,a4 cb5e: 00b7e8b3 or a7,a5,a1 cb62: 00e51eb3 sll t4,a0,a4 cb66: 01035613 srli a2,t1,0x10 cb6a: 02c8d7b3 divu a5,a7,a2 cb6e: 01031693 slli a3,t1,0x10 cb72: 82c1 srli a3,a3,0x10 cb74: 010ed713 srli a4,t4,0x10 cb78: 02c8f5b3 remu a1,a7,a2 cb7c: 02f68533 mul a0,a3,a5 cb80: 05c2 slli a1,a1,0x10 cb82: 00e5e8b3 or a7,a1,a4 cb86: 00a8fa63 bgeu a7,a0,cb9a <__divdi3+0x9e> cb8a: 989a add a7,a7,t1 cb8c: fff78713 addi a4,a5,-1 # ffffff <_data_lma+0xff2aeb> cb90: 0068e463 bltu a7,t1,cb98 <__divdi3+0x9c> cb94: 32a8e863 bltu a7,a0,cec4 <__divdi3+0x3c8> cb98: 87ba mv a5,a4 cb9a: 40a888b3 sub a7,a7,a0 cb9e: 02c8d5b3 divu a1,a7,a2 cba2: 0ec2 slli t4,t4,0x10 cba4: 010ede93 srli t4,t4,0x10 cba8: 02c8f8b3 remu a7,a7,a2 cbac: 02b686b3 mul a3,a3,a1 cbb0: 08c2 slli a7,a7,0x10 cbb2: 01d8e8b3 or a7,a7,t4 cbb6: 00d8fb63 bgeu a7,a3,cbcc <__divdi3+0xd0> cbba: 989a add a7,a7,t1 cbbc: fff58713 addi a4,a1,-1 cbc0: 0068e563 bltu a7,t1,cbca <__divdi3+0xce> cbc4: 15f9 addi a1,a1,-2 cbc6: 00d8e363 bltu a7,a3,cbcc <__divdi3+0xd0> cbca: 85ba mv a1,a4 cbcc: 01079513 slli a0,a5,0x10 cbd0: 8d4d or a0,a0,a1 cbd2: 4581 li a1,0 cbd4: 00080963 beqz a6,cbe6 <__divdi3+0xea> cbd8: 40a00533 neg a0,a0 cbdc: 00a037b3 snez a5,a0 cbe0: 40b005b3 neg a1,a1 cbe4: 8d9d sub a1,a1,a5 cbe6: 8082 ret cbe8: 40a00533 neg a0,a0 cbec: 00a037b3 snez a5,a0 cbf0: 40b005b3 neg a1,a1 cbf4: 8d9d sub a1,a1,a5 cbf6: 587d li a6,-1 cbf8: b729 j cb02 <__divdi3+0x6> cbfa: e601 bnez a2,cc02 <__divdi3+0x106> cbfc: 4305 li t1,1 cbfe: 02d35333 divu t1,t1,a3 cc02: 6741 lui a4,0x10 cc04: 0ee36963 bltu t1,a4,ccf6 <__divdi3+0x1fa> cc08: 010007b7 lui a5,0x1000 cc0c: 28f36a63 bltu t1,a5,cea0 <__divdi3+0x3a4> cc10: 01835693 srli a3,t1,0x18 cc14: 47e1 li a5,24 cc16: 00000717 auipc a4,0x0 cc1a: 7fe70713 addi a4,a4,2046 # d414 <__clz_tab> cc1e: 9736 add a4,a4,a3 cc20: 2318 lbu a4,0(a4) cc22: 97ba add a5,a5,a4 cc24: 02000713 li a4,32 cc28: 8f1d sub a4,a4,a5 cc2a: eb65 bnez a4,cd1a <__divdi3+0x21e> cc2c: 01031893 slli a7,t1,0x10 cc30: 406586b3 sub a3,a1,t1 cc34: 01035f13 srli t5,t1,0x10 cc38: 0108d893 srli a7,a7,0x10 cc3c: 4585 li a1,1 cc3e: 010ed713 srli a4,t4,0x10 cc42: 03e6d7b3 divu a5,a3,t5 cc46: 03e6f6b3 remu a3,a3,t5 cc4a: 03178633 mul a2,a5,a7 cc4e: 06c2 slli a3,a3,0x10 cc50: 8f55 or a4,a4,a3 cc52: 00c77a63 bgeu a4,a2,cc66 <__divdi3+0x16a> cc56: 971a add a4,a4,t1 cc58: fff78693 addi a3,a5,-1 # ffffff <_data_lma+0xff2aeb> cc5c: 00676463 bltu a4,t1,cc64 <__divdi3+0x168> cc60: 26c76563 bltu a4,a2,ceca <__divdi3+0x3ce> cc64: 87b6 mv a5,a3 cc66: 8f11 sub a4,a4,a2 cc68: 03e756b3 divu a3,a4,t5 cc6c: 0ec2 slli t4,t4,0x10 cc6e: 010ede93 srli t4,t4,0x10 cc72: 03e77733 remu a4,a4,t5 cc76: 031688b3 mul a7,a3,a7 cc7a: 0742 slli a4,a4,0x10 cc7c: 01d76733 or a4,a4,t4 cc80: 01177b63 bgeu a4,a7,cc96 <__divdi3+0x19a> cc84: 971a add a4,a4,t1 cc86: fff68613 addi a2,a3,-1 cc8a: 00676563 bltu a4,t1,cc94 <__divdi3+0x198> cc8e: 16f9 addi a3,a3,-2 cc90: 01176363 bltu a4,a7,cc96 <__divdi3+0x19a> cc94: 86b2 mv a3,a2 cc96: 01079513 slli a0,a5,0x10 cc9a: 8d55 or a0,a0,a3 cc9c: bf25 j cbd4 <__divdi3+0xd8> cc9e: 04d5e163 bltu a1,a3,cce0 <__divdi3+0x1e4> cca2: 67c1 lui a5,0x10 cca4: 04f6e163 bltu a3,a5,cce6 <__divdi3+0x1ea> cca8: 010007b7 lui a5,0x1000 ccac: 1ef6e263 bltu a3,a5,ce90 <__divdi3+0x394> ccb0: 0186d893 srli a7,a3,0x18 ccb4: 4761 li a4,24 ccb6: 00000797 auipc a5,0x0 ccba: 75e78793 addi a5,a5,1886 # d414 <__clz_tab> ccbe: 97c6 add a5,a5,a7 ccc0: 0007c303 lbu t1,0(a5) ccc4: 02000793 li a5,32 ccc8: 933a add t1,t1,a4 ccca: 406787b3 sub a5,a5,t1 ccce: ebe9 bnez a5,cda0 <__divdi3+0x2a4> ccd0: 1cb6ec63 bltu a3,a1,cea8 <__divdi3+0x3ac> ccd4: 00c53533 sltu a0,a0,a2 ccd8: 00154513 xori a0,a0,1 ccdc: 4581 li a1,0 ccde: bddd j cbd4 <__divdi3+0xd8> cce0: 4581 li a1,0 cce2: 4501 li a0,0 cce4: bdc5 j cbd4 <__divdi3+0xd8> cce6: 0ff00793 li a5,255 ccea: 1cd7f263 bgeu a5,a3,ceae <__divdi3+0x3b2> ccee: 0086d893 srli a7,a3,0x8 ccf2: 4721 li a4,8 ccf4: b7c9 j ccb6 <__divdi3+0x1ba> ccf6: 0ff00713 li a4,255 ccfa: 869a mv a3,t1 ccfc: f0677de3 bgeu a4,t1,cc16 <__divdi3+0x11a> cd00: 00835693 srli a3,t1,0x8 cd04: 47a1 li a5,8 cd06: bf01 j cc16 <__divdi3+0x11a> cd08: 0ff00713 li a4,255 cd0c: 86b2 mv a3,a2 cd0e: e2c777e3 bgeu a4,a2,cb3c <__divdi3+0x40> cd12: 00865693 srli a3,a2,0x8 cd16: 47a1 li a5,8 cd18: b515 j cb3c <__divdi3+0x40> cd1a: 00e31333 sll t1,t1,a4 cd1e: 00f5d633 srl a2,a1,a5 cd22: 01035f13 srli t5,t1,0x10 cd26: 03e65e33 divu t3,a2,t5 cd2a: 00e596b3 sll a3,a1,a4 cd2e: 00f557b3 srl a5,a0,a5 cd32: 8edd or a3,a3,a5 cd34: 01031893 slli a7,t1,0x10 cd38: 0108d893 srli a7,a7,0x10 cd3c: 00e51eb3 sll t4,a0,a4 cd40: 0106d593 srli a1,a3,0x10 cd44: 03e677b3 remu a5,a2,t5 cd48: 03c88733 mul a4,a7,t3 cd4c: 07c2 slli a5,a5,0x10 cd4e: 8fcd or a5,a5,a1 cd50: 00e7fb63 bgeu a5,a4,cd66 <__divdi3+0x26a> cd54: 979a add a5,a5,t1 cd56: fffe0613 addi a2,t3,-1 cd5a: 1667e363 bltu a5,t1,cec0 <__divdi3+0x3c4> cd5e: 16e7f163 bgeu a5,a4,cec0 <__divdi3+0x3c4> cd62: 1e79 addi t3,t3,-2 cd64: 979a add a5,a5,t1 cd66: 8f99 sub a5,a5,a4 cd68: 03e7d633 divu a2,a5,t5 cd6c: 01069713 slli a4,a3,0x10 cd70: 8341 srli a4,a4,0x10 cd72: 03e7f7b3 remu a5,a5,t5 cd76: 02c88533 mul a0,a7,a2 cd7a: 01079693 slli a3,a5,0x10 cd7e: 8ed9 or a3,a3,a4 cd80: 00a6fb63 bgeu a3,a0,cd96 <__divdi3+0x29a> cd84: 969a add a3,a3,t1 cd86: fff60793 addi a5,a2,-1 # fff cd8a: 1266e763 bltu a3,t1,ceb8 <__divdi3+0x3bc> cd8e: 12a6f563 bgeu a3,a0,ceb8 <__divdi3+0x3bc> cd92: 1679 addi a2,a2,-2 cd94: 969a add a3,a3,t1 cd96: 010e1593 slli a1,t3,0x10 cd9a: 8e89 sub a3,a3,a0 cd9c: 8dd1 or a1,a1,a2 cd9e: b545 j cc3e <__divdi3+0x142> cda0: 00665733 srl a4,a2,t1 cda4: 00f696b3 sll a3,a3,a5 cda8: 8ed9 or a3,a3,a4 cdaa: 0065d8b3 srl a7,a1,t1 cdae: 0106df13 srli t5,a3,0x10 cdb2: 03e8deb3 divu t4,a7,t5 cdb6: 01069e13 slli t3,a3,0x10 cdba: 00655333 srl t1,a0,t1 cdbe: 010e5e13 srli t3,t3,0x10 cdc2: 00f595b3 sll a1,a1,a5 cdc6: 00b365b3 or a1,t1,a1 cdca: 0105d713 srli a4,a1,0x10 cdce: 00f61633 sll a2,a2,a5 cdd2: 03e8f8b3 remu a7,a7,t5 cdd6: 03de0333 mul t1,t3,t4 cdda: 08c2 slli a7,a7,0x10 cddc: 00e8e733 or a4,a7,a4 cde0: 00677b63 bgeu a4,t1,cdf6 <__divdi3+0x2fa> cde4: 9736 add a4,a4,a3 cde6: fffe8893 addi a7,t4,-1 cdea: 0cd76963 bltu a4,a3,cebc <__divdi3+0x3c0> cdee: 0c677763 bgeu a4,t1,cebc <__divdi3+0x3c0> cdf2: 1ef9 addi t4,t4,-2 cdf4: 9736 add a4,a4,a3 cdf6: 40670733 sub a4,a4,t1 cdfa: 03e75333 divu t1,a4,t5 cdfe: 05c2 slli a1,a1,0x10 ce00: 81c1 srli a1,a1,0x10 ce02: 03e77733 remu a4,a4,t5 ce06: 026e08b3 mul a7,t3,t1 ce0a: 0742 slli a4,a4,0x10 ce0c: 8dd9 or a1,a1,a4 ce0e: 0115fb63 bgeu a1,a7,ce24 <__divdi3+0x328> ce12: 95b6 add a1,a1,a3 ce14: fff30713 addi a4,t1,-1 ce18: 08d5ee63 bltu a1,a3,ceb4 <__divdi3+0x3b8> ce1c: 0915fc63 bgeu a1,a7,ceb4 <__divdi3+0x3b8> ce20: 1379 addi t1,t1,-2 ce22: 95b6 add a1,a1,a3 ce24: 0ec2 slli t4,t4,0x10 ce26: 6f41 lui t5,0x10 ce28: 006eeeb3 or t4,t4,t1 ce2c: ffff0713 addi a4,t5,-1 # ffff <_data_lma+0x2aeb> ce30: 00eef6b3 and a3,t4,a4 ce34: 010ed313 srli t1,t4,0x10 ce38: 8f71 and a4,a4,a2 ce3a: 8241 srli a2,a2,0x10 ce3c: 02e68e33 mul t3,a3,a4 ce40: 411585b3 sub a1,a1,a7 ce44: 02c686b3 mul a3,a3,a2 ce48: 010e5893 srli a7,t3,0x10 ce4c: 02e30733 mul a4,t1,a4 ce50: 96ba add a3,a3,a4 ce52: 96c6 add a3,a3,a7 ce54: 02c30633 mul a2,t1,a2 ce58: 00e6f363 bgeu a3,a4,ce5e <__divdi3+0x362> ce5c: 967a add a2,a2,t5 ce5e: 0106d313 srli t1,a3,0x10 ce62: 961a add a2,a2,t1 ce64: 02c5e263 bltu a1,a2,ce88 <__divdi3+0x38c> ce68: 00c58563 beq a1,a2,ce72 <__divdi3+0x376> ce6c: 8576 mv a0,t4 ce6e: 4581 li a1,0 ce70: b395 j cbd4 <__divdi3+0xd8> ce72: 6741 lui a4,0x10 ce74: 177d addi a4,a4,-1 ce76: 8ef9 and a3,a3,a4 ce78: 06c2 slli a3,a3,0x10 ce7a: 00ee7e33 and t3,t3,a4 ce7e: 00f517b3 sll a5,a0,a5 ce82: 96f2 add a3,a3,t3 ce84: fed7f4e3 bgeu a5,a3,ce6c <__divdi3+0x370> ce88: fffe8513 addi a0,t4,-1 ce8c: 4581 li a1,0 ce8e: b399 j cbd4 <__divdi3+0xd8> ce90: 0106d893 srli a7,a3,0x10 ce94: 4741 li a4,16 ce96: b505 j ccb6 <__divdi3+0x1ba> ce98: 01065693 srli a3,a2,0x10 ce9c: 47c1 li a5,16 ce9e: b979 j cb3c <__divdi3+0x40> cea0: 01035693 srli a3,t1,0x10 cea4: 47c1 li a5,16 cea6: bb85 j cc16 <__divdi3+0x11a> cea8: 4581 li a1,0 ceaa: 4505 li a0,1 ceac: b325 j cbd4 <__divdi3+0xd8> ceae: 88b6 mv a7,a3 ceb0: 4701 li a4,0 ceb2: b511 j ccb6 <__divdi3+0x1ba> ceb4: 833a mv t1,a4 ceb6: b7bd j ce24 <__divdi3+0x328> ceb8: 863e mv a2,a5 ceba: bdf1 j cd96 <__divdi3+0x29a> cebc: 8ec6 mv t4,a7 cebe: bf25 j cdf6 <__divdi3+0x2fa> cec0: 8e32 mv t3,a2 cec2: b555 j cd66 <__divdi3+0x26a> cec4: 17f9 addi a5,a5,-2 cec6: 989a add a7,a7,t1 cec8: b9c9 j cb9a <__divdi3+0x9e> ceca: 17f9 addi a5,a5,-2 cecc: 971a add a4,a4,t1 cece: bb61 j cc66 <__divdi3+0x16a> 0000ced0 : memcpy(): ced0: 00a5c7b3 xor a5,a1,a0 ced4: 8b8d andi a5,a5,3 ced6: 00c50733 add a4,a0,a2 ceda: e781 bnez a5,cee2 cedc: 478d li a5,3 cede: 00c7ed63 bltu a5,a2,cef8 cee2: 87aa mv a5,a0 cee4: 08e57e63 bgeu a0,a4,cf80 cee8: 2194 lbu a3,0(a1) ceea: 0785 addi a5,a5,1 ceec: 0585 addi a1,a1,1 ceee: fed78fa3 sb a3,-1(a5) cef2: fee7ebe3 bltu a5,a4,cee8 cef6: 8082 ret cef8: 00357693 andi a3,a0,3 cefc: 87aa mv a5,a0 cefe: ca89 beqz a3,cf10 cf00: 2194 lbu a3,0(a1) cf02: 0785 addi a5,a5,1 cf04: 0585 addi a1,a1,1 cf06: fed78fa3 sb a3,-1(a5) cf0a: 0037f693 andi a3,a5,3 cf0e: bfc5 j cefe cf10: ffc77693 andi a3,a4,-4 cf14: fe068613 addi a2,a3,-32 cf18: 06c7f063 bgeu a5,a2,cf78 cf1c: 0005a383 lw t2,0(a1) cf20: 0045a283 lw t0,4(a1) cf24: 0085af83 lw t6,8(a1) cf28: 00c5af03 lw t5,12(a1) cf2c: 0105ae83 lw t4,16(a1) cf30: 0145ae03 lw t3,20(a1) cf34: 0185a303 lw t1,24(a1) cf38: 01c5a883 lw a7,28(a1) cf3c: 02458593 addi a1,a1,36 cf40: 0077a023 sw t2,0(a5) cf44: ffc5a803 lw a6,-4(a1) cf48: 0057a223 sw t0,4(a5) cf4c: 01f7a423 sw t6,8(a5) cf50: 01e7a623 sw t5,12(a5) cf54: 01d7a823 sw t4,16(a5) cf58: 01c7aa23 sw t3,20(a5) cf5c: 0067ac23 sw t1,24(a5) cf60: 0117ae23 sw a7,28(a5) cf64: 02478793 addi a5,a5,36 cf68: ff07ae23 sw a6,-4(a5) cf6c: b775 j cf18 cf6e: 4190 lw a2,0(a1) cf70: 0791 addi a5,a5,4 cf72: 0591 addi a1,a1,4 cf74: fec7ae23 sw a2,-4(a5) cf78: fed7ebe3 bltu a5,a3,cf6e cf7c: f6e7e6e3 bltu a5,a4,cee8 cf80: 8082 ret 0000cf82 : memmove(): cf82: 04a5f163 bgeu a1,a0,cfc4 cf86: 00c586b3 add a3,a1,a2 cf8a: 02d57d63 bgeu a0,a3,cfc4 cf8e: fff64593 not a1,a2 cf92: 4781 li a5,0 cf94: 17fd addi a5,a5,-1 cf96: 00f59363 bne a1,a5,cf9c cf9a: 8082 ret cf9c: 00f68733 add a4,a3,a5 cfa0: 00074803 lbu a6,0(a4) # 10000 <_data_lma+0x2aec> cfa4: 00c78733 add a4,a5,a2 cfa8: 972a add a4,a4,a0 cfaa: 01070023 sb a6,0(a4) cfae: b7dd j cf94 cfb0: 00f58733 add a4,a1,a5 cfb4: 2314 lbu a3,0(a4) cfb6: 00f50733 add a4,a0,a5 cfba: 0785 addi a5,a5,1 cfbc: a314 sb a3,0(a4) cfbe: fef619e3 bne a2,a5,cfb0 cfc2: 8082 ret cfc4: 4781 li a5,0 cfc6: bfe5 j cfbe cfc8: 4e20 lw s0,88(a2) cfca: 0000 unimp cfcc: 3a98 lbu a4,17(a3) cfce: 0000 unimp cfd0: 0009 c.nop 2 cfd2: 0000 unimp cfd4: 6148 flw fa0,4(a0) cfd6: 6472 flw fs0,28(sp) cfd8: 6146 flw ft2,80(sp) cfda: 6c75 lui s8,0x1d cfdc: 5f74 lw a3,124(a4) cfde: 6148 flw fa0,4(a0) cfe0: 646e flw fs0,216(sp) cfe2: 656c flw fa1,76(a0) cfe4: 0d72 slli s10,s10,0x1c cfe6: 0000 unimp cfe8: 656d lui a0,0x1b cfea: 6370 flw fa2,68(a4) cfec: 2020 lbu s0,2(s0) cfee: 253a lhu a4,10(a0) cff0: 3830 lbu a2,19(s0) cff2: 0d78 addi a4,sp,668 cff4: 000a c.slli zero,0x2 cff6: 0000 unimp cff8: 636d lui t1,0x1b cffa: 7561 lui a0,0xffff8 cffc: 253a6573 csrrsi a0,0x253,20 d000: 3830 lbu a2,19(s0) d002: 0d78 addi a4,sp,668 d004: 000a c.slli zero,0x2 d006: 0000 unimp d008: 746d lui s0,0xffffb d00a: 6176 flw ft2,92(sp) d00c: 206c lbu a1,6(s0) d00e: 253a lhu a4,10(a0) d010: 3830 lbu a2,19(s0) d012: 0d78 addi a4,sp,668 d014: 000a c.slli zero,0x2 d016: 0000 unimp d018: 544e4947 0x544e4947 d01c: 535f 4154 5f54 0x5f544154535f d022: 4e55 li t3,21 d024: 4552 lw a0,20(sp) d026: 4341 li t1,16 d028: 0d48 addi a0,sp,660 d02a: 0000 unimp d02c: 544e4947 0x544e4947 d030: 535f 4154 5f54 0x5f544154535f d036: 5049 c.li zero,-14 d038: 435f 4e4f 4c46 0x4c464e4f435f d03e: 0d49 addi s10,s10,18 d040: 0000 unimp d042: 0000 unimp d044: 4850 lw a2,20(s0) d046: 2059 jal d0cc d048: 694c flw fa1,20(a0) d04a: 6b6e flw fs6,216(sp) d04c: 5320 lw s0,96(a4) d04e: 6375 lui t1,0x1d d050: 73736563 bltu t1,s7,d77a <_data_lma+0x266> d054: 000d c.nop 3 d056: 0000 unimp d058: 4354 lw a3,4(a4) d05a: 2050 lbu a2,4(s0) d05c: 6e6e6f43 fmadd.q ft10,ft8,ft6,fa3,unknown d060: 6365 lui t1,0x19 d062: 6574 flw fa3,76(a0) d064: 2c64 lbu s1,30(s0) d066: 7320 flw fs0,96(a4) d068: 656b636f jal t1,c36be <_data_lma+0xb61aa> d06c: 2074 lbu a3,6(s0) d06e: 6425 lui s0,0x9 d070: 0a0d addi s4,s4,3 d072: 0000 unimp d074: 4354 lw a3,4(a4) d076: 2050 lbu a2,4(s0) d078: 6944 flw fs1,20(a0) d07a: 6e6f6373 csrrsi t1,0x6e6,30 d07e: 656e flw fa0,216(sp) d080: 64657463 bgeu a0,t1,d6c8 <_data_lma+0x1b4> d084: 202c lbu a1,2(s0) d086: 6b636f73 csrrsi t5,0x6b6,6 d08a: 7465 lui s0,0xffff9 d08c: 2520 lbu s0,10(a0) d08e: 0d64 addi s1,sp,668 d090: 000a c.slli zero,0x2 d092: 0000 unimp d094: 4354 lw a3,4(a4) d096: 2050 lbu a2,4(s0) d098: 6954 flw fa3,20(a0) d09a: 656d lui a0,0x1b d09c: 2c74756f jal a0,54b62 <_data_lma+0x4764e> d0a0: 7320 flw fs0,96(a4) d0a2: 656b636f jal t1,c36f8 <_data_lma+0xb61e4> d0a6: 2074 lbu a3,6(s0) d0a8: 6425 lui s0,0x9 d0aa: 0a0d addi s4,s4,3 d0ac: 0000 unimp d0ae: 0000 unimp d0b0: 7245 lui tp,0xffff1 d0b2: 6f72 flw ft10,28(sp) d0b4: 3a72 lhu a2,54(a2) d0b6: 2520 lbu s0,10(a0) d0b8: 3230 lbu a2,3(a2) d0ba: 0d58 addi a4,sp,660 d0bc: 000a c.slli zero,0x2 d0be: 0000 unimp d0c0: 4354 lw a3,4(a4) d0c2: 4350 lw a2,4(a4) d0c4: 696c flw fa1,84(a0) d0c6: 6e65 lui t3,0x19 d0c8: 2074 lbu a3,6(s0) d0ca: 6554 flw fa3,12(a0) d0cc: 0a0d7473 csrrci s0,0xa0,26 d0d0: 74737953 0x74737953 d0d4: 6d65 lui s10,0x19 d0d6: 3a6b6c43 fmadd.d fs8,fs6,ft6,ft7,unknown d0da: 6425 lui s0,0x9 d0dc: 0a0d addi s4,s4,3 d0de: 0000 unimp d0e0: 7355 lui t1,0xffff5 d0e2: 7265 lui tp,0xffff9 d0e4: 7942 flw fs2,48(sp) d0e6: 6574 flw fa3,76(a0) d0e8: 203a lhu a4,2(s0) d0ea: 3025 jal c912 d0ec: 7832 flw fa6,44(sp) d0ee: 0a0d addi s4,s4,3 d0f0: 0000 unimp d0f2: 0000 unimp d0f4: 6c46 flw fs8,80(sp) d0f6: 7361 lui t1,0xffff8 d0f8: 2f68 lbu a0,30(a4) d0fa: 4d415253 0x4d415253 d0fe: 6320 flw fs0,64(a4) d100: 69666e6f jal t3,73796 <_data_lma+0x66282> d104: 68632067 0x68632067 d108: 6e61 lui t3,0x18 d10a: 20646567 0x20646567 d10e: 6f74 flw fa3,92(a4) d110: 2520 lbu s0,10(a0) d112: 2c64 lbu s1,30(s0) d114: 7220 flw fs0,96(a2) d116: 7365 lui t1,0xffff9 d118: 7465 lui s0,0xffff9 d11a: 6974 flw fa3,84(a0) d11c: 676e flw fa4,216(sp) d11e: 2e2e lhu a1,26(a2) d120: 0d2e slli s10,s10,0xb d122: 000a c.slli zero,0x2 d124: 656e flw fa0,216(sp) d126: 2074 lbu a3,6(s0) d128: 6576 flw fa0,92(sp) d12a: 7372 flw ft6,60(sp) d12c: 6f69 lui t5,0x1a d12e: 3a6e lhu a1,54(a2) d130: 7825 lui a6,0xfffe9 d132: 000a c.slli zero,0x2 d134: 6576 flw fa0,92(sp) d136: 7372 flw ft6,60(sp) d138: 6f69 lui t5,0x1a d13a: 206e lhu a1,6(s0) d13c: 7265 lui tp,0xffff9 d13e: 6f72 flw ft10,28(sp) d140: 2e72 lhu a2,30(a2) d142: 0000 unimp d144: 616d addi sp,sp,240 d146: 64612063 0x64612063 d14a: 7264 flw fs1,100(a2) d14c: 003a c.slli zero,0xe d14e: 0000 unimp d150: 7825 lui a6,0xfffe9 d152: 0020 addi s0,sp,8 d154: 676e flw fa4,216(sp) d156: 0000 unimp d158: 4e484357 0x4e484357 d15c: 5445 li s0,-15 d15e: 4c5f 6269 6e49 0x6e4962694c5f d164: 7469 lui s0,0xffffa d166: 5320 lw s0,96(a4) d168: 6375 lui t1,0x1d d16a: 73736563 bltu t1,s7,d894 <_data_lma+0x380> d16e: 000d c.nop 3 d170: 6e686377 0x6e686377 d174: 7465 lui s0,0xffff9 d176: 0000 unimp d178: 7562 flw fa0,56(sp) d17a: 656e6973 csrrsi s2,0x656,28 d17e: 00007373 csrrci t1,ustatus,0 ... 0000d184 : d184: 00000000 00000002 00000004 00060006 ................ 0000d194 : d194: 0020001c 002400b4 00200014 06000010 .. ...$... ..... d1a4: 5f786471 74726f70 6f6e203a 65726620 qdx_port: no fre d1b4: 6f532065 74656b63 0d787443 00000000 e SocketCtx..... d1c4: 5f786471 74726f70 6f53203a 74656b63 qdx_port: Socket d1d4: 61657243 61662074 25206c69 0d583230 Creat fail %02X. d1e4: 0000000a 5f786471 74726f70 6f53203a ....qdx_port: So d1f4: 74656b63 6e6e6f43 20746365 6c696166 cketConnect fail d204: 32302520 000a0d58 5f786471 74726f70 %02X...qdx_port d214: 6f63203a 63656e6e 69742074 756f656d : connect timeou d224: 00000d74 5f786471 74726f70 6f63203a t...qdx_port: co d234: 63656e6e 20646574 6b636f73 20642520 nnected sock %d d244: 25203e2d 64252e64 2e64252e 253a6425 -> %d.%d.%d.%d:% d254: 000a0d64 5f786471 74726f70 6162203a d...qdx_port: ba d264: 50492064 73252220 000a0d22 746e6f43 d IP "%s"...Cont d274: 006c6f72 61746144 00000000 5f706374 rol.Data....tcp_ d284: 0072676d 5f706374 635f7872 00000000 mgr.tcp_rx_c.... d294: 5f706374 645f7872 00000000 2e373231 tcp_rx_d....127. d2a4: 2e302e30 00000031 302e3156 00000000 0.0.1...V1.0.... d2b4: 302e3256 00000000 462f2e2e 52656572 V2.0....../FreeR d2c4: 2f534f54 74726f70 656c6261 6d654d2f TOS/portable/Mem d2d4: 676e614d 6165682f 2e345f70 00000063 Mang/heap_4.c... d2e4: 20727265 6c207461 20656e69 6f206425 err at line %d o d2f4: 69662066 2220656c 2e227325 200a0d20 f file "%s". .. d304: 00000000 462f2e2e 52656572 2f534f54 ....../FreeRTOS/ d314: 74726f70 656c6261 4343472f 5349522f portable/GCC/RIS d324: 2f562d43 74726f70 0000632e 462f2e2e C-V/port.c..../F d334: 52656572 2f534f54 75657571 00632e65 reeRTOS/queue.c. d344: 462f2e2e 52656572 2f534f54 6b736174 ../FreeRTOS/task d354: 00632e73 454c4449 00000000 000054ba s.c.IDLE.....T.. d364: 000054ba 000054fe 0000550a 0000554e .T...T...U..NU.. d374: 000054ba 000054ba 000054fe 0000550a .T...T...T...U.. d384: 51726d54 00000000 462f2e2e 52656572 TmrQ....../FreeR d394: 2f534f54 656d6974 632e7372 00000000 TOS/timers.c.... d3a4: 20726d54 00637653 Tmr Svc. 0000d3ac : d3ac: 13121100 17161514 1b1a1918 1f1e1d1c ................ d3bc: 00009516 0000955c 00009576 00009586 ....\...v....... d3cc: 00009586 00009572 00009572 00009594 ....r...r....... 0000d3dc : d3dc: 04030201 07070605 07070707 00000007 ................ d3ec: 0000ab06 0000ac14 0000ad00 0000ad08 ................ d3fc: 0000adae 0000ad00 0000adf4 0000ae30 ............0... d40c: 6c756e28 0000296c (null).. 0000d414 <__clz_tab>: d414: 02020100 03030303 04040404 04040404 ................ d424: 05050505 05050505 05050505 05050505 ................ d434: 06060606 06060606 06060606 06060606 ................ d444: 06060606 06060606 06060606 06060606 ................ d454: 07070707 07070707 07070707 07070707 ................ d464: 07070707 07070707 07070707 07070707 ................ d474: 07070707 07070707 07070707 07070707 ................ d484: 07070707 07070707 07070707 07070707 ................ d494: 08080808 08080808 08080808 08080808 ................ d4a4: 08080808 08080808 08080808 08080808 ................ d4b4: 08080808 08080808 08080808 08080808 ................ d4c4: 08080808 08080808 08080808 08080808 ................ d4d4: 08080808 08080808 08080808 08080808 ................ d4e4: 08080808 08080808 08080808 08080808 ................ d4f4: 08080808 08080808 08080808 08080808 ................ d504: 08080808 08080808 08080808 08080808 ................