From defafbaa4ae667e8df114d4bab36b60b7a12c45b Mon Sep 17 00:00:00 2001 From: yeyangwen Date: Mon, 19 Jan 2026 16:09:27 +0800 Subject: [PATCH] =?UTF-8?q?RF=5FW13=E6=97=A0=E5=8D=A1=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 上传云端 --- BLV_RF_W13_V04_20260114/.cproject | 177 + BLV_RF_W13_V04_20260114/.project | 37 + .../.settings/language.settings.xml | 14 + .../org.eclipse.cdt.codan.core.prefs | 73 + .../.settings/org.eclipse.cdt.ui.prefs | 2 + .../org.eclipse.ltk.core.refactoring.prefs | 2 + BLV_RF_W13_V04_20260114/.template | 18 + .../.trae/documents/CH572D BLE项目优化建议.md | 129 + BLV_RF_W13_V04_20260114/BLV_RF_W13_V04.wvproj | Bin 0 -> 202 bytes BLV_RF_W13_V04_20260114/HAL/MCU.c | 228 + BLV_RF_W13_V04_20260114/HAL/RTC.c | 132 + BLV_RF_W13_V04_20260114/HAL/SLEEP.c | 117 + BLV_RF_W13_V04_20260114/HAL/include/CONFIG.h | 142 + BLV_RF_W13_V04_20260114/HAL/include/HAL.h | 69 + BLV_RF_W13_V04_20260114/HAL/include/RTC.h | 68 + BLV_RF_W13_V04_20260114/HAL/include/SLEEP.h | 60 + .../LIB/CH572BLEPeri_LIB.h | 3868 ++ .../LIB/libCH572BLE_PERI.a | Bin 0 -> 612676 bytes BLV_RF_W13_V04_20260114/Ld/Link.ld | 174 + BLV_RF_W13_V04_20260114/README.md | 226 + BLV_RF_W13_V04_20260114/RVMSIS/core_riscv.h | 695 + .../Startup/startup_CH572.S | 180 + .../StdPeriphDriver/CH57x_clk.c | 473 + .../StdPeriphDriver/CH57x_cmp.c | 44 + .../StdPeriphDriver/CH57x_flash.c | 157 + .../StdPeriphDriver/CH57x_gpio.c | 145 + .../StdPeriphDriver/CH57x_i2c.c | 672 + .../StdPeriphDriver/CH57x_keyscan.c | 63 + .../StdPeriphDriver/CH57x_pwm.c | 246 + .../StdPeriphDriver/CH57x_pwr.c | 300 + .../StdPeriphDriver/CH57x_spi.c | 454 + .../StdPeriphDriver/CH57x_sys.c | 421 + .../StdPeriphDriver/CH57x_timer.c | 132 + .../StdPeriphDriver/CH57x_uart.c | 160 + .../StdPeriphDriver/CH57x_usbdev.c | 113 + .../StdPeriphDriver/CH57x_usbhostBase.c | 695 + .../StdPeriphDriver/CH57x_usbhostClass.c | 840 + .../StdPeriphDriver/inc/CH572SFR.h | 1600 + .../StdPeriphDriver/inc/CH57x_clk.h | 243 + .../StdPeriphDriver/inc/CH57x_cmp.h | 79 + .../StdPeriphDriver/inc/CH57x_common.h | 95 + .../StdPeriphDriver/inc/CH57x_flash.h | 41 + .../StdPeriphDriver/inc/CH57x_gpio.h | 202 + .../StdPeriphDriver/inc/CH57x_i2c.h | 191 + .../StdPeriphDriver/inc/CH57x_keyscan.h | 96 + .../StdPeriphDriver/inc/CH57x_pwm.h | 223 + .../StdPeriphDriver/inc/CH57x_pwr.h | 118 + .../StdPeriphDriver/inc/CH57x_spi.h | 229 + .../StdPeriphDriver/inc/CH57x_sys.h | 188 + .../StdPeriphDriver/inc/CH57x_timer.h | 263 + .../StdPeriphDriver/inc/CH57x_uart.h | 172 + .../StdPeriphDriver/inc/CH57x_usbdev.h | 152 + .../StdPeriphDriver/inc/CH57x_usbhost.h | 314 + .../StdPeriphDriver/inc/ISP572.h | 130 + .../StdPeriphDriver/libISP572.a | Bin 0 -> 7720 bytes .../User/include/includes.h | 30 + BLV_RF_W13_V04_20260114/User/main.c | 71 + BLV_RF_W13_V04_20260114/User_Drivers/debug.c | 117 + BLV_RF_W13_V04_20260114/User_Drivers/flash.c | 528 + .../User_Drivers/gattprofile.c | 734 + .../User_Drivers/inc/debug.h | 72 + .../User_Drivers/inc/flash.h | 99 + .../User_Drivers/inc/gattprofile.h | 135 + .../User_Drivers/inc/peripheral.h | 78 + .../User_Drivers/inc/sensor_scan.h | 240 + .../User_Drivers/inc/uart.h | 47 + .../User_Drivers/peripheral.c | 900 + .../User_Drivers/sensor_scan.c | 1703 + BLV_RF_W13_V04_20260114/User_Drivers/uart.c | 174 + BLV_RF_W13_V04_20260114/obj/APP/subdir.mk | 21 + BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem | 1093 + .../obj/BLV_RF_C13.mem_bak | 1088 + .../obj/BLV_RF_C13_V02.BIN | Bin 0 -> 112360 bytes .../obj/BLV_RF_C13_V02.map | 5481 ++ .../obj/BLV_RF_W13_V04.elf | Bin 0 -> 313100 bytes .../obj/BLV_RF_W13_V04.hex | 6794 +++ .../obj/BLV_RF_W13_V04.lst | 47813 ++++++++++++++++ .../obj/BLV_RF_W13_V04.map | 5481 ++ BLV_RF_W13_V04_20260114/obj/HAL/MCU.d | 47 + BLV_RF_W13_V04_20260114/obj/HAL/MCU.o | Bin 0 -> 36868 bytes BLV_RF_W13_V04_20260114/obj/HAL/RTC.d | 47 + BLV_RF_W13_V04_20260114/obj/HAL/RTC.o | Bin 0 -> 25880 bytes BLV_RF_W13_V04_20260114/obj/HAL/SLEEP.d | 47 + BLV_RF_W13_V04_20260114/obj/HAL/SLEEP.o | Bin 0 -> 9756 bytes BLV_RF_W13_V04_20260114/obj/HAL/subdir.mk | 27 + .../obj/Startup/startup_CH572.d | 1 + .../obj/Startup/startup_CH572.o | Bin 0 -> 7468 bytes BLV_RF_W13_V04_20260114/obj/Startup/subdir.mk | 21 + .../obj/StdPeriphDriver/CH57x_clk.d | 37 + .../obj/StdPeriphDriver/CH57x_clk.o | Bin 0 -> 70536 bytes .../obj/StdPeriphDriver/CH57x_cmp.d | 37 + .../obj/StdPeriphDriver/CH57x_cmp.o | Bin 0 -> 9500 bytes .../obj/StdPeriphDriver/CH57x_flash.d | 37 + .../obj/StdPeriphDriver/CH57x_flash.o | Bin 0 -> 19848 bytes .../obj/StdPeriphDriver/CH57x_gpio.d | 37 + .../obj/StdPeriphDriver/CH57x_gpio.o | Bin 0 -> 12776 bytes .../obj/StdPeriphDriver/CH57x_i2c.d | 37 + .../obj/StdPeriphDriver/CH57x_i2c.o | Bin 0 -> 49008 bytes .../obj/StdPeriphDriver/CH57x_keyscan.d | 37 + .../obj/StdPeriphDriver/CH57x_keyscan.o | Bin 0 -> 11272 bytes .../obj/StdPeriphDriver/CH57x_pwm.d | 37 + .../obj/StdPeriphDriver/CH57x_pwm.o | Bin 0 -> 22364 bytes .../obj/StdPeriphDriver/CH57x_pwr.d | 37 + .../obj/StdPeriphDriver/CH57x_pwr.o | Bin 0 -> 63932 bytes .../obj/StdPeriphDriver/CH57x_spi.d | 37 + .../obj/StdPeriphDriver/CH57x_spi.o | Bin 0 -> 34352 bytes .../obj/StdPeriphDriver/CH57x_sys.d | 37 + .../obj/StdPeriphDriver/CH57x_sys.o | Bin 0 -> 56280 bytes .../obj/StdPeriphDriver/CH57x_timer.d | 37 + .../obj/StdPeriphDriver/CH57x_timer.o | Bin 0 -> 13964 bytes .../obj/StdPeriphDriver/CH57x_uart.d | 37 + .../obj/StdPeriphDriver/CH57x_uart.o | Bin 0 -> 17752 bytes .../obj/StdPeriphDriver/CH57x_usbdev.d | 37 + .../obj/StdPeriphDriver/CH57x_usbdev.o | Bin 0 -> 11516 bytes .../obj/StdPeriphDriver/CH57x_usbhostBase.d | 38 + .../obj/StdPeriphDriver/CH57x_usbhostBase.o | Bin 0 -> 68552 bytes .../obj/StdPeriphDriver/CH57x_usbhostClass.d | 38 + .../obj/StdPeriphDriver/CH57x_usbhostClass.o | Bin 0 -> 93344 bytes .../obj/StdPeriphDriver/subdir.mk | 63 + BLV_RF_W13_V04_20260114/obj/User/main.d | 62 + BLV_RF_W13_V04_20260114/obj/User/main.o | Bin 0 -> 13532 bytes BLV_RF_W13_V04_20260114/obj/User/subdir.mk | 21 + .../obj/User_Drivers/debug.d | 63 + .../obj/User_Drivers/debug.o | Bin 0 -> 28160 bytes .../obj/User_Drivers/flash.d | 63 + .../obj/User_Drivers/flash.o | Bin 0 -> 61284 bytes .../obj/User_Drivers/gattprofile.d | 43 + .../obj/User_Drivers/gattprofile.o | Bin 0 -> 48016 bytes .../obj/User_Drivers/peripheral.d | 63 + .../obj/User_Drivers/peripheral.o | Bin 0 -> 83896 bytes .../obj/User_Drivers/sensor_scan.d | 63 + .../obj/User_Drivers/sensor_scan.o | Bin 0 -> 195340 bytes .../obj/User_Drivers/subdir.mk | 36 + .../obj/User_Drivers/uart.d | 63 + .../obj/User_Drivers/uart.o | Bin 0 -> 28392 bytes BLV_RF_W13_V04_20260114/obj/makefile | 75 + BLV_RF_W13_V04_20260114/obj/objects.mk | 9 + BLV_RF_W13_V04_20260114/obj/sources.mk | 31 + BLV_RF_W13_V04_20260114/功能文件.md | 27 + 139 files changed, 89790 insertions(+) create mode 100644 BLV_RF_W13_V04_20260114/.cproject create mode 100644 BLV_RF_W13_V04_20260114/.project create mode 100644 BLV_RF_W13_V04_20260114/.settings/language.settings.xml create mode 100644 BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.ui.prefs create mode 100644 BLV_RF_W13_V04_20260114/.settings/org.eclipse.ltk.core.refactoring.prefs create mode 100644 BLV_RF_W13_V04_20260114/.template create mode 100644 BLV_RF_W13_V04_20260114/.trae/documents/CH572D BLE项目优化建议.md create mode 100644 BLV_RF_W13_V04_20260114/BLV_RF_W13_V04.wvproj create mode 100644 BLV_RF_W13_V04_20260114/HAL/MCU.c create mode 100644 BLV_RF_W13_V04_20260114/HAL/RTC.c create mode 100644 BLV_RF_W13_V04_20260114/HAL/SLEEP.c create mode 100644 BLV_RF_W13_V04_20260114/HAL/include/CONFIG.h create mode 100644 BLV_RF_W13_V04_20260114/HAL/include/HAL.h create mode 100644 BLV_RF_W13_V04_20260114/HAL/include/RTC.h create mode 100644 BLV_RF_W13_V04_20260114/HAL/include/SLEEP.h create mode 100644 BLV_RF_W13_V04_20260114/LIB/CH572BLEPeri_LIB.h create mode 100644 BLV_RF_W13_V04_20260114/LIB/libCH572BLE_PERI.a create mode 100644 BLV_RF_W13_V04_20260114/Ld/Link.ld create mode 100644 BLV_RF_W13_V04_20260114/README.md create mode 100644 BLV_RF_W13_V04_20260114/RVMSIS/core_riscv.h create mode 100644 BLV_RF_W13_V04_20260114/Startup/startup_CH572.S create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_clk.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_cmp.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_flash.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_gpio.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_i2c.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_keyscan.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwm.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwr.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_spi.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_sys.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_timer.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_uart.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbdev.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostBase.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostClass.c create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH572SFR.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_clk.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_cmp.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_common.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_flash.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_gpio.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_i2c.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_keyscan.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwm.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwr.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_spi.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_sys.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_timer.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_uart.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbdev.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbhost.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/ISP572.h create mode 100644 BLV_RF_W13_V04_20260114/StdPeriphDriver/libISP572.a create mode 100644 BLV_RF_W13_V04_20260114/User/include/includes.h create mode 100644 BLV_RF_W13_V04_20260114/User/main.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/debug.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/flash.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/gattprofile.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/debug.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/flash.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/gattprofile.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/peripheral.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/sensor_scan.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/inc/uart.h create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/peripheral.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/sensor_scan.c create mode 100644 BLV_RF_W13_V04_20260114/User_Drivers/uart.c create mode 100644 BLV_RF_W13_V04_20260114/obj/APP/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem_bak create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_C13_V02.BIN create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_C13_V02.map create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.elf create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.hex create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.lst create mode 100644 BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.map create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/MCU.d create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/MCU.o create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/RTC.d create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/RTC.o create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/SLEEP.d create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/SLEEP.o create mode 100644 BLV_RF_W13_V04_20260114/obj/HAL/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/Startup/startup_CH572.d create mode 100644 BLV_RF_W13_V04_20260114/obj/Startup/startup_CH572.o create mode 100644 BLV_RF_W13_V04_20260114/obj/Startup/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_clk.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_clk.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_cmp.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_cmp.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_gpio.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_gpio.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_i2c.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_i2c.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_timer.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_timer.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_uart.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_uart.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbdev.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbdev.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbhostBase.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbhostBase.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbhostClass.d create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_usbhostClass.o create mode 100644 BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/User/main.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User/main.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/gattprofile.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/gattprofile.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/peripheral.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/peripheral.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.o create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/subdir.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/uart.d create mode 100644 BLV_RF_W13_V04_20260114/obj/User_Drivers/uart.o create mode 100644 BLV_RF_W13_V04_20260114/obj/makefile create mode 100644 BLV_RF_W13_V04_20260114/obj/objects.mk create mode 100644 BLV_RF_W13_V04_20260114/obj/sources.mk create mode 100644 BLV_RF_W13_V04_20260114/功能文件.md diff --git a/BLV_RF_W13_V04_20260114/.cproject b/BLV_RF_W13_V04_20260114/.cproject new file mode 100644 index 0000000..494ffcf --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.cproject @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BLV_RF_W13_V04_20260114/.project b/BLV_RF_W13_V04_20260114/.project new file mode 100644 index 0000000..c229e46 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.project @@ -0,0 +1,37 @@ + + + BLV_RF_W13_V04 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + 1760412127804 + + 22 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-*.wvproj + + + + diff --git a/BLV_RF_W13_V04_20260114/.settings/language.settings.xml b/BLV_RF_W13_V04_20260114/.settings/language.settings.xml new file mode 100644 index 0000000..69cb303 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.codan.core.prefs b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..067d6fd --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,73 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} +org.eclipse.cdt.codan.checkers.nocommentinside=-Error +org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} +org.eclipse.cdt.codan.checkers.nolinecomment=-Error +org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} +org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error +org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} diff --git a/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.ui.prefs b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.ui.prefs new file mode 100644 index 0000000..4ee12a4 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.cdt.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +formatter_settings_version=1 diff --git a/BLV_RF_W13_V04_20260114/.settings/org.eclipse.ltk.core.refactoring.prefs b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000..b196c64 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/BLV_RF_W13_V04_20260114/.template b/BLV_RF_W13_V04_20260114/.template new file mode 100644 index 0000000..a8e55a5 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.template @@ -0,0 +1,18 @@ +Vendor=WCH +Toolchain=RISC-V +Series=CH32L103 +RTOS=NoneOS +MCU=CH572D +Link=WCH-Link +PeripheralVersion======1.0 +Description====== +Mcu Type=CH570/2 +Address=0x00000000 +Target Path=obj\Peripheral_2.hex +CLKSpeed=1 +DebugInterfaceMode=1 +Erase All=true +Program=true +Verify=true +Reset=true +SDIPrintf=false diff --git a/BLV_RF_W13_V04_20260114/.trae/documents/CH572D BLE项目优化建议.md b/BLV_RF_W13_V04_20260114/.trae/documents/CH572D BLE项目优化建议.md new file mode 100644 index 0000000..4308447 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/.trae/documents/CH572D BLE项目优化建议.md @@ -0,0 +1,129 @@ +## 代码结构与可读性优化 + +1. **函数拆分** + - 将过长的函数(如`Blv_CardlessPower_Tack`超过800行)拆分为多个子函数,提高可读性和维护性 + - 按功能模块划分函数,如状态检测、条件判断、事件处理等 + +2. **注释规范** + - 采用Doxygen格式注释,便于生成文档 + - 为关键算法和复杂逻辑添加详细注释 + - 为宏定义和常量添加说明,避免魔法数字 + +3. **命名规范** + - 统一变量和函数命名风格,使用驼峰命名法或下划线命名法 + - 为常量和宏定义使用有意义的名称,避免缩写过度 + +## 性能优化 + +1. **主循环优化** + - 减少主循环中的不必要计算,将耗时操作移至定时器或事件中 + - 优化函数调用顺序,将频繁调用的函数优先处理 + +2. **传感器检测优化** + - 动态调整传感器采样频率,根据系统状态(有人/无人)调整 + - 优化长时间检测算法,减少循环计算量 + - 考虑使用位操作替代字节操作,提高处理速度 + +3. **BLE通信优化** + - 优化BLE通知频率,避免频繁发送数据 + - 合理设置MTU大小,减少数据包数量 + - 优化连接参数,平衡功耗和响应速度 + +## 内存管理优化 + +1. **静态内存优化** + - 根据实际需求调整数组大小,如`portBuff`、`print_BLE`等 + - 避免定义过大的全局数组,减少静态内存占用 + +2. **动态内存管理** + - 为频繁分配的内存(如BLE通知数据)实现内存池 + - 确保动态分配的内存及时释放,避免内存泄漏 + - 考虑使用静态分配替代部分动态分配,提高可靠性 + +3. **缓冲区优化** + - 优化环形缓冲区算法,提高读写效率 + - 为不同功能使用独立的缓冲区,避免数据冲突 + +## BLE通信优化 + +1. **连接管理优化** + - 优化BLE广播间隔,平衡 discoverability 和功耗 + - 实现快速重连机制,提高用户体验 + - 优化连接参数更新策略,减少连接中断 + +2. **GATT服务优化** + - 精简GATT服务和特征值,只保留必要的功能 + - 优化特征值的读写权限,提高安全性 + - 考虑使用BLE 5.0的长包特性,提高数据传输效率 + +3. **MTU协商优化** + - 提前进行MTU协商,在连接建立后立即执行 + - 根据实际数据传输需求设置合理的MTU大小 + +## 传感器检测算法优化 + +1. **滤波算法** + - 为传感器数据添加滤波算法(如滑动平均、中值滤波),减少噪声干扰 + - 实现自适应阈值调整,提高检测准确性 + +2. **长时间检测优化** + - 优化环形缓冲区的读写逻辑,减少计算量 + - 考虑使用更高效的统计方法,如加权平均等 + - 为不同传感器设置不同的检测阈值,提高灵活性 + +3. **状态转换优化** + - 优化有人/无人状态转换的条件判断,提高响应速度 + - 实现更平滑的状态转换,避免频繁切换 + +## 鲁棒性与可靠性优化 + +1. **错误处理** + - 为BLE通信添加错误处理机制,如连接失败、数据传输错误等 + - 为传感器检测添加异常处理,如端口状态异常等 + - 实现系统状态监控,及时发现和恢复异常 + +2. **看门狗优化** + - 合理设置看门狗超时时间,平衡可靠性和系统响应 + - 为不同任务模块设置独立的看门狗喂狗点 + +3. **数据完整性** + - 为重要数据添加校验机制,如CRC校验 + - 实现数据备份和恢复机制,提高数据可靠性 + +## 电源管理优化 + +1. **低功耗模式** + - 实现空闲时自动进入低功耗模式,降低功耗 + - 优化BLE通信的功耗,如减少广播时间、优化连接间隔等 + - 为传感器检测添加唤醒机制,只在需要时唤醒系统 + +2. **动态功耗调整** + - 根据系统状态动态调整功耗模式,如有人时提高性能,无人时降低功耗 + - 优化时钟频率,根据实际需求调整 + +3. **电源监控** + - 添加电源电压监控,及时发现电源异常 + - 实现电源故障处理机制,提高系统可靠性 + +## 测试与调试优化 + +1. **调试信息分级** + - 实现分级调试信息,根据需求开启不同级别的调试 + - 为BLE通信、传感器检测、事件处理等添加独立的调试开关 + +2. **测试用例** + - 为关键功能编写测试用例,提高测试覆盖率 + - 实现自动化测试,提高测试效率 + +3. **性能分析** + - 添加性能分析工具,如代码覆盖率、执行时间统计等 + - 定期进行性能测试,发现和优化瓶颈 + +## 实施建议 + +1. **分阶段实施**:按照优先级分阶段实施优化,先解决关键问题 +2. **测试验证**:每阶段优化后进行充分测试,确保功能正常 +3. **文档更新**:及时更新文档,记录优化内容和效果 +4. **持续优化**:建立持续优化机制,定期 review 代码和性能 + +这些优化建议将有助于提高系统的性能、可靠性和可维护性,同时降低功耗,提升用户体验。 \ No newline at end of file diff --git a/BLV_RF_W13_V04_20260114/BLV_RF_W13_V04.wvproj b/BLV_RF_W13_V04_20260114/BLV_RF_W13_V04.wvproj new file mode 100644 index 0000000000000000000000000000000000000000..02d84e695ff5691ab6b468e95a367d3f08c81b78 GIT binary patch literal 202 zcmV;*05$&zW0R4mN*`eo!Y&tKE2k4$T|ZEBq7D&UmNb7*U1_0`se+k(zIcxdwK_x> ziGp38F(rz3O0)tTDX7IrdMkz)sF4z{DGVtZG>;%kT0+5RFHJD9bBF?}IWI&2M1vKU zxk8~5Edj$(i=fB93Nu+FSt$jsfSz=eZEIgMKQ&Z|LQ?{2S5X>%S5YJ}jY*3vEe~EA zJ)x{^22xW_rjLaKPB)msqac|abWaSuZikvEm!n^grM7N>s;6u$A4^toDsym$1&q8u EymtRf-v9sr literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/HAL/MCU.c b/BLV_RF_W13_V04_20260114/HAL/MCU.c new file mode 100644 index 0000000..efb83ba --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/MCU.c @@ -0,0 +1,228 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : MCU.c + * Author : WCH + * Version : V1.2 + * Date : 2022/01/18 + * Description : ӲBLEӲʼ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +/* ͷļ */ +#include "HAL.h" + +tmosTaskID halTaskID; +uint32_t g_LLE_IRQLibHandlerLocation; + +#if(defined(BLE_SNV)) && (BLE_SNV == TRUE) +/******************************************************************************* + * @fn Lib_Read_Flash + * + * @brief Callback function used for BLE lib. + * + * @param addr - Read start address + * @param num - Number of units to read (unit: 4 bytes) + * @param pBuf - Buffer to store read data + * + * @return None. + */ +uint32_t Lib_Read_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf) +{ + FLASH_ROM_READ(addr, pBuf, num * 4); + return 0; +} + +/******************************************************************************* + * @fn Lib_Write_Flash + * + * @brief Callback function used for BLE lib. + * + * @param addr - Write start address + * @param num - Number of units to write (unit: 4 bytes) + * @param pBuf - Buffer with data to be written + * + * @return None. + */ +uint32_t Lib_Write_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf) +{ + FLASH_ROM_ERASE(addr, num * 4); + FLASH_ROM_WRITE(addr, pBuf, num * 4); + return 0; +} +#endif + +/******************************************************************************* + * @fn CH57x_BLEInit + * + * @brief BLE ʼ + * + * @param None. + * + * @return None. + */ +void CH57x_BLEInit(void) +{ + uint8_t i; + bleConfig_t cfg; + if(tmos_memcmp(VER_LIB, VER_FILE, strlen(VER_FILE)) == FALSE) + { + PRINT("head file error...\n"); + while(1); + } + + //__SysTick_Config(SysTick_LOAD_RELOAD_Msk);// SysTick + SysTick_Config(FREQ_SYS/10000); + + sys_safe_access_enable( ); + R32_MISC_CTRL = (R32_MISC_CTRL&(~(0x3f<<24)))|(0xe<<24); + sys_safe_access_disable( ); + g_LLE_IRQLibHandlerLocation = (uint32_t)LLE_IRQLibHandler; + PFIC_SetPriority(BLEL_IRQn, 0xF0); + tmos_memset(&cfg, 0, sizeof(bleConfig_t)); + cfg.MEMAddr = (uint32_t)MEM_BUF; + cfg.MEMLen = (uint32_t)BLE_MEMHEAP_SIZE; + cfg.BufMaxLen = (uint32_t)BLE_BUFF_MAX_LEN; + cfg.BufNumber = (uint32_t)BLE_BUFF_NUM; + cfg.TxNumEvent = (uint32_t)BLE_TX_NUM_EVENT; + cfg.TxPower = (uint32_t)BLE_TX_POWER; + cfg.WindowWidening = 120; +#if(defined(BLE_SNV)) && (BLE_SNV == TRUE) + if((BLE_SNV_ADDR + BLE_SNV_BLOCK * BLE_SNV_NUM) > (0x40000)) + { + PRINT("SNV config error...\n"); + while(1); + } + cfg.SNVAddr = (uint32_t)BLE_SNV_ADDR; + cfg.SNVBlock = (uint32_t)BLE_SNV_BLOCK; + cfg.SNVNum = (uint32_t)BLE_SNV_NUM; + cfg.readFlashCB = Lib_Read_Flash; + cfg.writeFlashCB = Lib_Write_Flash; +#endif + cfg.srandCB = SYS_GetSysTickCnt; +#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) + cfg.idleCB = CH57x_LowPower; // ˯ +#endif +#if(defined(BLE_MAC)) && (BLE_MAC == TRUE) + for(i = 0; i < 6; i++) + { + cfg.MacAddr[i] = MacAddr[5 - i]; + } +#else + { + uint8_t MacAddr[6]; + GetMACAddress(MacAddr); + for(i = 0; i < 6; i++) + { + cfg.MacAddr[i] = MacAddr[i]; // ʹоƬmacַ + } + } +#endif + if(!cfg.MEMAddr || cfg.MEMLen < 3 * 1024) + { + while(1); + } + // BLE_Lib ռVTF Interrupt 2ź3 + i = BLE_LibInit(&cfg); + if(i) + { + PRINT("LIB init error code: %x ...\n", i); + while(1); + } +} + +/******************************************************************************* + * @fn HAL_ProcessEvent + * + * @brief Ӳ + * + * @param task_id - The TMOS assigned task ID. + * @param events - events to process. This is a bit map and can + * contain more than one event. + * + * @return events. + */ +tmosEvents HAL_ProcessEvent(tmosTaskID task_id, tmosEvents events) +{ + uint8_t *msgPtr; + + if(events & SYS_EVENT_MSG) + { // HALϢtmos_msg_receiveȡϢɺɾϢ + msgPtr = tmos_msg_receive(task_id); + if(msgPtr) + { + /* De-allocate */ + tmos_msg_deallocate(msgPtr); + } + return events ^ SYS_EVENT_MSG; + } + if(events & LED_BLINK_EVENT) + { +#if(defined HAL_LED) && (HAL_LED == TRUE) + HalLedUpdate(); +#endif // HAL_LED + return events ^ LED_BLINK_EVENT; + } + if(events & HAL_KEY_EVENT) + { +#if(defined HAL_KEY) && (HAL_KEY == TRUE) + HAL_KeyPoll(); /* Check for keys */ + tmos_start_task(halTaskID, HAL_KEY_EVENT, MS1_TO_SYSTEM_TIME(100)); + return events ^ HAL_KEY_EVENT; +#endif + } + if(events & HAL_REG_INIT_EVENT) + { +#if(defined BLE_CALIBRATION_ENABLE) && (BLE_CALIBRATION_ENABLE == TRUE) // У׼񣬵У׼ʱС10ms + uint8_t state; + bleClockConfig_t conf; + + BLE_RegInit(); // У׼RFرRFıRFؼĴʹRFշעУ׼ + lsiFrq = RTC_InitClock( Count_1024 ); + conf = BLE_ClockConfig(lsiFrq); + state = TMOS_TimerSet(&conf); + LSIWakeup_MaxTime = GET_WakeUpLSIMaxTime(); + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, MS1_TO_SYSTEM_TIME(BLE_CALIBRATION_PERIOD)); + return events ^ HAL_REG_INIT_EVENT; +#endif + } + if(events & HAL_TEST_EVENT) + { + PRINT("* \n"); + tmos_start_task(halTaskID, HAL_TEST_EVENT, MS1_TO_SYSTEM_TIME(1000)); + return events ^ HAL_TEST_EVENT; + } + return 0; +} + +/******************************************************************************* + * @fn HAL_Init + * + * @brief Ӳʼ + * + * @param None. + * + * @return None. + */ +void HAL_Init() +{ + halTaskID = TMOS_ProcessEventRegister(HAL_ProcessEvent); + HAL_TimeInit(); +#if(defined HAL_SLEEP) && (HAL_SLEEP == TRUE) + HAL_SleepInit(); +#endif +#if(defined HAL_LED) && (HAL_LED == TRUE) + HAL_LedInit(); +#endif +#if(defined HAL_KEY) && (HAL_KEY == TRUE) + HAL_KeyInit(); +#endif +#if(defined BLE_CALIBRATION_ENABLE) && (BLE_CALIBRATION_ENABLE == TRUE) + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, 800); // У׼500msУ׼ʱС10ms +#endif +// tmos_start_task( halTaskID, HAL_TEST_EVENT, 1600 ); // һ +} + +/******************************** endfile @ mcu ******************************/ diff --git a/BLV_RF_W13_V04_20260114/HAL/RTC.c b/BLV_RF_W13_V04_20260114/HAL/RTC.c new file mode 100644 index 0000000..6db7d05 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/RTC.c @@ -0,0 +1,132 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : RTC.c + * Author : WCH + * Version : V1.2 + * Date : 2022/01/18 + * Description : RTCüʼ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +/* ͷļ */ +#include "HAL.h" + +/********************************************************************* + * CONSTANTS + */ + +/*************************************************** + * Global variables + */ +volatile uint32_t RTCTigFlag; + +#define US_TO_TICK(us) (uint32_t)((us)/(1000000/(CAB_LSIFQ))) +#define SLEEP_WAIT_HSE_TIME US_TO_TICK(2400) +#define RTC_MAX_COUNT 0xA8C00000 +uint32_t lsiFrq; + +/******************************************************************************* + * @fn RTC_SetTignTime + * + * @brief RTCʱ + * + * @param time - ʱ. + * + * @return None. + */ +void RTC_SetTignTime(uint32_t time) +{ + sys_safe_access_enable(); + R32_RTC_TRIG = time; + sys_safe_access_disable(); + RTCTigFlag = 0; +} + +/******************************************************************************* + * @fn RTC_IRQHandler + * + * @brief RTCжϴ + * + * @param None. + */ +__INTERRUPT +__HIGH_CODE +void RTC_IRQHandler( void ) +{ + R8_RTC_FLAG_CTRL =(RB_RTC_TMR_CLR|RB_RTC_TRIG_CLR); + RTCTigFlag = 1; +} + +__HIGH_CODE +static uint32_t SYS_GetClockValue(void) +{ + uint32_t volatile rtc_count; + do{ + rtc_count = R32_RTC_CNT_LSI; + }while( rtc_count != R32_RTC_CNT_LSI); + return rtc_count; +} + +__HIGH_CODE +static void SYS_SetPendingIRQ(void) +{ + PFIC_SetPendingIRQ( RTC_IRQn ); +} + +/******************************************************************************* + * @fn BLE_ClockConfig + * + * @brief BLE_ClockConfig + * + * @param conf. + */ +bleClockConfig_t BLE_ClockConfig(uint32_t lsifreq) +{ + bleClockConfig_t conf; + + conf.ClockAccuracy = 2500; + conf.ClockFrequency = lsifreq; + conf.ClockMaxCount = RTC_MAX_COUNT; + conf.getClockValue = SYS_GetClockValue; + conf.SetPendingIRQ = SYS_SetPendingIRQ; + + return conf; +} + +/******************************************************************************* + * @fn HAL_Time0Init + * + * @brief ϵͳʱʼ + * + * @param None. + * + * @return None. + */ +void HAL_TimeInit(void) +{ + bleClockConfig_t conf; + + sys_safe_access_enable(); + R8_LSI_CONFIG |= RB_CLK_LSI_PON; + sys_safe_access_disable(); + + lsiFrq = RTC_InitClock( Count_1024 ); + + PRINT("lsiFrq = %d\n",lsiFrq); + + RTC_InitTime( 2021,1,28,0,0,0 ); + + conf = BLE_ClockConfig(lsiFrq); + TMOS_TimerInit( &conf ); + + sys_safe_access_enable(); + __nop();__nop(); + R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // ģʽ + sys_safe_access_disable(); + PFIC_EnableIRQ(RTC_IRQn); +} + +/******************************** endfile @ time ******************************/ diff --git a/BLV_RF_W13_V04_20260114/HAL/SLEEP.c b/BLV_RF_W13_V04_20260114/HAL/SLEEP.c new file mode 100644 index 0000000..26b287c --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/SLEEP.c @@ -0,0 +1,117 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : SLEEP.c + * Author : WCH + * Version : V1.2 + * Date : 2022/01/18 + * Description : ˯üʼ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +/* ͷļ */ +#include "HAL.h" + +uint16_t LSIWakeup_MaxTime; + +/******************************************************************************* + * @fn CH57x_LowPower + * + * @brief ˯ + * + * @param time - ѵʱ㣨RTCֵ + * + * @return state. + */ +uint32_t CH57x_LowPower(uint32_t time) +{ +#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) + volatile uint32_t i; + uint32_t time_tign, time_sleep, time_curr; + unsigned long irq_status; + + // ǰ + if (time <= LSIWakeup_MaxTime) { + time_tign = time + (RTC_MAX_COUNT - LSIWakeup_MaxTime); + } else { + time_tign = time - LSIWakeup_MaxTime; + } + + SYS_DisableAllIrq(&irq_status); + time_curr = RTC_GetCycleLSI(); + // ˯ʱ + if (time_tign < time_curr) { + time_sleep = time_tign + (RTC_MAX_COUNT - time_curr); + } else { + time_sleep = time_tign - time_curr; + } + + // ˯ʱСС˯ʱ˯ʱ䣬˯ + if ((time_sleep < SLEEP_RTC_MIN_TIME) || + (time_sleep > SLEEP_RTC_MAX_TIME)) { + SYS_RecoverIrq(irq_status); + return 2; + } + + RTC_SetTignTime(time_tign); + SYS_RecoverIrq(irq_status); +#if(DEBUG == Debug_UART0) // ʹӡϢҪ޸д + while((R8_UART_LSR & RB_LSR_TX_ALL_EMP) == 0) + { + __nop(); + } +#endif + // LOW POWER-sleepģʽ + if(!RTCTigFlag) + { + LowPower_Sleep(RB_PWR_RAM12K | RB_PWR_EXTEND | RB_XT_PRE_EN ); + HSECFG_Current(HSE_RCur_100); // Ϊ(͹ĺHSEƫõ) + return 0; + } +#endif + return 3; +} + +/******************************************************************************* + * @fn GET_WakeUpLSIMaxTime + * + * @brief ȡǰǰʱ + * + * @param none + */ +uint16_t GET_WakeUpLSIMaxTime(void) +{ + uint16_t pre_time; + + pre_time = RTC_TO_US(45)+200; + pre_time = pre_time > 1600 ? pre_time:1600; + pre_time = US_TO_RTC(pre_time); + + return pre_time; +} + +/******************************************************************************* + * @fn HAL_SleepInit + * + * @brief ˯߻ѵķʽ - RTCѣģʽ + * + * @param None. + * + * @return None. + */ +void HAL_SleepInit(void) +{ +#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) + sys_safe_access_enable(); + R8_SLP_WAKE_CTRL |= RB_SLP_RTC_WAKE; // RTC + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // ģʽ + sys_safe_access_disable(); + PFIC_EnableIRQ(RTC_IRQn); + LSIWakeup_MaxTime = GET_WakeUpLSIMaxTime(); +// PRINT("Pre_time %d\n",LSIWakeup_MaxTime); +#endif +} diff --git a/BLV_RF_W13_V04_20260114/HAL/include/CONFIG.h b/BLV_RF_W13_V04_20260114/HAL/include/CONFIG.h new file mode 100644 index 0000000..465f0d7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/include/CONFIG.h @@ -0,0 +1,142 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CONFIG.h + * Author : WCH + * Version : V1.2 + * Date : 2022/01/18 + * Description : ˵ĬֵڹԤ޸ĵǰֵ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +#ifndef __CONFIG_H +#define __CONFIG_H + + +#define CHIP_ID ID_CH572 + +#ifdef CH57xBLE_ROM +#include "CH57xBLE_ROM.h" +#else +#include "CH572BLEPeri_LIB.h" +#endif + +#include "CH57x_common.h" + +/********************************************************************* + MAC + BLE_MAC - ǷԶMacַ ( Ĭ:FALSE - ʹоƬMacַ )Ҫmain.c޸Macַ + + SLEEP + HAL_SLEEP - Ƿ˯߹ ( Ĭ:FALSE ) + SLEEP_RTC_MIN_TIME - ǿģʽ˯ߵСʱ䣨λһRTCڣ + SLEEP_RTC_MAX_TIME - ǿģʽ˯ߵʱ䣨λһRTCڣ + WAKE_UP_RTC_MAX_TIME - ȴ32Mȶʱ䣨λһRTCڣ + ݲͬ˯ȡֵɷΪ ˯ģʽ/µģʽ - 45 (Ĭ) + ͣģʽ - 45 + ģʽ - 5 + TEMPERATION + TEM_SAMPLE - Ƿ򿪸¶ȱ仯У׼ĹܣУ׼ʱС10ms( Ĭ:TRUE ) + + CALIBRATION + BLE_CALIBRATION_ENABLE - Ƿ򿪶ʱУ׼ĹܣУ׼ʱС10ms( Ĭ:TRUE ) + BLE_CALIBRATION_PERIOD - ʱУ׼ڣλms( Ĭ:120000 ) + + SNV + BLE_SNV - ǷSNVܣڴϢ( Ĭ:TRUE ) + BLE_SNV_ADDR - SNVϢַʹdata flash512ֽ( Ĭ:0x77E00 ) + BLE_SNV_BLOCK - SNVϢС( Ĭ:256 ) + BLE_SNV_NUM - SNVϢ( Ĭ:1 ) + + RTC + CLK_OSC32K - RTCʱѡɫʹⲿ32K( 0 ⲿ(32768Hz)Ĭ:1ڲ(32000Hz)2ڲ(32768Hz) ) + + MEMORY + BLE_MEMHEAP_SIZE - ЭջʹõRAMСС6K ( Ĭ:(1024*6) ) + + DATA + BLE_BUFF_MAX_LEN - ( Ĭ:27 (ATT_MTU=23)ȡֵΧ[27~516] ) + BLE_BUFF_NUM - İ( Ĭ:5 ) + BLE_TX_NUM_EVENT - ¼Էٸݰ( Ĭ:1 ) + BLE_TX_POWER - 书( Ĭ:LL_TX_POWEER_0_DBM (0dBm) ) + + MULTICONN + PERIPHERAL_MAX_CONNECTION - ͬʱٴӻɫ( Ĭ:1 ) + CENTRAL_MAX_CONNECTION - ͬʱɫ( Ĭ:3 ) + + **********************************************************************/ + +/********************************************************************* + * Ĭֵ + */ +#ifndef BLE_MAC +#define BLE_MAC FALSE +#endif +#ifndef HAL_SLEEP +#define HAL_SLEEP FALSE +#endif +#ifndef SLEEP_RTC_MIN_TIME +#define SLEEP_RTC_MIN_TIME US_TO_RTC(1000) +#endif +#ifndef SLEEP_RTC_MAX_TIME +#define SLEEP_RTC_MAX_TIME (RTC_MAX_COUNT - 1000 * 1000 * 30) +#endif +#ifndef WAKE_UP_RTC_MAX_TIME +#define WAKE_UP_RTC_MAX_TIME US_TO_RTC(1600) +#endif +#ifndef HAL_KEY +#define HAL_KEY FALSE +#endif +#ifndef HAL_LED +#define HAL_LED FALSE +#endif +#ifndef TEM_SAMPLE +#define TEM_SAMPLE TRUE +#endif +#ifndef BLE_CALIBRATION_ENABLE +#define BLE_CALIBRATION_ENABLE TRUE +#endif +#ifndef BLE_CALIBRATION_PERIOD +#define BLE_CALIBRATION_PERIOD 120000 +#endif +#ifndef BLE_SNV +#define BLE_SNV TRUE +#endif +#ifndef BLE_SNV_ADDR +#define BLE_SNV_ADDR 0x3B000 +#endif +#ifndef BLE_SNV_BLOCK +#define BLE_SNV_BLOCK 256 +#endif +#ifndef BLE_SNV_NUM +#define BLE_SNV_NUM 1 +#endif +#ifndef BLE_MEMHEAP_SIZE +#define BLE_MEMHEAP_SIZE (512*7) +#endif +#ifndef BLE_BUFF_MAX_LEN +#define BLE_BUFF_MAX_LEN 128 +#endif +#ifndef BLE_BUFF_NUM +#define BLE_BUFF_NUM 3 +#endif +#ifndef BLE_TX_NUM_EVENT +#define BLE_TX_NUM_EVENT 1 +#endif +#ifndef BLE_TX_POWER +#define BLE_TX_POWER LL_TX_POWEER_0_DBM +#endif +#ifndef PERIPHERAL_MAX_CONNECTION +#define PERIPHERAL_MAX_CONNECTION 1 +#endif +#ifndef CENTRAL_MAX_CONNECTION +#define CENTRAL_MAX_CONNECTION 3 +#endif + +extern uint32_t MEM_BUF[BLE_MEMHEAP_SIZE / 4]; +extern const uint8_t MacAddr[6]; + +#endif + diff --git a/BLV_RF_W13_V04_20260114/HAL/include/HAL.h b/BLV_RF_W13_V04_20260114/HAL/include/HAL.h new file mode 100644 index 0000000..9453b77 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/include/HAL.h @@ -0,0 +1,69 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : HAL.h + * Author : WCH + * Version : V1.0 + * Date : 2016/05/05 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +#ifndef __HAL_H +#define __HAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "CONFIG.h" +#include "RTC.h" +#include "SLEEP.h" +//#include "LED.h" +//#include "KEY.h" + +/* hal task Event */ +#define LED_BLINK_EVENT 0x0001 +#define HAL_KEY_EVENT 0x0002 +#define HAL_REG_INIT_EVENT 0x2000 +#define HAL_TEST_EVENT 0x4000 + +/********************************************************************* + * GLOBAL VARIABLES + */ +extern tmosTaskID halTaskID; + +/********************************************************************* + * GLOBAL FUNCTIONS + */ + +/** + * @brief Ӳʼ + */ +extern void HAL_Init(void); + +/** + * @brief Ӳ + * + * @param task_id - The TMOS assigned task ID. + * @param events - events to process. This is a bit map and can + * contain more than one event. + */ +extern tmosEvents HAL_ProcessEvent(tmosTaskID task_id, tmosEvents events); + +/** + * @brief BLE ʼ + */ +extern void CH57x_BLEInit(void); + + +/********************************************************************* +*********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/HAL/include/RTC.h b/BLV_RF_W13_V04_20260114/HAL/include/RTC.h new file mode 100644 index 0000000..d1d4088 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/include/RTC.h @@ -0,0 +1,68 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : RTC.h + * Author : WCH + * Version : V1.0 + * Date : 2016/04/12 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +#ifndef __RTC_H +#define __RTC_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef CLK_OSC32K +#if (CLK_OSC32K==1) +#define FREQ_RTC 32000 +#else +#define FREQ_RTC 32768 +#endif +#endif /* CLK_OSC32K */ + + +#define CLK_PER_US (1.0 / ((1.0 / Freq_LSI) * 1000 * 1000)) +#define CLK_PER_MS (CLK_PER_US * 1000) + +#define US_PER_CLK (1.0 / CLK_PER_US) +#define MS_PER_CLK (US_PER_CLK / 1000.0) + +#define RTC_TO_US(clk) ((uint32_t)((clk) * US_PER_CLK + 0.5)) +#define RTC_TO_MS(clk) ((uint32_t)((clk) * MS_PER_CLK + 0.5)) + +#define US_TO_RTC(us) ((uint32_t)((us) * CLK_PER_US + 0.5)) +#define MS_TO_RTC(ms) ((uint32_t)((ms) * CLK_PER_MS + 0.5)) + +extern volatile uint32_t RTCTigFlag; +extern uint32_t lsiFrq; + +/** + * @brief Initialize time Service. + */ +void HAL_TimeInit(void); + +/** + * @brief RTCʱ + * + * @param time - ʱ. + */ +extern void RTC_SetTignTime(uint32_t time); + +/** + * @brief BLEʱ + * + * @param lsifreq - LSIƵ. + */ +extern bleClockConfig_t BLE_ClockConfig(uint32_t lsifreq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/HAL/include/SLEEP.h b/BLV_RF_W13_V04_20260114/HAL/include/SLEEP.h new file mode 100644 index 0000000..ff2bb9e --- /dev/null +++ b/BLV_RF_W13_V04_20260114/HAL/include/SLEEP.h @@ -0,0 +1,60 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : SLEEP.h + * Author : WCH + * Version : V1.0 + * Date : 2018/11/12 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/******************************************************************************/ +#ifndef __SLEEP_H +#define __SLEEP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/********************************************************************* + * GLOBAL VARIABLES + */ +typedef void (*pfnLowPowerGapProcessCB_t)( void ); + +extern uint16_t LSIWakeup_MaxTime; +/********************************************************************* + * FUNCTIONS + */ + +/** + * @brief ˯߻ѵķʽ - RTCѣģʽ + */ +extern void HAL_SleepInit(void); + +/** + * @brief ˯ + * + * @param time - ѵʱ㣨RTCֵ + * + * @return state. + */ +extern uint32_t CH57x_LowPower(uint32_t time); + +/** + * @brief ȡǰǰʱ + * + * @param none. + */ +extern uint16_t GET_WakeUpLSIMaxTime(void); + + +/********************************************************************* +*********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/LIB/CH572BLEPeri_LIB.h b/BLV_RF_W13_V04_20260114/LIB/CH572BLEPeri_LIB.h new file mode 100644 index 0000000..d40863f --- /dev/null +++ b/BLV_RF_W13_V04_20260114/LIB/CH572BLEPeri_LIB.h @@ -0,0 +1,3868 @@ +/********************************** (C) COPYRIGHT ****************************** + * File Name : CH572BLEPeri_LIB.H + * Author : WCH + * Version : V1.20 + * Date : 2024/03/14 + * Description : head file(CH572) + * Copyright (c) 2023 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + + +/******************************************************************************/ +#ifndef __CH572BLE_LIB_PERI_H +#define __CH572BLE_LIB_PERI_H + +#ifdef __cplusplus +extern "C" +{ +#endif +#include "stdint.h" + + +#ifndef BOOL +typedef uint8_t BOOL; +#endif +#ifndef TRUE + #define TRUE 1 +#endif +#ifndef FALSE + #define FALSE 0 +#endif +#ifndef NULL + #define NULL 0 +#endif +#ifndef SUCCESS +#define SUCCESS 0x00 +#endif +#ifndef bStatus_t +typedef uint8_t bStatus_t; +#endif +#ifndef tmosTaskID +typedef uint8_t tmosTaskID; +#endif +#ifndef tmosEvents +typedef uint16_t tmosEvents; +#endif +#ifndef tmosTimer +typedef uint32_t tmosTimer; +#endif +#ifndef tmosSnvId_t +typedef uint16_t tmosSnvId_t; +#endif +#ifndef tmosSnvLen_t +typedef uint16_t tmosSnvLen_t; +#endif + +// Define function type that generate a random seed callback +typedef uint32_t (*pfnSrandCB)( void ); +// Define function type that switch to idle mode callback +typedef uint32_t (*pfnIdleCB)( uint32_t ); +// Define function type that run LSI clock calibration callback +typedef void (*pfnLSICalibrationCB)( void ); +// Define function type that get temperature callback +typedef uint16_t (*pfnTempSampleCB)( void ); +// Define function type that connect/advertise event complete callback. +typedef void (*pfnEventCB)( uint32_t timeUs ); +// Define function type that library status callback. +typedef void (*pfnLibStatusErrorCB)( uint8_t code, uint32_t status ); +// Define function type that process event +typedef tmosEvents (*pTaskEventHandlerFn)( tmosTaskID taskID, tmosEvents event ); +// Define function type that read flash +typedef uint32_t (*pfnFlashReadCB)( uint32_t addr, uint32_t num, uint32_t *pBuf ); +// Define function type that write flash +typedef uint32_t (*pfnFlashWriteCB)( uint32_t addr, uint32_t num, uint32_t *pBuf ); +// Define function type that get system clock count +typedef uint32_t (*pfnGetSysClock)( void ); +// Define function type that enable/disable system clock interrupt +typedef void (*pfnSetSysClockIRQ)( void ); + +/* BLE library config struct */ +typedef struct tag_ble_config +{ + uint32_t MEMAddr; // library memory start address + uint16_t MEMLen; // library memory size + uint32_t SNVAddr; // SNV flash start address( if NULL,bonding information will not be saved ) + uint16_t SNVBlock; // SNV flash block size ( default 256 ) + uint8_t SNVNum; // SNV flash block number ( default 1 ) + uint8_t BufNumber; // Maximum number of sent and received packages cached by the controller( default 3 ) + // Must be greater than the number of connections. + uint16_t BufMaxLen; // Maximum length (in octets) of the data portion of each HCI data packet( default 27 ) + // ATT_MTU = BufMaxLen-4,Range[23,ATT_MAX_MTU_SIZE] + uint8_t TxNumEvent; // Maximum number of TX data in a connection event ( default 1 ) + uint8_t RxNumEvent; // Maximum number of RX data in a connection event ( default equal to BufNumber ) + uint8_t TxPower; // Transmit power level( default LL_TX_POWEER_0_DBM(0dBm) ) + uint8_t WindowWidening; // Wait rf start window(us) + uint8_t WaitWindow; // Wait event arrive window in one system clock + uint8_t MacAddr[6]; // MAC address,little-endian + pfnSrandCB srandCB; // Register a program that generate a random seed + pfnIdleCB idleCB; // Register a program that set idle + pfnLibStatusErrorCB staCB; // Register a program that library status callback + pfnFlashReadCB readFlashCB; // Register a program that read flash + pfnFlashWriteCB writeFlashCB; // Register a program that write flash +} bleConfig_t; // Library initialization call BLE_LibInit function + +/* BLE pa control config struct */ +typedef struct tag_ble_clock_config +{ + pfnGetSysClock getClockValue; + uint32_t ClockMaxCount; // The maximum count value + uint16_t ClockFrequency; // The timing clock frequency(Hz) + uint16_t ClockAccuracy; // The timing clock accuracy(ppm) + uint8_t irqEnable; // resv + pfnSetSysClockIRQ SetPendingIRQ; +}bleClockConfig_t; + +/* BLE pa control config struct */ +typedef struct tag_ble_pa_control_config +{ + uint32_t txEnableGPIO; // tx enable gpio register + uint32_t txDisableGPIO; // tx disable gpio register + uint32_t tx_pin; // tx pin define + uint32_t rxEnableGPIO; // rx enable gpio register + uint32_t rxDisableGPIO; // rx disable gpio register + uint32_t rx_pin; // tx pin define +} blePaControlConfig_t; + +// defined for all task +#define SYS_EVENT_MSG (0x8000) // A message is waiting event +#define INVALID_TASK_ID 0xFF // Task ID isn't setup properly +#define TASK_NO_TASK 0xFF + +typedef struct +{ + uint8_t event; + uint8_t status; +} tmos_event_hdr_t; + +/********************************************************************* + * GLOBAL MACROS + */ +#define VER_FILE "CH572_BLE_PERI_LIB_V1.2" +extern const uint8_t VER_LIB[]; // LIB version +#define SYSTEM_TIME_MICROSEN 625 // unit of process event timer is 625us +#define MS1_TO_SYSTEM_TIME(x) ((x)*1000/SYSTEM_TIME_MICROSEN) // transform unit in ms to unit in 625us ( attentional bias ) +#define TMOS_TIME_VALID (30*1000*1000) // the maximum task time = RTC MAX clock - TMOS_TIME_VALID + +/* takes a byte out of a uint32_t : var - uint32_t, ByteNum - byte to take out (0 - 3) */ +#define BREAK_UINT32( var, ByteNum ) (uint8_t)((uint32_t)(((var) >>((ByteNum) * 8)) & 0x00FF)) +#define HI_UINT16(a) (((a) >> 8) & 0xFF) +#define LO_UINT16(a) ((a) & 0xFF) +#define HI_UINT8(a) (((a) >> 4) & 0x0F) +#define LO_UINT8(a) ((a) & 0x0F) +#define BUILD_UINT32(Byte0, Byte1, Byte2, Byte3) \ + ((uint32_t)(((uint32_t)(Byte0) & 0x00FF) \ + + (((uint32_t)(Byte1) & 0x00FF) << 8) \ + + (((uint32_t)(Byte2) & 0x00FF) << 16) \ + + (((uint32_t)(Byte3) & 0x00FF) << 24))) +#define BUILD_UINT16(loByte, hiByte) ((uint16_t)(((loByte) & 0x00FF)|(((hiByte) & 0x00FF)<<8))) + +#define ACTIVE_LOW ! +#define ACTIVE_HIGH !! // double negation forces result to be '1' + +#ifndef BV +#define BV(n) (1 << (n)) +#endif + +#ifndef BF +#define BF(x,b,s) (((x) & (b)) >> (s)) +#endif + +#ifndef MIN +#define MIN(n,m) (((n) < (m)) ? (n) : (m)) +#endif + +#ifndef MAX +#define MAX(n,m) (((n) < (m)) ? (m) : (n)) +#endif + +#ifndef ABS +#define ABS(n) (((n) < 0) ? -(n) : (n)) +#endif + +/* TxPower define(Accuracy:2dBm) */ +#define LL_TX_POWEER_MINUS_25_DBM 0x01 +#define LL_TX_POWEER_MINUS_20_DBM 0x02 +#define LL_TX_POWEER_MINUS_15_DBM 0x03 +#define LL_TX_POWEER_MINUS_10_DBM 0x05 +#define LL_TX_POWEER_MINUS_8_DBM 0x07 +#define LL_TX_POWEER_MINUS_5_DBM 0x0A +#define LL_TX_POWEER_MINUS_3_DBM 0x0C +#define LL_TX_POWEER_MINUS_1_DBM 0x10 +#define LL_TX_POWEER_0_DBM 0x12 +#define LL_TX_POWEER_1_DBM 0x15 +#define LL_TX_POWEER_2_DBM 0x18 +#define LL_TX_POWEER_3_DBM 0x1B +#define LL_TX_POWEER_4_DBM 0x1F +#define LL_TX_POWEER_5_DBM 0x25 +#define LL_TX_POWEER_6_DBM 0x2D +#define LL_TX_POWEER_7_DBM 0x3B + +/* ERR_LIB_INIT define */ +#define ERR_LLE_IRQ_HANDLE 0x01 +#define ERR_MEM_ALLOCATE_SIZE 0x02 +#define ERR_SET_MAC_ADDR 0x03 +#define ERR_GAP_ROLE_CONFIG 0x04 +#define ERR_CONNECT_NUMBER_CONFIG 0x05 +#define ERR_SNV_ADDR_CONFIG 0x06 +#define ERR_CLOCK_SELECT_CONFIG 0x07 + +//! Default Public and Random Address Length +#define B_ADDR_LEN 6 +//! Random Number Size +#define B_RANDOM_NUM_SIZE 8 +//! Default key length +#define KEYLEN 16 +#define PUBLIC_KEY_LEN 64 + +//! Maximum Advertising Packet Length +#define B_MAX_ADV_LEN 31 // maximum legacy advertising packet length + +#define FAILURE 0x01 //!< Failure +#define INVALIDPARAMETER 0x02 //!< Invalid request field +#define INVALID_TASK 0x03 //!< Task ID isn't setup properly +#define MSG_BUFFER_NOT_AVAIL 0x04 //!< No buffer is available. +#define INVALID_MSG_POINTER 0x05 //!< No message pointer. +#define INVALID_EVENT_ID 0x06 //!< Invalid event id. +#define INVALID_TIMEOUT 0x07 //!< Invalid timeout. +#define NO_TIMER_AVAIL 0x08 //!< No event is available. +#define NV_OPER_FAILED 0x0A //!< read a data item to NV failed. +#define INVALID_MEM_SIZE 0x0B //!< The tokens take up too much space and don't fit into Advertisement data and Scan Response Data + +/** BLE_STATUS_VALUES BLE Default BLE Status Values + * returned as bStatus_t + */ +#define bleInvalidTaskID INVALID_TASK //!< Task ID isn't setup properly +#define bleEecKeyRequestRejected 0x06 //!< key missing +#define bleNotReady 0x10 //!< Not ready to perform task +#define bleAlreadyInRequestedMode 0x11 //!< Already performing that task +#define bleIncorrectMode 0x12 //!< Not setup properly to perform that task +#define bleMemAllocError 0x13 //!< Memory allocation error occurred +#define bleNotConnected 0x14 //!< Can't perform function when not in a connection +#define bleNoResources 0x15 //!< There are no resource available +#define blePending 0x16 //!< Waiting +#define bleTimeout 0x17 //!< Timed out performing function +#define bleInvalidRange 0x18 //!< A parameter is out of range +#define bleLinkEncrypted 0x19 //!< The link is already encrypted +#define bleProcedureComplete 0x1A //!< The Procedure is completed +#define bleInvalidMtuSize 0x1B //!< SDU size is larger than peer MTU. + +/********************************LinkDB****************************************/ +// Special case connection handles +#define INVALID_CONNHANDLE 0xFFFF // Invalid connection handle, used for no connection handle +#define LOOPBACK_CONNHANDLE 0xFFFE // Loopback connection handle, used to loopback a message +// Link state flags +#define LINK_NOT_CONNECTED 0x00 // Link isn't connected +#define LINK_CONNECTED 0x01 // Link is connected +#define LINK_AUTHENTICATED 0x02 // Link is authenticated +#define LINK_BOUND 0x04 // Link is bonded +#define LINK_ENCRYPTED 0x10 // Link is encrypted +// Link Database Status callback changeTypes +#define LINKDB_STATUS_UPDATE_NEW 0 // New connection created +#define LINKDB_STATUS_UPDATE_REMOVED 1 // Connection was removed +#define LINKDB_STATUS_UPDATE_STATEFLAGS 2 // Connection state flag changed +/*******************************gattUUID***************************************/ +/** + * GATT Services + */ +#define GAP_SERVICE_UUID 0x1800 // Generic Access Profile +#define GATT_SERVICE_UUID 0x1801 // Generic Attribute Profile + +/** + * GATT Declarations + */ +#define GATT_PRIMARY_SERVICE_UUID 0x2800 // Primary Service +#define GATT_SECONDARY_SERVICE_UUID 0x2801 // Secondary Service +#define GATT_INCLUDE_UUID 0x2802 // Include +#define GATT_CHARACTER_UUID 0x2803 // Characteristic + +/** + * GATT Descriptors + */ +#define GATT_CHAR_EXT_PROPS_UUID 0x2900 // Characteristic Extended Properties +#define GATT_CHAR_USER_DESC_UUID 0x2901 // Characteristic User Description +#define GATT_CLIENT_CHAR_CFG_UUID 0x2902 // Client Characteristic Configuration +#define GATT_SERV_CHAR_CFG_UUID 0x2903 // Server Characteristic Configuration +#define GATT_CHAR_FORMAT_UUID 0x2904 // Characteristic Presentation Format +#define GATT_CHAR_AGG_FORMAT_UUID 0x2905 // Characteristic Aggregate Format +#define GATT_VALID_RANGE_UUID 0x2906 // Valid Range +#define GATT_EXT_REPORT_REF_UUID 0x2907 // External Report Reference Descriptor +#define GATT_REPORT_REF_UUID 0x2908 // Report Reference Descriptor + +/** + * GATT Characteristics + */ +#define DEVICE_NAME_UUID 0x2A00 // Device Name +#define APPEARANCE_UUID 0x2A01 // Appearance +#define PERI_PRIVACY_FLAG_UUID 0x2A02 // Peripheral Privacy Flag +#define RECONNECT_ADDR_UUID 0x2A03 // Reconnection Address +#define PERI_CONN_PARAM_UUID 0x2A04 // Peripheral Preferred Connection Parameters +#define SERVICE_CHANGED_UUID 0x2A05 // Service Changed +#define CENTRAL_ADDRESS_RESOLUTION_UUID 0x2AA6 // Central Address Resolution + +/** + * GATT Service UUIDs + */ +#define IMMEDIATE_ALERT_SERV_UUID 0x1802 // Immediate Alert +#define LINK_LOSS_SERV_UUID 0x1803 // Link Loss +#define TX_PWR_LEVEL_SERV_UUID 0x1804 // Tx Power +#define CURRENT_TIME_SERV_UUID 0x1805 // Current Time Service +#define REF_TIME_UPDATE_SERV_UUID 0x1806 // Reference Time Update Service +#define NEXT_DST_CHANGE_SERV_UUID 0x1807 // Next DST Change Service +#define GLUCOSE_SERV_UUID 0x1808 // Glucose +#define THERMOMETER_SERV_UUID 0x1809 // Health Thermometer +#define DEVINFO_SERV_UUID 0x180A // Device Information +#define NWA_SERV_UUID 0x180B // Network Availability +#define HEARTRATE_SERV_UUID 0x180D // Heart Rate +#define PHONE_ALERT_STS_SERV_UUID 0x180E // Phone Alert Status Service +#define BATT_SERV_UUID 0x180F // Battery Service +#define BLOODPRESSURE_SERV_UUID 0x1810 // Blood Pressure +#define ALERT_NOTIF_SERV_UUID 0x1811 // Alert Notification Service +#define HID_SERV_UUID 0x1812 // Human Interface Device +#define SCAN_PARAM_SERV_UUID 0x1813 // Scan Parameters +#define RSC_SERV_UUID 0x1814 // Running Speed and Cadence +#define CSC_SERV_UUID 0x1816 // Cycling Speed and Cadence +#define CYCPWR_SERV_UUID 0x1818 // Cycling Power +#define LOC_NAV_SERV_UUID 0x1819 // Location and Navigation + +#define ENV_SENS_SERV_UUID 0x181A // Environmental Sensing +#define BODY_COMP_SERV_UUID 0x181B // Body Composition +#define USER_DATA_SERV_UUID 0x181C // User Data +#define WEIGHT_SCALE_SERV_UUID 0x181D // Weight Scale +#define BOND_MANAGEMENT_SERV_UUID 0x181E // Bond Management +#define GLUCOSE_MONITOR_UUID 0x181F // Continuous Glucose Monitoring + + +/** + * GATT Characteristic UUIDs + */ +#define ALERT_LEVEL_UUID 0x2A06 // Alert Level +#define TX_PWR_LEVEL_UUID 0x2A07 // Tx Power Level +#define DATE_TIME_UUID 0x2A08 // Date Time +#define DAY_OF_WEEK_UUID 0x2A09 // Day of Week +#define DAY_DATE_TIME_UUID 0x2A0A // Day Date Time +#define EXACT_TIME_256_UUID 0x2A0C // Exact Time 256 +#define DST_OFFSET_UUID 0x2A0D // DST Offset +#define TIME_ZONE_UUID 0x2A0E // Time Zone +#define LOCAL_TIME_INFO_UUID 0x2A0F // Local Time Information +#define TIME_WITH_DST_UUID 0x2A11 // Time with DST +#define TIME_ACCURACY_UUID 0x2A12 // Time Accuracy +#define TIME_SOURCE_UUID 0x2A13 // Time Source +#define REF_TIME_INFO_UUID 0x2A14 // Reference Time Information +#define TIME_UPDATE_CTRL_PT_UUID 0x2A16 // Time Update Control Point +#define TIME_UPDATE_STATE_UUID 0x2A17 // Time Update State +#define GLUCOSE_MEAS_UUID 0x2A18 // Glucose Measurement +#define BATT_LEVEL_UUID 0x2A19 // Battery Level +#define TEMP_MEAS_UUID 0x2A1C // Temperature Measurement +#define TEMP_TYPE_UUID 0x2A1D // Temperature Type +#define IMEDIATE_TEMP_UUID 0x2A1E // Intermediate Temperature +#define MEAS_INTERVAL_UUID 0x2A21 // Measurement Interval +#define BOOT_KEY_INPUT_UUID 0x2A22 // Boot Keyboard Input Report +#define SYSTEM_ID_UUID 0x2A23 // System ID +#define MODEL_NUMBER_UUID 0x2A24 // Model Number String +#define SERIAL_NUMBER_UUID 0x2A25 // Serial Number String +#define FIRMWARE_REV_UUID 0x2A26 // Firmware Revision String +#define HARDWARE_REV_UUID 0x2A27 // Hardware Revision String +#define SOFTWARE_REV_UUID 0x2A28 // Software Revision String +#define MANUFACTURER_NAME_UUID 0x2A29 // Manufacturer Name String +#define IEEE_11073_CERT_DATA_UUID 0x2A2A // IEEE 11073-20601 Regulatory Certification Data List +#define CURRENT_TIME_UUID 0x2A2B // Current Time +#define SCAN_REFRESH_UUID 0x2A31 // Scan Refresh +#define BOOT_KEY_OUTPUT_UUID 0x2A32 // Boot Keyboard Output Report +#define BOOT_MOUSE_INPUT_UUID 0x2A33 // Boot Mouse Input Report +#define GLUCOSE_CONTEXT_UUID 0x2A34 // Glucose Measurement Context +#define BLOODPRESSURE_MEAS_UUID 0x2A35 // Blood Pressure Measurement +#define IMEDIATE_CUFF_PRESSURE_UUID 0x2A36 // Intermediate Cuff Pressure +#define HEARTRATE_MEAS_UUID 0x2A37 // Heart Rate Measurement +#define BODY_SENSOR_LOC_UUID 0x2A38 // Body Sensor Location +#define HEARTRATE_CTRL_PT_UUID 0x2A39 // Heart Rate Control Point +#define NETWORK_AVAIL_UUID 0x2A3E // Network Availability +#define ALERT_STATUS_UUID 0x2A3F // Alert Status +#define RINGER_CTRL_PT_UUID 0x2A40 // Ringer Control Point +#define RINGER_SETTING_UUID 0x2A41 // Ringer Setting +#define ALERT_CAT_ID_BMASK_UUID 0x2A42 // Alert Category ID Bit Mask +#define ALERT_CAT_ID_UUID 0x2A43 // Alert Category ID +#define ALERT_NOTIF_CTRL_PT_UUID 0x2A44 // Alert Notification Control Point +#define UNREAD_ALERT_STATUS_UUID 0x2A45 // Unread Alert Status +#define NEW_ALERT_UUID 0x2A46 // New Alert +#define SUP_NEW_ALERT_CAT_UUID 0x2A47 // Supported New Alert Category +#define SUP_UNREAD_ALERT_CAT_UUID 0x2A48 // Supported Unread Alert Category +#define BLOODPRESSURE_FEATURE_UUID 0x2A49 // Blood Pressure Feature +#define HID_INFORMATION_UUID 0x2A4A // HID Information +#define REPORT_MAP_UUID 0x2A4B // Report Map +#define HID_CTRL_PT_UUID 0x2A4C // HID Control Point +#define REPORT_UUID 0x2A4D // Report +#define PROTOCOL_MODE_UUID 0x2A4E // Protocol Mode +#define SCAN_INTERVAL_WINDOW_UUID 0x2A4F // Scan Interval Window +#define PNP_ID_UUID 0x2A50 // PnP ID +#define GLUCOSE_FEATURE_UUID 0x2A51 // Glucose Feature +#define RECORD_CTRL_PT_UUID 0x2A52 // Record Access Control Point +#define RSC_MEAS_UUID 0x2A53 // RSC Measurement +#define RSC_FEATURE_UUID 0x2A54 // RSC Feature +#define SC_CTRL_PT_UUID 0x2A55 // SC Control Point +#define CSC_MEAS_UUID 0x2A5B // CSC Measurement +#define CSC_FEATURE_UUID 0x2A5C // CSC Feature +#define SENSOR_LOC_UUID 0x2A5D // Sensor Location +#define CYCPWR_MEAS_UUID 0x2A63 // Cycling Power Measurement +#define CYCPWR_VECTOR_UUID 0x2A64 // Cycling Power Vector +#define CYCPWR_FEATURE_UUID 0x2A65 // Cycling Power Feature +#define CYCPWR_CTRL_PT_UUID 0x2A66 // Cycling Power Control Point +#define LOC_SPEED_UUID 0x2A67 // Location and Speed +#define NAV_UUID 0x2A68 // Navigation +#define POS_QUALITY_UUID 0x2A69 // Position Quality +#define LN_FEATURE_UUID 0x2A6A // LN Feature +#define LN_CTRL_PT_UUID 0x2A6B // LN Control Point +#define ELE_UUID 0x2A6C // Elevation +#define PRESSURE_UUID 0x2A6D // Pressure +#define TEMP_UUID 0x2A6E // Temperature +#define HUMI_UUID 0x2A6F // Humidity +#define TRUE_WIND_SPEED_UUID 0x2A70 // True Wind Speed +#define TRUE_WIND_DIRECTION_UUID 0x2A71 // True Wind Direction +#define URI_UUID 0x2AB6 // URI +#define MEDIA_STATE_UUID 0x2BA3 // Media State +#define MEDIA_CTRL_PT_UUID 0x2BA4 // Media Control Point +#define MEDIA_CTRL_PT_OS_UUID 0x2BA5 // Media Control Point Opcodes Supported +#define CALL_STATE_UUID 0x2BBD // Call State +#define CALL_CTRL_PT_UUID 0x2BBE // Call Control Point +#define CALL_CTRL_PT_OO_UUID 0x2BBF // Call Control Point Optional Opcodes +#define TERM_REASON_UUID 0x2BC0 // Termination Reason +#define INCOMING_CALL_UUID 0x2BC1 // Incoming Call +#define MUTE_UUID 0x2BC3 // Mute + +/** + * GATT Unit UUIDs + */ +#define GATT_UNITLESS_UUID 0x2700 // unitless +#define GATT_UNIT_LENGTH_METER_UUID 0x2701 // m, m +#define GATT_UNIT_MASS_KGRAM_UUID 0x2702 // kg, kg +#define GATT_UNIT_TIME_SECOND_UUID 0x2703 // s, s +#define GATT_UNIT_ELECTRIC_CURRENT_A_UUID 0x2704 // A, A +#define GATT_UNIT_THERMODYN_TEMP_K_UUID 0x2705 // K, K +#define GATT_UNIT_AMOUNT_SUBSTANCE_M_UUID 0x2706 // mol, mol +#define GATT_UNIT_LUMINOUS_INTENSITY_C_UUID 0x2707 // cd, cd + +#define GATT_UNIT_AREA_SQ_MTR_UUID 0x2710 // m^2, m^2 +#define GATT_UNIT_VOLUME_CUBIC_MTR_UUID 0x2711 // m^3, m^3 +#define GATT_UNIT_VELOCITY_MPS_UUID 0x2712 // m/s, m s^-1 +#define GATT_UNIT_ACCELERATION_MPS_SQ_UUID 0x2713 // m/s^2, m s^-2 +#define GATT_UNIT_WAVENUMBER_RM_UUID 0x2714 // ? m^-1 +#define GATT_UNIT_DENSITY_KGPCM_UUID 0x2715 // p, kg m^-3 +#define GATT_UNIT_SURFACE_DENSITY_KGPSM_UUID 0x2716 // pA, kg m^-2 +#define GATT_UNIT_SPECIFIC_VOLUME_CMPKG_UUID 0x2717 // v, m^3 kg^-1 +#define GATT_UNIT_CURRENT_DENSITY_APSM_UUID 0x2718 // j, A m^-2 +#define GATT_UNIT_MAG_FIELD_STRENGTH_UUID 0x2719 // H, A m +#define GATT_UNIT_AMOUNT_CONC_MPCM_UUID 0x271A // c, mol m^-3 +#define GATT_UNIT_MASS_CONC_KGPCM_UUID 0x271B // c, kg m^-3 +#define GATT_UNIT_LUMINANCE_CPSM_UUID 0x271C // Lv, cd m^-2 +#define GATT_UNIT_REFRACTIVE_INDEX_UUID 0x271D // n, 1 +#define GATT_UNIT_RELATIVE_PERMEABLILTY_UUID 0x271E // u, 1 +#define GATT_UNIT_PLANE_ANGLE_RAD_UUID 0x2720 // rad, m m-1 +#define GATT_UNIT_SOLID_ANGLE_STERAD_UUID 0x2721 // sr, m2 m-2 +#define GATT_UNIT_FREQUENCY_HTZ_UUID 0x2722 // Hz, s-1 +#define GATT_UNIT_FORCE_NEWTON_UUID 0x2723 // N, m kg s-2 +#define GATT_UNIT_PRESSURE_PASCAL_UUID 0x2724 // Pa, N/m2 = m2 kg s-2 +#define GATT_UNIT_ENERGY_JOULE_UUID 0x2725 // J, N m = m2 kg s-2 +#define GATT_UNIT_POWER_WATT_UUID 0x2726 // W, J/s = m2 kg s-3 +#define GATT_UNIT_E_CHARGE_C_UUID 0x2727 // C, sA +#define GATT_UNIT_E_POTENTIAL_DIF_V_UUID 0x2728 // V, W/A = m2 kg s-3 A-1 + +#define GATT_UNIT_CELSIUS_TEMP_DC_UUID 0x272F // oC, t/oC = T/K - 273.15 + +#define GATT_UNIT_TIME_MINUTE_UUID 0x2760 // min, 60 s +#define GATT_UNIT_TIME_HOUR_UUID 0x2761 // h, 3600 s +#define GATT_UNIT_TIME_DAY_UUID 0x2762 // d, 86400 s +#define GATT_UNIT_PLANE_ANGLE_DEGREE_UUID 0x2763 // o, (pi/180) rad +#define GATT_UNIT_PLANE_ANGLE_MINUTE_UUID 0x2764 // ', (pi/10800) rad +#define GATT_UNIT_PLANE_ANGLE_SECOND_UUID 0x2765 // '', (pi/648000) rad +#define GATT_UNIT_AREA_HECTARE_UUID 0x2766 // ha, 10^4 m^2 +#define GATT_UNIT_VOLUME_LITRE_UUID 0x2767 // l, 10^-3 m^3 +#define GATT_UNIT_MASS_TONNE_UUID 0x2768 // t, 10^3 kg + +#define GATT_UINT_LENGTH_YARD_UUID 0x27A0 // yd, 0.9144 m +#define GATT_UNIT_LENGTH_PARSEC_UUID 0x27A1 // pc, 3.085678 ?1016 m +#define GATT_UNIT_LENGTH_INCH_UUID 0x27A2 // in, 0.0254 m +#define GATT_UNIT_LENGTH_FOOT_UUID 0x27A3 // ft, 0.3048 m +#define GATT_UNIT_LENGTH_MILE_UUID 0x27A4 // mi, 1609.347 m +#define GATT_UNIT_PRESSURE_PFPSI_UUID 0x27A5 // psi, 6.894757 ?103 Pa +#define GATT_UNIT_VELOCITY_KMPH_UUID 0x27A6 // km/h, 0.2777778 m^s-1 +#define GATT_UNIT_VELOCITY_MPH_UUID 0x27A7 // mi/h, 0.44704 m^ s-1 +#define GATT_UNIT_ANGULAR_VELOCITY_RPM_UUID 0x27A8 // r/min, 0.1047198 rad s-1 +#define GATT_UNIT_ENERGY_GCAL_UUID 0x27A9 // energy (gram calorie) +#define GATT_UNIT_ENERGY_KCAL_UUID 0x27AA // kcal, 4190.02 J +#define GATT_UNIT_ENERGY_KWH_UUID 0x27AB // kWh, 3600000 J +#define GATT_UNIT_THERMODYN_TEMP_DF_UUID 0x27AC // oF, t/oF = T/K ?1.8 - 459.67 +#define GATT_UNIT_PERCENTAGE_UUID 0x27AD // percentage,% +#define GATT_UNIT_PER_MILE_UUID 0x27AE // per mille +#define GATT_UNIT_PERIOD_BPM_UUID 0x27AF // period (beats per minute),BPM +#define GATT_UNIT_E_CHARGE_AH_UUID 0x27B0 // electric charge (ampere hours) +#define GATT_UNIT_MASS_DENSITY_MGPD_UUID 0x27B1 // mass density (milligram per decilitre) +#define GATT_UNIT_MASS_DENSITY_MMPL_UUID 0x27B2 // mass density (millimole per litre) +#define GATT_UNIT_TIME_YEAR_UUID 0x27B3 // time (year) +#define GATT_UNIT_TIME_MONTH_UUID 0x27B4 // time (month) + +/*********************************Messages IDs*********************************/ +// GATT - Messages IDs +#define GATT_MSG_EVENT 0xB0 //!< Incoming GATT message +#define GATT_SERV_MSG_EVENT 0xB1 //!< Incoming GATT ServApp message +// GAP - Messages IDs +#define GAP_MSG_EVENT 0xD0 //!< Incoming GAP message +/************************************ATT***************************************/ +#define ATT_MTU_SIZE 23 //!< Minimum ATT MTU size +#define ATT_MAX_MTU_SIZE 512 //!< Maximum ATT MTU size +// ATT Methods +#define ATT_ERROR_RSP 0x01 //!< ATT Error Response +#define ATT_EXCHANGE_MTU_REQ 0x02 //!< ATT Exchange MTU Request +#define ATT_EXCHANGE_MTU_RSP 0x03 //!< ATT Exchange MTU Response +#define ATT_FIND_INFO_REQ 0x04 //!< ATT Find Information Request +#define ATT_FIND_INFO_RSP 0x05 //!< ATT Find Information Response +#define ATT_FIND_BY_TYPE_VALUE_REQ 0x06 //!< ATT Find By Type Value Request +#define ATT_FIND_BY_TYPE_VALUE_RSP 0x07 //!< ATT Find By Type Value Response +#define ATT_READ_BY_TYPE_REQ 0x08 //!< ATT Read By Type Request +#define ATT_READ_BY_TYPE_RSP 0x09 //!< ATT Read By Type Response +#define ATT_READ_REQ 0x0a //!< ATT Read Request +#define ATT_READ_RSP 0x0b //!< ATT Read Response +#define ATT_READ_BLOB_REQ 0x0c //!< ATT Read Blob Request +#define ATT_READ_BLOB_RSP 0x0d //!< ATT Read Blob Response +#define ATT_READ_MULTI_REQ 0x0e //!< ATT Read Multiple Request +#define ATT_READ_MULTI_RSP 0x0f //!< ATT Read Multiple Response +#define ATT_READ_BY_GRP_TYPE_REQ 0x10 //!< ATT Read By Group Type Request +#define ATT_READ_BY_GRP_TYPE_RSP 0x11 //!< ATT Read By Group Type Response +#define ATT_WRITE_REQ 0x12 //!< ATT Write Request +#define ATT_WRITE_RSP 0x13 //!< ATT Write Response +#define ATT_PREPARE_WRITE_REQ 0x16 //!< ATT Prepare Write Request +#define ATT_PREPARE_WRITE_RSP 0x17 //!< ATT Prepare Write Response +#define ATT_EXECUTE_WRITE_REQ 0x18 //!< ATT Execute Write Request +#define ATT_EXECUTE_WRITE_RSP 0x19 //!< ATT Execute Write Response +#define ATT_HANDLE_VALUE_NOTI 0x1b //!< ATT Handle Value Notification +#define ATT_HANDLE_VALUE_IND 0x1d //!< ATT Handle Value Indication +#define ATT_HANDLE_VALUE_CFM 0x1e //!< ATT Handle Value Confirmation + +#define ATT_WRITE_CMD 0x52 //!< ATT Write Command +#define ATT_SIGNED_WRITE_CMD 0xD2 //!< ATT Signed Write Command + +// ATT Error Codes +#define ATT_ERR_INVALID_HANDLE 0x01 //!< The attribute handle given was not valid on this server +#define ATT_ERR_READ_NOT_PERMITTED 0x02 //!< The attribute cannot be read +#define ATT_ERR_WRITE_NOT_PERMITTED 0x03 //!< The attribute cannot be written +#define ATT_ERR_INVALID_PDU 0x04 //!< The attribute PDU was invalid +#define ATT_ERR_INSUFFICIENT_AUTHEN 0x05 //!< The attribute requires authentication before it can be read or written +#define ATT_ERR_UNSUPPORTED_REQ 0x06 //!< Attribute server does not support the request received from the client +#define ATT_ERR_INVALID_OFFSET 0x07 //!< Offset specified was past the end of the attribute +#define ATT_ERR_INSUFFICIENT_AUTHOR 0x08 //!< The attribute requires authorization before it can be read or written +#define ATT_ERR_PREPARE_QUEUE_FULL 0x09 //!< Too many prepare writes have been queued +#define ATT_ERR_ATTR_NOT_FOUND 0x0a //!< No attribute found within the given attribute handle range +#define ATT_ERR_ATTR_NOT_LONG 0x0b //!< The attribute cannot be read using the Read Blob Request +#define ATT_ERR_INSUFFICIENT_KEY_SIZE 0x0c //!< The Encryption Key Size used for encrypting this link is insufficient +#define ATT_ERR_INVALID_VALUE_SIZE 0x0d //!< The attribute value length is invalid for the operation +#define ATT_ERR_UNLIKELY 0x0e //!< The attribute request that was requested has encountered an error that was very unlikely, and therefore could not be completed as requested +#define ATT_ERR_INSUFFICIENT_ENCRYPT 0x0f //!< The attribute requires encryption before it can be read or written +#define ATT_ERR_UNSUPPORTED_GRP_TYPE 0x10 //!< The attribute type is not a supported grouping attribute as defined by a higher layer specification +#define ATT_ERR_INSUFFICIENT_RESOURCES 0x11 //!< Insufficient Resources to complete the request +#define ATT_ERR_INVALID_VALUE 0x80 //!< The attribute value is invalid for the operation + +/********************************************************************* + * ATT Find By Type Value Response macros + */ +// Attribute Handle and Group End Handle pair indexes +#define ATT_ATTR_HANDLE_IDX( i ) ( (i) * (2 + 2) ) +#define ATT_GRP_END_HANDLE_IDX( i ) ( ATT_ATTR_HANDLE_IDX( (i) ) + 2 ) + +#define ATT_ATTR_HANDLE( info, i ) ( BUILD_UINT16( (info)[ATT_ATTR_HANDLE_IDX((i))], \ + (info)[ATT_ATTR_HANDLE_IDX((i))+1] ) ) +#define ATT_GRP_END_HANDLE( info, i ) ( BUILD_UINT16( (info)[ATT_GRP_END_HANDLE_IDX((i))], \ + (info)[ATT_GRP_END_HANDLE_IDX((i))+1] ) ) +/** @defgroup ATT_MSG_EVENT_DEFINES ATT Message Event IDs + * @{ + */ +#define ATT_FLOW_CTRL_VIOLATED_EVENT 0x7E //!< Sent when ATT flow control is violated on a connection. This event is sent as an TMOS message defined as attFlowCtrlViolatedEvt_t. +#define ATT_MTU_UPDATED_EVENT 0x7F //!< Sent when MTU is updated for a connection. This event is sent as an TMOS message defined as attMtuUpdatedEvt_t. +/** @} End ATT_MSG_EVENT_DEFINES */ + +/*** Opcode fields: bitmasks ***/ +// Size of 16-bit Bluetooth UUID +#define ATT_BT_UUID_SIZE 2 +// Size of 128-bit UUID +#define ATT_UUID_SIZE 16 + +/******************************** GATT ***********************************/ + +// GATT Attribute Access Permissions Bit Fields +#define GATT_PERMIT_READ 0x01 //!< Attribute is Readable +#define GATT_PERMIT_WRITE 0x02 //!< Attribute is Writable +#define GATT_PERMIT_AUTHEN_READ 0x04 //!< Read requires Authentication +#define GATT_PERMIT_AUTHEN_WRITE 0x08 //!< Write requires Authentication +#define GATT_PERMIT_AUTHOR_READ 0x10 //!< Read requires Authorization +#define GATT_PERMIT_AUTHOR_WRITE 0x20 //!< Write requires Authorization +#define GATT_PERMIT_ENCRYPT_READ 0x40 //!< Read requires Encryption +#define GATT_PERMIT_ENCRYPT_WRITE 0x80 //!< Write requires Encryption + +// GATT Characteristic Properties Bit Fields +#define GATT_PROP_BCAST 0x01 //!< Permits broadcasts of the Characteristic Value +#define GATT_PROP_READ 0x02 //!< Permits reads of the Characteristic Value +#define GATT_PROP_WRITE_NO_RSP 0x04 //!< Permits writes of the Characteristic Value without response +#define GATT_PROP_WRITE 0x08 //!< Permits writes of the Characteristic Value with response +#define GATT_PROP_NOTIFY 0x10 //!< Permits notifications of a Characteristic Value without acknowledgement +#define GATT_PROP_INDICATE 0x20 //!< Permits indications of a Characteristic Value with acknowledgement +#define GATT_PROP_AUTHEN 0x40 //!< Permits signed writes to the Characteristic Value +#define GATT_PROP_EXTENDED 0x80 //!< Additional characteristic properties are defined in the Characteristic Extended Properties Descriptor + +// GATT local read or write operation +#define GATT_LOCAL_READ 0xFF +#define GATT_LOCAL_WRITE 0xFE + +// GATT Encryption Key Size Limits +#define GATT_MIN_ENCRYPT_KEY_SIZE 7 //!< GATT Minimum Encryption Key Size +#define GATT_MAX_ENCRYPT_KEY_SIZE 16 //!< GATT Maximum Encryption Key Size + +// Attribute handle definitions +#define GATT_INVALID_HANDLE 0x0000 // Invalid attribute handle +#define GATT_MIN_HANDLE 0x0001 // Minimum attribute handle +#define GATT_MAX_HANDLE 0xFFFF // Maximum attribute handle + +#define GATT_MAX_MTU 0xFFFF // Maximum MTU size + +// Attribute Access Permissions +#define gattPermitRead( a ) ( (a) & GATT_PERMIT_READ ) +#define gattPermitWrite( a ) ( (a) & GATT_PERMIT_WRITE ) +#define gattPermitAuthenRead( a ) ( (a) & GATT_PERMIT_AUTHEN_READ ) +#define gattPermitAuthenWrite( a ) ( (a) & GATT_PERMIT_AUTHEN_WRITE ) +#define gattPermitAuthorRead( a ) ( (a) & GATT_PERMIT_AUTHOR_READ ) +#define gattPermitAuthorWrite( a ) ( (a) & GATT_PERMIT_AUTHOR_WRITE ) +#define gattPermitEncryptRead( a ) ( (a) & GATT_PERMIT_ENCRYPT_READ ) +#define gattPermitEncryptWrite( a ) ( (a) & GATT_PERMIT_ENCRYPT_WRITE ) + +// Check for different UUID types +#define gattPrimaryServiceType( t ) ( ATT_CompareUUID( primaryServiceUUID, ATT_BT_UUID_SIZE, (t).uuid, (t).len ) ) +#define gattSecondaryServiceType( t ) ( ATT_CompareUUID( secondaryServiceUUID, ATT_BT_UUID_SIZE, (t).uuid, (t).len ) ) +#define gattCharacterType( t ) ( ATT_CompareUUID( characterUUID, ATT_BT_UUID_SIZE, (t).uuid, (t).len ) ) +#define gattIncludeType( t ) ( ATT_CompareUUID( includeUUID, ATT_BT_UUID_SIZE, (t).uuid, (t).len ) ) +#define gattServiceType( t ) ( gattPrimaryServiceType( (t) ) || gattSecondaryServiceType( (t) ) ) +#define GATT_MAX_NUM_CONN (4) + +// GATT Client Characteristic Configuration Bit Fields +#define GATT_CLIENT_CFG_NOTIFY 0x0001 //!< The Characteristic Value shall be notified +#define GATT_CLIENT_CFG_INDICATE 0x0002 //!< The Characteristic Value shall be indicated + +#define GATT_CFG_NO_OPERATION 0x0000 // No operation + +// All profile services bit fields +#define GATT_ALL_SERVICES 0xFFFFFFFF + +// The number of attribute records in a given attribute table +#define GATT_NUM_ATTRS( attrs ) ( sizeof( attrs ) / sizeof( gattAttribute_t ) ) + +// The handle of a service is the handle of the first attribute +#define GATT_SERVICE_HANDLE( attrs ) ( (attrs)[0].handle ) + +// The handle of the first included service (i = 1) is the value of the second attribute +#define GATT_INCLUDED_HANDLE( attrs, i ) ( *((uint16_t *)((attrs)[(i)].pValue)) ) + +// Client Characteristic Configuration table (from CCC attribute value pointer) +#define GATT_CCC_TBL( pValue ) ( (gattCharCfg_t *)(*((PTR_TYPE)(&pValue)))) + +/************************************ GAP *************************************/ +#define GAP_MSG_EVENT_DEFINES //!< GAP type of command +#define GAP_DEVICE_INIT_DONE_EVENT 0x00 //!< Sent when the Device Initialization is complete. This event is sent as an tmos message defined as gapDeviceInitDoneEvent_t. +#define GAP_DEVICE_DISCOVERY_EVENT 0x01 //!< Sent when the Device Discovery Process is complete. This event is sent as an tmos message defined as gapDevDiscEvent_t. +#define GAP_ADV_DATA_UPDATE_DONE_EVENT 0x02 //!< Sent when the Advertising Data or SCAN_RSP Data has been updated. This event is sent as an tmos message defined as gapAdvDataUpdateEvent_t. +#define GAP_MAKE_DISCOVERABLE_DONE_EVENT 0x03 //!< Sent when the Make Discoverable Request is complete. This event is sent as an tmos message defined as gapMakeDiscoverableRspEvent_t. +#define GAP_END_DISCOVERABLE_DONE_EVENT 0x04 //!< Sent when the Advertising has ended. This event is sent as an tmos message defined as gapEndDiscoverableRspEvent_t. +#define GAP_LINK_ESTABLISHED_EVENT 0x05 //!< Sent when the Establish Link Request is complete. This event is sent as an tmos message defined as gapEstLinkReqEvent_t. +#define GAP_LINK_TERMINATED_EVENT 0x06 //!< Sent when a connection was terminated. This event is sent as an tmos message defined as gapTerminateLinkEvent_t. +#define GAP_LINK_PARAM_UPDATE_EVENT 0x07 //!< Sent when an Update Parameters Event is received. This event is sent as an tmos message defined as gapLinkUpdateEvent_t. +#define GAP_RANDOM_ADDR_CHANGED_EVENT 0x08 //!< Sent when a random address was changed. This event is sent as an tmos message defined as gapRandomAddrEvent_t. +#define GAP_SIGNATURE_UPDATED_EVENT 0x09 //!< Sent when the device's signature counter is updated. This event is sent as an tmos message defined as gapSignUpdateEvent_t. +#define GAP_AUTHENTICATION_COMPLETE_EVENT 0x0A //!< Sent when the Authentication (pairing) process is complete. This event is sent as an tmos message defined as gapAuthCompleteEvent_t. +#define GAP_PASSKEY_NEEDED_EVENT 0x0B //!< Sent when a Passkey is needed. This is part of the pairing process. This event is sent as an tmos message defined as gapPasskeyNeededEvent_t. +#define GAP_SLAVE_REQUESTED_SECURITY_EVENT 0x0C //!< Sent when a Slave Security Request is received. This event is sent as an tmos message defined as gapSlaveSecurityReqEvent_t. +#define GAP_DEVICE_INFO_EVENT 0x0D //!< Sent during the Device Discovery Process when a device is discovered. This event is sent as an tmos message defined as gapDeviceInfoEvent_t. +#define GAP_BOND_COMPLETE_EVENT 0x0E //!< Sent when the bonding process is complete. This event is sent as an tmos message defined as gapBondCompleteEvent_t. +#define GAP_PAIRING_REQ_EVENT 0x0F //!< Sent when an unexpected Pairing Request is received. This event is sent as an tmos message defined as gapPairingReqEvent_t. +#define GAP_DIRECT_DEVICE_INFO_EVENT 0x10 //!< Sent when a direct Advertising Data is received. This event is sent as an tmos message defined as gapDirectDeviceInfoEvent_t. +#define GAP_PHY_UPDATE_EVENT 0x11 //!< Sent when a PHY Update Event is received. This event is sent as an tmos message defined as gapLinkUpdateEvent_t. +#define GAP_SCAN_REQUEST_EVENT 0x19 //!< Sent when a SCAN_REQ PDU or an AUX_SCAN_REQ PDU has been received by the advertiser. This event is sent as an tmos message defined as gapScanReqReseiveEvent_t. + +// GAP_PROFILE_ROLE_DEFINES GAP Profile Roles +#define GAP_PROFILE_PERIPHERAL 0x04 //!< A device that accepts the establishment of an LE physical link using the connection establishment procedure + +// GAP Status Return Values - returned as bStatus_t +#define bleGAPUserCanceled 0x30 //!< The user canceled the task +#define bleGAPConnNotAcceptable 0x31 //!< The connection was not accepted +#define bleGAPBondRejected 0x32 //!< The bond information was rejected. +#define bleGAPExpiredCanceled 0x33 //!< The duration has expired + +#define GAP_DEVICE_NAME_LEN 21 //!< Excluding null-terminate char +#define GAP_DEVICE_NAME_MAX_LEN 248 //!< maximum length of device name + + +/*------------------------------------------------------------------- + * CONSTANTS + */ +/** @defgroup GAP_CONN_HANDLE_DEFINES GAP Special Connection Handles + * Used by GAP_TerminateLinkReq() + * @{ + */ +#define GAP_CONNHANDLE_INIT 0xFFFE //!< terminates a link create +#define GAP_CONNHANDLE_ALL 0xFFFF //!< terminates all links for the matching task ID. +/** @} End GAP_CONN_HANDLE_DEFINES */ + +// Privacy Flag States +#define GAP_PRIVACY_DISABLED 0x00 +#define GAP_PRIVACY_ENABLED 0x01 + +// GAP GATT Server Parameters used with GGS Get/Set Parameter and Application's Callback functions +#define GGS_DEVICE_NAME_ATT 0 //!< RW uint8_t[GAP_DEVICE_NAME_LEN] +#define GGS_APPEARANCE_ATT 1 //!< RW uint16_t +#define GGS_PERI_PRIVACY_FLAG_ATT 2 //!< RW uint8_t +#define GGS_RECONNCT_ADDR_ATT 3 //!< RW uint8_t[B_ADDR_LEN] +#define GGS_PERI_CONN_PARAM_ATT 4 //!< RW sizeof(gapPeriConnectParams_t) +#define GGS_PERI_PRIVACY_FLAG_PROPS 5 //!< RW uint8_t +#define GGS_W_PERMIT_DEVICE_NAME_ATT 6 //!< W uint8_t +#define GGS_W_PERMIT_APPEARANCE_ATT 7 //!< W uint8_t +#define GGS_W_PERMIT_PRIVACY_FLAG_ATT 8 //!< W uint8_t +#define GGS_CENT_ADDR_RES_ATT 9 //!< RW uint8_t +// GAP Services bit fields +#define GAP_SERVICE 0x00000001 + +// GAP_PARAMETER_ID_DEFINES GAP Parameter IDs +// Timers +#define TGAP_GEN_DISC_ADV_MIN 0 //!< Minimum time to remain advertising, when in Discoverable mode.Default 0-turns off the timeout. (n * 0.625 mSec). +#define TGAP_LIM_ADV_TIMEOUT 1 //!< Maximum time to remain advertising, when in Limited Discoverable mode.Default 180 seconds. (n * 1 seconds) + +// when in General Discovery process +#define TGAP_DISC_ADV_INT_MIN 2 //!< Minimum advertising interval.Default 160. (n * 0.625 mSec) +#define TGAP_DISC_ADV_INT_MAX 3 //!< Maximum advertising interval.Default 160. (n * 0.625 mSec) + +// Proprietary +#define TGAP_SM_TIMEOUT 4 //!< SM Message Timeout (milliseconds). Default 30 seconds. +#define TGAP_SM_MIN_KEY_LEN 5 //!< SM Minimum Key Length supported. Default 7. +#define TGAP_SM_MAX_KEY_LEN 6 //!< SM Maximum Key Length supported. Default 16. +#define TGAP_FILTER_ADV_REPORTS 7 //!< Filter duplicate advertising reports. Default TRUE. +#define TGAP_AUTH_TASK_ID 8 //!< Task ID override for Task Authentication control (for stack internal use only) + +// v5.x +#define TGAP_ADV_TX_POWER 9 //!< Indicates the maximum power level Range: -127 N +126 Units: dBm.Default 127(Host has no preference). +#define TGAP_ADV_SCAN_REQ_NOTIFY 10 //!< bit0:Scan request notifications enabled.Default 0-disabled. +#define TGAP_ADV_RSP_RSSI_MIN 11 //!< The minimum RSSI for advertising to send scanning response. Default -127. + +#define TGAP_PARAMID_MAX 12 //!< ID MAX-valid Parameter ID + +// GAP_DEVDISC_MODE_DEFINES GAP Device Discovery Modes +#define DEVDISC_MODE_NONDISCOVERABLE 0x00 //!< No discoverable setting +#define DEVDISC_MODE_GENERAL 0x01 //!< General Discoverable devices +#define DEVDISC_MODE_LIMITED 0x02 //!< Limited Discoverable devices +#define DEVDISC_MODE_ALL 0x03 //!< Not filtered + +// GAP_ADDR_TYPE_DEFINES GAP Address Types +#define ADDRTYPE_PUBLIC 0x00 //!< Use the BD_ADDR +#define ADDRTYPE_STATIC 0x01 //!< Static address +#define ADDRTYPE_PRIVATE_NONRESOLVE 0x02 //!< Generate Non-Resolvable Private Address +#define ADDRTYPE_PRIVATE_RESOLVE 0x03 //!< Generate Resolvable Private Address + +// GAP Advertising Event Types +#define GAP_ADTYPE_ADV_IND 0x00 //!< Connectable undirected event typet +#define GAP_ADTYPE_ADV_HDC_DIRECT_IND 0x01 //!< Connectable high duty cycle directed event type +#define GAP_ADTYPE_ADV_SCAN_IND 0x02 //!< Scannable undirected event type +#define GAP_ADTYPE_ADV_NONCONN_IND 0x03 //!< Non-Connectable undirected event type +#define GAP_ADTYPE_ADV_LDC_DIRECT_IND 0x04 //!< Connectable low duty cycle directed event type + +// GAP Advertising PHY VAL TYPE(GAP_PHY_VAL_TYPE) +#define GAP_PHY_VAL_TYPE +#define GAP_PHY_VAL_LE_1M 0x01 +#define GAP_PHY_VAL_LE_2M 0x02 + +// GAP Scan PHY VAL TYPE(GAP_PHY_BIT_TYPE) +#define GAP_PHY_BIT_TYPE +#define GAP_PHY_BIT_LE_1M (1<<0) +#define GAP_PHY_BIT_LE_2M (1<<1) +#define GAP_PHY_BIT_ALL (GAP_PHY_BIT_LE_1M|GAP_PHY_BIT_LE_2M) + + +// GAP Advertising Report Event Types +#define GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES +// bit0 to 4 ADVERTISEMENT_TYPE:defined for gapExtAdvDeviceInfoEvent_t Advertisement data type +#define GAP_ADRPT_ADV_IND 0x00 //!< Connectable undirected advertisement +#define GAP_ADRPT_ADV_DIRECT_IND 0x01 //!< Connectable directed advertisement +#define GAP_ADRPT_ADV_SCAN_IND 0x02 //!< Scannable undirected advertisement +#define GAP_ADRPT_ADV_NONCONN_IND 0x03 //!< Non-Connectable undirected advertisement +#define GAP_ADRPT_SCAN_RSP 0x04 //!< Scan Response + +// GAP_FILTER_POLICY_DEFINES GAP Advertiser Filter Scan Parameters +#define GAP_FILTER_POLICY_ALL 0x00 //!< Allow Scan Request from Any, Allow Connect Request from Any (default). +#define GAP_FILTER_POLICY_WHITE_SCAN 0x01 //!< Allow Scan Request from White List Only, Allow Connect from Any +#define GAP_FILTER_POLICY_WHITE_CON 0x02 //!< Allow Scan Request from Any, Connect from White List Only +#define GAP_FILTER_POLICY_WHITE 0x03 //!< Allow Scan Request and Connect from White List Only + +// Maximum Pairing Passcode/Passkey value. Range of a passkey can be 0 - 999,999. +#define GAP_PASSCODE_MAX 999999 + +/** Sign Counter Initialized - Sign counter hasn't been used yet. Used when setting up + * a connection's signing information. + */ +#define GAP_INIT_SIGN_COUNTER 0xFFFFFFFF + +// GAP_ADVCHAN_DEFINES GAP Advertisement Channel Map +#define GAP_ADVCHAN_37 0x01 //!< Advertisement Channel 37 +#define GAP_ADVCHAN_38 0x02 //!< Advertisement Channel 38 +#define GAP_ADVCHAN_39 0x04 //!< Advertisement Channel 39 +#define GAP_ADVCHAN_ALL (GAP_ADVCHAN_37 | GAP_ADVCHAN_38 | GAP_ADVCHAN_39) //!< All Advertisement Channels Enabled + +// GAP_ADTYPE_DEFINES GAP Advertisement Data Types +#define GAP_ADTYPE_FLAGS 0x01 //!< Discovery Mode: @ref GAP_ADTYPE_FLAGS_MODES +#define GAP_ADTYPE_16BIT_MORE 0x02 //!< Service: More 16-bit UUIDs available +#define GAP_ADTYPE_16BIT_COMPLETE 0x03 //!< Service: Complete list of 16-bit UUIDs +#define GAP_ADTYPE_32BIT_MORE 0x04 //!< Service: More 32-bit UUIDs available +#define GAP_ADTYPE_32BIT_COMPLETE 0x05 //!< Service: Complete list of 32-bit UUIDs +#define GAP_ADTYPE_128BIT_MORE 0x06 //!< Service: More 128-bit UUIDs available +#define GAP_ADTYPE_128BIT_COMPLETE 0x07 //!< Service: Complete list of 128-bit UUIDs +#define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08 //!< Shortened local name +#define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09 //!< Complete local name +#define GAP_ADTYPE_POWER_LEVEL 0x0A //!< TX Power Level: -127 to +127 dBm +#define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D //!< Simple Pairing OOB Tag: Class of device (3 octets) +#define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E //!< Simple Pairing OOB Tag: Simple Pairing Hash C (16 octets) +#define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F //!< Simple Pairing OOB Tag: Simple Pairing Randomizer R (16 octets) +#define GAP_ADTYPE_SM_TK 0x10 //!< Security Manager TK Value +#define GAP_ADTYPE_SM_OOB_FLAG 0x11 //!< Security Manager OOB Flags +#define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12 //!< Min and Max values of the connection interval (2 octets Min, 2 octets Max) (0xFFFF indicates no conn interval min or max) +#define GAP_ADTYPE_SIGNED_DATA 0x13 //!< Signed Data field +#define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14 //!< Service Solicitation: list of 16-bit Service UUIDs +#define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15 //!< Service Solicitation: list of 128-bit Service UUIDs +#define GAP_ADTYPE_SERVICE_DATA 0x16 //!< Service Data - 16-bit UUID +#define GAP_ADTYPE_PUBLIC_TARGET_ADDR 0x17 //!< Public Target Address +#define GAP_ADTYPE_RANDOM_TARGET_ADDR 0x18 //!< Random Target Address +#define GAP_ADTYPE_APPEARANCE 0x19 //!< Appearance +#define GAP_ADTYPE_ADV_INTERVAL 0x1A //!< Advertising Interval +#define GAP_ADTYPE_LE_BD_ADDR 0x1B //!< LE Bluetooth Device Address +#define GAP_ADTYPE_LE_ROLE 0x1C //!< LE Role +#define GAP_ADTYPE_SIMPLE_PAIRING_HASHC_256 0x1D //!< Simple Pairing Hash C-256 +#define GAP_ADTYPE_SIMPLE_PAIRING_RANDR_256 0x1E //!< Simple Pairing Randomizer R-256 +#define GAP_ADTYPE_SERVICE_DATA_32BIT 0x20 //!< Service Data - 32-bit UUID +#define GAP_ADTYPE_SERVICE_DATA_128BIT 0x21 //!< Service Data - 128-bit UUID +#define GAP_ADTYPE_LE_SC_CONFIRMATION_VALUE 0x22 //!< LE Secure Connections Confirmation Value +#define GAP_ADTYPE_LE_SC_RANDOM_VALUE 0x23 //!< LE Secure Connections Random Value +#define GAP_ADTYPE_URI 0x24 //!< URI +#define GAP_ADTYPE_INDOOR_POSITION 0x25 //!< Indoor Positioning Service v1.0 or later +#define GAP_ADTYPE_TRAN_DISCOVERY_DATA 0x26 //!< Transport Discovery Service v1.0 or later +#define GAP_ADTYPE_SUPPORTED_FEATURES 0x27 //!< LE Supported Features +#define GAP_ADTYPE_CHANNEL_MAP_UPDATE 0x28 //!< Channel Map Update Indication +#define GAP_ADTYPE_PB_ADV 0x29 //!< PB-ADV. Mesh Profile Specification Section 5.2.1 +#define GAP_ADTYPE_MESH_MESSAGE 0x2A //!< Mesh Message. Mesh Profile Specification Section 3.3.1 +#define GAP_ADTYPE_MESH_BEACON 0x2B //!< Mesh Beacon. Mesh Profile Specification Section 3.9 +#define GAP_ADTYPE_BIG_INFO 0x2C //!< BIGInfo +#define GAP_ADTYPE_BROADCAST_CODE 0x2D //!< Broadcast_Code +#define GAP_ADTYPE_RSL_SET_IDENT 0x2E //!< Resolvable Set Identifier.Coordinated Set Identification Profile 1.0 +#define GAP_ADTYPE_ADV_INTERVAL_LONG 0x2F //!< Advertising Interval - long +#define GAP_ADTYPE_3D_INFO_DATA 0x3D //!< 3D Information Data +#define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF //!< Manufacturer Specific Data: first 2 octets contain the Company Identifier Code followed by the additional manufacturer specific data + +// GAP_ADTYPE_FLAGS_MODES GAP ADTYPE Flags Discovery Modes +#define GAP_ADTYPE_FLAGS_LIMITED 0x01 //!< Discovery Mode: LE Limited Discoverable Mode +#define GAP_ADTYPE_FLAGS_GENERAL 0x02 //!< Discovery Mode: LE General Discoverable Mode +#define GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED 0x04 //!< Discovery Mode: BR/EDR Not Supported + +// GAP_APPEARANCE_VALUES GAP Appearance Values +#define GAP_APPEARE_UNKNOWN 0x0000 //!< Unknown +#define GAP_APPEARE_GENERIC_PHONE 0x0040 //!< Generic Phone +#define GAP_APPEARE_GENERIC_COMPUTER 0x0080 //!< Generic Computer +#define GAP_APPEARE_GENERIC_WATCH 0x00C0 //!< Generic Watch +#define GAP_APPEARE_WATCH_SPORTS 0x00C1 //!< Watch: Sports Watch +#define GAP_APPEARE_GENERIC_CLOCK 0x0100 //!< Generic Clock +#define GAP_APPEARE_GENERIC_DISPLAY 0x0140 //!< Generic Display +#define GAP_APPEARE_GENERIC_RC 0x0180 //!< Generic Remote Control +#define GAP_APPEARE_GENERIC_EYE_GALSSES 0x01C0 //!< Generic Eye-glasses +#define GAP_APPEARE_GENERIC_TAG 0x0200 //!< Generic Tag +#define GAP_APPEARE_GENERIC_KEYRING 0x0240 //!< Generic Keyring +#define GAP_APPEARE_GENERIC_MEDIA_PLAYER 0x0280 //!< Generic Media Player +#define GAP_APPEARE_GENERIC_BARCODE_SCANNER 0x02C0 //!< Generic Barcode Scanner +#define GAP_APPEARE_GENERIC_THERMOMETER 0x0300 //!< Generic Thermometer +#define GAP_APPEARE_GENERIC_THERMO_EAR 0x0301 //!< Thermometer: Ear +#define GAP_APPEARE_GENERIC_HR_SENSOR 0x0340 //!< Generic Heart rate Sensor +#define GAP_APPEARE_GENERIC_HRS_BELT 0x0341 //!< Heart Rate Sensor: Heart Rate Belt +#define GAP_APPEARE_GENERIC_BLOOD_PRESSURE 0x0380 //!< Generic Blood Pressure +#define GAP_APPEARE_GENERIC_BP_ARM 0x0381 //!< Blood Pressure: Arm +#define GAP_APPEARE_GENERIC_BP_WRIST 0x0382 //!< Blood Pressure: Wrist +#define GAP_APPEARE_GENERIC_HID 0x03C0 //!< Generic Human Interface Device (HID) +#define GAP_APPEARE_HID_KEYBOARD 0x03C1 //!< HID Keyboard +#define GAP_APPEARE_HID_MOUSE 0x03C2 //!< HID Mouse +#define GAP_APPEARE_HID_JOYSTIC 0x03C3 //!< HID Joystick +#define GAP_APPEARE_HID_GAMEPAD 0x03C4 //!< HID Gamepad +#define GAP_APPEARE_HID_DIGITIZER_TYABLET 0x03C5 //!< HID Digitizer Tablet +#define GAP_APPEARE_HID_DIGITAL_CARDREADER 0x03C6 //!< HID Card Reader +#define GAP_APPEARE_HID_DIGITAL_PEN 0x03C7 //!< HID Digital Pen +#define GAP_APPEARE_HID_BARCODE_SCANNER 0x03C8 //!< HID Barcode Scanner + +/************************************gapRole***********************************/ +// GAPROLE_PROFILE_PARAMETERS GAP Role Manager Parameters +#define GAPROLE_PROFILEROLE 0x300 //!< Reading this parameter will return GAP Role type. Read Only. Size is uint8_t. +#define GAPROLE_IRK 0x301 //!< Identity Resolving Key. Read/Write. Size is uint8_t[KEYLEN]. Default is all 0, which means that the IRK will be randomly generated. +#define GAPROLE_SRK 0x302 //!< Signature Resolving Key. Read/Write. Size is uint8_t[KEYLEN]. Default is all 0, which means that the SRK will be randomly generated. +#define GAPROLE_SIGNCOUNTER 0x303 //!< Sign Counter. Read/Write. Size is uint32_t. Default is 0. +#define GAPROLE_BD_ADDR 0x304 //!< Device's Address. Read Only. Size is uint8_t[B_ADDR_LEN]. This item is read from the controller. +#define GAPROLE_ADVERT_ENABLED 0x305 //!< Enable/Disable Advertising. Read/Write. Size is uint8_t. Default is TRUE=Enabled. +#define GAPROLE_ADVERT_DATA 0x306 //!< Advertisement Data. Read/Write. Max size is B_MAX_ADV_EXT_LEN. Default to all 0. +#define GAPROLE_SCAN_RSP_DATA 0x307 //!< Scan Response Data. Read/Write. Max size is B_MAX_ADV_EXT_LEN. Defaults to all 0. +#define GAPROLE_ADV_EVENT_TYPE 0x308 //!< Advertisement Type. Read/Write. Size is uint8_t. Default is GAP_ADTYPE_ADV_IND. +#define GAPROLE_ADV_DIRECT_TYPE 0x309 //!< Direct Advertisement Address Type. Read/Write. Size is uint8_t. Default is ADDRTYPE_PUBLIC. +#define GAPROLE_ADV_DIRECT_ADDR 0x30A //!< Direct Advertisement Address. Read/Write. Size is uint8_t[B_ADDR_LEN]. Default is NULL. +#define GAPROLE_ADV_CHANNEL_MAP 0x30B //!< Which channels to advertise on. Read/Write Size is uint8_t. Default is GAP_ADVCHAN_ALL +#define GAPROLE_ADV_FILTER_POLICY 0x30C //!< Filter Policy. Ignored when directed advertising is used. Read/Write. Size is uint8_t. Default is GAP_FILTER_POLICY_ALL. +#define GAPROLE_STATE 0x30D //!< Reading this parameter will return GAP Peripheral Role State. Read Only. Size is uint8_t. +#define GAPROLE_MIN_CONN_INTERVAL 0x311 //!< Minimum Connection Interval to allow (n * 1.25ms). Range: 7.5 msec to 4 seconds (0x0006 to 0x0C80). Read/Write. Size is uint16_t. Default is 7.5 milliseconds (0x0006). +#define GAPROLE_MAX_CONN_INTERVAL 0x312 //!< Maximum Connection Interval to allow (n * 1.25ms). Range: 7.5 msec to 4 seconds (0x0006 to 0x0C80). Read/Write. Size is uint16_t. Default is 4 seconds (0x0C80). +// v5.x +#define GAPROLE_PHY_TX_SUPPORTED 0x313 //!< The transmitter PHYs that the Host prefers the Controller to use.Default is GAP_PHY_BIT_ALL +#define GAPROLE_PHY_RX_SUPPORTED 0x314 //!< The receiver PHYs that the Host prefers the Controller to use.Default is GAP_PHY_BIT_ALL + +/************************************GAPBOND***********************************/ +// GAPBOND_PROFILE_PARAMETERS GAP Bond Manager Parameters +#define GAPBOND_PERI_PAIRING_MODE 0x400 //!< Pairing Mode: @ref GAPBOND_PAIRING_MODE_DEFINES. Read/Write. Size is uint8_t. Default is GAPBOND_PAIRING_MODE_WAIT_FOR_REQ. +#define GAPBOND_PERI_MITM_PROTECTION 0x401 //!< Man-In-The-Middle (MITM) basically turns on Passkey protection in the pairing algorithm. Read/Write. Size is uint8_t. Default is 0(disabled). +#define GAPBOND_PERI_IO_CAPABILITIES 0x402 //!< I/O capabilities. Read/Write. Size is uint8_t. Default is GAPBOND_IO_CAP_DISPLAY_ONLY @ref GAPBOND_IO_CAP_DEFINES. +#define GAPBOND_PERI_OOB_ENABLED 0x403 //!< OOB data available for pairing algorithm. Read/Write. Size is uint8_t. Default is 0(disabled). +#define GAPBOND_PERI_OOB_DATA 0x404 //!< OOB Data. Read/Write. size uint8_t[16]. Default is all 0's. +#define GAPBOND_PERI_BONDING_ENABLED 0x405 //!< Request Bonding during the pairing process if enabled. Read/Write. Size is uint8_t. Default is 0(disabled). +#define GAPBOND_PERI_KEY_DIST_LIST 0x406 //!< The key distribution list for bonding. size is uint8_t. @ref GAPBOND_KEY_DIST_DEFINES. Default is 0x77. +#define GAPBOND_PERI_DEFAULT_PASSCODE 0x407 //!< The default passcode for MITM protection. size is uint32_t. Range is 0 - 999,999. Default is 0. + +#define GAPBOND_ERASE_ALLBONDS 0x410 //!< Erase all of the bonded devices. Write Only. No Size. +#define GAPBOND_AUTO_FAIL_PAIRING 0x411 //!< TEST MODE (DO NOT USE) to automatically send a Pairing Fail when a Pairing Request is received. Read/Write. size is uint8_t. Default is 0 (disabled). +#define GAPBOND_AUTO_FAIL_REASON 0x412 //!< TEST MODE (DO NOT USE) Pairing Fail reason when auto failing. Read/Write. size is uint8_t. Default is 0x05 (SMP_PAIRING_FAILED_NOT_SUPPORTED). +#define GAPBOND_KEYSIZE 0x413 //!< Key Size used in pairing. Read/Write. size is uint8_t. Default is 16. +#define GAPBOND_AUTO_SYNC_WL 0x414 //!< Clears the White List adds to it each unique address stored by bonds in NV. Read/Write. Size is uint8_t. Default is FALSE. +#define GAPBOND_BOND_COUNT 0x415 //!< Gets the total number of bonds stored in NV. Read Only. Size is uint8_t. Default is 0 (no bonds). +#define GAPBOND_BOND_FAIL_ACTION 0x416 //!< Possible actions Central may take upon an unsuccessful bonding. Write Only. Size is uint8_t. Default is 0x02 (Terminate link upon unsuccessful bonding). +#define GAPBOND_ERASE_SINGLEBOND 0x417 //!< Erase a single bonded device. Write only. Must provide address type followed by device address. +#define GAPBOND_BOND_AUTO 0x418 //!< Auto save bonds into FLASH. Write Only. size is uint8_t. Default is 1(enabled). +#define GAPBOND_BOND_UPDATE 0x419 //!< Save current bonds into FLASH. Write Only. No Size. +#define GAPBOND_DISABLE_ALLBONDS 0x41C //!< Disable all of the bonded devices. Write Only. No Size. +#define GAPBOND_ENABLE_ALLBONDS 0x41D //!< Ensable all of the bonded devices. Write Only. No Size. +#define GAPBOND_ERASE_AUTO 0x41E //!< Auto erase all of the bonded devices when the maximum number is reached.Size is uint8_t. Default is 1(enabled). + +// GAPBOND_PAIRING_MODE_DEFINES GAP Bond Manager Pairing Modes +#define GAPBOND_PAIRING_MODE_NO_PAIRING 0x00 //!< Pairing is not allowed +#define GAPBOND_PAIRING_MODE_WAIT_FOR_REQ 0x01 //!< Wait for a pairing request or slave security request +#define GAPBOND_PAIRING_MODE_INITIATE 0x02 //!< Don't wait, initiate a pairing request or slave security request + +// GAPBOND_IO_CAP_DEFINES GAP Bond Manager I/O Capabilities +#define GAPBOND_IO_CAP_DISPLAY_ONLY 0x00 //!< Display Only Device +#define GAPBOND_IO_CAP_DISPLAY_YES_NO 0x01 //!< Display and Yes and No Capable +#define GAPBOND_IO_CAP_KEYBOARD_ONLY 0x02 //!< Keyboard Only +#define GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT 0x03 //!< No Display or Input Device +#define GAPBOND_IO_CAP_KEYBOARD_DISPLAY 0x04 //!< Both Keyboard and Display Capable + +// GAPBOND_KEY_DIST_DEFINES GAP Bond Manager Key Distribution +#define GAPBOND_KEYDIST_SENCKEY 0x01 //!< Slave Encryption Key +#define GAPBOND_KEYDIST_SIDKEY 0x02 //!< Slave IRK and ID information +#define GAPBOND_KEYDIST_SSIGN 0x04 //!< Slave CSRK +#define GAPBOND_KEYDIST_SLINK 0x08 //!< Slave Link Key +#define GAPBOND_KEYDIST_MENCKEY 0x10 //!< Master Encrypton Key +#define GAPBOND_KEYDIST_MIDKEY 0x20 //!< Master IRK and ID information +#define GAPBOND_KEYDIST_MSIGN 0x40 //!< Master CSRK +#define GAPBOND_KEYDIST_MLINK 0x80 //!< Master Link Key + +// GAPBOND_PAIRING_STATE_DEFINES GAP Bond Manager Pairing States +#define GAPBOND_PAIRING_STATE_STARTED 0x00 //!< Pairing started +#define GAPBOND_PAIRING_STATE_COMPLETE 0x01 //!< Pairing complete +#define GAPBOND_PAIRING_STATE_BONDED 0x02 //!< Devices bonded +#define GAPBOND_PAIRING_STATE_BOND_SAVED 0x03 //!< Bonding record saved in NV + +// SMP_PAIRING_FAILED_DEFINES Pairing failure status values +#define SMP_PAIRING_FAILED_PASSKEY_ENTRY_FAILED 0x01 //!< The user input of the passkey failed, for example, the user cancelled the operation. +#define SMP_PAIRING_FAILED_OOB_NOT_AVAIL 0x02 //!< The OOB data is not available +#define SMP_PAIRING_FAILED_AUTH_REQ 0x03 //!< The pairing procedure can't be performed as authentication requirements can't be met due to IO capabilities of one or both devices +#define SMP_PAIRING_FAILED_CONFIRM_VALUE 0x04 //!< The confirm value doesn't match the calculated compare value +#define SMP_PAIRING_FAILED_NOT_SUPPORTED 0x05 //!< Pairing isn't supported by the device +#define SMP_PAIRING_FAILED_ENC_KEY_SIZE 0x06 //!< The resultant encryption key size is insufficient for the security requirements of this device. +#define SMP_PAIRING_FAILED_CMD_NOT_SUPPORTED 0x07 //!< The SMP command received is not supported on this device. +#define SMP_PAIRING_FAILED_UNSPECIFIED 0x08 //!< Pairing failed due to an unspecified reason +#define SMP_PAIRING_FAILED_REPEATED_ATTEMPTS 0x09 //!< Pairing or authentication procedure is disallowed because too little time has elapsed since the last pairing request or security request. +#define SMP_PAIRING_FAILED_INVALID_PARAMERERS 0x0A //!< The Invalid Parameters error code indicates that the command length is invalid or that a parameter is outside of the specified range. +#define SMP_PAIRING_FAILED_DHKEY_CHECK_FAILED 0x0B //!< Indicates to the remote device that the DHKey Check value received doesnt match the one calculated by the local device. +#define SMP_PAIRING_FAILED_NUMERIC_COMPARISON 0x0C //!< Indicates that the confirm values in the numeric comparison protocol do not match. +#define SMP_PAIRING_FAILED_KEY_REJECTED 0x0F //!< Indicates that the device chose not to accept a distributed key. + +// GAPBOND_BONDING_FAILURE_DEFINES Bonding Failure Actions +#define GAPBOND_FAIL_NO_ACTION 0x00 //!< Take no action upon unsuccessful bonding +#define GAPBOND_FAIL_INITIATE_PAIRING 0x01 //!< Initiate pairing upon unsuccessful bonding +#define GAPBOND_FAIL_TERMINATE_LINK 0x02 //!< Terminate link upon unsuccessful bonding +#define GAPBOND_FAIL_TERMINATE_ERASE_BONDS 0x03 //!< Terminate link and erase all existing bonds on device upon unsuccessful bonding + +// Device NV Items +#define BLE_NVID_IRK 0x0002 //!< The Device's IRK +#define BLE_NVID_CSRK 0x0003 //!< The Device's CSRK +#define BLE_NVID_SIGNCOUNTER 0x0004 //!< The Device's Sign Counter + +//!< RF Mode BOND NV IDs +#define BLE_NVID_BOND_RF_START 0x0100 //!< Start of the RF BOND NV IDs + +// Bonding NV Items - Range 0x0200 - 0x6FFF +#define BLE_NVID_GAP_BOND_START 0x0200 //!< Start of the GAP Bond Manager's NV IDs + +// GAP BOND Items +#define GAP_BOND_REC_ID_OFFSET 0 //!< NV ID for the main bonding record +#define GAP_BOND_LOCAL_LTK_OFFSET 1 //!< NV ID for the bonding record's local LTK information +#define GAP_BOND_DEV_LTK_OFFSET 2 //!< NV ID for the bonding records' device LTK information +#define GAP_BOND_DEV_IRK_OFFSET 3 //!< NV ID for the bonding records' device IRK +#define GAP_BOND_DEV_CSRK_OFFSET 4 //!< NV ID for the bonding records' device CSRK +#define GAP_BOND_DEV_SIGN_COUNTER_OFFSET 5 //!< NV ID for the bonding records' device Sign Counter +#define GAP_BOND_REC_IDS 6 + +// Macros to calculate the index/offset in to NV space +#define calcNvID(Idx, offset) (((((Idx) * GAP_BOND_REC_IDS) + (offset))) + BLE_NVID_GAP_BOND_START) +#define mainRecordNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_REC_ID_OFFSET)) +#define localLTKNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_LOCAL_LTK_OFFSET)) +#define devLTKNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_DEV_LTK_OFFSET)) +#define devIRKNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_DEV_IRK_OFFSET)) +#define devCSRKNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_DEV_CSRK_OFFSET)) +#define devSignCounterNvID(bondIdx) (calcNvID((bondIdx), GAP_BOND_DEV_SIGN_COUNTER_OFFSET)) + +// GATT Configuration NV Items -Range 0x7000 - 0x7FFF +#define BLE_NVID_GATT_CFG_START 0x7000 //!< Start of the GATT Configuration NV IDs + +// Macros to calculate the GATT index/offset in to NV space +#define gattCfgNvID(Idx) ((Idx) + BLE_NVID_GATT_CFG_START) + +#define BLE_NVID_MAX_VAL 0x7FFF + +// Structure of NV data for the connected device's encryption information +typedef struct +{ + uint8_t LTK[KEYLEN]; //!< Long Term Key (LTK) + uint16_t div; //!< LTK eDiv + uint8_t rand[B_RANDOM_NUM_SIZE]; //!< LTK random number + uint8_t keySize; //!< LTK key size +} gapBondLTK_t; + +// Structure of NV data for the connected device's address information +typedef struct +{ + uint8_t publicAddr[B_ADDR_LEN]; //!< Central's address + uint8_t reconnectAddr[B_ADDR_LEN]; //!< Privacy Reconnection Address + uint16_t stateFlags; //!< State flags: SM_AUTH_STATE_AUTHENTICATED & SM_AUTH_STATE_BONDING + uint8_t bondsToDelete; + uint8_t publicAddrType; //!< Central's address type + uint32_t bondSeq; +} gapBondRec_t; + +// Structure of NV data for the connected device's characteristic configuration +typedef struct +{ + uint16_t attrHandle; //!< attribute handle + uint8_t value; //!< attribute value for this device +} gapBondCharCfg_t; + +/********************************************************************* + * TYPEDEFS + */ +typedef struct +{ + uint8_t srk[KEYLEN]; //!< Signature Resolving Key + uint32_t signCounter; //!< Sign Counter +} linkSec_t; + +typedef struct +{ + uint8_t ltk[KEYLEN]; //!< Long Term Key + uint16_t div; //!< Diversifier + uint8_t rand[B_RANDOM_NUM_SIZE]; //!< random number + uint8_t keySize; //!< LTK Key Size + uint8_t gapBondInvalid; +} encParams_t; + +typedef struct +{ + uint8_t connRole; //!< GAP Profile Roles @GAP_PROFILE_ROLE_DEFINES + uint8_t addrType; //!< Address type of connected device + uint8_t addr[B_ADDR_LEN]; //!< Other Device's address + encParams_t encParams; +} bondEncParams_t; + +typedef struct +{ + uint8_t taskID; //!< Application that controls the link + uint16_t connectionHandle; //!< Controller connection handle + uint8_t stateFlags; //!< LINK_CONNECTED, LINK_AUTHENTICATED... + uint8_t addrType; //!< Address type of connected device + uint8_t addr[B_ADDR_LEN]; //!< Other Device's address + uint8_t connRole; //!< Connection formed as central or peripheral + uint16_t connInterval; //!< The connection's interval (n * 1.25ms) + uint16_t connLatency; + uint16_t connTimeout; + uint16_t MTU; //!< The connection's MTU size + linkSec_t sec; //!< Connection Security related items + encParams_t *pEncParams; //!< pointer to LTK, ediv, rand. if needed. + uint16_t smEvtID; + void *pPairingParams; + void *pAuthLink; +} linkDBItem_t; + +// function pointer used to register for a status callback +typedef void (*pfnLinkDBCB_t)( uint16_t connectionHandle, uint8_t changeType ); +// function pointer used to perform specialized link database searches +typedef void (*pfnPerformFuncCB_t)( linkDBItem_t *pLinkItem ); + +/** + * Attribute Type format (2 or 16 octet UUID). + */ +typedef struct +{ + uint8_t len; //!< Length of UUID (2 or 16) + uint8_t uuid[ATT_UUID_SIZE]; //!< 16 or 128 bit UUID +} attAttrType_t; + +/** + * Attribute Type format (2-octet Bluetooth UUID). + */ +typedef struct +{ + uint8_t len; //!< Length of UUID (2) + uint8_t uuid[ATT_BT_UUID_SIZE]; //!< 16 bit UUID +} attAttrBtType_t; + +/** + * Error Response format. + */ +typedef struct +{ + uint8_t reqOpcode; //!< Request that generated this error response + uint16_t handle; //!< Attribute handle that generated error response + uint8_t errCode; //!< Reason why the request has generated error response +} attErrorRsp_t; + +/** + * Exchange MTU Request format. + */ +typedef struct +{ + uint16_t clientRxMTU; //!< Client receive MTU size +} attExchangeMTUReq_t; + +/** + * Exchange MTU Response format. + */ +typedef struct +{ + uint16_t serverRxMTU; //!< Server receive MTU size +} attExchangeMTURsp_t; + +/** + * Find Information Request format. + */ +typedef struct +{ + uint16_t startHandle; //!< First requested handle number (must be first field) + uint16_t endHandle; //!< Last requested handle number +} attFindInfoReq_t; + +/** + * Find Information Response format. + */ +typedef struct +{ + uint16_t numInfo; //!< Number of attribute handle-UUID pairs found + uint8_t format; //!< Format of information data + uint8_t *pInfo; //!< Information data whose format is determined by format field (4 to ATT_MTU_SIZE-2) +} attFindInfoRsp_t; + +/** + * Find By Type Value Request format. + */ +typedef struct +{ + uint16_t startHandle; //!< First requested handle number (must be first field) + uint16_t endHandle; //!< Last requested handle number + attAttrBtType_t type; //!< 2-octet UUID to find + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Attribute value to find (0 to ATT_MTU_SIZE-7) +} attFindByTypeValueReq_t; + +/** + * Find By Type Value Response format. + */ +typedef struct +{ + uint16_t numInfo; //!< Number of handles information found + uint8_t *pHandlesInfo; //!< List of 1 or more handles information (4 to ATT_MTU_SIZE-1) +} attFindByTypeValueRsp_t; + +/** + * Read By Type Request format. + */ +typedef struct +{ + uint16_t startHandle; //!< First requested handle number (must be first field) + uint16_t endHandle; //!< Last requested handle number + attAttrType_t type; //!< Requested type (2 or 16 octet UUID) +} attReadByTypeReq_t; + +/** + * Read By Type Response format. + */ +typedef struct +{ + uint16_t numPairs; //!< Number of attribute handle-UUID pairs found + uint16_t len; //!< Size of each attribute handle-value pair + uint8_t *pDataList; //!< List of 1 or more attribute handle-value pairs (2 to ATT_MTU_SIZE-2) +} attReadByTypeRsp_t; + +/** + * Read Request format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute to be read (must be first field) +} attReadReq_t; + +/** + * Read Response format. + */ +typedef struct +{ + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Value of the attribute with the handle given (0 to ATT_MTU_SIZE-1) +} attReadRsp_t; + +/** + * Read Blob Req format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute to be read (must be first field) + uint16_t offset; //!< Offset of the first octet to be read +} attReadBlobReq_t; + +/** + * Read Blob Response format. + */ +typedef struct +{ + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Part of the value of the attribute with the handle given (0 to ATT_MTU_SIZE-1) +} attReadBlobRsp_t; + +/** + * Read Multiple Request format. + */ +typedef struct +{ + uint8_t *pHandles; //!< Set of two or more attribute handles (4 to ATT_MTU_SIZE-1) - must be first field + uint16_t numHandles; //!< Number of attribute handles +} attReadMultiReq_t; + +/** + * Read Multiple Response format. + */ +typedef struct +{ + uint16_t len; //!< Length of values + uint8_t *pValues; //!< Set of two or more values (0 to ATT_MTU_SIZE-1) +} attReadMultiRsp_t; + +/** + * Read By Group Type Request format. + */ +typedef struct +{ + uint16_t startHandle; //!< First requested handle number (must be first field) + uint16_t endHandle; //!< Last requested handle number + attAttrType_t type; //!< Requested group type (2 or 16 octet UUID) +} attReadByGrpTypeReq_t; + +/** + * Read By Group Type Response format. + */ +typedef struct +{ + uint16_t numGrps; //!< Number of attribute handle, end group handle and value sets found + uint16_t len; //!< Length of each attribute handle, end group handle and value set + uint8_t *pDataList; //!< List of 1 or more attribute handle, end group handle and value (4 to ATT_MTU_SIZE-2) +} attReadByGrpTypeRsp_t; + +/** + * Write Request format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute to be written (must be first field) + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Value of the attribute to be written (0 to ATT_MTU_SIZE-3) + uint8_t sig; //!< Authentication Signature status (not included (0), valid (1), invalid (2)) + uint8_t cmd; //!< Command Flag +} attWriteReq_t; + +/** + * Prepare Write Request format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute to be written (must be first field) + uint16_t offset; //!< Offset of the first octet to be written + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Part of the value of the attribute to be written (0 to ATT_MTU_SIZE-5) - must be allocated +} attPrepareWriteReq_t; + +/** + * Prepare Write Response format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute that has been read + uint16_t offset; //!< Offset of the first octet to be written + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Part of the value of the attribute to be written (0 to ATT_MTU_SIZE-5) +} attPrepareWriteRsp_t; + +/** + * Execute Write Request format. + */ +typedef struct +{ + uint8_t flags; //!< 0x00 - cancel all prepared writes. + //!< 0x01 - immediately write all pending prepared values. +} attExecuteWriteReq_t; + +/** + * Handle Value Notification format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute that has been changed (must be first field) + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Current value of the attribute (0 to ATT_MTU_SIZE-3) +} attHandleValueNoti_t; + +/** + * Handle Value Indication format. + */ +typedef struct +{ + uint16_t handle; //!< Handle of the attribute that has been changed (must be first field) + uint16_t len; //!< Length of value + uint8_t *pValue; //!< Current value of the attribute (0 to ATT_MTU_SIZE-3) +} attHandleValueInd_t; + +/** + * ATT Flow Control Violated Event message format. This message is sent to the + * app by the local ATT Server or Client when a sequential ATT Request-Response + * or Indication-Confirmation protocol flow control is violated for a connection. + * All subsequent ATT Requests and Indications received by the local ATT Server + * and Client respectively will be dropped. + * + * This message is to inform the app (that has registered with GAP by calling + * GAP_RegisterForMsgs()) in case it wants to drop the connection. + */ +typedef struct +{ + uint8_t opcode; //!< opcode of message that caused flow control violation + uint8_t pendingOpcode; //!< opcode of pending message +} attFlowCtrlViolatedEvt_t; + +/** + * ATT MTU Updated Event message format. This message is sent to the app + * by the local ATT Server or Client when the ATT MTU size is updated for a + * connection. The default ATT MTU size is 23 octets. + * + * This message is to inform the app (that has registered with GAP by calling + * GAP_RegisterForMsgs()) about the new ATT MTU size negotiated for a connection. + */ +typedef struct +{ + uint16_t MTU; //!< new MTU size +} attMtuUpdatedEvt_t; + +/** + * ATT Message format. It's a union of all attribute protocol messages and + * locally-generated events used between the attribute protocol and upper + * layer profile/application. + */ +typedef union +{ + // Request messages + attExchangeMTUReq_t exchangeMTUReq; //!< ATT Exchange MTU Request + attFindInfoReq_t findInfoReq; //!< ATT Find Information Request + attFindByTypeValueReq_t findByTypeValueReq; //!< ATT Find By Type Value Request + attReadByTypeReq_t readByTypeReq; //!< ATT Read By Type Request + attReadReq_t readReq; //!< ATT Read Request + attReadBlobReq_t readBlobReq; //!< ATT Read Blob Request + attReadMultiReq_t readMultiReq; //!< ATT Read Multiple Request + attReadByGrpTypeReq_t readByGrpTypeReq; //!< ATT Read By Group Type Request + attWriteReq_t writeReq; //!< ATT Write Request + attPrepareWriteReq_t prepareWriteReq; //!< ATT Prepare Write Request + attExecuteWriteReq_t executeWriteReq; //!< ATT Execute Write Request + + // Response messages + attErrorRsp_t errorRsp; //!< ATT Error Response + attExchangeMTURsp_t exchangeMTURsp; //!< ATT Exchange MTU Response + attFindInfoRsp_t findInfoRsp; //!< ATT Find Information Response + attFindByTypeValueRsp_t findByTypeValueRsp; //!< ATT Find By Type Value Response + attReadByTypeRsp_t readByTypeRsp; //!< ATT Read By Type Response + attReadRsp_t readRsp; //!< ATT Read Response + attReadBlobRsp_t readBlobRsp; //!< ATT Read Blob Response + attReadMultiRsp_t readMultiRsp; //!< ATT Read Multiple Response + attReadByGrpTypeRsp_t readByGrpTypeRsp; //!< ATT Read By Group Type Response + attPrepareWriteRsp_t prepareWriteRsp; //!< ATT Prepare Write Response + + // Indication and Notification messages + attHandleValueNoti_t handleValueNoti; //!< ATT Handle Value Notification + attHandleValueInd_t handleValueInd; //!< ATT Handle Value Indication + + // Locally-generated event messages + attFlowCtrlViolatedEvt_t flowCtrlEvt; //!< ATT Flow Control Violated Event + attMtuUpdatedEvt_t mtuEvt; //!< ATT MTU Updated Event +} attMsg_t; + +/** + * GATT Find By Type Value Request format. + */ +typedef struct +{ + uint16_t startHandle; //!< First requested handle number (must be first field) + uint16_t endHandle; //!< Last requested handle number + attAttrType_t value; //!< Primary service UUID value (2 or 16 octets) +} gattFindByTypeValueReq_t; + +/** + * GATT Read By Type Request format. + */ +typedef struct +{ + uint8_t discCharsByUUID; //!< Whether this is a GATT Discover Characteristics by UUID sub-procedure + attReadByTypeReq_t req; //!< Read By Type Request +} gattReadByTypeReq_t; + +/** + * GATT Write Long Request format. Do not change the order of the members. + */ +typedef struct +{ + uint8_t reliable; //!< Whether reliable writes requested (always FALSE for Write Long) + attPrepareWriteReq_t req; //!< ATT Prepare Write Request + uint16_t lastOffset; //!< Offset of last Prepare Write Request sent +} gattWriteLongReq_t; + +/** + * GATT Reliable Writes Request format. Do not change the order of the members. + */ +typedef struct +{ + uint8_t reliable; //!< Whether reliable writes requested (always TRUE for Reliable Writes) + attPrepareWriteReq_t *pReqs; //!< Array of Prepare Write Requests (must be allocated) + uint8_t numReqs; //!< Number of Prepare Write Requests + uint8_t index; //!< Index of last Prepare Write Request sent + uint8_t flags; //!< 0x00 - cancel all prepared writes. + //!< 0x01 - immediately write all pending prepared values. +} gattReliableWritesReq_t; + +/** + * GATT Message format. It's a union of all attribute protocol/profile messages + * and locally-generated events used between the attribute protocol/profile and + * upper layer application. + */ +typedef union +{ + // Request messages + attExchangeMTUReq_t exchangeMTUReq; //!< ATT Exchange MTU Request + attFindInfoReq_t findInfoReq; //!< ATT Find Information Request + attFindByTypeValueReq_t findByTypeValueReq; //!< ATT Find By Type Value Request + attReadByTypeReq_t readByTypeReq; //!< ATT Read By Type Request + attReadReq_t readReq; //!< ATT Read Request + attReadBlobReq_t readBlobReq; //!< ATT Read Blob Request + attReadMultiReq_t readMultiReq; //!< ATT Read Multiple Request + attReadByGrpTypeReq_t readByGrpTypeReq; //!< ATT Read By Group Type Request + attWriteReq_t writeReq; //!< ATT Write Request + attPrepareWriteReq_t prepareWriteReq; //!< ATT Prepare Write Request + attExecuteWriteReq_t executeWriteReq; //!< ATT Execute Write Request + gattFindByTypeValueReq_t gattFindByTypeValueReq;//!< GATT Find By Type Value Request + gattReadByTypeReq_t gattReadByTypeReq; //!< GATT Read By Type Request + gattWriteLongReq_t gattWriteLongReq; //!< GATT Long Write Request + gattReliableWritesReq_t gattReliableWritesReq; //!< GATT Reliable Writes Request + + // Response messages + attErrorRsp_t errorRsp; //!< ATT Error Response + attExchangeMTURsp_t exchangeMTURsp; //!< ATT Exchange MTU Response + attFindInfoRsp_t findInfoRsp; //!< ATT Find Information Response + attFindByTypeValueRsp_t findByTypeValueRsp; //!< ATT Find By Type Value Response + attReadByTypeRsp_t readByTypeRsp; //!< ATT Read By Type Response + attReadRsp_t readRsp; //!< ATT Read Response + attReadBlobRsp_t readBlobRsp; //!< ATT Read Blob Response + attReadMultiRsp_t readMultiRsp; //!< ATT Read Multiple Response + attReadByGrpTypeRsp_t readByGrpTypeRsp; //!< ATT Read By Group Type Response + attPrepareWriteRsp_t prepareWriteRsp; //!< ATT Prepare Write Response + + // Indication and Notification messages + attHandleValueNoti_t handleValueNoti; //!< ATT Handle Value Notification + attHandleValueInd_t handleValueInd; //!< ATT Handle Value Indication + + // Locally-generated event messages + attFlowCtrlViolatedEvt_t flowCtrlEvt; //!< ATT Flow Control Violated Event + attMtuUpdatedEvt_t mtuEvt; //!< ATT MTU Updated Event +} gattMsg_t; + +/** + * GATT tmos GATT_MSG_EVENT message format. This message is used to forward an + * incoming attribute protocol/profile message up to upper layer application. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GATT_MSG_EVENT and status + uint16_t connHandle; //!< Connection message was received on + uint8_t method; //!< Type of message + gattMsg_t msg; //!< Attribute protocol/profile message +} gattMsgEvent_t; + +/** + * GATT Attribute Type format. + */ +typedef struct +{ + uint8_t len; //!< Length of UUID (2 or 16) + const uint8_t *uuid; //!< Pointer to UUID +} gattAttrType_t; + +/** + * GATT Attribute format. + */ +typedef struct attAttribute_t +{ + gattAttrType_t type; //!< Attribute type (2 or 16 octet UUIDs) + uint8_t permissions; //!< Attribute permissions + uint16_t handle; //!< Attribute handle - assigned internally by attribute server + uint8_t *pValue; //!< Attribute value - encoding of the octet array is defined in + //!< the applicable profile. The maximum length of an attribute + //!< value shall be 512 octets. +} gattAttribute_t; + +/** + * GATT Service format. + */ +typedef struct +{ + uint16_t numAttrs; //!< Number of attributes in attrs + uint8_t encKeySize; //!< Minimum encryption key size required by service (7-16 bytes) + + /** Array of attribute records. + * note: The list must start with a Service attribute followed by + * all attributes associated with this Service attribute. + */ + gattAttribute_t *attrs; +} gattService_t; + +/** + * @brief Callback function prototype to read an attribute value. + * + * @note blePending can be returned ONLY for the following + * read operations: + * - Read Request: ATT_READ_REQ + * - Read Blob Request: ATT_READ_BLOB_REQ + * + * @note If blePending is returned then it's the responsibility of the application to respond to + * ATT_READ_REQ and ATT_READ_BLOB_REQ message with ATT_READ_RSP and ATT_READ_BLOB_RSP + * message respectively. + * + * @note Payload 'pValue' used with ATT_READ_RSP and ATT_READ_BLOB_RSP must be allocated using GATT_bm_alloc(). + * + * @param connHandle - connection request was received on + * @param pAttr - pointer to attribute + * @param pValue - pointer to data to be read (to be returned) + * @param pLen - length of data (to be returned) + * @param offset - offset of the first octet to be read + * @param maxLen - maximum length of data to be read + * @param method - type of read message + * + * @return SUCCESS: Read was successfully.
+ * blePending: A response is pending for this client.
+ * Error, otherwise: ref ATT_ERR_CODE_DEFINES.
+ */ +typedef uint8_t (*pfnGATTReadAttrCB_t)( uint16_t connHandle, gattAttribute_t *pAttr, uint8_t *pValue, + uint16_t *pLen, uint16_t offset, uint16_t maxLen, uint8_t method ); + +/** + * @brief Callback function prototype to write an attribute value. + * + * @note blePending can be returned ONLY for the following + * write operations: + * - Write Request: ATT_WRITE_REQ + * - Write Command: ATT_WRITE_CMD + * - Write Long: ATT_EXECUTE_WRITE_REQ + * - Reliable Writes: Multiple ATT_PREPARE_WRITE_REQ followed by one final ATT_EXECUTE_WRITE_REQ + * + * @note If blePending is returned then it's the responsibility of the application to 1) respond to + * ATT_WRITE_REQ and ATT_EXECUTE_WRITE_REQ message with ATT_WRITE_RSP and ATT_EXECUTE_WRITE_RSP + * message respectively, and 2) free each request payload 'pValue' using BM_free(). + * + * @note Write Command (ATT_WRITE_CMD) does NOT require a response message. + * + * @param connHandle - connection request was received on + * @param pAttr - pointer to attribute + * @param pValue - pointer to data to be written + * @param pLen - length of data + * @param offset - offset of the first octet to be written + * @param method - type of write message + * + * @return SUCCESS: Write was successfully.
+ * blePending: A response is pending for this client.
+ * Error, otherwise: ref ATT_ERR_CODE_DEFINES.
+ */ +typedef uint8_t (*pfnGATTWriteAttrCB_t)( uint16_t connHandle, gattAttribute_t *pAttr, uint8_t *pValue, + uint16_t len, uint16_t offset, uint8_t method ); + +/** + * @brief Callback function prototype to authorize a Read or Write operation + * on a given attribute. + * + * @param connHandle - connection request was received on + * @param pAttr - pointer to attribute + * @param opcode - request opcode (ATT_READ_REQ or ATT_WRITE_REQ) + * + * @return SUCCESS: Operation authorized.
+ * ATT_ERR_INSUFFICIENT_AUTHOR: Authorization required.
+ */ +typedef bStatus_t (*pfnGATTAuthorizeAttrCB_t)( uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t opcode ); + +/** + * GATT Structure for Client Characteristic Configuration. + */ +typedef struct +{ + uint16_t connHandle; //!< Client connection handle + uint8_t value; //!< Characteristic configuration value for this client +} gattCharCfg_t; + +/** + * GATT Structure for service callback functions - must be setup by the application + * and used when GATTServApp_RegisterService() is called. + */ +typedef struct +{ + pfnGATTReadAttrCB_t pfnReadAttrCB; //!< Read callback function pointer + pfnGATTWriteAttrCB_t pfnWriteAttrCB; //!< Write callback function pointer + pfnGATTAuthorizeAttrCB_t pfnAuthorizeAttrCB; //!< Authorization callback function pointer +} gattServiceCBs_t; + +/*************************************gap**************************************/ +/** + * Connection parameters for the peripheral device. These numbers are used + * to compare against connection events and request connection parameter + * updates with the central. + */ +typedef struct +{ + uint16_t intervalMin; //!< Minimum value for the connection event (interval. 0x0006 - 0x0C80 * 1.25ms) + uint16_t intervalMax; //!< Maximum value for the connection event (interval. 0x0006 - 0x0C80 * 1.25ms) + uint16_t latency; //!< Number of LL latency connection events (0x0000 - 0x03e8) + uint16_t timeout; //!< Connection Timeout (0x000A - 0x0C80 * 10ms) +} gapPeriConnectParams_t; + +/** + * GAP event header format. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP type of command. Ref: @ref GAP_MSG_EVENT_DEFINES +} gapEventHdr_t; + +/** + * GAP_DEVICE_INIT_DONE_EVENT message format. This message is sent to the + * app when the Device Initialization is done [initiated by calling + * GAP_DeviceInit()]. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_DEVICE_INIT_DONE_EVENT + uint8_t devAddr[B_ADDR_LEN]; //!< Device's BD_ADDR + uint16_t dataPktLen; //!< HC_LE_Data_Packet_Length + uint8_t numDataPkts; //!< HC_Total_Num_LE_Data_Packets +} gapDeviceInitDoneEvent_t; + +/** + * GAP_SIGNATURE_UPDATED_EVENT message format. This message is sent to the + * app when the signature counter has changed. This message is to inform the + * application in case it wants to save it to be restored on reboot or reconnect. + * This message is sent to update a connection's signature counter and to update + * this device's signature counter. If devAddr == BD_ADDR, then this message pertains + * to this device. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_SIGNATURE_UPDATED_EVENT + uint8_t addrType; //!< Device's address type for devAddr + uint8_t devAddr[B_ADDR_LEN]; //!< Device's BD_ADDR, could be own address + uint32_t signCounter; //!< new Signed Counter +} gapSignUpdateEvent_t; + +/** + * GAP_DEVICE_INFO_EVENT message format. This message is sent to the + * app during a Device Discovery Request, when a new advertisement or scan + * response is received. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_DEVICE_INFO_EVENT + uint8_t eventType; //!< Advertisement Type: @ref GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES + uint8_t addrType; //!< address type: @ref GAP_ADDR_TYPE_DEFINES + uint8_t addr[B_ADDR_LEN]; //!< Address of the advertisement or SCAN_RSP + int8_t rssi; //!< Advertisement or SCAN_RSP RSSI + uint8_t dataLen; //!< Length (in bytes) of the data field (evtData) + uint8_t *pEvtData; //!< Data field of advertisement or SCAN_RSP +} gapDeviceInfoEvent_t; + +/** + * GAP_DIRECT_DEVICE_INFO_EVENT message format. This message is sent to the + * app during a Device Discovery Request, when a new advertisement or scan + * response is received. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_DIRECT_DEVICE_INFO_EVENT + uint8_t eventType; //!< Advertisement Type: @ref GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES + uint8_t addrType; //!< address type: @ref GAP_ADDR_TYPE_DEFINES + uint8_t addr[B_ADDR_LEN]; //!< Address of the advertisement or SCAN_RSP + uint8_t directAddrType; //!< public or random address type + uint8_t directAddr[B_ADDR_LEN]; //!< device address + int8_t rssi; //!< Advertisement or SCAN_RSP RSSI +} gapDirectDeviceInfoEvent_t; + +/** + * Type of device discovery (Scan) to perform. + */ +typedef struct +{ + uint8_t taskID; //!< Requesting App's Task ID, used to return results + uint8_t mode; //!< Discovery Mode: @ref GAP_DEVDISC_MODE_DEFINES + uint8_t activeScan; //!< TRUE for active scanning + uint8_t whiteList; //!< TRUE to only allow advertisements from devices in the white list. +} gapDevDiscReq_t; + +/** + * Type of device. + */ +typedef struct +{ + uint8_t eventType; //!< Indicates advertising event type used by the advertiser: @ref GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES + uint8_t addrType; //!< Address Type: @ref GAP_ADDR_TYPE_DEFINES + uint8_t addr[B_ADDR_LEN]; //!< Device's Address +} gapDevRec_t; + + +/** + * GAP_MAKE_DISCOVERABLE_DONE_EVENT message format. This message is sent to the + * app when the Advertise config is complete. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_MAKE_DISCOVERABLE_DONE_EVENT +} gapMakeDiscoverableRspEvent_t; + +/** + * GAP_END_DISCOVERABLE_DONE_EVENT message format. This message is sent to the + * app when the Advertising has stopped. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_END_DISCOVERABLE_DONE_EVENT +} gapEndDiscoverableRspEvent_t; + +/** + * GAP_SCAN_REQUEST_EVENT message format. This message is sent to the + * app when the advertiser receives a SCAN_REQ PDU or an AUX_SCAN_REQ PDU + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_SCAN_REQUEST_EVENT + uint8_t advHandle; //!< identifying the periodic advertising train + uint8_t scannerAddrType; //!< the type of the address + uint8_t scannerAddr[B_ADDR_LEN];//!< the address of scanner device +} gapScanReqReseiveEvent_t; + +/** + * GAP_ADV_DATA_UPDATE_DONE_EVENT message format. This message is sent to the + * app when Advertising Data Update is complete. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_ADV_DATA_UPDATE_DONE_EVENT + uint8_t adType; //!< TRUE if advertising data, FALSE if SCAN_RSP +} gapAdvDataUpdateEvent_t; + +/** + * GAP_LINK_ESTABLISHED_EVENT message format. This message is sent to the app + * when the link request is complete.
+ *
+ * For an Observer, this message is sent to complete the Establish Link Request.
+ * For a Peripheral, this message is sent to indicate that a link has been created. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_LINK_ESTABLISHED_EVENT + uint8_t devAddrType; //!< Device address type: @ref GAP_ADDR_TYPE_DEFINES + uint8_t devAddr[B_ADDR_LEN]; //!< Device address of link + uint16_t connectionHandle; //!< Connection Handle from controller used to ref the device + uint8_t connRole; //!< Connection formed as Central or Peripheral + uint16_t connInterval; //!< Connection Interval + uint16_t connLatency; //!< Connection Latency + uint16_t connTimeout; //!< Connection Timeout + uint8_t clockAccuracy; //!< Clock Accuracy +} gapEstLinkReqEvent_t; + +/** + * GAP_LINK_PARAM_UPDATE_EVENT message format. This message is sent to the app + * when the connection parameters update request is complete. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_LINK_PARAM_UPDATE_EVENT + uint8_t status; //!< bStatus_t + uint16_t connectionHandle; //!< Connection handle of the update + uint16_t connInterval; //!< Requested connection interval + uint16_t connLatency; //!< Requested connection latency + uint16_t connTimeout; //!< Requested connection timeout +} gapLinkUpdateEvent_t; + +/** + * GAP_LINK_TERMINATED_EVENT message format. This message is sent to the + * app when a link to a device is terminated. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_LINK_TERMINATED_EVENT + uint16_t connectionHandle; //!< connection Handle + uint8_t reason; //!< termination reason from LL + uint8_t connRole; +} gapTerminateLinkEvent_t; + +/** + * GAP_PHY_UPDATE_EVENT message format. This message is sent to the app(GAP_MSG_EVENT) + * when the PHY update request is complete. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_PHY_UPDATE_EVENT + uint8_t status; //!< bStatus_t + uint16_t connectionHandle; //!< Connection handle of the update + uint8_t connTxPHYS; //!< tx phy(GAP_PHY_VAL_TYPE) + uint8_t connRxPHYS; //!< rx phy(GAP_PHY_VAL_TYPE) +} gapPhyUpdateEvent_t; + +/** + * GAP_PASSKEY_NEEDED_EVENT message format. This message is sent to the + * app when a Passkey is needed from the app's user interface. + */ +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_PASSKEY_NEEDED_EVENT + uint8_t deviceAddr[B_ADDR_LEN]; //!< address of device to pair with, and could be either public or random. + uint16_t connectionHandle; //!< Connection handle + uint8_t uiInputs; //!< Pairing User Interface Inputs - Ask user to input passcode + uint8_t uiOutputs; //!< Pairing User Interface Outputs - Display passcode +} gapPasskeyNeededEvent_t; + +/** + * Passcode Callback Function + */ +typedef void (*pfnPasscodeCB_t)( uint8_t *deviceAddr, //!< address of device to pair with, and could be either public or random. + uint16_t connectionHandle, //!< Connection handle + uint8_t uiInputs, //!< Pairing User Interface Inputs - Ask user to input passcode + uint8_t uiOutputs //!< Pairing User Interface Outputs - Display passcode + ); + +/** + * Pairing State Callback Function + */ +typedef void (*pfnPairStateCB_t)( uint16_t connectionHandle, //!< Connection handle + uint8_t state, //!< Pairing state @ref GAPBOND_PAIRING_STATE_DEFINES + uint8_t status //!< Pairing status + ); + +typedef struct +{ + tmos_event_hdr_t hdr; //!< GAP_MSG_EVENT and status + uint8_t opcode; //!< GAP_O0B_NEEDED_EVENT + uint8_t deviceAddr[B_ADDR_LEN]; //!< address of device to pair with, and could be either public or random. + uint16_t connectionHandle; //!< Connection handle + uint8_t r_local[16]; + uint8_t c_local[16]; +} gapOobNeededEvent_t; + +/** + * OOB Callback Function + */ +typedef void (*pfnOobCB_t)( uint8_t *deviceAddr, //!< address of device to pair with, and could be either public or random. + uint16_t connectionHandle, //!< Connection handle + uint8_t* r_local, //!< local rand + uint8_t *c_local //!< local confirm + ); + +/** + * Callback Registration Structure + */ +typedef struct +{ + pfnPasscodeCB_t passcodeCB; //!< Passcode callback + pfnPairStateCB_t pairStateCB; //!< Pairing state callback + pfnOobCB_t oobCB; //!< resv +} gapBondCBs_t; + +/** + * gapRole_States_t defined + */ +typedef unsigned long gapRole_States_t; + +// gapRole_States_t @ 4b'[3-0]-advertising states +#define GAPROLE_STATE_ADV_MASK (0xF) //!< advertising states mask +#define GAPROLE_STATE_ADV_SHIFT (0x0) //!< advertising states shift +#define GAPROLE_INIT 0 //!< Waiting to be started +#define GAPROLE_STARTED 1 //!< Started but not advertising +#define GAPROLE_ADVERTISING 2 //!< Currently Advertising +#define GAPROLE_WAITING 3 //!< Device is started but not advertising, is in waiting period before advertising again +#define GAPROLE_CONNECTED 4 //!< In a connection +#define GAPROLE_CONNECTED_ADV 5 //!< In a connection + advertising +#define GAPROLE_ERROR 6 //!< Error occurred - invalid state + +/** + * gapRole Event Structure + */ +typedef union +{ + gapEventHdr_t gap; //!< GAP_MSG_EVENT and status. + gapDeviceInitDoneEvent_t initDone; //!< GAP initialization done. + gapDeviceInfoEvent_t deviceInfo; //!< Discovery device information event structure. + gapDirectDeviceInfoEvent_t deviceDirectInfo; //!< Discovery direct device information event structure. + gapAdvDataUpdateEvent_t dataUpdate; //!< Advertising Data Update is complete. + gapScanReqReseiveEvent_t scanReqEvt; //!< Scan_Request_Received event structure. + + gapEstLinkReqEvent_t linkCmpl; //!< Link complete event structure. + gapLinkUpdateEvent_t linkUpdate; //!< Link update event structure. + gapTerminateLinkEvent_t linkTerminate; //!< Link terminated event structure. + gapPhyUpdateEvent_t linkPhyUpdate; //!< Link phy update event structure. +} gapRoleEvent_t; + +/** + * Type of device. + */ +typedef struct +{ + uint8_t eventType; //!< Indicates advertising event type used by the advertiser: @ref GAP_ADVERTISEMENT_REPORT_TYPE_DEFINES + uint8_t addrType; //!< Scan Address Type:0x00-Public Device Address or Public Identity Address 0x01-Random Device Address or Random (static) Identity Address + uint8_t addr[B_ADDR_LEN]; //!< Device's Address + int8_t rssi; +} gapScanRec_t; + +/** + * Callback when the device has been started. Callback event to + * the Notify of a state change. + */ +typedef void (*gapRolesBroadcasterStateNotify_t)( gapRole_States_t newState ); + +typedef void (*gapRolesScanReqRecv_t)( gapScanRec_t * pEvent ); + +typedef struct +{ + gapRolesBroadcasterStateNotify_t pfnStateChange; //!< Whenever the device changes state + gapRolesScanReqRecv_t pfnScanRecv; +} gapRolesBroadcasterCBs_t; + + +/** + * Callback when the device has read an new RSSI value during a connection. + */ +typedef void (*gapRolesRssiRead_t)( uint16_t connHandle, int8_t newRSSI ); + +/** + * Callback when the device has been started. Callback event to + * the Notify of a state change. + */ +typedef void (*gapRolesStateNotify_t)( gapRole_States_t newState, gapRoleEvent_t * pEvent ); + +/** + * Callback when the connection parameteres are updated. + */ +typedef void (*gapRolesParamUpdateCB_t)( uint16_t connHandle, uint16_t connInterval, + uint16_t connSlaveLatency, uint16_t connTimeout ); + +/** + * Callback structure - must be setup by the application and used when gapRoles_StartDevice() is called. + */ +typedef struct +{ + gapRolesStateNotify_t pfnStateChange; //!< Whenever the device changes state + gapRolesRssiRead_t pfnRssiRead; //!< When a valid RSSI is read from controller + gapRolesParamUpdateCB_t pfnParamUpdate; //!< When the connection parameteres are updated +} gapRolesCBs_t; + + +/** + * HCI Data Length Change Event Callback Function + */ +typedef void (*pfnHciDataLenChangeEvCB_t)( uint16_t connHandle, uint16_t maxTxOctets, + uint16_t maxRxOctets ); + +/* RF-PHY define */ + +/* + * RF_ROLE_STATUS_TYPE pfnRFStatusCB_t state defined + */ +// TX_MODE call RF_Tx +#define TX_MODE_TX_FINISH 0x01 //!< basic or auto tx mode sends data successfully + //!< if it is in basic mode,it will enter idle state; + //!< if it is in auto mode,it will wait for receiving +#define TX_MODE_TX_FAIL 0x11 //!< basic or auto tx mode fail to send data and enter idle state +#define TX_MODE_TX_TIMEOUT TX_MODE_TX_FAIL //!< time of data transmission +#define TX_MODE_RX_DATA 0x02 //!< auto tx mode receive data(ack) and enter idle state +#define TX_MODE_RX_TIMEOUT 0x12 //!< auto tx mode receive timeout and enter idle state + +// RX_MODE call RF_Rx +#define RX_MODE_RX_DATA 0x03 //!< basic or auto rx mode receive data + //!< if it is in basic mode,it will enter idle state; + //!< if it is in auto mode,it will judge whether the type matches; + //!< if it matches,it will send data(ack),otherwise(rsr=2), it will restart receiving +#define RX_MODE_TX_FINISH 0x04 //!< auto rx mode sends data(ack) successfully and enters idle state +#define RX_MODE_TX_FAIL 0x14 //!< auto rx mode fail to send data and enter idle state +#define RX_MODE_TX_TIMEOUT RX_MODE_TX_FAIL //!< time of data transmission + +// LLE_MODE_TYPE +#define LLE_MODE_BASIC (0) //!< basic mode, enter idle state after sending or receive +#define LLE_MODE_AUTO (1) //!< auto mode, auto swtich to the receiving status after sending and the sending status after receiving + +// LLE_WHITENING_TYPE +#define LLE_WHITENING_ON (0<<1) +#define LLE_WHITENING_OFF (1<<1) + +// LLE_PHY_TYPE +#define LLE_MODE_PHY_MODE_MASK (0x30) +#define LLE_MODE_PHY_1M (0<<4) +#define LLE_MODE_PHY_2M (1<<4) + +#define LLE_MODE_EX_CHANNEL (1<<6) + +#define LLE_MODE_NON_RSSI (1<<7) + +/** + * RFRole Event Callback Function + */ +typedef void (*pfnRFStatusCB_t)( uint8_t sta, uint8_t rsr, uint8_t *rxBuf ); +// sta - current status@ref RF_ROLE_STATUS_TYPE +// rsr - receive status: bit0- crc check result,bit1- type matching result +// rxBuf - receive data buffer + +typedef struct tag_rf_config +{ + uint8_t LLEMode; //!< BIT0 0=basic, 1=auto def@LLE_MODE_TYPE + //!< BIT1 0=whitening on, 1=whitening off def@LLE_WHITENING_TYPE + //!< BIT4-5 00-1M 01-2M 10/11-resv def@LLE_PHY_TYPE + //!< BIT6 0=data channel(0-39) + //!< 1=rf frequency (2400000kHz-2483500kHz) + //!< BIT7 0=the first byte of the receive buffer is rssi + //!< 1=the first byte of the receive buffer is package type + uint8_t Channel; //!< rf channel(0-39) + uint32_t Frequency; //!< rf frequency (2400000kHz-2483500kHz) + uint32_t accessAddress; //!< access address,32bit PHY address + uint32_t CRCInit; //!< crc initial value + pfnRFStatusCB_t rfStatusCB; //!< status call back + uint8_t RxMaxlen; //!< Maximum data length received in rf-mode(default 251) + uint8_t TxMaxlen; //!< Maximum data length transmit in rf-mode(default 251) +} rfConfig_t; + +/* end define@RF-PHY */ + +/******************************************************************************* + * UUID defined + */ +/** + * GATT Services + */ +extern const uint8_t gapServiceUUID[]; +extern const uint8_t gattServiceUUID[]; + +/** + * GATT Attribute Types + */ +extern const uint8_t primaryServiceUUID[]; +extern const uint8_t secondaryServiceUUID[]; +extern const uint8_t includeUUID[]; +extern const uint8_t characterUUID[]; + +/** + * GATT Characteristic Descriptors + */ +extern const uint8_t charExtPropsUUID[]; +extern const uint8_t charUserDescUUID[]; +extern const uint8_t clientCharCfgUUID[]; +extern const uint8_t servCharCfgUUID[]; +extern const uint8_t charFormatUUID[]; +extern const uint8_t charAggFormatUUID[]; +extern const uint8_t validRangeUUID[]; +extern const uint8_t extReportRefUUID[]; +extern const uint8_t reportRefUUID[]; + +/** + * GATT Characteristic Types + */ +extern const uint8_t deviceNameUUID[]; +extern const uint8_t appearanceUUID[]; +extern const uint8_t periPrivacyFlagUUID[]; +extern const uint8_t reconnectAddrUUID[]; +extern const uint8_t periConnParamUUID[]; +extern const uint8_t serviceChangedUUID[]; +extern const uint8_t centAddrResUUID[]; + +/******************************************************************************* + * PUBLIC FUNCTIONS + */ +extern uint32_t tmos_rand( void ); // pseudo-random number +extern BOOL tmos_memcmp( const void *src1, const void *src2, uint32_t len ); // TRUE - same, FALSE - different +extern BOOL tmos_isbufset( uint8_t *buf, uint8_t val, uint32_t len ); // TRUE if all "val",FALSE otherwise +extern uint32_t tmos_strlen( char *pString ); +extern void tmos_memset( void * pDst, uint8_t Value, uint32_t len ); +extern void tmos_memcpy( void *dst, const void *src, uint32_t len ); // Generic memory copy. + +/** + * @brief start a event immediately + * + * @param taskID - task ID of event + * @param event - event value + * + * @return 0 - SUCCESS. + */ +extern bStatus_t tmos_set_event( tmosTaskID taskID, tmosEvents event ); + +/** + * @brief clear a event already timeout, cannot be used in it own event function. + * + * @param taskID - task ID of event + * @param event - event value + * + * @return 0 - SUCCESS. + */ +extern bStatus_t tmos_clear_event( tmosTaskID taskID, tmosEvents event ); + +/** + * @brief start a event after period of time + * + * @param taskID - task ID to set event for + * @param event - event to be notified with + * @param time - timeout value + * + * @return TRUE,FALSE. + */ +extern BOOL tmos_start_task( tmosTaskID taskID, tmosEvents event, tmosTimer time ); + +/** + * @brief This function is called to start a timer to expire in n system clock time. + * When the timer expires, the calling task will get the specified event + * and the timer will be reloaded with the timeout value. + * + * @param taskID - task ID to set timer for + * @param event - event to be notified with + * @param time - timeout value + * + * @return SUCCESS, or NO_TIMER_AVAIL. + */ +extern bStatus_t tmos_start_reload_task( tmosTaskID taskID, tmosEvents event, tmosTimer time ); + +/** + * @brief stop a event + * + * @param taskID - task ID of event + * @param event - event value + * + * @param None. + * + * @return SUCCESS. + */ +extern bStatus_t tmos_stop_task( tmosTaskID taskID, tmosEvents event ); + +/** + * @brief get last period of time for this event + * + * @param taskID - task ID of event + * @param event - event value + * + * @return the timer's tick count if found, zero otherwise. + */ +extern tmosTimer tmos_get_task_timer( tmosTaskID taskID, tmosEvents event ); + +/** + * @brief send msg to a task,callback events&SYS_EVENT_MSG + * + * @param taskID - task ID of task need to send msg + * @param *msg_ptr - point of msg + * + * @return SUCCESS, INVALID_TASK, INVALID_MSG_POINTER + */ +extern bStatus_t tmos_msg_send( tmosTaskID taskID, uint8_t *msg_ptr ); + +/** + * @brief delete a msg + * + * @param *msg_ptr - point of msg + * + * @return SUCCESS. + */ +extern bStatus_t tmos_msg_deallocate( uint8_t *msg_ptr ); + +/** + * @brief receive a msg + * + * @param taskID - task ID of task need to receive msg + * + * @return *uint8_t - message information or NULL if no message + */ +extern uint8_t *tmos_msg_receive( tmosTaskID taskID ); + +/** + * @brief allocate buffer for msg when need to send msg + * + * @param len - length of msg + * + * @return pointer to allocated buffer or NULL if allocation failed. + */ +extern uint8_t *tmos_msg_allocate( uint16_t len ); + +/** + * @brief read a data item to NV. + * + * @param id - Valid NV item Id. + * @param len - Length of data to read. + * @param *pBuf - Data to read. + * + * @return SUCCESS if successful, NV_OPER_FAILED if failed. + */ +extern bStatus_t tmos_snv_read( tmosSnvId_t id, tmosSnvLen_t len, void *pBuf ); + +/** + * @brief tmos system timer initialization + * + * @note must initialization before call tmos task + * + * @param fnGetClock - system clock select extend input,if NULL select HSE as the clock source + * + * @return SUCCESS if successful, FAILURE if failed. + */ +extern bStatus_t TMOS_TimerInit( bleClockConfig_t *pClockConfig ); + +/** + * @brief tmos system timer update + * + * @param None + * + * @return None + */ +extern bStatus_t TMOS_TimerSet( bleClockConfig_t *pClockConfig ); + +/** + * @brief Process system + * + * @param None. + * + * @return None. + */ +extern void TMOS_SystemProcess( void ); + +/** + * @brief Get current system clock + * + * @param None. + * + * @return current system clock (in 0.625ms) + */ +extern uint32_t TMOS_GetSystemClock( void ); + +/** + * @brief register process event callback function + * + * @param eventCb-events callback function + * + * @return 0xFF - error,others-task id + */ +extern tmosTaskID TMOS_ProcessEventRegister( pTaskEventHandlerFn eventCb ); + +/** + * @brief Add a device address into white list ( support SNVNum MAX ) + * + * @param addrType - Type of device address + * @param devAddr - first address of device address + * + * @return Command Status. + */ +extern bStatus_t LL_AddWhiteListDevice( uint8_t addrType, uint8_t *devAddr ); + +/** + * @brief Remove a device address from white list + * + * @param addrType - Type of device address + * @param devAddr - first address of device address + * + * @return Command Status. + */ +extern bStatus_t LL_RemoveWhiteListDevice( uint8_t addrType, uint8_t *devAddr ); + +/** + * @brief Clear white list + * + * @param None + * + * @return Command Status. + */ +extern bStatus_t LL_ClearWhiteList( void ); + +/** + * @brief Encrypt data + * + * @param key - key + * @param plaintextData - original data + * @param encryptData - encrypted data + * + * @return Command Status. + */ +extern bStatus_t LL_Encrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *encryptData ); + +/** + * @brief Decrypt data + * + * @param key - key + * @param plaintextData - original data + * @param decryptData - decrypted data + * + * @return Command Status. + */ +extern bStatus_t LL_Decrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *decryptData ); + +/** + * @brief get number of unAck packet in current connect buffer + * + * @param handle - connect handle + * + * @return 0xFFFFFFFF-handle error,number of packets not receiving ack + */ +extern uint32_t LL_GetNumberOfUnAckPacket( uint16_t handle ); + +/** + * @brief Register a callback function will be called after each connect event. + * Only effect in single connection + * + * @param connEventCB - callback function + * + * @return None. + */ +extern void LL_ConnectEventRegister( pfnEventCB connEventCB ); + +/** + * @brief Register a callback function will be called after each advertise event. + * + * @param advEventCB - callback function + * + * @return None. + */ +extern void LL_AdvertiseEventRegister( pfnEventCB advEventCB ); + +/** + * @brief set tx power level + * + * @param power - tx power level + * + * @return Command Status. + */ +extern bStatus_t LL_SetTxPowerLevel( uint8_t power ); + +/** + * @brief pa control init + * + * @note Can't be called until role Init + * + * @param paControl - pa control parameters(global variable) + * + * @return Command Status. + */ +extern void BLE_PAControlInit( blePaControlConfig_t *paControl ); + +/** + * @brief ble register reset and rf calibration + * + * @param None + * + * @return None + */ +extern void BLE_RegInit( void ); + +/** + * @brief Init BLE lib. RTC will be occupied at the same time. + * + * @param pCfg - config of BLE lib + * + * @return 0-success. error defined @ ERR_LIB_INIT + */ +extern bStatus_t BLE_LibInit( bleConfig_t* pCfg ); + +/** + * @brief interrupt handler. + * + * @param None + * + * @return None + */ +extern void BB_IRQLibHandler( void ); + +/** + * @brief interrupt handler. + * + * @param None + * + * @return None + */ +extern void LLE_IRQLibHandler( void ); + +/** + * @brief generate a valid access address + * + * @param None. + * + * @return access address + * the Access Address meets the following requirements: + * It shall have no more than six consecutive zeros or ones. + * It shall not be t he advertising channel packets Access Address. + * It shall not be a sequence that differ s from the advertising channel packets' Access Address by only one bit. + * It shall not have all four octets equal. + * It shall have no more than 24 transitions. + * It shall have a minimum of two transitions in the most significant six bits. + */ +extern uint32_t BLE_AccessAddressGenerate( void ); + +/* + * linkDB_Register - Register with this function to receive a callback when + * status changes on a connection. + */ +extern uint8_t linkDB_Register( pfnLinkDBCB_t pFunc ); + +/* + * linkDB_State - Check to see if a physical link is in a specific state. + * + * returns TRUE is the link is in state. FALSE, otherwise. + */ +extern uint8_t linkDB_State( uint16_t connectionHandle, uint8_t state ); + +/* + * linkDB_PerformFunc - Perform a function of each connection in the link database. + */ +extern void linkDB_PerformFunc( pfnPerformFuncCB_t cb ); +/* + * linkDB_Up - Check to see if a physical link is up (connected). + * Use like: uint8_t linkDB_Up( uint16_t connectionHandle ); + * connectionHandle - controller link connection handle. + * returns TRUE if the link is up. FALSE, otherwise. + */ +#define linkDB_Up( connectionHandle ) linkDB_State( (connectionHandle), LINK_CONNECTED ) + +/** + * @brief This function is used to get the MTU size of a connection. + * + * @param connHandle - connection handle. + * + * @return connection MTU size.
+ */ +extern uint16_t ATT_GetMTU( uint16_t connHandle ); + +/** + * @brief Send Handle Value Confirmation. + * + * @param connHandle - connection to use + * + * @return SUCCESS: Confirmation was sent successfully.
+ * INVALIDPARAMETER: Invalid confirmation field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * bleMemAllocError: Memory allocation error occurred.
+ */ +extern bStatus_t ATT_HandleValueCfm( uint16_t connHandle ); + +/* + * Compare two UUIDs. The UUIDs are converted if necessary. + */ +extern uint8_t ATT_CompareUUID( const uint8_t *pUUID1, uint16_t len1, const uint8_t *pUUID2, uint16_t len2 ); + +/** + * @brief Initialize the Generic Attribute Profile Client. + * + * @return SUCCESS: Client initialized successfully.
+ * bleMemAllocError: Memory allocation error occurred.
+ */ +extern bStatus_t GATT_InitClient( void ); + +/** + * @brief Register to receive incoming ATT Indications or Notifications + * of attribute values. + * + * @param taskId ?task to forward indications or notifications to + * + * @return void + */ +extern void GATT_RegisterForInd( uint8_t taskId ); + +/** + * @brief Find the attribute record for a given handle + * + * @param handle - handle to look for + * @param pHandle - handle of owner of attribute (to be returned) + * + * @return Pointer to attribute record. NULL, otherwise. + */ +extern gattAttribute_t *GATT_FindHandle( uint16_t handle, uint16_t *pHandle ); + +/** + * @brief This sub-procedure is used when a server is configured to + * indicate a characteristic value to a client and expects an + * attribute protocol layer acknowledgement that the indication + * was successfully received. + * + * The ATT Handle Value Indication is used in this sub-procedure. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be ATT_HANDLE_VALUE_CFM. + * + * @note This sub-procedure is complete when ATT_HANDLE_VALUE_CFM + * (with SUCCESS or bleTimeoutstatus) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pInd - pointer to indication to be sent + * @param authenticated - whether an authenticated link is required + * @param taskId - task to be notified of response + * + * @return SUCCESS: Indication was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A confirmation is pending with this client.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_Indication( uint16_t connHandle, attHandleValueInd_t *pInd, uint8_t authenticated, uint8_t taskId ); +/** + * @brief This sub-procedure is used when a server is configured to + * notify a characteristic value to a client without expecting + * any attribute protocol layer acknowledgement that the + * notification was successfully received. + * + * The ATT Handle Value Notification is used in this sub-procedure. + * + * @note A notification may be sent at any time and does not invoke a confirmation. + * No confirmation will be sent to the calling application task for + * this sub-procedure. + * + * @param connHandle - connection to use + * @param pNoti - pointer to notification to be sent + * @param authenticated - whether an authenticated link is required + * + * @return SUCCESS: Notification was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_Notification( uint16_t connHandle, attHandleValueNoti_t *pNoti, uint8_t authenticated ); + +/** + * @brief This sub-procedure is used by the client to set the ATT_MTU + * to the maximum possible value that can be supported by both + * devices when the client supports a value greater than the + * default ATT_MTU for the Attribute Protocol. This sub-procedure + * shall only be initiated once during a connection. + * + * The ATT Exchange MTU Request is used by this sub-procedure. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_EXCHANGE_MTU_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_EXCHANGE_MTU_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ExchangeMTU( uint16_t connHandle, attExchangeMTUReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to discover all + * the primary services on a server. + * + * The ATT Read By Group Type Request is used with the Attribute + * Type parameter set to the UUID for "Primary Service". The + * Starting Handle is set to 0x0001 and the Ending Handle is + * set to 0xFFFF. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BY_GRP_TYPE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BY_GRP_TYPE_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_DiscAllPrimaryServices( uint16_t connHandle, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to discover a specific + * primary service on a server when only the Service UUID is + * known. The primary specific service may exist multiple times + * on a server. The primary service being discovered is identified + * by the service UUID. + * + * The ATT Find By Type Value Request is used with the Attribute + * Type parameter set to the UUID for "Primary Service" and the + * Attribute Value set to the 16-bit Bluetooth UUID or 128-bit + * UUID for the specific primary service. The Starting Handle shall + * be set to 0x0001 and the Ending Handle shall be set to 0xFFFF. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_FIND_BY_TYPE_VALUE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_FIND_BY_TYPE_VALUE_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pUUID - pointer to service UUID to look for + * @param len - length of value + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_DiscPrimaryServiceByUUID( uint16_t connHandle, uint8_t *pUUID, uint8_t len, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to find include + * service declarations within a service definition on a + * server. The service specified is identified by the service + * handle range. + * + * The ATT Read By Type Request is used with the Attribute + * Type parameter set to the UUID for "Included Service". The + * Starting Handle is set to starting handle of the specified + * service and the Ending Handle is set to the ending handle + * of the specified service. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BY_TYPE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BY_TYPE_RSP + * (with bleProcedureCompleteor bleTimeout status)or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param startHandle - starting handle + * @param endHandle - end handle + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_FindIncludedServices( uint16_t connHandle, uint16_t startHandle, uint16_t endHandle, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to find all the + * characteristic declarations within a service definition on + * a server when only the service handle range is known. The + * service specified is identified by the service handle range. + * + * The ATT Read By Type Request is used with the Attribute Type + * parameter set to the UUID for "Characteristic". The Starting + * Handle is set to starting handle of the specified service and + * the Ending Handle is set to the ending handle of the specified + * service. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BY_TYPE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BY_TYPE_RSP + * (with bleProcedureComplete or bleTimeout status)or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param startHandle - starting handle + * @param endHandle - end handle + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_DiscAllChars( uint16_t connHandle, uint16_t startHandle, uint16_t endHandle, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to discover service + * characteristics on a server when only the service handle + * ranges are known and the characteristic UUID is known. + * The specific service may exist multiple times on a server. + * The characteristic being discovered is identified by the + * characteristic UUID. + * + * The ATT Read By Type Request is used with the Attribute Type + * is set to the UUID for "Characteristic" and the Starting + * Handle and Ending Handle parameters is set to the service + * handle range. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BY_TYPE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BY_TYPE_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_DiscCharsByUUID( uint16_t connHandle, attReadByTypeReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used by a client to find all the + * characteristic descriptors Attribute Handles and Attribute + * Types within a characteristic definition when only the + * characteristic handle range is known. The characteristic + * specified is identified by the characteristic handle range. + * + * The ATT Find Information Request is used with the Starting + * Handle set to starting handle of the specified characteristic + * and the Ending Handle set to the ending handle of the specified + * characteristic. The UUID Filter parameter is NULL (zero length). + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_FIND_INFO_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_FIND_INFO_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param startHandle - starting handle + * @param endHandle - end handle + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_DiscAllCharDescs( uint16_t connHandle, uint16_t startHandle, uint16_t endHandle, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read a Characteristic Value + * from a server when the client knows the Characteristic Value + * Handle. The ATT Read Request is used with the Attribute Handle + * parameter set to the Characteristic Value Handle. The Read + * Response returns the Characteristic Value in the Attribute + * Value parameter. + * + * The Read Response only contains a Characteristic Value that + * is less than or equal to (ATT_MTU ?1) octets in length. If + * the Characteristic Value is greater than (ATT_MTU - 1) octets + * in length, the Read Long Characteristic Value procedure may + * be used if the rest of the Characteristic Value is required. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_READ_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadCharValue( uint16_t connHandle, attReadReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read a Characteristic Value + * from a server when the client only knows the characteristic + * UUID and does not know the handle of the characteristic. + * + * The ATT Read By Type Request is used to perform the sub-procedure. + * The Attribute Type is set to the known characteristic UUID and + * the Starting Handle and Ending Handle parameters shall be set + * to the range over which this read is to be performed. This is + * typically the handle range for the service in which the + * characteristic belongs. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT messages. + * The type of the message will be either ATT_READ_BY_TYPE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BY_TYPE_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadUsingCharUUID( uint16_t connHandle, attReadByTypeReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read a Characteristic Value from + * a server when the client knows the Characteristic Value Handle + * and the length of the Characteristic Value is longer than can + * be sent in a single Read Response Attribute Protocol message. + * + * The ATT Read Blob Request is used in this sub-procedure. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BLOB_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BLOB_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadLongCharValue( uint16_t connHandle, attReadBlobReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read multiple Characteristic Values + * from a server when the client knows the Characteristic Value + * Handles. The Attribute Protocol Read Multiple Requests is used + * with the Set Of Handles parameter set to the Characteristic Value + * Handles. The Read Multiple Response returns the Characteristic + * Values in the Set Of Values parameter. + * + * The ATT Read Multiple Request is used in this sub-procedure. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_READ_MULTI_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_MULTI_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadMultiCharValues( uint16_t connHandle, attReadMultiReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to write a Characteristic Value + * to a server when the client knows the Characteristic Value + * Handle and the client does not need an acknowledgement that + * the write was successfully performed. This sub-procedure + * only writes the first (ATT_MTU ?3) octets of a Characteristic + * Value. This sub-procedure can not be used to write a long + * characteristic; instead the Write Long Characteristic Values + * sub-procedure should be used. + * + * The ATT Write Command is used for this sub-procedure. The + * Attribute Handle parameter shall be set to the Characteristic + * Value Handle. The Attribute Value parameter shall be set to + * the new Characteristic Value. + * + * No response will be sent to the calling application task for this + * sub-procedure. If the Characteristic Value write request is the + * wrong size, or has an invalid value as defined by the profile, + * then the write will not succeed and no error will be generated + * by the server. + * + * @param connHandle - connection to use + * @param pReq - pointer to command to be sent + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_WriteNoRsp( uint16_t connHandle, attWriteReq_t *pReq ); + +/** + * @brief This sub-procedure is used to write a Characteristic Value + * to a server when the client knows the Characteristic Value + * Handle and the ATT Bearer is not encrypted. This sub-procedure + * shall only be used if the Characteristic Properties authenticated + * bit is enabled and the client and server device share a bond as + * defined in the GAP. + * + * This sub-procedure only writes the first (ATT_MTU ?15) octets + * of an Attribute Value. This sub-procedure cannot be used to + * write a long Attribute. + * + * The ATT Write Command is used for this sub-procedure. The + * Attribute Handle parameter shall be set to the Characteristic + * Value Handle. The Attribute Value parameter shall be set to + * the new Characteristic Value authenticated by signing the + * value, as defined in the Security Manager. + * + * No response will be sent to the calling application task for this + * sub-procedure. If the authenticated Characteristic Value that is + * written is the wrong size, or has an invalid value as defined by + * the profile, or the signed value does not authenticate the client, + * then the write will not succeed and no error will be generated by + * the server. + * + * @param connHandle - connection to use + * @param pReq - pointer to command to be sent + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleLinkEncrypted: Connection is already encrypted.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_SignedWriteNoRsp( uint16_t connHandle, attWriteReq_t *pReq ); + +/** + * @brief This sub-procedure is used to write a characteristic value + * to a server when the client knows the characteristic value + * handle. This sub-procedure only writes the first (ATT_MTU-3) + * octets of a characteristic value. This sub-procedure can not + * be used to write a long attribute; instead the Write Long + * Characteristic Values sub-procedure should be used. + * + * The ATT Write Request is used in this sub-procedure. The + * Attribute Handle parameter shall be set to the Characteristic + * Value Handle. The Attribute Value parameter shall be set to + * the new characteristic. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_WRITE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_WRITE_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_WriteCharValue( uint16_t connHandle, attWriteReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to write a Characteristic Value to + * a server when the client knows the Characteristic Value Handle + * but the length of the Characteristic Value is longer than can + * be sent in a single Write Request Attribute Protocol message. + * + * The ATT Prepare Write Request and Execute Write Request are + * used to perform this sub-procedure. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_PREPARE_WRITE_RSP, + * ATT_EXECUTE_WRITE_RSP or ATT_ERROR_RSP (if an error occurred on + * the server). + * + * @note This sub-procedure is complete when either ATT_PREPARE_WRITE_RSP + * (with bleTimeout status), ATT_EXECUTE_WRITE_RSP + * (with SUCCESS or bleTimeout status), or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @note The 'pReq->pValue' pointer will be freed when the sub-procedure is complete. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_WriteLongCharValue( uint16_t connHandle, attPrepareWriteReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to write a Characteristic Value to + * a server when the client knows the Characteristic Value Handle, + * and assurance is required that the correct Characteristic Value + * is going to be written by transferring the Characteristic Value + * to be written in both directions before the write is performed. + * This sub-procedure can also be used when multiple values must + * be written, in order, in a single operation. + * + * The sub-procedure has two phases, the first phase prepares the + * characteristic values to be written. Once this is complete, + * the second phase performs the execution of all of the prepared + * characteristic value writes on the server from this client. + * + * In the first phase, the ATT Prepare Write Request is used. + * In the second phase, the attribute protocol Execute Write + * Request is used. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_PREPARE_WRITE_RSP, + * ATT_EXECUTE_WRITE_RSP or ATT_ERROR_RSP (if an error occurred on + * the server). + * + * @note This sub-procedure is complete when either ATT_PREPARE_WRITE_RSP + * (with bleTimeout status), ATT_EXECUTE_WRITE_RSP + * (with SUCCESS or bleTimeout status), or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @note The 'pReqs' pointer will be freed when the sub-procedure is complete. + * + * @param connHandle - connection to use + * @param pReqs - pointer to requests to be sent + * @param numReqs - number of requests in pReq + * @param flags - execute write request flags + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReliableWrites( uint16_t connHandle, attPrepareWriteReq_t *pReqs, uint8_t numReqs, + uint8_t flags, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read a characteristic descriptor + * from a server when the client knows the characteristic descriptor + * declaration's Attribute handle. + * + * The ATT Read Request is used for this sub-procedure. The Read + * Request is used with the Attribute Handle parameter set to the + * characteristic descriptor handle. The Read Response returns the + * characteristic descriptor value in the Attribute Value parameter. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_READ_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadCharDesc( uint16_t connHandle, attReadReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to read a characteristic descriptor + * from a server when the client knows the characteristic descriptor + * declaration's Attribute handle and the length of the characteristic + * descriptor declaration is longer than can be sent in a single Read + * Response attribute protocol message. + * + * The ATT Read Blob Request is used to perform this sub-procedure. + * The Attribute Handle parameter shall be set to the characteristic + * descriptor handle. The Value Offset parameter shall be the offset + * within the characteristic descriptor to be read. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive multiple tmos GATT_MSG_EVENT messages. + * The type of the messages will be either ATT_READ_BLOB_RSP or + * ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_READ_BLOB_RSP + * (with bleProcedureComplete or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_ReadLongCharDesc( uint16_t connHandle, attReadBlobReq_t *pReq, uint8_t taskId ); + +/** + * @brief This sub-procedure is used to write a characteristic + * descriptor value to a server when the client knows the + * characteristic descriptor handle. + * + * The ATT Write Request is used for this sub-procedure. The + * Attribute Handle parameter shall be set to the characteristic + * descriptor handle. The Attribute Value parameter shall be + * set to the new characteristic descriptor value. + * + * If the return status from this function is SUCCESS, the calling + * application task will receive an tmos GATT_MSG_EVENT message. + * The type of the message will be either ATT_WRITE_RSP + * or ATT_ERROR_RSP (if an error occurred on the server). + * + * @note This sub-procedure is complete when either ATT_WRITE_RSP + * (with SUCCESS or bleTimeout status) or ATT_ERROR_RSP + * (with SUCCESS status) is received by the calling application task. + * + * @param connHandle - connection to use + * @param pReq - pointer to request to be sent + * @param taskId - task to be notified of response + * + * @return SUCCESS: Request was sent successfully.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A response is pending with this server.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleTimeout: Previous transaction timed out.
+ */ +extern bStatus_t GATT_WriteCharDesc( uint16_t connHandle, attWriteReq_t *pReq, uint8_t taskId ); + + +/** + * @brief GATT implementation of the allocator functionality. + * + * @note This function should only be called by GATT and the upper layer protocol/application. + * + * @param connHandle - connection that message is to be sent on. + * @param opcode - opcode of message that buffer to be allocated for. + * @param size - number of bytes to allocate from the heap. + * @param pSizeAlloc - number of bytes allocated for the caller from the heap. + * @param flag - . + * + * @return pointer to the heap allocation; NULL if error or failure. + */ +extern void *GATT_bm_alloc( uint16_t connHandle, uint8_t opcode, uint16_t size, uint16_t *pSizeAlloc, uint8_t flag ); + +/** + * @brief GATT implementation of the de-allocator functionality. + * + * @param pMsg - pointer to GATT message containing the memory to free. + * @param opcode - opcode of the message + * + * @return none + */ +extern void GATT_bm_free( gattMsg_t *pMsg, uint8_t opcode ); + +/** + * @brief Register a service's attribute list and callback functions with + * the GATT Server Application. + * + * @param pAttrs - Array of attribute records to be registered + * @param numAttrs - Number of attributes in array + * @param encKeySize - Minimum encryption key size required by service (7-16 bytes) + * @param pServiceCBs - Service callback function pointers + * + * @return SUCCESS: Service registered successfully.
+ * INVALIDPARAMETER: Invalid service fields.
+ * FAILURE: Not enough attribute handles available.
+ * bleMemAllocError: Memory allocation error occurred.
+ * bleInvalidRange: Encryption key size's out of range.
+ */ +extern bStatus_t GATTServApp_RegisterService( gattAttribute_t *pAttrs, uint16_t numAttrs, + uint8_t encKeySize, gattServiceCBs_t *pServiceCBs ); + +/** + * @brief Add function for the GATT Service. + * + * @param services - services to add. This is a bit map and can + * contain more than one service. + * + * @return SUCCESS: Service added successfully.
+ * INVALIDPARAMETER: Invalid service field.
+ * FAILURE: Not enough attribute handles available.
+ * bleMemAllocError: Memory allocation error occurred.
+ */ +extern bStatus_t GATTServApp_AddService( uint32_t services ); + +/** + * @brief Deregister a service's attribute list and callback functions from + * the GATT Server Application. + * + * @note It's the caller's responsibility to free the service attribute + * list returned from this API. + * + * @param handle - handle of service to be deregistered + * @param p2pAttrs - pointer to array of attribute records (to be returned) + * + * @return SUCCESS: Service deregistered successfully.
+ * FAILURE: Service not found.
+ */ +extern bStatus_t GATTServApp_DeregisterService( uint16_t handle, gattAttribute_t **p2pAttrs ); + +/** + * @brief Initialize the client characteristic configuration table. + * + * @note Each client has its own instantiation of the ClientCharacteristic Configuration. + * Reads/Writes of the Client Characteristic Configuration only only affect the + * configuration of that client. + * + * @param connHandle - connection handle (0xFFFF for all connections). + * @param charCfgTbl - client characteristic configuration table. + * + * @return none + */ +extern void GATTServApp_InitCharCfg( uint16_t connHandle, gattCharCfg_t *charCfgTbl ); + +/** + * @brief Send out a Service Changed Indication. + * + * @param connHandle - connection to use + * @param taskId - task to be notified of confirmation + * + * @return SUCCESS: Indication was sent successfully.
+ * FAILURE: Service Changed attribute not found.
+ * INVALIDPARAMETER: Invalid connection handle or request field.
+ * MSG_BUFFER_NOT_AVAIL: No HCI buffer is available.
+ * bleNotConnected: Connection is down.
+ * blePending: A confirmation is pending with this client.
+ */ +extern bStatus_t GATTServApp_SendServiceChangedInd( uint16_t connHandle, uint8_t taskId ); + +/** + * @brief Read the client characteristic configuration for a given client. + * + * @note Each client has its own instantiation of the Client Characteristic Configuration. + * Reads of the Client Characteristic Configuration only shows the configuration + * for that client. + * + * @param connHandle - connection handle. + * @param charCfgTbl - client characteristic configuration table. + * + * @return attribute value + */ +extern uint16_t GATTServApp_ReadCharCfg( uint16_t connHandle, gattCharCfg_t *charCfgTbl ); + +/** + * @brief Write the client characteristic configuration for a given client. + * + * @note Each client has its own instantiation of the Client Characteristic Configuration. + * Writes of the Client Characteristic Configuration only only affect the + * configuration of that client. + * + * @param connHandle - connection handle. + * @param charCfgTbl - client characteristic configuration table. + * @param value - attribute new value. + * + * @return Success or Failure + */ +extern uint8_t GATTServApp_WriteCharCfg( uint16_t connHandle, gattCharCfg_t *charCfgTbl, uint16_t value ); + +/** + * @brief Process the client characteristic configuration + * write request for a given client. + * + * @param connHandle - connection message was received on. + * @param pAttr - pointer to attribute. + * @param pValue - pointer to data to be written. + * @param len - length of data. + * @param offset - offset of the first octet to be written. + * @param validCfg - valid configuration. + * + * @return Success or Failure + */ +extern bStatus_t GATTServApp_ProcessCCCWriteReq( uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t len, uint16_t offset, uint16_t validCfg ); + +/** + * @brief Set a GAP GATT Server parameter. + * + * @param param - Profile parameter ID
+ * @param len - length of data to right + * @param value - pointer to data to write. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer).
+ * + * @return bStatus_t + */ +extern bStatus_t GGS_SetParameter( uint8_t param, uint8_t len, void *value ); + +/** + * @brief Get a GAP GATT Server parameter. + * + * @param param - Profile parameter ID
+ * @param value - pointer to data to put. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer).
+ * + * @return bStatus_t + */ +extern bStatus_t GGS_GetParameter( uint8_t param, void *value ); + +/** + * @brief Add function for the GAP GATT Service. + * + * @param services - services to add. This is a bit map and can + * contain more than one service. + * + * @return SUCCESS: Service added successfully.
+ * INVALIDPARAMETER: Invalid service field.
+ * FAILURE: Not enough attribute handles available.
+ * bleMemAllocError: Memory allocation error occurred.
+ */ +extern bStatus_t GGS_AddService( uint32_t services ); + +/*------------------------------------------------------------------- + * FUNCTIONS - Initialization and Configuration + */ + +/** + * @brief Set a GAP Parameter value. Use this function to change the default GAP parameter values. + * + * @param paramID - parameter ID: @ref GAP_PARAMETER_ID_DEFINES + * @param paramValue - new param value + * + * @return SUCCESS or INVALIDPARAMETER (invalid paramID) + */ +extern bStatus_t GAP_SetParamValue( uint16_t paramID, uint16_t paramValue ); + +/** + * @brief Get a GAP Parameter value. + * + * @param paramID - parameter ID: @ref GAP_PARAMETER_ID_DEFINES + * + * @return GAP Parameter value or 0xFFFF if invalid + */ +extern uint16_t GAP_GetParamValue( uint16_t paramID ); + +/** + * @brief Setup the device's address type. + * + * @param addrType - @ref GAP_ADDR_TYPE_DEFINES + * @param pStaticAddr - Only used with ADDRTYPE_STATIC or ADDRTYPE_PRIVATE_NONRESOLVE type + * NULL to auto generate otherwise the application can specify the address value + * + * @return SUCCESS: address type updated,
+ * bleNotReady: Can't be called until GAP_DeviceInit() is called + * and the init process is completed + * bleIncorrectMode: can't change with an active connection,or INVALIDPARAMETER + * If return value isn't SUCCESS, the address type remains the same as before this call. + */ +extern bStatus_t GAP_ConfigDeviceAddr( uint8_t addrType, uint8_t *pStaticAddr ); + +/** + * @brief Resolves a private address against an IRK. + * + * @param(in) pIRK - pointer to the IRK + * @param(in) pAddr - pointer to the Resolvable Private address + * + * @param(out) pIRK + * @param(out) pAddr + * + * @return SUCCESS: match,
+ * FAILURE: don't match,
+ * INVALIDPARAMETER: parameters invalid
+ */ +extern bStatus_t GAP_ResolvePrivateAddr( uint8_t *pIRK, uint8_t *pAddr ); + +/** + * @brief Setup or change advertising and scan response data. + * + * @note if the return status from this function is SUCCESS,the task isn't complete + * until the GAP_ADV_DATA_UPDATE_DONE_EVENT is sent to the calling application task. + * + * @param taskID - task ID of the app requesting the change + * @param adType - TRUE - advertisement data, FALSE - scan response data + * @param dataLen - Octet length of advertData + * @param pAdvertData - advertising or scan response data + * + * @return SUCCESS: data accepted + * bleIncorrectMode: invalid profile role + */ +extern bStatus_t GAP_UpdateAdvertisingData( uint8_t taskID, uint8_t adType, uint16_t dataLen, uint8_t *pAdvertData ); + +/*------------------------------------------------------------------- + * FUNCTIONS - GAP Bond API + */ +/** + * @brief Set a GAP Bond Manager parameter. + * + * @note You can call this function with a GAP Parameter ID and it will set the GAP Parameter. + * + * @param param - Profile parameter ID: @ref GAPBOND_PROFILE_PARAMETERS + * @param len - length of data to write + * @param pValue - pointer to data to write. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + * + * @return SUCCESS or INVALIDPARAMETER (invalid paramID) + */ +extern bStatus_t GAPBondMgr_SetParameter( uint16_t param, uint8_t len, void *pValue ); + +/** + * @brief Get a GAP Bond Manager parameter. + * + * @note You can call this function with a GAP Parameter ID and it will get a GAP Parameter. + * + * @param param - Profile parameter ID: @ref GAPBOND_PROFILE_PARAMETERS + * @param pValue - pointer to location to get the value. This is dependent on + * the parameter ID and WILL be cast to the appropriate data type. + * (example: data type of uint16_t will be cast to uint16_t pointer) + * + * @return SUCCESS or INVALIDPARAMETER (invalid paramID) + */ +extern bStatus_t GAPBondMgr_GetParameter( uint16_t param, void *pValue ); + +/** + * @brief Respond to a passcode request. + * + * @param connectionHandle - connection handle of the connected device or 0xFFFF if all devices in database. + * @param status - SUCCESS if passcode is available, otherwise see @ref SMP_PAIRING_FAILED_DEFINES. + * @param passcode - integer value containing the passcode. + * + * @return SUCCESS - bond record found and changed + * bleIncorrectMode - Link not found. + */ +extern bStatus_t GAPBondMgr_PasscodeRsp( uint16_t connectionHandle, uint8_t status, uint32_t passcode ); + +/** + * @brief Send a security request + * + * @param connHandle - connection handle + * + * @return SUCCESS: will send + * bleNotConnected: Link not found + * bleIncorrectMode: wrong GAP role, must be a Peripheral Role + */ +extern bStatus_t GAPBondMgr_PeriSecurityReq( uint16_t connHandle ); + +/*------------------------------------------------------------------- + * FUNCTIONS - GAPRole API + */ +/** + * @brief Set a GAP Role parameter. + * + * @note You can call this function with a GAP Parameter ID and it will set a GAP Parameter. + * + * @param param - Profile parameter ID: @ref GAPROLE_PROFILE_PARAMETERS + * @param len - length of data to write + * @param pValue - pointer to data to write. This is dependent on the parameter ID and + * WILL be cast to the appropriate data type (example: data type of uint16_t + * will be cast to uint16_t pointer). + * + * @return SUCCESS or INVALIDPARAMETER (invalid paramID) + */ +extern bStatus_t GAPRole_SetParameter( uint16_t param, uint16_t len, void *pValue ); + +/** + * @brief Get a GAP Role parameter. + * + * @note You can call this function with a GAP Parameter ID and it will get a GAP Parameter. + * + * @param param - Profile parameter ID: @ref GAPROLE_PROFILE_PARAMETERS + * @param pValue - pointer to location to get the value. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + * + * @return SUCCESS or INVALIDPARAMETER (invalid paramID) + */ +extern bStatus_t GAPRole_GetParameter( uint16_t param, void *pValue ); + +/** + * @brief Terminates the existing connection. + * + * @return SUCCESS or bleIncorrectMode + */ +extern bStatus_t GAPRole_TerminateLink( uint16_t connHandle ); + +/** + * @brief Read Rssi Cmd. + * + * @param connHandle - connection handle + * + * @return bStatus_t: HCI Error Code.
+ * + */ +extern bStatus_t GAPRole_ReadRssiCmd( uint16_t connHandle ); + +/** + * @brief Update the link connection parameters. + * + * @param connHandle - connection handle + * @param connIntervalMin - minimum connection interval in 1.25ms units + * @param connIntervalMax - maximum connection interval in 1.25ms units + * @param connLatency - number of LL latency connection events + * @param connTimeout - connection timeout in 10ms units + * + * @return SUCCESS: Connection update started started.
+ * bleIncorrectMode: No connection to update.
+ */ +extern bStatus_t GAPRole_UpdateLink( uint16_t connHandle, uint16_t connIntervalMin, + uint16_t connIntervalMax, uint16_t connLatency, uint16_t connTimeout ); + +/** + * @brief Update the connection phy. + * + * @param connHandle - connection handle + * @param all_phys - a bit field that allows the Host to specify, for each direction + * set BIT0:The Host has no preference among the transmitter PHYs supported by the Controller + * set BIT1:The Host has no preference among the receiver PHYs supported by the Controller + * @param tx_phys - a bit field that indicates the transmitter PHYs.(GAP_PHY_BIT_TYPE) + * @param rx_phys - a bit field that indicates the receiver PHYs.(GAP_PHY_BIT_TYPE) + * @param phy_options - resv + * + * @return SUCCESS: PHY update started started .
+ * bleIncorrectMode: No connection to update.
+ */ +extern bStatus_t GAPRole_UpdatePHY( uint16_t connHandle, uint8_t all_phys, uint8_t tx_phys,\ + uint8_t rx_phys, uint16_t phy_options ); + +/** + * @brief Does the Broadcaster receive scan request call initialization. + * + * @param pAppCallbacks - pointer to application callbacks. + * + * @return None + */ +extern void GAPRole_BroadcasterSetCB( gapRolesBroadcasterCBs_t *pAppCallbacks ); + +/*------------------------------------------------------------------- + * FUNCTIONS - PERIPHERAL_PROFILE_API Peripheral Profile API + */ +/** + * @internal + * + * @brief Initialization function for the GAP Role Task. + * This is called during initialization and should contain + * any application specific initialization (ie. hardware + * initialization/setup, table initialization, power up + * notificaiton ... ). + * + * @param None. + * + * @return SUCCESS,bleInvalidRange + */ +extern bStatus_t GAPRole_PeripheralInit( void ); + +/** + * @brief Does the device initialization. Only call this function once. + * + * @param pAppCallbacks - pointer to application callbacks. + * + * @return SUCCESS or bleAlreadyInRequestedMode + */ +extern bStatus_t GAPRole_PeripheralStartDevice( uint8_t taskid, gapBondCBs_t *pCB, gapRolesCBs_t *pAppCallbacks ); + +/** + * @brief Update the parameters of an existing connection + * + * @param connHandle - the connection Handle + * @param connIntervalMin - minimum connection interval in 1.25ms units + * @param connIntervalMax - maximum connection interval in 1.25ms units + * @param latency - the new slave latency + * @param connTimeout - the new timeout value + * @param taskId - resv + * + * @return SUCCESS, bleNotConnected or bleInvalidRange + */ +extern bStatus_t GAPRole_PeripheralConnParamUpdateReq( uint16_t connHandle, uint16_t connIntervalMin, + uint16_t connIntervalMax, uint16_t latency, uint16_t connTimeout, uint8_t taskId ); +/*------------------------------------------------------------------- + * FUNCTIONS - RF_PHY Profile API + */ + +/** + * @brief RF_PHY Profile Task initialization function. + * + * @param None. + * + * @return 0 - success. + */ +extern bStatus_t RF_RoleInit( void ); + +/** + * @brief rf config. + * + * @param pConfig - rf config parameters + * + * @return 0 - success. + */ +extern bStatus_t RF_Config( rfConfig_t *pConfig ); + +/** + * @brief rx mode. + * + * @param txBuf - rx mode tx data + * @param txLen - rx mode tx length(0-251) + * @param pktRxType - rx mode rx package type + * broadcast type(0xFF):receive all matching types, + * others:receive match type or broadcast type + * @param pktTxType - rx mode tx package type(auto mode) + * broadcast type(0xFF):received by all matching types; + * others:only received by matching type + * + * @return 0 - success. 1-access address error 2-busy + */ +extern bStatus_t RF_Rx( uint8_t *txBuf, uint8_t txLen, uint8_t pktRxType, uint8_t pktTxType ); + +/** + * @brief tx mode. + * + * @param txBuf - tx mode tx data + * @param txLen - tx mode tx length(0-251) + * @param pktTxType - tx mode tx package type + * broadcast type(0xFF):received by all matching types; + * others:only received by matching type + * @param pktRxType - tx mode rx package type(auto mode) + * broadcast type(0xFF):receive all matching types, + * others:receive match type or broadcast type + * + * @return 0 - success. 1-access address error 2-busy + */ +extern bStatus_t RF_Tx( uint8_t *txBuf, uint8_t txLen, uint8_t pktTxType, uint8_t pktRxType ); + +/** + * @brief shut down,stop tx/rx mode. + * + * @param None. + * + * @return 0 - success. + */ +extern bStatus_t RF_Shut( void ); + +/** + * @brief rf mode set radio channel/frequency. + * + * @param channel. + * + * @return 0 - success. + */ +extern void RF_SetChannel( uint32_t channel ); + +/** + * @brief rf mode set radio frequency and whitening channel index + * note: LLEMode bit6 set 1 + * + * @param frequency - + * @param ch - the whitening channel index + * + * @return 0 - success. + */ +extern bStatus_t RF_SetFrequency( uint32_t frequency, uint8_t ch ); + +/** + * @brief single channel mode. + * + * @param ch - rf channel,f=2402+ch*2 MHz, ch=0,...,39 + * + * @return 0 - success. + */ +extern bStatus_t LL_SingleChannel( uint8_t ch ); + +/** + * @brief used to stop any test which is in progress. + * + * @param(in) pPktNum - null + * + * @param(out) the number of received packets. + * + * @return 0 - success. + */ +extern bStatus_t LL_TestEnd( uint8_t *pPktNum ); + +/** + * @brief used to start a test where the DUT receives test reference packets at a fixed interval + * + * input parameters + * + * @param opcode = 0x201D + * pParm0 - RX_Channel + * + * opcode = 0x2033 + * pParm0 - RX_Channel + * pParm1 - PHY + * pParm2 - Modulation_Index + * + * @return 0 - success. + */ +extern bStatus_t API_LE_ReceiverTestCmd( uint8_t *pParm, uint16_t opcode ); + +/** + * @brief used to start a test where the DUT generates test reference packets at a fixed interval + * + * @param opcode = 0x201E + * pParm 0 - TX_Channel + * pParm 1 - Test_Data_Length + * pParm 2 - Packet_Payload + * + * opcode = 0x2034 + * pParm 0 - TX_Channel + * pParm 1 - Test_Data_Length + * pParm 2 - Packet_Payload + * pParm 3 - PHY + * + * @return 0 - success. + */ +extern bStatus_t API_LE_TransmitterTestCmd( uint8_t *pParm, uint16_t opcode ); + +/** + * @brief used to stop any test which is in progress + * + * @param None + * + * @return 0 - success. + */ +extern bStatus_t API_LE_TestEndCmd( void ); + +/** + * @brief used to set rf TxCtune value + * + * @param pParm(in) - Must provide length of parameter followed by 6 bytes parameter + * + * @return Command Status. + */ +extern bStatus_t RFEND_TXCtuneSet( uint8_t *pParm ); + +/** + * @brief used to get rf TxCtune value + * + * @param pParm(out) - length of parameter(6) followed by 6 bytes parameter + * + * @return Command Status. + */ +extern bStatus_t RFEND_TXCtuneGet( uint8_t *pParm ); + +/* + * END @ Profile API + */ +/******************************************************************************/ +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/LIB/libCH572BLE_PERI.a b/BLV_RF_W13_V04_20260114/LIB/libCH572BLE_PERI.a new file mode 100644 index 0000000000000000000000000000000000000000..b88a8f3f3b0b9c590b14213957fc00d455d25583 GIT binary patch literal 612676 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 AT>FLASH + + .highcode_initlalign : + { + . = ALIGN(4); + PROVIDE(_highcode_init_lma = .); + } >FLASH AT>FLASH + + .highcodelalign : + { + . = ALIGN(4); + PROVIDE(_highcode_lma = .); + } >FLASH AT>FLASH + + .highcode : + { + . = ALIGN(4); + PROVIDE(_highcode_vma_start = .); + . = ALIGN(1024); + *(.vector); + *(.highcode); + *(.highcode.*); + . = ALIGN(4); + PROVIDE(_highcode_vma_end = .); + } >RAM AT>FLASH + + .text : + { + . = ALIGN(4); + KEEP(*(SORT_NONE(.handle_reset))) + *(.text) + *(.text.*) + *(.rodata) + *(.rodata*) + *(.sdata2.*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t.*) + . = ALIGN(4); + } >FLASH AT>FLASH + + .fini : + { + KEEP(*(SORT_NONE(.fini))) + . = ALIGN(4); + } >FLASH AT>FLASH + + PROVIDE( _etext = . ); + PROVIDE( _eitcm = . ); + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } >FLASH AT>FLASH + + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) + KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) + PROVIDE_HIDDEN (__init_array_end = .); + } >FLASH AT>FLASH + + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) + KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) + PROVIDE_HIDDEN (__fini_array_end = .); + } >FLASH AT>FLASH + + .ctors : + { + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + } >FLASH AT>FLASH + + .dtors : + { + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + } >FLASH AT>FLASH + + .dlalign : + { + . = ALIGN(4); + PROVIDE(_data_lma = .); + } >FLASH AT>FLASH + + .data : + { + . = ALIGN(4); + PROVIDE(_data_vma = .); + *(.gnu.linkonce.r.*) + *(.data .data.*) + *(.gnu.linkonce.d.*) + . = ALIGN(8); + PROVIDE( __global_pointer$ = . + 0x800 ); + *(.sdata .sdata.*) + *(.gnu.linkonce.s.*) + . = ALIGN(8); + *(.srodata.cst16) + *(.srodata.cst8) + *(.srodata.cst4) + *(.srodata.cst2) + *(.srodata .srodata.*) + . = ALIGN(4); + PROVIDE( _edata = .); + } >RAM AT>FLASH + + .bss : + { + . = ALIGN(4); + PROVIDE( _sbss = .); + *(.sbss*) + *(.gnu.linkonce.sb.*) + *(.bss*) + *(.gnu.linkonce.b.*) + *(COMMON*) + . = ALIGN(4); + PROVIDE( _ebss = .); + } >RAM AT>FLASH + + PROVIDE( _end = _ebss); + PROVIDE( end = . ); + + .stack ORIGIN(RAM)+LENGTH(RAM) : + { + . = ALIGN(4); + PROVIDE(_eusrstack = . ); + } >RAM +} + + + diff --git a/BLV_RF_W13_V04_20260114/README.md b/BLV_RF_W13_V04_20260114/README.md new file mode 100644 index 0000000..ba41c2a --- /dev/null +++ b/BLV_RF_W13_V04_20260114/README.md @@ -0,0 +1,226 @@ +# 版本记录: + +## 2026-01-19 + +添加蓝牙连接终止时,停止所有定时任务的代码 + + + +## 2026-01-14 叶阳文 + +1、只有取电后才有卫生间雷达开卫生间灯功能 + 2、门磁在开启的时候记录时间戳,执行门磁开事件,在延时时间到达时执行门磁关事件,如果中途再次有门磁开事件则刷新延时时间戳。 + + 连接最小间隔设置为:8 (=1ms) + 连接最大间隔设置为:40 (=50ms) + 连接超时时间设置为:1000 (=10s) + + + +## 2026-01-12 15: 00 叶阳文 + +``` +软件版本:V04 +支持硬件版本:RF-C13-V04a +更名项目为BLV_RF_W13 + 1、串口接收:串口的接收缓冲在接收12包数据后会溢出导致设备主控芯片CH572D复位,已解决。 + + 当前: + 传感器输入(引脚与外壳丝印对应): + s1(PA2):洗手间 + S2(PA3):卧室 + S3(PA4):门口区 + S4(PA5):门磁 + 配置软件设置: + 插卡状态(未使用)、门磁、洗手间、卧室、门口 + 按键输出事件: + 按键1:无人到有人 + 按键2:有人到无人 + 按键3:门磁开 + 按键4:门磁关 + 按键5:洗手间雷达开 + 按键6:洗手间雷达关 +``` + + + +## 2025-11-26 17: 00 叶阳文 + +``` +发布文件:1、BLV_C13_JumpIAP.hex + 2、BackupUpgrade_IAPOTA.hex + 3、BLV_RF_C13_V02.hex + 合成文件:BLV_RF_C13_V02_202511261530.hex + 合成烧录固件:BLV_RF_C13_V02_202511261530.datakey 校验码:0xD745 + 软件版本:V02 + 支持硬件版本:RF-C13-V04 + 1、泛智联按键事件触发间隔500ms + 2、主机无卡逻辑,默认条件组数量不可修改。 +``` + + + +## 2025-10-29 叶阳文 + +``` +长时间离开事件修改为门磁开事件 +当前: + 传感器输入(引脚与外壳丝印对应): + s1(PA2):洗手间 + S2(PA3):卧室 + S3(PA4):门口 + S4(PA5):预留:门磁 + + 按键输出事件(泛至联六键开关模块): + 按键1-(PA6)无人到有人 + 按键2-(PA7)短暂离开 + 按键3-(PA8)门磁开事件 + 按键4-(PA9)有人到无人 + 按键5-(PA10)长时间检测有人 + 按键6-(PA11)长时间检测无人 +``` + + + +## 2025-10-28 + +``` + 修改条件端口默认信息后一直复位的版本 + -- 长时间检测判断中,原来一个bit存储1s改为存储15s后没有处理好,导致溢出,已解决 +``` + +## 2025-10-17 叶阳文 + +``` + 传感器输入(引脚与外壳丝印对应): + s1(PA2):洗手间 + S2(PA3):卧室 + S3(PA4):门口 + S4(PA5):预留:门磁 + + 按键输出事件(泛至联六键开关模块): + 按键1-(PA6)无人到有人 + 按键2-(PA7)短暂离开 + 按键3-(PA8)长时间离开 + 按键4-(PA9)有人到无人 + 按键5-(PA10)长时间检测有人 + 按键6-(PA11)长时间检测无人 +``` + + + + +## 2025-10-08 叶阳文 + +``` + 1、本地逻辑基本确认成功 + 2、蓝牙调试打印通道打通 + 3、串口设置、蓝牙设置打通 + 4、OTA升级功能暂未实现。 + +#define VC_Event_DoorSensor_Flag 0x01 //开门进入事件:条件逻辑判断无人->有人 +#define VC_Event_BrieflyLeaving_Flag 0x02 //短暂人离事件:条件逻辑判断有人->无人中,短暂判定人离 +#define VC_Event_LongTermLeaving_Flag 0x04 //短暂人离事件:条件逻辑判断有人->无人中,长时间判定人离 +#define VC_Event_UncardedPersonLeft_Flag 0x08 //无卡人离事件:条件逻辑判断有人->无人,且无卡 +#define VC_Event_RadarPersonDetected_Flag 0x10 //雷达有人事件:长时间检测逻辑判断人员存在 +#define VC_Event_RadarPersonLeft_Flag 0x20 //雷达无人事件:长时间检测逻辑判断室内无人 +#define VC_Event_CardedPersonLeft_Flag 0x40//---- 未使用 //卡在人离事件:条件逻辑判断有人->无人,同时卡还在 +#define VC_Event_RS485ButtonPress_Flag 0x80//---- 未使用 //按键触发事件:室内检测到RS485 按键有触发 + + +/*调试信息初始状态*/ + +#define DBG_OPT_Debug_STATUS 0 //临时调试信息打印开关 +#define DBG_OPT_PC_COMM 0 //PC通讯打印开关 +#define DBG_OPT_BLE_STATUS 1 //蓝牙信息打印开关 +#define DBG_OPT_DEVICE_STATUS 1 //设备驱动层打印调试信息打印开关 +#define DBG_OPT_SYS_STATUS 0 //系统调试信息打印开关 + +/*调试信息输出控制位*/ +#define DBG_BIT_Debug_STATUS 4 +#define DBG_BIT_PC_COMM 3 +#define DBG_BIT_BLE_STATUS 2 +#define DBG_BIT_DEVICE_STATUS 1 +#define DBG_BIT_SYS_STATUS 0 +``` + +​ + + + +# 通讯示例: + +``` +设置端口5参数: CC C0 16 00 43 CF 01 00 02 00 09 01 02 03 00 50 05 01 03 00 02 1E + 解析: + CC C0 //固定帧头 + 16 00 //长度 + 43 CF //整包CRC,校验时此处补零 + 01 00 //帧号 ,不管 + 02 00 //帧总数 + 09 //命令字 + 01 02 03 00 50 05 01 03 00 02 1E //内容,端口信息 + +设置条件组: cc c0 19 00 f1 05 01 00 01 00 08 01 01 01 00 00 01 00 04 00 00 00 02 00 01 + 解析: + cc c0 //P0-P1, 固定帧头 + 19 00 //P2-P3, 长度 + f1 05 //P4-P5, 整包CRC, 计算校验值时此处要补零计算 + 01 00 //P6-P7, 帧号, 不管 + 01 00 //P8-P9, 帧总数, + 08 //P10, 命令字 + 01 01 01 00 00 01 00 04 00 00 00 02 00 01 //设置的条件组内容 + +读取版版本号: + CC C0 0B 00 1E 7B 01 00 01 00 01 + +升级命令 + CC C0 0C 00 8D F6 01 00 02 00 0B 01 + +打印设置 + 关闭全部打印: CC C0 0C 00 4E 06 01 00 02 00 0C 00 + 只打开蓝牙打印: CC C0 0C 00 4F C5 01 00 02 00 0C 04 + 只打开串口打印: CC C0 0C 00 4F C0 01 00 02 00 0C 08 + 蓝牙|串口打印: CC C0 0C 00 4E 03 01 00 02 00 0C 0C + +雷达状态控制: + 打开雷达状态发送: CC C0 0C 00 86 96 01 00 02 00 11 01 + 关闭雷达状态发送: CC C0 0C 00 C6 97 01 00 02 00 11 02 + +测试按键功能: + 控制所有按键按下: CC C0 0D 00 B6 8E 01 00 01 00 13 01 3F + 控制按键1按下: CC C0 0D 00 37 5E 01 00 01 00 13 01 01 + 控制按键2按下: CC C0 0D 00 77 5F 01 00 01 00 13 01 02 + 控制按键3按下: CC C0 0D 00 F7 5D 01 00 01 00 13 01 04 + 控制按键4按下: CC C0 0D 00 F7 58 01 00 01 00 13 01 08 + 控制按键5按下: CC C0 0D 00 F7 52 01 00 01 00 13 01 10 + 控制按键6按下: CC C0 0D 00 F7 46 01 00 01 00 13 01 20 + +设置门磁开廊灯事件,卫浴雷达开卫浴灯事件触发、释放参数: + 全 10S: + CC C0 14 00 6C F7 01 00 01 00 16 03 0A 01 0A 01 0A 01 0A 01 + 设置 40min, 最大时间设置为30min, 此时间设置只能是30min: + CC C0 14 00 3C 6D 01 00 01 00 16 03 28 02 28 02 28 02 28 02 + + CC C0 14 00 69 3B 01 00 01 00 16 03 1A 01 0A 01 1A 01 0A 01 + CC C0 14 00 EF 50 01 00 01 00 16 03 00 01 0A 01 00 01 0A 01 +``` + +​ + + + + + +# BLE连接状态表, 查询版本号返回: + +| 状态名称 | 值 | 状态类型 | 描述 | +| --------------------- | ---- | ----------- | ---------------------------------------------------------- | +| GAPROLE_INIT | 0 | 初始状态 | 等待被启动,系统刚初始化时的状态 | +| GAPROLE_STARTED | 1 | 已启动 | 设备已启动但未处于广播状态 | +| GAPROLE_ADVERTISING | 2 | 广播中 | 设备正在进行蓝牙广播,寻找连接设备 | +| GAPROLE_WAITING | 3 | 等待中 | 设备已启动但未广播,处于等待再次广播的期间(如连接断开后) | +| GAPROLE_CONNECTED | 4 | 已连接 | 设备已与其他蓝牙设备建立连接 | +| GAPROLE_CONNECTED_ADV | 5 | 已连接+广播 | 设备已建立连接,同时仍在进行广播 | +| GAPROLE_ERROR | 6 | 错误状态 | 发生错误,进入无效状态 | + diff --git a/BLV_RF_W13_V04_20260114/RVMSIS/core_riscv.h b/BLV_RF_W13_V04_20260114/RVMSIS/core_riscv.h new file mode 100644 index 0000000..fc2b7e6 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/RVMSIS/core_riscv.h @@ -0,0 +1,695 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : core_riscv.h + * Author : WCH + * Version : V1.0.0 + * Date : 2024/07/25 + * Description : CH585 Series RISC-V Core Peripheral Access Layer Header File + ********************************************************************************* + * Copyright (c) 2024 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ +#ifndef __CORE_RISCV_H__ +#define __CORE_RISCV_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* define compiler specific symbols */ +#if defined ( __CC_ARM ) +#define __ASM __asm /*!< asm keyword for ARM Compiler */ +#define __INLINE __inline /*!< inline keyword for ARM Compiler */ + +#elif defined ( __ICCARM__ ) +#define __ASM __asm /*!< asm keyword for IAR Compiler */ +#define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ + +#elif defined ( __GNUC__ ) +#define __ASM __asm /*!< asm keyword for GNU Compiler */ +#define __INLINE inline /*!< inline keyword for GNU Compiler */ + +#elif defined ( __TASKING__ ) +#define __ASM __asm /*!< asm keyword for TASKING Compiler */ +#define __INLINE inline /*!< inline keyword for TASKING Compiler */ + +#endif + +/* IO definitions */ +#ifdef __cplusplus +#define __I volatile /*!< defines 'read only' permissions */ +#else +#define __I volatile const /*!< defines 'read only' permissions */ +#endif +#define __O volatile /*!< defines 'write only' permissions */ +#define __IO volatile /*!< defines 'read / write' permissions */ +#define RV_STATIC_INLINE static inline + +//typedef enum {SUCCESS = 0, ERROR = !SUCCESS} ErrorStatus; + +typedef enum +{ + DISABLE = 0, + ENABLE = !DISABLE +} FunctionalState; +typedef enum +{ + RESET = 0, + SET = !RESET +} FlagStatus, ITStatus; + +/* memory mapped structure for Program Fast Interrupt Controller (PFIC) */ +typedef struct +{ + __I uint32_t ISR[8]; // 0 + __I uint32_t IPR[8]; // 20H + __IO uint32_t ITHRESDR; // 40H + uint8_t RESERVED[8]; // 44H + __I uint32_t GISR; // 4CH + __IO uint8_t VTFIDR[4]; // 50H + uint8_t RESERVED0[0x0C]; // 54H + __IO uint32_t VTFADDR[4]; // 60H + uint8_t RESERVED1[0x90]; // 70H + __O uint32_t IENR[8]; // 100H + uint8_t RESERVED2[0x60]; // 120H + __O uint32_t IRER[8]; // 180H + uint8_t RESERVED3[0x60]; // 1A0H + __O uint32_t IPSR[8]; // 200H + uint8_t RESERVED4[0x60]; // 220H + __O uint32_t IPRR[8]; // 280H + uint8_t RESERVED5[0x60]; // 2A0H + __IO uint32_t IACTR[8]; // 300H + uint8_t RESERVED6[0xE0]; // 320H + __IO uint8_t IPRIOR[256]; // 400H + uint8_t RESERVED7[0x810]; // 500H + __IO uint32_t SCTLR; // D10H +} PFIC_Type; + +/* memory mapped structure for SysTick */ +typedef struct +{ + __IO uint32_t CTLR; + __IO uint32_t SR; + union + { + __IO uint32_t CNT; + __IO uint32_t CNTL; + }; + uint8_t RESERVED[4]; + union + { + __IO uint32_t CMP; + __IO uint32_t CMPL; + }; + uint8_t RESERVED0[4]; +} SysTick_Type; + +#define PFIC ((PFIC_Type *)0xE000E000) +#define SysTick ((SysTick_Type *)0xE000F000) + +#define PFIC_KEY1 ((uint32_t)0xFA050000) +#define PFIC_KEY2 ((uint32_t)0xBCAF0000) +#define PFIC_KEY3 ((uint32_t)0xBEEF0000) + +/* ########################## define #################################### */ +#define __nop() __asm__ volatile("nop") + +#define read_csr(reg) ({unsigned long __tmp; \ + __asm__ volatile ("csrr %0, " #reg : "=r"(__tmp)); \ + __tmp; }) + +#define write_csr(reg, val) ({ \ + if (__builtin_constant_p(val) && (unsigned long)(val) < 32) \ + __asm__ volatile ("csrw " #reg ", %0" :: "i"(val)); \ + else \ + __asm__ volatile ("csrw " #reg ", %0" :: "r"(val)); }) + +/********************************************************************* + * @fn __risc_v_enable_irq + * + * @brief recover Global Interrupt + * + * @return mpie and mie bit in mstatus. + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __risc_v_enable_irq(uint32_t mpie_mie) +{ + uint32_t result; + + __asm volatile("csrrs %0, 0x800, %1" : \ + "=r"(result): "r"(mpie_mie) : "memory"); + return result; +} + +/********************************************************************* + * @fn __disable_irq + * + * @brief Disable Global Interrupt + * + * @return mpie and mie bit in mstatus. + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __risc_v_disable_irq(void) +{ + uint32_t result; + + __asm volatile("csrrc %0, 0x800, %1" : \ + "=r"(result): "r"(0x88) : "memory"); + return result & 0x88; +} + +/* ########################## PFIC functions #################################### */ + +#define PFIC_EnableAllIRQ() {write_csr(0x800, 0x88);} +#define PFIC_DisableAllIRQ() {write_csr(0x800, 0x80);asm volatile("fence.i");} + +/******************************************************************************* + * @fn PFIC_EnableIRQ + * + * @brief Enable Interrupt + * + * @param IRQn - Interrupt Numbers + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_EnableIRQ(IRQn_Type IRQn) +{ + PFIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/******************************************************************************* + * @fn PFIC_DisableIRQ + * + * @brief Disable Interrupt + * + * @param IRQn - Interrupt Numbers + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_DisableIRQ(IRQn_Type IRQn) +{ + PFIC->IRER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); + asm volatile("fence.i"); +} + +/******************************************************************************* + * @fn PFIC_GetStatusIRQ + * + * @brief Get Interrupt Enable State + * + * @param IRQn - Interrupt Numbers + * + * @return 1: Interrupt Enable + * 0: Interrupt Disable + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t PFIC_GetStatusIRQ(IRQn_Type IRQn) +{ + return ((uint32_t)((PFIC->ISR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + +/******************************************************************************* + * @fn PFIC_GetPendingIRQ + * + * @brief Get Interrupt Pending State + * + * @param IRQn - Interrupt Numbers + * + * @return 1: Interrupt Pending Enable + * 0: Interrupt Pending Disable + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t PFIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return ((uint32_t)((PFIC->IPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + +/******************************************************************************* + * @fn PFIC_SetPendingIRQ + * + * @brief Set Interrupt Pending + * + * @param IRQn - Interrupt Numbers + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_SetPendingIRQ(IRQn_Type IRQn) +{ + PFIC->IPSR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/******************************************************************************* + * @fn PFIC_ClearPendingIRQ + * + * @brief Clear Interrupt Pending + * + * @param IRQn - Interrupt Numbers + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + PFIC->IPRR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +} + +/******************************************************************************* + * @fn PFIC_GetActive + * + * @brief Get Interrupt Active State + * + * @param IRQn - Interrupt Numbers + * + * @return 1: Interrupt Active + * 0: Interrupt No Active. + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t PFIC_GetActive(IRQn_Type IRQn) +{ + return ((uint32_t)((PFIC->IACTR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))) ? 1 : 0)); +} + +/******************************************************************************* + * @fn PFIC_SetPriority + * + * @brief Set Interrupt Priority + * + * @param IRQn - Interrupt Numbers + * @param priority - bit7: pre-emption priority + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_SetPriority(IRQn_Type IRQn, uint8_t priority) +{ + PFIC->IPRIOR[(uint32_t)(IRQn)] = priority ? 0x80 : 0; +} + +/********************************************************************* + * @fn SetVTFIRQ + * + * @brief Set VTF Interrupt + * + * @param addr - VTF interrupt service function base address. + * IRQn - Interrupt Numbers + * num - VTF Interrupt Numbers + * NewState - DISABLE or ENABLE + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void SetVTFIRQ(uint32_t addr, IRQn_Type IRQn, uint8_t num, FunctionalState NewState) +{ + if (num > 3) return ; + + if (NewState != DISABLE) + { + PFIC->VTFIDR[num] = IRQn; + PFIC->VTFADDR[num] = ((addr & 0xFFFFFFFE) | 0x1); + } + else + { + PFIC->VTFIDR[num] = IRQn; + PFIC->VTFADDR[num] = ((addr & 0xFFFFFFFE) & (~0x1)); + } +} + +/********************************************************************* + * @fn _SEV + * + * @brief Set Event + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void _SEV(void) +{ + + PFIC->SCTLR |= (1 << 3) | (1 << 5); + +} + +/********************************************************************* + * @fn _WFE + * + * @brief Wait for Events + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void _WFE(void) +{ + PFIC->SCTLR |= (1 << 3); + asm volatile("wfi"); +} + + +/********************************************************************* + * @fn __WFE + * + * @brief Wait for Events + * + * @return None + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __WFE(void) +{ + _SEV(); + _WFE(); + _WFE(); +} + +/********************************************************************* + * @fn __WFI + * + * @brief Wait for Interrupt + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __WFI(void) +{ + PFIC->SCTLR &= ~(1 << 3); // wfi + __asm__ volatile("wfi"); +} + +/********************************************************************* + * @fn PFIC_SystemReset + * + * @brief Initiate a system reset request + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_SystemReset(void) +{ + PFIC->SCTLR = 0x80000000; +} + +/********************************************************************* + * @fn __get_MSTATUS + * + * @brief Return the Machine Status Register + * + * @return mstatus value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MSTATUS(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mstatus" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MSTATUS + * + * @brief Set the Machine Status Register + * + * @param value - set mstatus value + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MSTATUS(uint32_t value) +{ + __ASM volatile("csrw mstatus, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MISA + * + * @brief Return the Machine ISA Register + * + * @return misa value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MISA(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "misa" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MISA + * + * @brief Set the Machine ISA Register + * + * @param value - set misa value + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MISA(uint32_t value) +{ + __ASM volatile("csrw misa, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MTVEC + * + * @brief Return the Machine Trap-Vector Base-Address Register + * + * @return mtvec value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MTVEC(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mtvec" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MTVEC + * + * @brief Set the Machine Trap-Vector Base-Address Register + * + * @param value - set mtvec value + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MTVEC(uint32_t value) +{ + __ASM volatile("csrw mtvec, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MSCRATCH + * + * @brief Return the Machine Seratch Register + * + * @return mscratch value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MSCRATCH(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mscratch" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MSCRATCH + * + * @brief Set the Machine Seratch Register + * + * @param value - set mscratch value + * + * @return none + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MSCRATCH(uint32_t value) +{ + __ASM volatile("csrw mscratch, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MEPC + * + * @brief Return the Machine Exception Program Register + * + * @return mepc value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MEPC(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mepc" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MEPC + * + * @brief Set the Machine Exception Program Register + * + * @return mepc value + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MEPC(uint32_t value) +{ + __ASM volatile("csrw mepc, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MCAUSE + * + * @brief Return the Machine Cause Register + * + * @return mcause value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MCAUSE(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mcause" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MEPC + * + * @brief Set the Machine Cause Register + * + * @return mcause value + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MCAUSE(uint32_t value) +{ + __ASM volatile("csrw mcause, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MTVAL + * + * @brief Return the Machine Trap Value Register + * + * @return mtval value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MTVAL(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mtval" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __set_MTVAL + * + * @brief Set the Machine Trap Value Register + * + * @return mtval value + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __set_MTVAL(uint32_t value) +{ + __ASM volatile("csrw mtval, %0" : : "r"(value)); +} + +/********************************************************************* + * @fn __get_MVENDORID + * + * @brief Return Vendor ID Register + * + * @return mvendorid value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MVENDORID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mvendorid" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MARCHID + * + * @brief Return Machine Architecture ID Register + * + * @return marchid value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MARCHID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "marchid" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MIMPID + * + * @brief Return Machine Implementation ID Register + * + * @return mimpid value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MIMPID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mimpid" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_MHARTID + * + * @brief Return Hart ID Register + * + * @return mhartid value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_MHARTID(void) +{ + uint32_t result; + + __ASM volatile("csrr %0," "mhartid" : "=r"(result)); + return (result); +} + +/********************************************************************* + * @fn __get_SP + * + * @brief Return SP Register + * + * @return SP value + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_SP(void) +{ + uint32_t result; + + __ASM volatile("mv %0," "sp" : "=r"(result) :); + return (result); +} + +/********************************************************************* + * @fn __MCPY + * + * @brief fast memory copy asm instruction. + * @details copy memory from start to dst, copy length is (end - start). + * + * + * @return None. + */ +__attribute__((always_inline)) RV_STATIC_INLINE void __MCPY(void *dst, void *start, void *end) +{ + __asm volatile("mcpy %2, %0, %1" : \ + "+r"(start), "+r"(dst) : "r"(end) : "memory"); +} + +#define SysTick_SR_SWIE (1 << 31) +#define SysTick_SR_CNTIF (1 << 0) + +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFFF) +#define SysTick_CTLR_INIT (1 << 5) +#define SysTick_CTLR_MODE (1 << 4) +#define SysTick_CTLR_STRE (1 << 3) +#define SysTick_CTLR_STCLK (1 << 2) +#define SysTick_CTLR_STIE (1 << 1) +#define SysTick_CTLR_STE (1 << 0) + + +RV_STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) + return (1); /* Reload value impossible */ + + // SysTick->CNTL = 0; + SysTick->CMP = ticks - 1; /* set reload register */ + PFIC_EnableIRQ(SysTick_IRQn); + SysTick->CTLR = SysTick_CTLR_INIT | // + SysTick_CTLR_STRE | + SysTick_CTLR_STCLK | + SysTick_CTLR_STIE | + SysTick_CTLR_STE; /* Enable SysTick IRQ and SysTick Timer */ + return (0); /* Function successful */ +} + +RV_STATIC_INLINE uint32_t __SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) + return (1); /* Reload value impossible */ + + SysTick->CNTL = 0; + SysTick->CMP = ticks - 1; /* set reload register */ + SysTick->CTLR = SysTick_CTLR_STRE | + SysTick_CTLR_STCLK | + SysTick_CTLR_STIE | + SysTick_CTLR_STE; /* Enable SysTick IRQ and SysTick Timer */ + return (0); /* Function successful */ +} + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_RV3A_H__ */ diff --git a/BLV_RF_W13_V04_20260114/Startup/startup_CH572.S b/BLV_RF_W13_V04_20260114/Startup/startup_CH572.S new file mode 100644 index 0000000..a2fed09 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/Startup/startup_CH572.S @@ -0,0 +1,180 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : startup_CH57x.s + * Author : WCH + * Version : V1.0.0 + * Date : 2024/12/20 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + + .section .init,"ax",@progbits + .global _start + .global _vector_base + .align 1 +_start: + j handle_reset + + .section .vector,"ax",@progbits + .align 1 +_vector_base: + .option norvc; + + .word 0 + .word 0 + .word NMI_Handler /* NMI Handler */ + .word HardFault_Handler /* Hard Fault Handler */ + .word 0xF3F9BDA9 + .word Ecall_M_Mode_Handler /* 5 */ + .word 0 + .word 0 + .word Ecall_U_Mode_Handler /* 8 */ + .word Break_Point_Handler /* 9 */ + .word 0 + .word 0 + .word SysTick_Handler /* SysTick Handler */ + .word 0 + .word SWI_Handler /* SWI Handler */ + .word 0 + /* External Interrupts */ + .word 0 /* 16 */ + .word GPIOA_IRQHandler /* GPIOA */ + .word 0 + .word SPI_IRQHandler /* SPI */ + .word BB_IRQHandler /* BLEB */ + .word LLE_IRQHandler /* BLEL */ + .word USB_IRQHandler /* USB */ + .word 0 + .word TMR_IRQHandler /* TMR */ + .word 0 + .word 0 + .word UART_IRQHandler /* UART */ + .word RTC_IRQHandler /* RTC */ + .word CMP_IRQHandler /* CMP */ + .word I2C_IRQHandler /* I2C */ + .word PWMX_IRQHandler /* PWMX */ + .word 0 + .word KEYSCAN_IRQHandler /* KEYSCAN */ + .word ENCODER_IRQHandler /* ENCODER */ + .word WDOG_BAT_IRQHandler /* WDOG_BAT */ + + + .option rvc; + + .section .vector_handler, "ax", @progbits + .weak NMI_Handler + .weak HardFault_Handler + .weak Ecall_M_Mode_Handler + .weak Ecall_U_Mode_Handler + .weak Break_Point_Handler + .weak SysTick_Handler + .weak SWI_Handler + .weak GPIOA_IRQHandler + .weak SPI_IRQHandler + .weak BB_IRQHandler + .weak LLE_IRQHandler + .weak USB_IRQHandler + .weak TMR_IRQHandler + .weak UART_IRQHandler + .weak RTC_IRQHandler + .weak CMP_IRQHandler + .weak I2C_IRQHandler + .weak PWMX_IRQHandler + .weak KEYSCAN_IRQHandler + .weak ENCODER_IRQHandler + .weak WDOG_BAT_IRQHandler + +NMI_Handler: +HardFault_Handler: +Ecall_M_Mode_Handler: +Ecall_U_Mode_Handler: +Break_Point_Handler: +SysTick_Handler: +SWI_Handler: +GPIOA_IRQHandler: +SPI_IRQHandler: +BB_IRQHandler: +LLE_IRQHandler: +USB_IRQHandler: +TMR_IRQHandler: +UART_IRQHandler: +RTC_IRQHandler: +CMP_IRQHandler: +I2C_IRQHandler: +PWMX_IRQHandler: +KEYSCAN_IRQHandler: +ENDOCE_IRQHandler: +WDOG_BAT_IRQHandler: +1: + j 1b + + .section .handle_reset,"ax",@progbits + .weak handle_reset + .align 1 +handle_reset: +.option push +.option norelax + la gp, __global_pointer$ +1: + la sp, _eusrstack +.option pop + +/* Load highcode code section from flash to RAM */ +2: + la a0, _highcode_lma + la a1, _highcode_vma_start + la a2, _highcode_vma_end + bgeu a1, a2, 2f +1: + lw t0, (a0) + sw t0, (a1) + addi a0, a0, 4 + addi a1, a1, 4 + bltu a1, a2, 1b + +/* Load data section from flash to RAM */ +2: + la a0, _data_lma + la a1, _data_vma + la a2, _edata + bgeu a1, a2, 2f +1: + lw t0, (a0) + sw t0, (a1) + addi a0, a0, 4 + addi a1, a1, 4 + bltu a1, a2, 1b +2: + /* clear bss section */ + la a0, _sbss + la a1, _ebss + bgeu a0, a1, 2f +1: + sw zero, (a0) + addi a0, a0, 4 + bltu a0, a1, 1b +2: + /* ûģʽжʹ */ + /*Ԥȡʹ*/ + li t0, 0x25 + csrw 0xbc0, t0 + /* ǶжϡӲѹջ */ + li t0, 0x3 + csrw 0x804, t0 + li t0, 0x1 + csrw 0xbc1, t0 + + li t0, 0x88 + csrw mstatus, t0 + la t0, _vector_base + + /* ģʽΪԵַģʽ */ + ori t0, t0, 3 + csrw mtvec, t0 + + la t0, main + csrw mepc, t0 + + mret diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_clk.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_clk.c new file mode 100644 index 0000000..6984ecb --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_clk.c @@ -0,0 +1,473 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_clk.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/** + * @brief LSIʱӣHz + */ +uint32_t Freq_LSI = 0; + +/********************************************************************* + * @fn LClk_Cfg + * + * @brief ƵʱӵԴ + * + * @param s - Ƿ򿪵Դ + * + * @return none + */ +void LClk_Cfg(FunctionalState s) +{ + uint8_t cfg = R8_LSI_CONFIG; + + if(s == DISABLE) + { + cfg &= ~RB_CLK_LSI_PON; + } + else + { + cfg |= RB_CLK_LSI_PON; + } + + sys_safe_access_enable(); + R8_LSI_CONFIG = cfg; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn HSECFG_Current + * + * @brief HSE ƫõ + * + * @param c - 75%,100%,125%,150% + * + * @return none + */ +void HSECFG_Current(HSECurrentTypeDef c) +{ + uint8_t x32M_c; + + x32M_c = R8_XT32M_TUNE; + x32M_c = (x32M_c & 0xfc) | (c & 0x03); + + sys_safe_access_enable(); + R8_XT32M_TUNE = x32M_c; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn HSECFG_Capacitance + * + * @brief HSE ص + * + * @param c - refer to HSECapTypeDef + * + * @return none + */ +void HSECFG_Capacitance(HSECapTypeDef c) +{ + uint8_t x32M_c; + + x32M_c = R8_XT32M_TUNE; + x32M_c = (x32M_c & 0x0f) | (c << 4); + + sys_safe_access_enable(); + R8_XT32M_TUNE = x32M_c; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_InitClock + * + * @brief ʼ RTCʱ, Խ,ʼʱԽ,ʱӾԽ + * + * @param cnt - the total number of cycles captured by the oscillator + * + * @return RTCʱ, 24~42KHz + */ +uint32_t RTC_InitClock(RTC_OSCCntTypeDef cnt) +{ + uint32_t count; + uint32_t cyc; + uint32_t last_ov_cnt = 0; + uint32_t new_ov_cnt = 0; + uint32_t ov_cnt_ov_cnt = 0; + + if(cnt BEGYEAR) + { + day += YearLength(year - 1); + year--; + } + while(month > 1) + { + day += monthLength(IsLeapYear(y), month - 2); + month--; + } + + day += d - 1; + sec2 = (h % 24) * 1800 + m * 30 + s / 2; + t32k = (s & 1) ? (Freq_LSI) : (0); + t = sec2; + t = t << 16 | t32k; + + temp = day * Freq_LSI; + temp1 = temp % 32768; // + temp = temp / 32768; // + + temp2 = temp1 * 675; // temp1 / 32768 * 2831155200 / 65536 + temp3 = temp2 % 512; // ת2sΪλ + temp2 = temp2 / 512; // ת2sΪλ + + temp1 = temp3 * 128; // 2sΪλ ת temp3 / 512 * 65536 + + tmp = sec2 * Freq_LSI; + tmp1 = tmp % 32768; // 2s + tmp = tmp / 32768; // 2s + + tmp2 = tmp1 * 2 ; // 2sΪλ ת // tmp1 / 32768 * 65536 + + t32k = (t32k * Freq_LSI + 16384) / 32768; // + + t32k += tmp2 + temp1; // + tmp += (t32k/65536) + temp2; // 2s + temp += (tmp/43200); // + + t32k %= 65536; // + tmp %= 43200; // 2s + + t = tmp; // 64000 + t = t << 16 | t32k; // 1 + + + do + { + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + } while(clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)); + if(!clk_pin) + { + while(!clk_pin) + { + do + { + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + } while(clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)); + } + } + + sys_safe_access_enable(); + R32_RTC_TRIG = temp; + R8_RTC_MODE_CTRL |= RB_RTC_LOAD_HI; + sys_safe_access_disable(); + while((R32_RTC_TRIG & 0x3FFF) != (R32_RTC_CNT_DIV2 & 0x3FFF)); + sys_safe_access_enable(); + R32_RTC_TRIG = t; + R8_RTC_MODE_CTRL |= RB_RTC_LOAD_LO; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_GetTime + * + * @brief ȡǰʱ + * + * @param py - ȡ꣬MAX_Y = BEGYEAR + 44 + * @param pmon - ȡ£MAX_MON = 12 + * @param pd - ȡգMAX_D = 31 + * @param ph - ȡСʱMAX_H = 23 + * @param pm - ȡķӣMAX_M = 59 + * @param ps - ȡ룬MAX_S = 59 + * + * @return none + */ +void RTC_GetTime(uint16_t *py, uint16_t *pmon, uint16_t *pd, uint16_t *ph, uint16_t *pm, uint16_t *ps) +{ + uint32_t t; + uint32_t day, sec2, t32k; + uint32_t temp,temp1,temp2,temp3; + uint32_t tmp,tmp1,tmp2; + + day = R32_RTC_CNT_DIV2 & 0x3FFF; + sec2 = R16_RTC_CNT_DIV1; + t32k = R16_RTC_CNT_LSI; + + temp = day * 32768; + temp1 = temp % Freq_LSI; // + temp = temp / Freq_LSI; // + + temp2 = temp1 * 43200; // temp1 / Freq_LSI * 43200 + temp3 = temp2 % Freq_LSI; // ת2sΪλ + temp2 = temp2 / Freq_LSI; // ת2sΪλ + + temp1 = (temp3 * 65536 + Freq_LSI/2 ) / Freq_LSI; // 2sΪλ ת temp3 / Freq_LSI * 65536 + + tmp = sec2 * 32768; + tmp1 = tmp % Freq_LSI; // 2s 5376 + tmp = tmp / Freq_LSI; // 2s 1799 + + tmp2 = (tmp1 * 65536 + Freq_LSI/2 ) / Freq_LSI; // 2sΪλ ת // tmp1 / Freq_LSI * 65536 11010 + + t32k = (t32k * 32768 + Freq_LSI/2 ) / Freq_LSI; // 54525 + + + t32k += tmp2 + temp1; // + tmp += (t32k/65536) + temp2; // 2s + temp += (tmp/43200); // + + t32k %= 65536; // + tmp %= 43200; // 2s + + + t = tmp * 2 + ((t32k < 0x8000) ? 0 : 1); + + *py = BEGYEAR; + while(temp >= YearLength(*py)) + { + temp -= YearLength(*py); + (*py)++; + } + + *pmon = 0; + while(temp >= monthLength(IsLeapYear(*py), *pmon)) + { + temp -= monthLength(IsLeapYear(*py), *pmon); + (*pmon)++; + } + (*pmon)++; + *pd = temp + 1; + *ph = t / 3600; + *pm = t % 3600 / 60; + *ps = t % 60; +} + +/********************************************************************* + * @fn RTC_SetCycleLSI + * + * @brief LSIʱӣõǰRTC + * + * @param cyc - ڼֵMAX_CYC = 0xA8BFFFFF = 2831155199 + * + * @return none + */ +void RTC_SetCycleLSI(uint32_t cyc) +{ + volatile uint8_t clk_pin; + + do + { + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + } while((clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)) || (!clk_pin)); + + sys_safe_access_enable(); + R32_RTC_TRIG = cyc; + R8_RTC_MODE_CTRL |= RB_RTC_LOAD_LO; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_GetCycleLSI + * + * @brief LSIʱӣȡǰRTC + * + * @param none + * + * @return ǰMAX_CYC = 0xA8BFFFFF = 2831155199 + */ +uint32_t RTC_GetCycleLSI(void) +{ + volatile uint32_t i; + + do + { + i = R32_RTC_CNT_LSI; + } while(i != R32_RTC_CNT_LSI); + + return (i); +} + +/********************************************************************* + * @fn RTC_TMRFunCfg + * + * @brief RTCʱģʽãעⶨʱ׼̶Ϊ32768Hz + * + * @param t - refer to RTC_TMRCycTypeDef + * + * @return none + */ +void RTC_TMRFunCfg(RTC_TMRCycTypeDef t) +{ + sys_safe_access_enable(); + R8_RTC_MODE_CTRL &= ~(RB_RTC_TMR_EN | RB_RTC_TMR_MODE); + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_RTC_MODE_CTRL |= RB_RTC_TMR_EN | (t); + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_TRIGFunCfg + * + * @brief RTCʱ䴥ģʽ + * + * @param cyc - ԵǰʱĴʱ䣬LSIʱ + * + * @return none + */ +void RTC_TRIGFunCfg(uint32_t cyc) +{ + uint32_t t; + + t = RTC_GetCycleLSI() + cyc; + if(t > RTC_MAX_COUNT) + { + t -= RTC_MAX_COUNT; + } + + sys_safe_access_enable(); + R32_RTC_TRIG = t; + R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_ModeFunDisable + * + * @brief RTC ģʽܹر + * + * @param m - Ҫرյĵǰģʽ + * + * @return none + */ +void RTC_ModeFunDisable(RTC_MODETypeDef m) +{ + uint8_t i = 0; + + if(m == RTC_TRIG_MODE) + { + i |= RB_RTC_TRIG_EN; + } + else if(m == RTC_TMR_MODE) + { + i |= RB_RTC_TMR_EN; + } + + sys_safe_access_enable(); + R8_RTC_MODE_CTRL &= ~(i); + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn RTC_GetITFlag + * + * @brief ȡRTCжϱ־ + * + * @param f - refer to RTC_EVENTTypeDef + * + * @return жϱ־״̬ + */ +uint8_t RTC_GetITFlag(RTC_EVENTTypeDef f) +{ + if(f == RTC_TRIG_EVENT) + { + return (R8_RTC_FLAG_CTRL & RB_RTC_TRIG_FLAG); + } + else + { + return (R8_RTC_FLAG_CTRL & RB_RTC_TMR_FLAG); + } +} + +/********************************************************************* + * @fn RTC_ClearITFlag + * + * @brief RTCжϱ־ + * + * @param f - refer to RTC_EVENTTypeDef + * + * @return none + */ +void RTC_ClearITFlag(RTC_EVENTTypeDef f) +{ + switch(f) + { + case RTC_TRIG_EVENT: + R8_RTC_FLAG_CTRL = RB_RTC_TRIG_CLR; + break; + case RTC_TMR_EVENT: + R8_RTC_FLAG_CTRL = RB_RTC_TMR_CLR; + break; + default: + break; + } +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_cmp.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_cmp.c new file mode 100644 index 0000000..9d10089 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_cmp.c @@ -0,0 +1,44 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_cmp.c + * Author : WCH + * Version : V1.0 + * Date : 2024/12/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +void CMP_Init (CMPSwTypeDef s, CMPNrefLevelTypeDef v) +{ + R8_CMP_CTRL_0 = (s << 2)|(v << 4); +} + +void CMP_OutToTIMCAPCfg(FunctionalState s) +{ + if (s) + { + R8_CMP_CTRL_0 |= RB_CMP_CAP; + } + else + { + R8_CMP_CTRL_0 &= ~RB_CMP_CAP; + } +} + +void CMP_INTCfg (CMPOutSelTypeDef sel, FunctionalState s) +{ + R8_CMP_CTRL_1 = (sel << 2); + if (s) + { + R8_CMP_CTRL_1 |= RB_CMP_IE; + } + else + { + R8_CMP_CTRL_1 &= ~RB_CMP_IE; + } +} + diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_flash.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_flash.c new file mode 100644 index 0000000..1297069 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_flash.c @@ -0,0 +1,157 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_flash.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/* RESET_EN */ +#define RESET_Enable 0x00000008 +#define RESET_Disable 0xFFFFFFF7 + +/* LOCKUP_RST_EN */ +#define UART_NO_KEY_Enable 0x00000100 +#define UART_NO_KEY_Disable 0xFFFFFEFF + +/* BOOT_PIN */ +#define BOOT_PIN_PB22 0x00000200 +#define BOOT_PIN_PB11 0xFFFFFDFF + +/* FLASH_WRProt */ +#define FLASH_WRProt 0xFFF003FF + +/********************************************************************* + * @fn FLASH_ROM_READ + * + * @brief Read Flash + * + * @param StartAddr - read address + * @param Buffer - read buffer + * @param len - read len + * + * @return none + */ +void FLASH_ROM_READ(uint32_t StartAddr, void *Buffer, uint32_t len) +{ + uint32_t i, Length = (len + 3) >> 2; + uint32_t *pCode = (uint32_t *)StartAddr; + uint32_t *pBuf = (uint32_t *)Buffer; + + for(i = 0; i < Length; i++) + { + *pBuf++ = *pCode++; + } +} + +/********************************************************************* + * @fn UserOptionByteConfig + * + * @brief Configure User Option Byte.ڵûЧЧ,ÿ¼ֻ޸һ + * (ʹøúʹùٷṩ.SļͬʱøúϵߵԽӿĬϹر) + * + * @param RESET_EN - ⲿλʹ + * @param UART_NO_KEY_EN - ⰴʹ + * @param FLASHProt_Size - дС(λ4K) + * + * @return 0-Success, 1-Err + */ +uint8_t UserOptionByteConfig(FunctionalState RESET_EN, FunctionalState UART_NO_KEY_EN, + uint32_t FLASHProt_Size) +{ + uint32_t s, t; + + FLASH_ROM_READ(0x14, &s, 4); + + if(s == 0xF5F9BDA9) + { + s = 0; + FLASH_EEPROM_CMD(CMD_GET_ROM_INFO, 0x3EFFC, &s, 4); + s &= 0xFF; + + if(RESET_EN == ENABLE) + s |= RESET_Enable; + else + s &= RESET_Disable; + + /* bit[7:0]-bit[31-24] */ + s |= ((~(s << 24)) & 0xFF000000); //8λ Ϣȡ + + if(UART_NO_KEY_EN == ENABLE) + s |= UART_NO_KEY_Enable; + + /* bit[23-10] */ + s &= 0xFF0003FF; + s |= ((FLASHProt_Size << 10) | (5 << 20)) & 0x00FFFC00; + + /*Write user option byte*/ + FLASH_ROM_WRITE(0x14, &s, 4); + + /* Verify user option byte */ + FLASH_ROM_READ(0x14, &t, 4); + + if(s == t) + return 0; + else + return 1; + } + + return 1; +} + +/********************************************************************* + * @fn UserOptionByteClose_SWD + * + * @brief ߵԽӿ + * + * @return 0-Success, 1-Err + */ +uint8_t UserOptionByteClose_SWD(void) +{ + uint32_t s, t; + + return 1; +} + +/********************************************************************* + * @fn UserOptionByte_Active + * + * @brief ûЧִкԶλ + * + * @return 0-Success, 1-Err + */ +void UserOptionByte_Active(void) +{ + FLASH_ROM_SW_RESET(); + sys_safe_access_enable(); + R16_INT_LSI_TUNE = 0xFFFF; + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; + sys_safe_access_disable(); + while(1); +} + +/********************************************************************* + * @fn GET_UNIQUE_ID + * + * @brief get 64 bit unique ID + * + * @param Buffer - Pointer to the buffer where data should be stored, Must be aligned to 4 bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +void GET_UNIQUE_ID(uint8_t *Buffer) +{ + uint16_t temp; + FLASH_EEPROM_CMD( CMD_GET_ROM_INFO, ROM_CFG_MAC_ADDR, Buffer, 0 ); + temp = (Buffer[0]|(Buffer[1]<<8)) + (Buffer[2]|(Buffer[3]<<8)) + (Buffer[4]|(Buffer[5]<<8)); + Buffer[6] = temp&0xFF; + Buffer[7] = (temp>>8)&0xFF; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_gpio.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_gpio.c new file mode 100644 index 0000000..65dad4b --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_gpio.c @@ -0,0 +1,145 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_gpio.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn GPIOA_ModeCfg + * + * @brief GPIOA˿ģʽ + * + * @param pin - PA0-PA15 + * @param mode - + * + * @return none + */ +void GPIOA_ModeCfg(uint32_t pin, GPIOModeTypeDef mode) +{ + switch(mode) + { + case GPIO_ModeIN_Floating: + R32_PA_PD_DRV &= ~pin; + R32_PA_PU &= ~pin; + R32_PA_DIR &= ~pin; + break; + + case GPIO_ModeIN_PU: + R32_PA_PD_DRV &= ~pin; + R32_PA_PU |= pin; + R32_PA_DIR &= ~pin; + break; + + case GPIO_ModeIN_PD: + R32_PA_PD_DRV |= pin; + R32_PA_PU &= ~pin; + R32_PA_DIR &= ~pin; + break; + + case GPIO_ModeOut_PP_5mA: + R32_PA_PD_DRV &= ~pin; + R32_PA_DIR |= pin; + break; + + case GPIO_ModeOut_PP_20mA: + R32_PA_PD_DRV |= pin; + R32_PA_DIR |= pin; + break; + + default: + break; + } +} + +/********************************************************************* + * @fn GPIOA_ITModeCfg + * + * @brief GPIOAжģʽ + * + * @param pin - PA0-PA15 + * @param mode - + * + * @return none + */ +void GPIOA_ITModeCfg(uint32_t pin, GPIOITModeTpDef mode) +{ + switch(mode) + { + case GPIO_ITMode_LowLevel: // ͵ƽ + R16_PA_INT_MODE &= ~pin; + R32_PA_CLR |= pin; + break; + + case GPIO_ITMode_HighLevel: // ߵƽ + R16_PA_INT_MODE &= ~pin; + R32_PA_OUT |= pin; + break; + + case GPIO_ITMode_FallEdge: // ½ش + R16_PA_INT_MODE |= pin; + R32_PA_CLR |= pin; + break; + + case GPIO_ITMode_RiseEdge: // ش + R16_PA_INT_MODE |= pin; + R32_PA_OUT |= pin; + break; + + default: + break; + } + R16_PA_INT_IF = pin; + R16_PA_INT_EN |= pin; +} + +/********************************************************************* + * @fn GPIOPinRemap + * + * @brief 蹦ӳ + * + * @param s - Ƿʹӳ + * @param perph - дӳϵGPIO_pins_remap_define + * + * + * @return none + */ +void GPIOPinRemap(FunctionalState s, uint16_t perph) +{ + if(s) + { + R16_PIN_ALTERNATE_H |= perph; + } + else + { + R16_PIN_ALTERNATE_H &= ~perph; + } +} + +/********************************************************************* + * @fn GPIOADigitalCfg + * + * @brief I/O pinֹܿ + * + * @param s - Ƿ򿪶ӦI/O pinֹ + * @param pin - PA0-PA11 + */ +void GPIOADigitalCfg(FunctionalState s, uint16_t pin) +{ + if(s) + { + R16_PIN_ALTERNATE &= ~pin; + } + else + { + R16_PIN_ALTERNATE |= pin; + } +} + diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_i2c.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_i2c.c new file mode 100644 index 0000000..e9f64f8 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_i2c.c @@ -0,0 +1,672 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_i2c.c + * Author : WCH + * Version : V1.0 + * Date : 2021/03/15 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn I2C_Init + * + * @brief Initializes the I2Cx peripheral according to the specified + * parameters in the I2C_InitStruct. + * + * @param I2C_Mode - refer to I2C_ModeTypeDef + * @param I2C_ClockSpeed - Specifies the clock frequency(Hz). + * This parameter must be set to a value lower than 400kHz + * @param I2C_DutyCycle - Specifies the I2C fast mode duty cycle.refer to I2C_DutyTypeDef + * @param I2C_Ack - Enables or disables the acknowledgement.refer to I2C_AckTypeDef + * @param I2C_AckAddr - Specifies if 7-bit or 10-bit address is acknowledged.refer to I2C_AckAddrTypeDef + * @param I2C_OwnAddress1 - Specifies the first device own address. + * This parameter can be a 7-bit or 10-bit address. + * + * @return none + */ +void I2C_Init(I2C_ModeTypeDef I2C_Mode, uint32_t I2C_ClockSpeed, I2C_DutyTypeDef I2C_DutyCycle, + I2C_AckTypeDef I2C_Ack, I2C_AckAddrTypeDef I2C_AckAddr, uint16_t I2C_OwnAddress1) +{ + uint32_t sysClock; + uint16_t tmpreg; + + I2C_SoftwareResetCmd(ENABLE); + I2C_SoftwareResetCmd(DISABLE); + + sysClock = GetSysClock(); + + R16_I2C_CTRL2 &= ~RB_I2C_FREQ; + R16_I2C_CTRL2 |= (sysClock / 1000000); + + R16_I2C_CTRL1 &= ~RB_I2C_PE; + + if(I2C_ClockSpeed <= 100000) + { + tmpreg = (sysClock / (I2C_ClockSpeed << 1)) & RB_I2C_CCR; + + if(tmpreg < 0x04) + tmpreg = 0x04; + + R16_I2C_RTR = (((sysClock / 1000000) + 1) > 0x3F) ? 0x3F : ((sysClock / 1000000) + 1); + } + else + { + if(I2C_DutyCycle == I2C_DutyCycle_2) + { + tmpreg = (sysClock / (I2C_ClockSpeed * 3)) & RB_I2C_CCR; + } + else + { + tmpreg = (sysClock / (I2C_ClockSpeed * 25)) & RB_I2C_CCR; + tmpreg |= I2C_DutyCycle_16_9; + } + + if(tmpreg == 0) + { + tmpreg |= (uint16_t)0x0001; + } + + tmpreg |= RB_I2C_F_S; + R16_I2C_RTR = (uint16_t)((((sysClock / 1000000) * (uint16_t)300) / (uint16_t)1000) + (uint16_t)1); + } + R16_I2C_CKCFGR = tmpreg; + + R16_I2C_CTRL1 |= RB_I2C_PE; + + R16_I2C_CTRL1 &= ~(RB_I2C_SMBUS | RB_I2C_SMBTYPE | RB_I2C_ACK); + R16_I2C_CTRL1 |= I2C_Mode | I2C_Ack; + + R16_I2C_OADDR1 &= 0; + R16_I2C_OADDR1 |= I2C_AckAddr | I2C_OwnAddress1; +} + +/********************************************************************* + * @fn I2C_Cmd + * + * @brief Enables or disables the specified I2C peripheral. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_Cmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_PE; + else + R16_I2C_CTRL1 &= ~RB_I2C_PE; +} + +/********************************************************************* + * @fn I2C_GenerateSTART + * + * @brief Generates I2Cx communication START condition. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GenerateSTART(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_START; + else + R16_I2C_CTRL1 &= ~RB_I2C_START; +} + +/********************************************************************* + * @fn I2C_GenerateSTOP + * + * @brief Generates I2Cx communication STOP condition. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GenerateSTOP(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_STOP; + else + R16_I2C_CTRL1 &= ~RB_I2C_STOP; +} + +/********************************************************************* + * @fn I2C_AcknowledgeConfig + * + * @brief Enables or disables the specified I2C acknowledge feature. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_AcknowledgeConfig(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_ACK; + else + R16_I2C_CTRL1 &= ~RB_I2C_ACK; +} + +/********************************************************************* + * @fn I2C_OwnAddress2Config + * + * @brief Configures the specified I2C own address2. + * + * @param Address - specifies the 7bit I2C own address2. + * + * @return none + */ +void I2C_OwnAddress2Config(uint8_t Address) +{ + R16_I2C_OADDR2 &= ~RB_I2C_ADD2; + R16_I2C_OADDR2 |= (uint16_t)(Address & RB_I2C_ADD2); +} + +/********************************************************************* + * @fn I2C_DualAddressCmd + * + * @brief Enables or disables the specified I2C dual addressing mode. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_DualAddressCmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_OADDR2 |= RB_I2C_ENDUAL; + else + R16_I2C_OADDR2 &= ~RB_I2C_ENDUAL; +} + +/********************************************************************* + * @fn I2C_GeneralCallCmd + * + * @brief Enables or disables the specified I2C general call feature. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_GeneralCallCmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_ENGC; + else + R16_I2C_CTRL1 &= ~RB_I2C_ENGC; +} + +/********************************************************************* + * @fn I2C_ITConfig + * + * @brief Enables or disables the specified I2C interrupts. + * + * @param I2C_IT - specifies the I2C interrupts sources to be enabled or disabled. + * I2C_IT_BUF - Buffer interrupt mask. + * I2C_IT_EVT - Event interrupt mask. + * I2C_IT_ERR - Error interrupt mask. + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_ITConfig(I2C_ITTypeDef I2C_IT, FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL2 |= I2C_IT; + else + R16_I2C_CTRL2 &= (uint16_t)~I2C_IT; +} + +/********************************************************************* + * @fn I2C_SendData + * + * @brief Sends a data byte through the I2Cx peripheral. + * + * @param Data - Byte to be transmitted. + * + * @return none + */ +void I2C_SendData(uint8_t Data) +{ + R16_I2C_DATAR = Data; +} + +/********************************************************************* + * @fn I2C_ReceiveData + * + * @brief Returns the most recent received data by the I2Cx peripheral. + * + * @return The value of the received data. + */ +uint8_t I2C_ReceiveData(void) +{ + return (uint8_t)R16_I2C_DATAR; +} + +/********************************************************************* + * @fn I2C_Send7bitAddress + * + * @brief Transmits the address byte to select the slave device. + * + * @param Address - specifies the slave address which will be transmitted. + * @param I2C_Direction - specifies whether the I2C device will be a Transmitter or a Receiver. + * I2C_Direction_Transmitter - Transmitter mode. + * I2C_Direction_Receiver - Receiver mode. + * + * @return none + */ +void I2C_Send7bitAddress(uint8_t Address, uint8_t I2C_Direction) +{ + if(I2C_Direction != I2C_Direction_Transmitter) + Address |= OADDR1_ADD0_Set; + else + Address &= OADDR1_ADD0_Reset; + + R16_I2C_DATAR = Address; +} + +/********************************************************************* + * @fn I2C_SoftwareResetCmd + * + * @brief Enables or disables the specified I2C software reset. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_SoftwareResetCmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_SWRST; + else + R16_I2C_CTRL1 &= ~RB_I2C_SWRST; +} + +/********************************************************************* + * @fn I2C_NACKPositionConfig + * + * @brief Selects the specified I2C NACK position in master receiver mode. + * + * @param I2C_NACKPosition - specifies the NACK position. + * I2C_NACKPosition_Next - indicates that the next byte will be the last received byte. + * I2C_NACKPosition_Current - indicates that current byte is the last received byte. + * + * @return none + */ +void I2C_NACKPositionConfig(uint16_t I2C_NACKPosition) +{ + if(I2C_NACKPosition == I2C_NACKPosition_Next) + R16_I2C_CTRL1 |= I2C_NACKPosition_Next; + else + R16_I2C_CTRL1 &= I2C_NACKPosition_Current; +} + +/********************************************************************* + * @fn I2C_SMBusAlertConfig + * + * @brief Drives the SMBusAlert pin high or low for the specified I2C. + * + * @param I2C_SMBusAlert - specifies SMBAlert pin level. + * I2C_SMBusAlert_Low - SMBAlert pin driven low. + * I2C_SMBusAlert_High - SMBAlert pin driven high. + * + * @return none + */ +void I2C_SMBusAlertConfig(uint16_t I2C_SMBusAlert) +{ + if(I2C_SMBusAlert == I2C_SMBusAlert_Low) + R16_I2C_CTRL1 |= I2C_SMBusAlert_Low; + else + R16_I2C_CTRL1 &= I2C_SMBusAlert_High; +} + +/********************************************************************* + * @fn I2C_TransmitPEC + * + * @brief Enables or disables the specified I2C PEC transfer. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_TransmitPEC(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_PEC; + else + R16_I2C_CTRL1 &= ~RB_I2C_PEC; +} + +/********************************************************************* + * @fn I2C_PECPositionConfig + * + * @brief Selects the specified I2C PEC position. + * + * @param I2C_PECPosition - specifies the PEC position. + * I2C_PECPosition_Next - indicates that the next byte is PEC. + * I2C_PECPosition_Current - indicates that current byte is PEC. + * + * @return none + */ +void I2C_PECPositionConfig(uint16_t I2C_PECPosition) +{ + if(I2C_PECPosition == I2C_PECPosition_Next) + R16_I2C_CTRL1 |= I2C_PECPosition_Next; + else + R16_I2C_CTRL1 &= I2C_PECPosition_Current; +} + +/********************************************************************* + * @fn I2C_CalculatePEC + * + * @brief Enables or disables the PEC value calculation of the transferred bytes. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_CalculatePEC(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_ENPEC; + else + R16_I2C_CTRL1 &= ~RB_I2C_ENPEC; +} + +/********************************************************************* + * @fn I2C_GetPEC + * + * @brief Returns the PEC value for the specified I2C. + * + * @return The PEC value. + */ +uint8_t I2C_GetPEC(void) +{ + return (R16_I2C_STAR2 >> 8); +} + +/********************************************************************* + * @fn I2C_ARPCmd + * + * @brief Enables or disables the specified I2C ARP. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_ARPCmd(FunctionalState NewState) +{ + if(NewState != DISABLE) + R16_I2C_CTRL1 |= RB_I2C_EBARP; + else + R16_I2C_CTRL1 &= ~RB_I2C_EBARP; +} + +/********************************************************************* + * @fn I2C_StretchClockCmd + * + * @brief Enables or disables the specified I2C Clock stretching. + * + * @param NewState - ENABLE or DISABLE. + * + * @return none + */ +void I2C_StretchClockCmd(FunctionalState NewState) +{ + if(NewState == DISABLE) + R16_I2C_CTRL1 |= RB_I2C_NOSTRETCH; + else + R16_I2C_CTRL1 &= ~RB_I2C_NOSTRETCH; +} + +/********************************************************************* + * @fn I2C_FastModeDutyCycleConfig + * + * @brief Selects the specified I2C fast mode duty cycle. + * + * @param I2C_DutyCycle - specifies the fast mode duty cycle. + * I2C_DutyCycle_2 - I2C fast mode Tlow/Thigh = 2. + * I2C_DutyCycle_16_9 - I2C fast mode Tlow/Thigh = 16/9. + * + * @return none + */ +void I2C_FastModeDutyCycleConfig(uint16_t I2C_DutyCycle) +{ + if(I2C_DutyCycle != I2C_DutyCycle_16_9) + R16_I2C_CKCFGR &= ~I2C_DutyCycle_16_9; + else + R16_I2C_CKCFGR |= I2C_DutyCycle_16_9; +} + +/********************************************************************* + * @fn I2C_CheckEvent + * + * @brief Checks whether the last I2Cx Event is equal to the one passed as parameter. + * + * @param I2C_EVENT - specifies the event to be checked. + * I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED : EV1. + * I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED : EV1. + * I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED : EV1. + * I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED : EV1. + * I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED : EV1. + * I2C_EVENT_SLAVE_BYTE_RECEIVED : EV2. + * (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF) : EV2. + * (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL) : EV2. + * I2C_EVENT_SLAVE_BYTE_TRANSMITTED : EV3. + * (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF) : EV3. + * (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL) : EV3. + * I2C_EVENT_SLAVE_ACK_FAILURE : EV3_2. + * I2C_EVENT_SLAVE_STOP_DETECTED : EV4. + * I2C_EVENT_MASTER_MODE_SELECT : EV5. + * I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED : EV6. + * I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED : EV6. + * I2C_EVENT_MASTER_BYTE_RECEIVED : EV7. + * I2C_EVENT_MASTER_BYTE_TRANSMITTING : EV8. + * I2C_EVENT_MASTER_BYTE_TRANSMITTED : EV8_2. + * I2C_EVENT_MASTER_MODE_ADDRESS10 : EV9. + * + * @return 1 - SUCCESS or 0 - ERROR. + */ +uint8_t I2C_CheckEvent(uint32_t I2C_EVENT) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0, flag2 = 0; + uint8_t status = 0; + + flag1 = R16_I2C_STAR1; + flag2 = R16_I2C_STAR2; + flag2 = flag2 << 16; + + lastevent = (flag1 | flag2) & FLAG_Mask; + + if((lastevent & I2C_EVENT) == I2C_EVENT) + { + status = !0; + } + else + { + status = 0; + } + + return status; +} + +/********************************************************************* + * @fn I2C_GetLastEvent + * + * @brief Returns the last I2Cx Event. + * + * @return The last event. + */ +uint32_t I2C_GetLastEvent(void) +{ + uint32_t lastevent = 0; + uint32_t flag1 = 0, flag2 = 0; + + flag1 = R16_I2C_STAR1; + flag2 = R16_I2C_STAR2; + flag2 = flag2 << 16; + lastevent = (flag1 | flag2) & FLAG_Mask; + + return lastevent; +} + +/********************************************************************* + * @fn I2C_GetFlagStatus + * + * @brief Checks whether the last I2Cx Event is equal to the one passed as parameter. + * + * @param I2C_FLAG - specifies the flag to check. + * I2C_FLAG_DUALF - Dual flag (Slave mode). + * I2C_FLAG_SMBHOST - SMBus host header (Slave mode). + * I2C_FLAG_SMBDEFAULT - SMBus default header (Slave mode). + * I2C_FLAG_GENCALL - General call header flag (Slave mode). + * I2C_FLAG_TRA - Transmitter/Receiver flag. + * I2C_FLAG_BUSY - Bus busy flag. + * I2C_FLAG_MSL - Master/Slave flag. + * I2C_FLAG_SMBALERT - SMBus Alert flag. + * I2C_FLAG_TIMEOUT - Timeout or Tlow error flag. + * I2C_FLAG_PECERR - PEC error in reception flag. + * I2C_FLAG_OVR - Overrun/Underrun flag (Slave mode). + * I2C_FLAG_AF - Acknowledge failure flag. + * I2C_FLAG_ARLO - Arbitration lost flag (Master mode). + * I2C_FLAG_BERR - Bus error flag. + * I2C_FLAG_TXE - Data register empty flag (Transmitter). + * I2C_FLAG_RXNE - Data register not empty (Receiver) flag. + * I2C_FLAG_STOPF - Stop detection flag (Slave mode). + * I2C_FLAG_ADD10 - 10-bit header sent flag (Master mode). + * I2C_FLAG_BTF - Byte transfer finished flag. + * I2C_FLAG_ADDR - Address sent flag (Master mode) "ADSL" + * Address matched flag (Slave mode)"ENDA". + * I2C_FLAG_SB - Start bit flag (Master mode). + * + * @return FlagStatus - SET or RESET. + */ +FlagStatus I2C_GetFlagStatus(uint32_t I2C_FLAG) +{ + FlagStatus bitstatus = RESET; + __IO uint32_t i2creg = 0, i2cxbase = 0; + + i2cxbase = (uint32_t)BA_I2C; + i2creg = I2C_FLAG >> 28; + I2C_FLAG &= FLAG_Mask; + + if(i2creg != 0) + { + i2cxbase += 0x14; + } + else + { + I2C_FLAG = (uint32_t)(I2C_FLAG >> 16); + i2cxbase += 0x18; + } + + if(((*(__IO uint32_t *)i2cxbase) & I2C_FLAG) != (uint32_t)RESET) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn I2C_ClearFlag + * + * @brief Clears the I2Cx's pending flags. + * + * @param I2C_FLAG - specifies the flag to clear. + * I2C_FLAG_SMBALERT - SMBus Alert flag. + * I2C_FLAG_TIMEOUT - Timeout or Tlow error flag. + * I2C_FLAG_PECERR - PEC error in reception flag. + * I2C_FLAG_OVR - Overrun/Underrun flag (Slave mode). + * I2C_FLAG_AF - Acknowledge failure flag. + * I2C_FLAG_ARLO - Arbitration lost flag (Master mode). + * I2C_FLAG_BERR - Bus error flag. + * + * @return none + */ +void I2C_ClearFlag(uint32_t I2C_FLAG) +{ + uint32_t flagpos = 0; + + flagpos = I2C_FLAG & FLAG_Mask; + R16_I2C_STAR1 = (uint16_t)~flagpos; +} + +/********************************************************************* + * @fn I2C_GetITStatus + * + * @brief Checks whether the specified I2C interrupt has occurred or not. + * + * @param II2C_IT - specifies the interrupt source to check. + * I2C_FLAG_SMBALERT - SMBus Alert flag. + * I2C_FLAG_TIMEOUT - Timeout or Tlow error flag. + * I2C_FLAG_PECERR - PEC error in reception flag. + * I2C_FLAG_OVR - Overrun/Underrun flag (Slave mode). + * I2C_FLAG_AF - Acknowledge failure flag. + * I2C_FLAG_ARLO - Arbitration lost flag (Master mode). + * I2C_FLAG_BERR - Bus error flag. + * I2C_FLAG_TXE - Data register empty flag (Transmitter). + * I2C_FLAG_RXNE - Data register not empty (Receiver) flag. + * I2C_FLAG_STOPF - Stop detection flag (Slave mode). + * I2C_FLAG_ADD10 - 10-bit header sent flag (Master mode). + * I2C_FLAG_BTF - Byte transfer finished flag. + * I2C_FLAG_ADDR - Address sent flag (Master mode) "ADSL" + * Address matched flag (Slave mode)"ENDA". + * I2C_FLAG_SB - Start bit flag (Master mode). + * + * @return none + */ +ITStatus I2C_GetITStatus(uint32_t I2C_IT) +{ + ITStatus bitstatus = RESET; + uint32_t enablestatus = 0; + + enablestatus = (uint32_t)(((I2C_IT & ITEN_Mask) >> 16) & (R16_I2C_CTRL2)); + I2C_IT &= FLAG_Mask; + + if(((R16_I2C_STAR1 & I2C_IT) != (uint32_t)RESET) && enablestatus) + { + bitstatus = SET; + } + else + { + bitstatus = RESET; + } + + return bitstatus; +} + +/********************************************************************* + * @fn I2C_ClearITPendingBit + * + * @brief Clears the I2Cx interrupt pending bits. + * + * @param I2C_IT - specifies the interrupt pending bit to clear. + * I2C_IT_SMBALERT - SMBus Alert interrupt. + * I2C_IT_TIMEOUT - Timeout or Tlow error interrupt. + * I2C_IT_PECERR - PEC error in reception interrupt. + * I2C_IT_OVR - Overrun/Underrun interrupt (Slave mode). + * I2C_IT_AF - Acknowledge failure interrupt. + * I2C_IT_ARLO - Arbitration lost interrupt (Master mode). + * I2C_IT_BERR - Bus error interrupt. + * + * @return none + */ +void I2C_ClearITPendingBit(uint32_t I2C_IT) +{ + uint32_t flagpos = 0; + + flagpos = I2C_IT & FLAG_Mask; + R16_I2C_STAR1 = (uint16_t)~flagpos; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_keyscan.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_keyscan.c new file mode 100644 index 0000000..d7a5aeb --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_keyscan.c @@ -0,0 +1,63 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_keyscan.c + * Author : WCH + * Version : V1.0 + * Date : 2024/12/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn KeyScan_Cfg + * + * @brief ðɨ蹦 + * + * @param s - Ƿɨ蹦 + * @param keyScanPin - ò밴ɨIOʹ + * @param ClkDiv - ɨʱӷƵʱԴLSI + * @param Rep - ɨ赽ֵͬ + * + * @return none + */ +void KeyScan_Cfg(uint8_t s, uint16_t keyScanPin, uint16_t ClkDiv, uint16_t Rep) +{ + if(s == DISABLE) + { + R16_KEY_SCAN_CTRL &= ~(RB_SCAN_START_EN); + } + else + { + R16_KEY_SCAN_CTRL |= keyScanPin | ClkDiv | Rep; + R16_KEY_SCAN_CTRL |= RB_SCAN_START_EN; + } +} + +/********************************************************************* + * @fn KeyPress_Wake + * + * @brief »˯ʹ + * + * @param s - Ƿѹ + * + * @return none + */ +void KeyPress_Wake(uint8_t s) +{ + if(s == DISABLE) + { + sys_safe_access_enable(); + R8_SLP_CLK_OFF0 &= ~(RB_SLP_KEYSCAN_WAKE); + sys_safe_access_disable(); + } + else + { + sys_safe_access_enable(); + R8_SLP_CLK_OFF0 |= RB_SLP_KEYSCAN_WAKE; + sys_safe_access_disable(); + } +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwm.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwm.c new file mode 100644 index 0000000..36db5e5 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwm.c @@ -0,0 +1,246 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_pwm.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn PWMX_CycleCfg + * + * @brief PWM 8λ + * + * @param cyc - refer to PWMX_CycleTypeDef + * + * @return none + */ +void PWMX_CycleCfg(PWMX_CycleTypeDef cyc) +{ + switch(cyc) + { + case PWMX_Cycle_256: + R8_PWM_CONFIG &= ~(0x07); + break; + + case PWMX_Cycle_255: + R8_PWM_CONFIG |= 0x01; + break; + + case PWMX_Cycle_128: + R8_PWM_CONFIG |= (1 << 1); + break; + + case PWMX_Cycle_127: + R8_PWM_CONFIG |= (1 << 1) | 0x01; + break; + + case PWMX_Cycle_64: + R8_PWM_CONFIG |= (2 << 1); + break; + + case PWMX_Cycle_63: + R8_PWM_CONFIG |= (2 << 1) | 0x01; + break; + + default: + break; + } +} + +/********************************************************************* + * @fn PWMX_16bit_CycleCfg + * + * @brief PWM 16λ + * + * @param cyc - 16λ + * + * @return none + */ +void PWMX_16bit_CycleCfg(uint8_t ch, uint16_t cyc) +{ + if(ch & (CH_PWM1|CH_PWM2|CH_PWM3)) + { + R16_PWM_CYC_VALUE = cyc; + } + if(ch & (CH_PWM4|CH_PWM5)) + { + R16_PWM_CYC1_VALUE = cyc; + } +} + +/********************************************************************* + * @fn PWMX_16bit_ACTOUT + * + * @brief PWM 16λ + * + * @param ch - select channel of pwm, refer to channel of PWM define + * @param da - effective pulse width + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param s - control pwmx function, ENABLE or DISABLE + * + * @return none + */ +void PWMX_16bit_ACTOUT(uint8_t ch, uint16_t da, PWMX_PolarTypeDef pr, FunctionalState s) +{ + uint8_t i; + + if(s == DISABLE) + { + R8_PWM_OUT_EN &= ~(ch); + } + else + { + (pr) ? (R8_PWM_POLAR |= (ch)) : (R8_PWM_POLAR &= ~(ch)); + for(i = 0; i < 5; i++) + { + if((ch >> i) & 1) + { + if(i<3) + { + *((volatile uint16_t *)((&R16_PWM1_DATA) + i)) = da; + } + else + { + *((volatile uint16_t *)((&R16_PWM4_DATA) + (i-3))) = da; + } + } + } + R8_PWM_OUT_EN |= (ch); + } +} + +/********************************************************************* + * @fn PWMX_ACTOUT + * + * @brief PWM 8λ + * + * @param ch - select channel of pwm, refer to channel of PWM define + * @param da - effective pulse width + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param s - control pwmx function, ENABLE or DISABLE + * + * @return none + */ +void PWMX_ACTOUT(uint8_t ch, uint8_t da, PWMX_PolarTypeDef pr, FunctionalState s) +{ + uint8_t i; + + if(s == DISABLE) + { + R8_PWM_OUT_EN &= ~(ch); + } + else + { + (pr) ? (R8_PWM_POLAR |= (ch)) : (R8_PWM_POLAR &= ~(ch)); + switch(ch) + { + case CH_PWM1: + *((volatile uint16_t *)((&R8_PWM1_DATA))) = da; + break; + case CH_PWM2: + *((volatile uint16_t *)((&R8_PWM2_DATA))) = da; + break; + case CH_PWM3: + *((volatile uint16_t *)((&R8_PWM3_DATA))) = da; + break; + case CH_PWM4: + *((volatile uint16_t *)((&R8_PWM4_DATA))) = da; + break; + case CH_PWM5: + *((volatile uint16_t *)((&R8_PWM5_DATA))) = da; + break; + default: + break; + } + R8_PWM_OUT_EN |= (ch); + } +} + +/********************************************************************* + * @fn PWMX_AlterOutCfg + * + * @brief PWM ģʽ + * + * @param ch - select group of PWM alternate output + * RB_PWM4_5_STAG_EN - PWM4 PWM5 ͨ + * @param s - control pwmx function, ENABLE or DISABLE + * + * @return none + */ +void PWMX_AlterOutCfg(uint8_t ch, FunctionalState s) +{ + if(s == DISABLE) + { + R8_PWM_CONFIG &= ~(ch); + } + else + { + R8_PWM_CONFIG |= (ch); + } +} + +/********************************************************************* + * @fn PWMX_SyncOutCfg + * + * @brief PWM ͬģʽ + * + * @param s - control pwmx function, ENABLE or DISABLE + * + * @return none + */ +void PWMX_SyncOutCfg(FunctionalState s) +{ + if(s == DISABLE) + { + R8_PWM_CONFIG &= ~(RB_PWM_SYNC_EN); + } + else + { + R8_PWM_CONFIG |= RB_PWM_SYNC_EN; + R8_PWM_CONFIG |= RB_PWM_SYNC_START; + } +} + +/********************************************************************* + * @fn PWM_DMACfg + * + * @brief PWM DMA + * + * @param s - ǷDMA + * @param startAddr - DMA ʼַ + * @param endAddr - DMA ַ + * @param m - DMAģʽ + * @param ch - DMAͨ + * + * @return none + */ +void PWM_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, PWM_DMAModeTypeDef m, PWM_DMAChannel ch) +{ + if(s == DISABLE) + { + R8_PWM_DMA_CTRL = 0; + } + else + { + R32_PWM_DMA_BEG = startAddr & 0xFFFF; + R32_PWM_DMA_END = endAddr & 0xFFFF; + + if(m) + R8_PWM_DMA_CTRL = RB_DMA_ADDR_LOOP | RB_DMA_ENABLE; + else + R8_PWM_DMA_CTRL = RB_DMA_ENABLE; + + if(ch != Mode_DMACH4_5) + { + if(ch == Mode_DMACH1_3) R8_PWM_DMA_CTRL |= RB_DMA_SEL; + else R8_PWM_CONFIG |= RB_PWM_SYNC_EN | RB_PWM_SYNC_START; + } + } +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwr.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwr.c new file mode 100644 index 0000000..dce447d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_pwr.c @@ -0,0 +1,300 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_pwr.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn PWR_PeriphClkCfg + * + * @brief ʱӿλ + * + * @param s - Ƿ򿪶Ӧʱ + * @param perph - please refer to Peripher CLK control bit define + * + * @return none + */ +void PWR_PeriphClkCfg(FunctionalState s, uint16_t perph) +{ + uint32_t sleep_ctrl = R32_SLEEP_CONTROL; + + if(s == DISABLE) + { + sleep_ctrl |= perph; + } + else + { + sleep_ctrl &= ~perph; + } + + sys_safe_access_enable(); + R32_SLEEP_CONTROL = sleep_ctrl; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn PWR_PeriphWakeUpCfg + * + * @brief ˯߻Դ + * + * @param s - Ƿ򿪴˯߻ѹ + * @param perph - ҪõĻԴ + * RB_GPIO_WAKE_MODE - GPIOػģʽʹ 1:ػ,RB_SLP_GPIO_EDGE_MODE=1,˫ػ + * RB_SLP_GPIO_EDGE_MODE=0,ػ;0:ƽ + * RB_SLP_USB_WAKE - USBFS ΪԴ + * RB_SLP_USB2_WAKE - USBHS ΪԴ + * RB_SLP_RTC_WAKE - RTC ΪԴ + * RB_SLP_GPIO_WAKE - GPIO ΪԴ + * RB_SLP_BAT_WAKE - BAT ΪԴ + * RB_SLP_GPIO_EDGE_MODE - GPIOػضܻ + * @param mode - refer to WakeUP_ModeypeDef + * + * @return none + */ +void PWR_PeriphWakeUpCfg(FunctionalState s, uint8_t perph, WakeUP_ModeypeDef mode) +{ + if(s == DISABLE) + { + sys_safe_access_enable(); + R8_SLP_WAKE_CTRL &= ~perph; + sys_safe_access_disable(); + } + else + { + sys_safe_access_enable(); + R8_SLP_WAKE_CTRL |= RB_WAKE_EV_MODE | perph; + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_SLP_POWER_CTRL &= ~(RB_WAKE_DLY_MOD); + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_SLP_POWER_CTRL |= mode; + sys_safe_access_disable(); + } +} + +/********************************************************************* + * @fn PowerMonitor + * + * @brief Դ + * + * @param s - Ƿ򿪴˹ + * @param vl - refer to VolM_LevelypeDef + * + * @return none + */ +void PowerMonitor(FunctionalState s, VolM_LevelypeDef vl) +{ + uint8_t ctrl = R8_BAT_DET_CTRL; + uint8_t cfg = R8_BAT_DET_CFG; + + if(s == DISABLE) + { + sys_safe_access_enable(); + R8_BAT_DET_CTRL = 0; + sys_safe_access_disable(); + } + else + { + cfg = vl & 0x03; + ctrl = RB_BAT_MON_EN; + sys_safe_access_enable(); + R8_BAT_DET_CTRL = ctrl; + R8_BAT_DET_CFG = cfg; + sys_safe_access_disable(); + + mDelayuS(1); + sys_safe_access_enable(); + R8_BAT_DET_CTRL |= RB_BAT_LOW_IE; + sys_safe_access_disable(); + } +} + +/********************************************************************* + * @fn LowPower_Idle + * + * @brief ͹-Idleģʽ + * + * @param none + * + * @return none + */ +__HIGH_CODE +void LowPower_Idle(void) +{ + FLASH_ROM_SW_RESET(); + R8_FLASH_CTRL = 0x04; //flashر + + PFIC->SCTLR &= ~(1 << 2); // sleep + __WFI(); + __nop(); + __nop(); +} + +/********************************************************************* + * @fn LowPower_Halt + * + * @brief ͹-Haltģʽ˵͹еHSI/5ʱУѺҪûԼѡϵͳʱԴ + * + * @param none + * + * @return none + */ +__HIGH_CODE +void LowPower_Halt(void) +{ + uint8_t x32Mpw; + + FLASH_ROM_SW_RESET(); + R8_FLASH_CTRL = 0x04; //flashر + x32Mpw = R8_XT32M_TUNE; + if(!(R8_HFCK_PWR_CTRL&RB_CLK_XT32M_KEEP)) + { + x32Mpw = (x32Mpw & 0xfc) | 0x03; // 150% + } + + sys_safe_access_enable(); + R8_BAT_DET_CTRL = 0; // رյѹ + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_XT32M_TUNE = x32Mpw; + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_PLL_CONFIG |= (1 << 5); + sys_safe_access_disable(); + + PFIC->SCTLR |= (1 << 2); //deep sleep + __WFI(); + __nop(); + __nop(); + sys_safe_access_enable(); + R8_PLL_CONFIG &= ~(1 << 5); + sys_safe_access_disable(); +} + +/******************************************************************************* +* Function Name : LowPower_Sleep +* Description : ͹-Sleepģʽ +* Input : rm: + RB_PWR_RAM12K - 12K retention SRAM + RB_PWR_EXTEND - USB BLE Ԫ򹩵 + RB_PWR_XROM - FlashROM + NULL - ϵԪϵ +* Return : None +*******************************************************************************/ +__HIGH_CODE +void LowPower_Sleep(uint16_t rm) +{ + uint8_t x32Mpw; + uint16_t power_plan; + uint8_t clk_sys_cfg; + uint16_t hfck_pwr_ctrl; + + clk_sys_cfg = R8_CLK_SYS_CFG; + hfck_pwr_ctrl = R8_HFCK_PWR_CTRL; + x32Mpw = R8_XT32M_TUNE; + x32Mpw = (x32Mpw & 0xfc) | 0x03; // 150% + + sys_safe_access_enable(); + R8_BAT_DET_CTRL = 0; // رյѹ + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_XT32M_TUNE = x32Mpw; + sys_safe_access_disable(); + + PFIC->SCTLR |= (1 << 2); //deep sleep + + power_plan = RB_PWR_PLAN_EN | RB_PWR_CORE | rm | (2<<11); + + sys_safe_access_enable(); + + // Ҫ Ŀǰõ3584 + R8_SLP_POWER_CTRL |= 0x40; + + R16_POWER_PLAN = power_plan; + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_CLK_SYS_CFG = CLK_SOURCE_HSE_PLL_24MHz; + sys_safe_access_disable(); +// if((R16_CLK_SYS_CFG & RB_CLK_SYS_MOD) == 0x40) +// { +// sys_safe_access_enable(); +// R16_CLK_SYS_CFG = (R16_CLK_SYS_CFG&(~RB_CLK_PLL_DIV))|24; +// sys_safe_access_disable(); +// } +// sys_safe_access_enable(); +// R8_PLL_CONFIG |= (1 << 5); +// sys_safe_access_disable(); + + __WFI(); + __nop(); + __nop(); + + sys_safe_access_enable(); + R8_CLK_SYS_CFG = clk_sys_cfg; +// R8_HFCK_PWR_CTRL = hfck_pwr_ctrl; + sys_safe_access_disable(); + sys_safe_access_enable(); + R16_POWER_PLAN &= ~RB_PWR_PLAN_EN; + R16_POWER_PLAN &= ~RB_XT_PRE_EN; + sys_safe_access_disable(); +// sys_safe_access_enable(); +// R8_PLL_CONFIG &= ~(1 << 5); +// sys_safe_access_disable(); + DelayUs(40); +} + +/********************************************************************* + * @fn LowPower_Shutdown + * + * @brief ͹-Shutdownģʽ˵͹еHSI/5ʱУѺҪûԼѡϵͳʱԴ + * @note עô˺DCDCǿƹرգѺֶٴδ + * + * @param rm - ģѡ + * RB_PWR_RAM12K - 12K retention SRAM + * RB_PWR_EXTEND - USB BLE Ԫ򹩵 + * NULL - ϵԪϵ + * + * @return none + */ +__HIGH_CODE +void LowPower_Shutdown(uint16_t rm) +{ + uint8_t x32Mpw; + + FLASH_ROM_SW_RESET(); + x32Mpw = R8_XT32M_TUNE; + x32Mpw = (x32Mpw & 0xfc) | 0x03; // 150% + + sys_safe_access_enable(); + R8_BAT_DET_CTRL = 0; // رյѹ + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_XT32M_TUNE = x32Mpw; + sys_safe_access_disable(); + + PFIC->SCTLR |= (1 << 2); //deep sleep + + SetSysClock(CLK_SOURCE_HSE_PLL_24MHz); + sys_safe_access_enable(); + R8_SLP_POWER_CTRL |= 0x40; + sys_safe_access_disable(); + sys_safe_access_enable(); + R16_POWER_PLAN = RB_PWR_PLAN_EN | rm; + sys_safe_access_disable(); + __WFI(); + __nop(); + __nop(); + FLASH_ROM_SW_RESET(); + sys_safe_access_enable(); + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; + sys_safe_access_disable(); +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_spi.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_spi.c new file mode 100644 index 0000000..3ce6436 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_spi.c @@ -0,0 +1,454 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_SPI.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn SPI_MasterDefInit + * + * @brief ģʽĬϳʼģʽ0+3ȫ˫+8MHz + * + * @param none + * + * @return none + */ +void SPI_MasterDefInit(void) +{ + R8_SPI_CLOCK_DIV = 4; // Ƶʱ4Ƶ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_MOSI_OE | RB_SPI_SCK_OE; + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; // BUFFER/FIFOԶIF_BYTE_END־ + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; // DMAʽ +} + +/********************************************************************* + * @fn SPI_2WIRE_MasterOutputInit + * + * @brief 2߷ģʽʼģʽ1+2߰˫+8MHz + * + * @param none + * + * @return none + */ +void SPI_2WIRE_MasterOutputInit(void) +{ + R8_SPI_CLOCK_DIV = 4; // Ƶʱ4Ƶ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_MOSI_OE | RB_SPI_SCK_OE | RB_SPI_2WIRE_MOD; // ʹģʽ + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; // BUFFER/FIFOԶIF_BYTE_END־ + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; // DMAʽ +} + +/********************************************************************* + * @fn SPI_2WIRE_MasterReceiveInit + * + * @brief 2߽ģʽʼģʽ1+2߰˫+8MHz + * + * @param none + * + * @return none + */ +void SPI_2WIRE_MasterReceiveInit(void) +{ + R8_SPI_CLOCK_DIV = 4; // Ƶʱ4Ƶ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_SCK_OE | RB_SPI_2WIRE_MOD; // ʹģʽ + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; // BUFFER/FIFOԶIF_BYTE_END־ + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; // DMAʽ +} + +/********************************************************************* + * @fn SPI_2WIRE_SlaveInputInit + * + * @brief ӻ2߽ģʽʼģʽ1+2߰˫+8MHz + * + * @param none + * + * @return none + */ +void SPI_2WIRE_SlaveInputInit(void) +{ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_2WIRE_MOD | RB_SPI_MODE_SLAVE; + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF | RB_MST_CLK_SEL; +} + +/********************************************************************* + * @fn SPI_2WIRE_SlaveOutputInit + * + * @brief ӻ2߷ģʽʼģʽ1+2߰˫+8MHz + * + * @param none + * + * @return none + */ +void SPI_2WIRE_SlaveOutputInit(void) +{ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_MISO_OE | RB_SPI_2WIRE_MOD | RB_SPI_MODE_SLAVE; + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; +} + +/********************************************************************* + * @fn SPI_CLKCfg + * + * @brief SPI ׼ʱã= d*Tsys + * + * @param c - ʱӷƵϵ + * + * @return none + */ +void SPI_CLKCfg(uint8_t c) +{ + if(c == 2) + { + R8_SPI_CTRL_CFG |= RB_SPI_MST_DLY_EN; + } + else + { + R8_SPI_CTRL_CFG &= ~RB_SPI_MST_DLY_EN; + } + R8_SPI_CLOCK_DIV = c; +} + +/********************************************************************* + * @fn SPI_DataMode + * + * @brief ģʽ + * + * @param m - ģʽ refer to ModeBitOrderTypeDef + * + * @return none + */ +void SPI_DataMode(ModeBitOrderTypeDef m) +{ + switch(m) + { + case Mode0_LowBitINFront: + R8_SPI_CTRL_MOD &= ~RB_SPI_MST_SCK_MOD; + R8_SPI_CTRL_CFG |= RB_SPI_BIT_ORDER; + break; + case Mode0_HighBitINFront: + R8_SPI_CTRL_MOD &= ~RB_SPI_MST_SCK_MOD; + R8_SPI_CTRL_CFG &= ~RB_SPI_BIT_ORDER; + break; + case Mode3_LowBitINFront: + R8_SPI_CTRL_MOD |= RB_SPI_MST_SCK_MOD; + R8_SPI_CTRL_CFG |= RB_SPI_BIT_ORDER; + break; + case Mode3_HighBitINFront: + R8_SPI_CTRL_MOD |= RB_SPI_MST_SCK_MOD; + R8_SPI_CTRL_CFG &= ~RB_SPI_BIT_ORDER; + break; + default: + break; + } +} + +/********************************************************************* + * @fn SPI_MasterSendByte + * + * @brief ͵ֽ (buffer) + * + * @param d - ֽ + * + * @return none + */ +void SPI_MasterSendByte(uint8_t d) +{ + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; + R16_SPI_TOTAL_CNT = 1; + R8_SPI_FIFO = d; + while(!(R8_SPI_INT_FLAG & RB_SPI_FREE)); +} + +/********************************************************************* + * @fn SPI_MasterRecvByte + * + * @brief յֽ (buffer) + * + * @param none + * + * @return յֽ + */ +uint8_t SPI_MasterRecvByte(void) +{ + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; + R8_SPI_BUFFER = 0xFF; // + while(!(R8_SPI_INT_FLAG & RB_SPI_FREE)); + return (R8_SPI_BUFFER); +} + +/********************************************************************* + * @fn SPI_MasterTrans + * + * @brief ʹFIFOͶֽ + * + * @param pbuf - ͵׵ַ + * @param len - ͵ݳȣ4095 + * + * @return none + */ +void SPI_MasterTrans(uint8_t *pbuf, uint16_t len) +{ + uint16_t sendlen; + + sendlen = len; + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; // ݷΪ + R16_SPI_TOTAL_CNT = sendlen; // Ҫ͵ݳ + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END; + while(sendlen) + { + if(R8_SPI_FIFO_COUNT < SPI_FIFO_SIZE) + { + R8_SPI_FIFO = *pbuf; + pbuf++; + sendlen--; + } + } + while(R8_SPI_FIFO_COUNT != 0); // ȴFIFOеȫ +} + +/********************************************************************* + * @fn SPI_MasterRecv + * + * @brief ʹFIFOնֽ + * + * @param pbuf - յ׵ַ + * @param len - յݳȣ4095 + * + * @return none + */ +void SPI_MasterRecv(uint8_t *pbuf, uint16_t len) +{ + uint16_t readlen; + + readlen = len; + R8_SPI_CTRL_MOD |= RB_SPI_FIFO_DIR; // ݷΪ + R16_SPI_TOTAL_CNT = len; // ҪյݳȣFIFOΪ볤ȲΪ0 */ + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END; + while(readlen) + { + if(R8_SPI_FIFO_COUNT) + { + *pbuf = R8_SPI_FIFO; + pbuf++; + readlen--; + } + } +} + +/********************************************************************* + * @fn SPI_MasterDMATrans + * + * @brief DMAʽ + * + * @param pbuf - ʼַ,Ҫֽڶ + * @param len - ݳ + * + * @return none + */ +void SPI_MasterDMATrans(uint8_t *pbuf, uint16_t len) +{ + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; + R16_SPI_DMA_BEG = (uint32_t)pbuf; + R16_SPI_DMA_END = (uint32_t)(pbuf + len); + R16_SPI_TOTAL_CNT = len; + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END | RB_SPI_IF_DMA_END; + R8_SPI_CTRL_CFG |= RB_SPI_DMA_ENABLE; + while(!(R8_SPI_INT_FLAG & RB_SPI_IF_CNT_END)); + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; +} + +/********************************************************************* + * @fn SPI_MasterDMARecv + * + * @brief DMAʽ + * + * @param pbuf - ݴʼַ,Ҫֽڶ + * @param len - ݳ + * + * @return none + */ +void SPI_MasterDMARecv(uint8_t *pbuf, uint16_t len) +{ + R8_SPI_CTRL_MOD |= RB_SPI_FIFO_DIR; + R16_SPI_DMA_BEG = (uint32_t)pbuf; + R16_SPI_DMA_END = (uint32_t)(pbuf + len); + R16_SPI_TOTAL_CNT = len; + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END | RB_SPI_IF_DMA_END; + R8_SPI_CTRL_CFG |= RB_SPI_DMA_ENABLE; + while(!(R8_SPI_INT_FLAG & RB_SPI_IF_CNT_END)); + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; +} + +/********************************************************************* + * @fn SPI_SlaveInit + * + * @brief 豸ģʽĬϳʼMISOGPIOӦΪģʽ + * + * @return none + */ +void SPI_SlaveInit(void) +{ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_MISO_OE | RB_SPI_MODE_SLAVE; + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; +} + +/********************************************************************* + * @fn SPI_2WIRE_SlaveInit + * + * @brief 豸2ģʽʼ + * + * @return none + */ +void SPI_2WIRE_SlaveInit(void) +{ + R8_SPI_CTRL_MOD = RB_SPI_ALL_CLEAR; + R8_SPI_CTRL_MOD = RB_SPI_MISO_OE | RB_SPI_2WIRE_MOD | RB_SPI_MODE_SLAVE; + R8_SPI_CTRL_CFG |= RB_SPI_AUTO_IF; +} + +/********************************************************************* + * @fn SPI_SlaveRecvByte + * + * @brief ӻģʽһֽ + * + * @return յ + */ +uint8_t SPI_SlaveRecvByte(void) +{ + R8_SPI_CTRL_MOD |= RB_SPI_FIFO_DIR; + while(R8_SPI_FIFO_COUNT == 0); + return R8_SPI_FIFO; +} + +/********************************************************************* + * @fn SPI_SlaveSendByte + * + * @brief ӻģʽһֽ + * + * @param d - + * + * @return none + */ +void SPI_SlaveSendByte(uint8_t d) +{ + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; + R16_SPI_TOTAL_CNT = 1; + R8_SPI_FIFO = d; + while(R8_SPI_FIFO_COUNT != 0); // ȴ +} + +/********************************************************************* + * @fn SPI_SlaveRecv + * + * @brief ӻģʽնֽ + * + * @param pbuf - ݴʼַ + * @param len - ݳ + * + * @return none + */ +__HIGH_CODE +void SPI_SlaveRecv(uint8_t *pbuf, uint16_t len) +{ + uint16_t revlen; + + revlen = len; + R8_SPI_CTRL_MOD |= RB_SPI_FIFO_DIR; + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END; + while(revlen) + { + if(R8_SPI_FIFO_COUNT) + { + *pbuf = R8_SPI_FIFO; + pbuf++; + revlen--; + } + } +} + +/********************************************************************* + * @fn SPI_SlaveTrans + * + * @brief ӻģʽͶֽ + * + * @param pbuf - ͵׵ַ + * @param len - ͵ݳȣ4095 + * + * @return none + */ +__HIGH_CODE +void SPI_SlaveTrans(uint8_t *pbuf, uint16_t len) +{ + uint16_t sendlen; + + sendlen = len; + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; // ݷΪ + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END; + while(sendlen) + { + if(R8_SPI_FIFO_COUNT < SPI_FIFO_SIZE) + { + R8_SPI_FIFO = *pbuf; + pbuf++; + sendlen--; + } + } + while(R8_SPI_FIFO_COUNT != 0); // ȴFIFOеȫ +} + +/********************************************************************* + * @fn SPI_SlaveDMARecv + * + * @brief DMAʽ + * + * @param pbuf - ݴʼַ,Ҫֽڶ + * @param len - ݳ + * + * @return none + */ +void SPI_SlaveDMARecv(uint8_t *pbuf, uint16_t len) +{ + R8_SPI_CTRL_MOD |= RB_SPI_FIFO_DIR; + R16_SPI_DMA_BEG = (uint32_t)pbuf; + R16_SPI_DMA_END = (uint32_t)(pbuf + len); + R16_SPI_TOTAL_CNT = len; + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END | RB_SPI_IF_DMA_END; + R8_SPI_CTRL_CFG |= RB_SPI_DMA_ENABLE; + while(!(R8_SPI_INT_FLAG & RB_SPI_IF_CNT_END)); + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; +} + +/********************************************************************* + * @fn SPI_SlaveDMATrans + * + * @brief DMAʽ + * + * @param pbuf - ʼַ,Ҫֽڶ + * @param len - ݳ + * + * @return none + */ +void SPI_SlaveDMATrans(uint8_t *pbuf, uint16_t len) +{ + R8_SPI_CTRL_MOD &= ~RB_SPI_FIFO_DIR; + R16_SPI_DMA_BEG = (uint32_t)pbuf; + R16_SPI_DMA_END = (uint32_t)(pbuf + len); + R16_SPI_TOTAL_CNT = len; + R8_SPI_INT_FLAG = RB_SPI_IF_CNT_END | RB_SPI_IF_DMA_END; + R8_SPI_CTRL_CFG |= RB_SPI_DMA_ENABLE; + while(!(R8_SPI_INT_FLAG & RB_SPI_IF_CNT_END)); + R8_SPI_CTRL_CFG &= ~RB_SPI_DMA_ENABLE; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_sys.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_sys.c new file mode 100644 index 0000000..67a5d54 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_sys.c @@ -0,0 +1,421 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_SYS.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn SetSysClock + * + * @brief ϵͳʱ + * + * @param sc - ϵͳʱԴѡ refer to SYS_CLKTypeDef + * + * @return none + */ +__HIGH_CODE +void SetSysClock(SYS_CLKTypeDef sc) +{ + uint16_t clk_sys_cfg; + uint8_t i; + uint8_t x32M_c; + + if(sc == RB_CLK_SYS_MOD) // LSI + { + sys_safe_access_enable(); + R8_CLK_SYS_CFG |= RB_CLK_SYS_MOD; + sys_safe_access_disable(); + } + else + { + if(!(R8_HFCK_PWR_CTRL & RB_CLK_XT32M_PON)) + { + x32M_c = R8_XT32M_TUNE; + sys_safe_access_enable(); + R8_XT32M_TUNE |= 0x03; + R8_HFCK_PWR_CTRL |= RB_CLK_XT32M_PON; + sys_safe_access_disable(); + clk_sys_cfg = R8_CLK_SYS_CFG; + sys_safe_access_enable(); + R8_CLK_SYS_CFG |= 0xC0; + sys_safe_access_disable(); + for(i=0; i<9; i++) + { + __nop(); + } + sys_safe_access_enable(); + R8_CLK_SYS_CFG = clk_sys_cfg; + R8_XT32M_TUNE = x32M_c; + sys_safe_access_disable(); + } + + if((sc & RB_CLK_SYS_MOD) == 0x40) // PLL div + { + sys_safe_access_enable(); + R8_HFCK_PWR_CTRL |= RB_CLK_PLL_PON; + R8_FLASH_CFG = 0X01; + R8_FLASH_SCK |= 1<<4; //50M + sys_safe_access_disable(); + } + else // 32M div + { + if((sc&0x1F) ) + { + sys_safe_access_enable(); + R8_FLASH_CFG = 0X02; + sys_safe_access_disable(); + } + else + { + sys_safe_access_enable(); + R8_FLASH_CFG = 0X07; + sys_safe_access_disable(); + } + } + + sys_safe_access_enable(); + R8_CLK_SYS_CFG = sc; + sys_safe_access_disable(); + } +} + +/********************************************************************* + * @fn GetSysClock + * + * @brief ȡǰϵͳʱ + * + * @param none + * + * @return Hz + */ +uint32_t GetSysClock(void) +{ + if((R8_CLK_SYS_CFG & RB_CLK_SYS_MOD) == RB_CLK_SYS_MOD) + { // 32KƵ + return (Freq_LSI); + } + else if((R8_CLK_SYS_CFG & RB_CLK_SYS_MOD) == 0x40) + { + return (600000000 / ((R8_CLK_SYS_CFG & 0x1f)?(R8_CLK_SYS_CFG & 0x1f):32)); + } + else + { // 32MзƵ + return (32000000 / ((R8_CLK_SYS_CFG & 0x1f)?(R8_CLK_SYS_CFG & 0x1f):32)); + } +} + +/********************************************************************* + * @fn SYS_GetInfoSta + * + * @brief ȡǰϵͳϢ״̬ + * + * @param i - refer to SYS_InfoStaTypeDef + * + * @return Ƿ + */ +uint8_t SYS_GetInfoSta(SYS_InfoStaTypeDef i) +{ + if(i == STA_SAFEACC_ACT) + { + return (R8_SAFE_ACCESS_SIG & RB_SAFE_ACC_ACT); + } + else + { + return (R8_GLOB_CFG_INFO & (1 << i)); + } +} + +/********************************************************************* + * @fn SYS_ResetExecute + * + * @brief ִϵͳλ + * + * @param none + * + * @return none + */ +__HIGH_CODE +void SYS_ResetExecute(void) +{ + FLASH_ROM_SW_RESET(); + sys_safe_access_enable(); + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn SYS_DisableAllIrq + * + * @brief رжϣǰжֵ + * + * @param pirqv - ǰжֵ + * + * @return none + */ +void SYS_DisableAllIrq(uint32_t *pirqv) +{ + *pirqv = (PFIC->ISR[0] >> 8) | (PFIC->ISR[1] << 24); + PFIC->IRER[0] = 0xffffffff; + PFIC->IRER[1] = 0xffffffff; + asm volatile("fence.i"); +} + +/********************************************************************* + * @fn SYS_RecoverIrq + * + * @brief ָ֮ǰرյжֵ + * + * @param irq_status - ǰжֵ + * + * @return none + */ +void SYS_RecoverIrq(uint32_t irq_status) +{ + PFIC->IENR[0] = (irq_status << 8); + PFIC->IENR[1] = (irq_status >> 24); +} + +/********************************************************************* + * @fn SYS_GetSysTickCnt + * + * @brief ȡǰϵͳ(SYSTICK)ֵ + * + * @param none + * + * @return ǰֵ + */ +uint32_t SYS_GetSysTickCnt(void) +{ + return SysTick->CNTL; +} + +/********************************************************************* + * @fn WWDG_ITCfg + * + * @brief Źʱжʹ + * + * @param s - Ƿж + * + * @return none + */ +void WWDG_ITCfg(FunctionalState s) +{ + uint8_t ctrl = R8_RST_WDOG_CTRL; + + if(s == DISABLE) + { + ctrl &= ~RB_WDOG_INT_EN; + } + else + { + ctrl |= RB_WDOG_INT_EN; + } + + sys_safe_access_enable(); + R8_RST_WDOG_CTRL = ctrl; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn WWDG_ResetCfg + * + * @brief Źʱλ + * + * @param s - Ƿλ + * + * @return none + */ +void WWDG_ResetCfg(FunctionalState s) +{ + uint8_t ctrl = R8_RST_WDOG_CTRL; + + if(s == DISABLE) + { + ctrl &= ~RB_WDOG_RST_EN; + } + else + { + ctrl |= RB_WDOG_RST_EN; + } + + sys_safe_access_enable(); + R8_RST_WDOG_CTRL = ctrl; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn WWDG_ClearFlag + * + * @brief Źжϱ־¼ؼֵҲ + * + * @param none + * + * @return none + */ +void WWDG_ClearFlag(void) +{ + sys_safe_access_enable(); + R8_RST_WDOG_CTRL |= RB_WDOG_INT_FLAG; + sys_safe_access_disable(); +} + +/********************************************************************* + * @fn HardFault_Handler + * + * @brief ӲжϣִиλλΪϵ縴λ + * + * @param none + * + * @return none + */ +__INTERRUPT +__HIGH_CODE +__attribute__((weak)) +void HardFault_Handler(void) +{ + FLASH_ROM_SW_RESET(); + sys_safe_access_enable(); + R16_INT_LSI_TUNE = 0xFFFF; + sys_safe_access_disable(); + sys_safe_access_enable(); + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; + sys_safe_access_disable(); + while(1); +} + +/********************************************************************* + * @fn mDelayuS + * + * @brief uS ʱ + * + * @param t - ʱ + * + * @return none + */ +__HIGH_CODE +void mDelayuS(uint16_t t) +{ + uint32_t i; +#if(FREQ_SYS == 100000000) + i = t * 25; +#elif(FREQ_SYS == 75000000) + i = (t * 25)>>1; +#elif(FREQ_SYS == 60000000) + i = t * 10; +#elif(FREQ_SYS == 50000000) + i = (t * 25)>>1; +#elif(FREQ_SYS == 40000000) + i = t * 10; +#elif(FREQ_SYS == 30000000) + i = t * 5; +#elif(FREQ_SYS == 25000000) + i = (t * 25)>>2; +#elif(FREQ_SYS == 24000000) + i = t * 6; +#elif(FREQ_SYS == 20000000) + i = t * 5; +#elif(FREQ_SYS == 16000000) + i = t << 2; +#elif(FREQ_SYS == 8000000) + i = t << 1; +#elif(FREQ_SYS == 6400000) + i = t * 8 / 5; +#elif(FREQ_SYS == 4000000) + i = t; +#elif(FREQ_SYS == 2000000) + i = t >> 1; +#elif(FREQ_SYS == 1000000) + i = t >> 2; +#else + i = t; +#endif + +#if((FREQ_SYS == 75000000)||\ + (FREQ_SYS == 60000000)||\ + (FREQ_SYS == 30000000)) + while(--i) + { + __nop(); + }; +#else + do + { + __nop(); + }while(--i); +#endif +} + +/********************************************************************* + * @fn mDelaymS + * + * @brief mS ʱ + * + * @param t - ʱ + * + * @return none + */ +__HIGH_CODE +void mDelaymS(uint16_t t) +{ + do + { + mDelayuS(1000); + }while(--t); +} + +//YYW,20250918 +//#ifdef DEBUG +//int _write(int fd, char *buf, int size) +//{ +// int i; +// for(i = 0; i < size; i++) +// { +// while(R8_UART_TFC == UART_FIFO_SIZE); /* ȴݷ */ +// R8_UART_THR = *buf++; /* */ +// } +// return size; +//} +// +//#endif + +/********************************************************************* + * @fn _sbrk + * + * @brief Change the spatial position of data segment. + * + * @return size: Data length + */ +__attribute__((used)) +void *_sbrk(ptrdiff_t incr) +{ + extern char _end[]; + static char *curbrk = _end; + + if ((curbrk + incr < _end) || ((uint32_t)curbrk + incr > (__get_SP() - 64))) + return NULL - 1; + + curbrk += incr; + return curbrk - incr; +} + +/********************************************************************* + * @fn __wrap_memcpy + * + * @brief wrap memcpy + * + * @return dst + */ +__HIGH_CODE +void *__wrap_memcpy(void *dst, void *src, size_t size) +{ + __MCPY(dst, src, (void *)((uint32_t)src+size)); + return dst; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_timer.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_timer.c new file mode 100644 index 0000000..ed788c9 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_timer.c @@ -0,0 +1,132 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_timer0.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn TMR_TimerInit + * + * @brief ʱܳʼ + * + * @param t - ʱʱ䣬ڵǰϵͳʱTsys, ʱ 67108864 + * + * @return none + */ +void TMR_TimerInit(uint32_t t) +{ + R32_TMR_CNT_END = t; + R8_TMR_CTRL_MOD = RB_TMR_ALL_CLEAR; + R8_TMR_CTRL_MOD = RB_TMR_COUNT_EN; +} + +/********************************************************************* + * @fn TMR_EXTSingleCounterInit + * + * @brief ؼܳʼ + * + * @param cap - ɼ + * + * @return none + */ +void TMR_EXTSingleCounterInit(CapModeTypeDef cap) +{ + R8_TMR_CTRL_MOD = RB_TMR_ALL_CLEAR; + R8_TMR_CTRL_MOD = RB_TMR_COUNT_EN | RB_TMR_CAP_COUNT | RB_TMR_MODE_IN | (cap << 6); +} + +/********************************************************************* + * @fn TMR_PWMInit + * + * @brief PWM ʼ + * + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param ts - set pwm repeat times, refer to PWM_RepeatTsTypeDef + * + * @return none + */ +void TMR_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts) +{ + R8_TMR_CTRL_MOD = RB_TMR_ALL_CLEAR; + R8_TMR_CTRL_MOD = (pr << 4) | (ts << 6); +} + +/********************************************************************* + * @fn TMR_CapInit + * + * @brief ⲿźŲ׽ܳʼ + * + * @param cap - select capture mode, refer to CapModeTypeDef + * + * @return none + */ +void TMR_CapInit(CapModeTypeDef cap) +{ + R8_TMR_CTRL_MOD = RB_TMR_ALL_CLEAR; + R8_TMR_CTRL_MOD = RB_TMR_COUNT_EN | RB_TMR_MODE_IN | (cap << 6); +} + + +/********************************************************************* + * @fn TMR_DMACfg + * + * @brief DMA + * + * @param s - ǷDMA + * @param startAddr - DMA ʼַ + * @param endAddr - DMA ַ + * @param m - DMAģʽ + * + * @return none + */ +void TMR_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, DMAModeTypeDef m) +{ + if(s == DISABLE) + { + R8_TMR_CTRL_DMA = 0; + } + else + { + R16_TMR_DMA_BEG = startAddr & 0xFFFF; + R16_TMR_DMA_END = endAddr & 0xFFFF; + if(m) + R8_TMR_CTRL_DMA = RB_TMR_DMA_LOOP | RB_TMR_DMA_ENABLE; + else + R8_TMR_CTRL_DMA = RB_TMR_DMA_ENABLE; + } +} + + +/********************************************************************* + * @fn ENC_Config + * + * @brief ñ + * + * @param s - Ƿ + * @param encReg - ģʽֵ(ֵ0xFFFF) + * @param m - ENCģʽ + * + * @return none + */ +void ENC_Config(uint8_t s, uint32_t encReg, ENCModeTypeDef m) +{ + if(s == DISABLE) + { + R8_ENC_REG_CTRL &= ~(RB_START_ENC_EN); + } + else + { + R8_ENC_REG_CTRL |= (m << 1) | RB_START_ENC_EN; + R32_ENC_REG_CEND |= encReg; + } +} + + diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_uart.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_uart.c new file mode 100644 index 0000000..825c8f0 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_uart.c @@ -0,0 +1,160 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_UART.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +/********************************************************************* + * @fn UART_DefInit + * + * @brief Ĭϳʼ + * + * @param none + * + * @return none + */ +void UART_DefInit(void) +{ + UART_BaudRateCfg(115200); + R8_UART_FCR = (2 << 6) | RB_FCR_FIFO_EN; // FIFO򿪣4ֽ + R8_UART_LCR = RB_LCR_WORD_SZ; + R8_UART_IER = RB_IER_TXD_EN; + R8_UART_DIV = 1; +} + +/********************************************************************* + * @fn UART_BaudRateCfg + * + * @brief ڲ + * + * @param baudrate - + * + * @return none + */ +void UART_BaudRateCfg(uint32_t baudrate) +{ + uint32_t x; + + x = 10 * GetSysClock() / 8 / baudrate; + x = (x + 5) / 10; + R16_UART_DL = (uint16_t)x; +} + +/********************************************************************* + * @fn UART_ByteTrigCfg + * + * @brief ֽڴж + * + * @param b - ֽ refer to UARTByteTRIGTypeDef + * + * @return none + */ +void UART_ByteTrigCfg(UARTByteTRIGTypeDef b) +{ + R8_UART_FCR = (R8_UART_FCR & ~RB_FCR_FIFO_TRIG) | (b << 6); +} + +/********************************************************************* + * @fn UART_INTCfg + * + * @brief ж + * + * @param s - жϿ״̬ǷʹӦж + * @param i - ж + * RB_IER_MODEM_CHG - ƽ״̬仯жʹλ UART ֧֣ + * RB_IER_LINE_STAT - ·״̬ж + * RB_IER_THR_EMPTY - ͱּĴж + * RB_IER_RECV_RDY - ж + * + * @return none + */ +void UART_INTCfg(FunctionalState s, uint8_t i) +{ + if(s) + { + R8_UART_IER |= i; + R8_UART_MCR |= RB_MCR_INT_OE; + } + else + { + R8_UART_IER &= ~i; + } +} + +/********************************************************************* + * @fn UART_SendString + * + * @brief ڶֽڷ + * + * @param buf - ͵׵ַ + * @param l - ͵ݳ + * + * @return none + */ +void UART_SendString(uint8_t *buf, uint16_t l) +{ + uint16_t len = l; + + while(len) + { + if(R8_UART_TFC != UART_FIFO_SIZE) + { + R8_UART_THR = *buf++; + len--; + } + } +} + +/********************************************************************* + * @fn UART_RecvString + * + * @brief ڶȡֽ + * + * @param buf - ȡݴŻ׵ַ + * + * @return ȡݳ + */ +uint16_t UART_RecvString(uint8_t *buf) +{ + uint16_t len = 0; + + while(R8_UART_RFC) + { + *buf++ = R8_UART_RBR; + len++; + } + + return (len); +} + +/********************************************************************* + * @fn UART_Remap + * + * @brief ӳ + * + * @param s - Ƿʹӳ + * @param perph - дTxRxӳϵ + * + * + * @return none + */ +void UART_Remap(FunctionalState s, UARTTxPinRemapDef u_tx, UARTRxPinRemapDef u_rx) +{ + if(s) + { + R16_PIN_ALTERNATE_H &= ~(RB_UART_TXD | RB_UART_RXD); // üĴϵ縴λShutDown˯ʱ0 + R16_PIN_ALTERNATE_H |= (u_tx << 3) | u_rx; + } + else + { + R16_PIN_ALTERNATE_H &= ~(RB_UART_TXD | RB_UART_RXD); + } +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbdev.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbdev.c new file mode 100644 index 0000000..12eeb47 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbdev.c @@ -0,0 +1,113 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_usbdev.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" + +uint8_t *pEP0_RAM_Addr; +uint8_t *pEP1_RAM_Addr; +uint8_t *pEP2_RAM_Addr; +uint8_t *pEP3_RAM_Addr; + +/********************************************************************* + * @fn USB_DeviceInit + * + * @brief USB豸ܳʼ4˵㣬8ͨ + * + * @param none + * + * @return none + */ +void USB_DeviceInit(void) +{ + R8_USB_CTRL = 0x00; // 趨ģʽ,ȡ RB_UC_CLR_ALL + + R8_UEP4_1_MOD = RB_UEP4_RX_EN | RB_UEP4_TX_EN | RB_UEP1_RX_EN | RB_UEP1_TX_EN; // ˵4 OUT+IN,˵1 OUT+IN + R8_UEP2_3_MOD = RB_UEP2_RX_EN | RB_UEP2_TX_EN | RB_UEP3_RX_EN | RB_UEP3_TX_EN; // ˵2 OUT+IN,˵3 OUT+IN + + R16_UEP0_DMA = (uint16_t)(uint32_t)pEP0_RAM_Addr; + R16_UEP1_DMA = (uint16_t)(uint32_t)pEP1_RAM_Addr; + R16_UEP2_DMA = (uint16_t)(uint32_t)pEP2_RAM_Addr; + R16_UEP3_DMA = (uint16_t)(uint32_t)pEP3_RAM_Addr; + + R8_UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + R8_UEP1_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG; + R8_UEP2_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG; + R8_UEP3_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG; + R8_UEP4_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK; + + R8_USB_DEV_AD = 0x00; + R8_USB_CTRL = RB_UC_DEV_PU_EN | RB_UC_INT_BUSY | RB_UC_DMA_EN; // USB豸DMAжڼжϱ־δǰԶNAK + R16_PIN_ALTERNATE |= RB_PIN_USB_EN | RB_UDP_PU_EN; // ֹUSB˿ڸռ + R8_USB_INT_FG = 0xFF; // жϱ־ + R8_UDEV_CTRL = RB_UD_PD_DIS | RB_UD_PORT_EN; // USB˿ + R8_USB_INT_EN = RB_UIE_SUSPEND | RB_UIE_BUS_RST | RB_UIE_TRANSFER; +} + +/********************************************************************* + * @fn DevEP1_IN_Deal + * + * @brief ˵1ϴ + * + * @param l - ϴݳ(<64B) + * + * @return none + */ +void DevEP1_IN_Deal(uint8_t l) +{ + R8_UEP1_T_LEN = l; + R8_UEP1_CTRL = (R8_UEP1_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP2_IN_Deal + * + * @brief ˵2ϴ + * + * @param l - ϴݳ(<64B) + * + * @return none + */ +void DevEP2_IN_Deal(uint8_t l) +{ + R8_UEP2_T_LEN = l; + R8_UEP2_CTRL = (R8_UEP2_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP3_IN_Deal + * + * @brief ˵3ϴ + * + * @param l - ϴݳ(<64B) + * + * @return none + */ +void DevEP3_IN_Deal(uint8_t l) +{ + R8_UEP3_T_LEN = l; + R8_UEP3_CTRL = (R8_UEP3_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} + +/********************************************************************* + * @fn DevEP4_IN_Deal + * + * @brief ˵4ϴ + * + * @param l - ϴݳ(<64B) + * + * @return none + */ +void DevEP4_IN_Deal(uint8_t l) +{ + R8_UEP4_T_LEN = l; + R8_UEP4_CTRL = (R8_UEP4_CTRL & ~MASK_UEP_T_RES) | UEP_T_RES_ACK; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostBase.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostBase.c new file mode 100644 index 0000000..86362bc --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostBase.c @@ -0,0 +1,695 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_usbhost.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" +#if DISK_LIB_ENABLE + #include "CHRV3UFI.H" +#endif + +uint8_t UsbDevEndp0Size; // USB豸Ķ˵0ߴ +uint8_t FoundNewDev; +_RootHubDev ThisUsbDev; //ROOT +_DevOnHubPort DevOnHubPort[HUB_MAX_PORTS]; // ٶ:1ⲿHUB,ÿⲿHUBHUB_MAX_PORTS˿(˲) + +uint8_t *pHOST_RX_RAM_Addr; +uint8_t *pHOST_TX_RAM_Addr; + +/*ȡ豸*/ +__attribute__((aligned(4))) const uint8_t SetupGetDevDescr[] = {USB_REQ_TYP_IN, USB_GET_DESCRIPTOR, 0x00, + USB_DESCR_TYP_DEVICE, 0x00, 0x00, sizeof(USB_DEV_DESCR), 0x00}; +/*ȡ*/ +__attribute__((aligned(4))) const uint8_t SetupGetCfgDescr[] = {USB_REQ_TYP_IN, USB_GET_DESCRIPTOR, 0x00, + USB_DESCR_TYP_CONFIG, 0x00, 0x00, 0x04, 0x00}; +/*USBַ*/ +__attribute__((aligned(4))) const uint8_t SetupSetUsbAddr[] = {USB_REQ_TYP_OUT, USB_SET_ADDRESS, USB_DEVICE_ADDR, 0x00, + 0x00, 0x00, 0x00, 0x00}; +/*USB*/ +__attribute__((aligned(4))) const uint8_t SetupSetUsbConfig[] = {USB_REQ_TYP_OUT, USB_SET_CONFIGURATION, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; +/*USBӿ*/ +__attribute__((aligned(4))) const uint8_t SetupSetUsbInterface[] = {USB_REQ_RECIP_INTERF, USB_SET_INTERFACE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; +/*˵STALL*/ +__attribute__((aligned(4))) const uint8_t SetupClrEndpStall[] = {USB_REQ_TYP_OUT | USB_REQ_RECIP_ENDP, USB_CLEAR_FEATURE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/********************************************************************* + * @fn DisableRootHubPort + * + * @brief رROOT-HUB˿,ʵӲѾԶر,˴ֻһЩṹ״̬ + * + * @param none + * + * @return none + */ +void DisableRootHubPort(void) +{ +#ifdef FOR_ROOT_UDISK_ONLY + CHRV3DiskStatus = DISK_DISCONNECT; +#endif +#ifndef DISK_BASE_BUF_LEN + ThisUsbDev.DeviceStatus = ROOT_DEV_DISCONNECT; + ThisUsbDev.DeviceAddress = 0x00; +#endif +} + +/********************************************************************* + * @fn AnalyzeRootHub + * + * @brief ROOT-HUB״̬,ROOT-HUB˿ڵ豸¼ + * 豸γ,еDisableRootHubPort(),˿ڹر,¼,Ӧ˿ڵ״̬λ + * + * @param none + * + * @return ERR_SUCCESSΪû,ERR_USB_CONNECTΪ⵽,ERR_USB_DISCONΪ⵽Ͽ + */ +uint8_t AnalyzeRootHub(void) +{ + uint8_t s; + + s = ERR_SUCCESS; + + if(R8_USB_MIS_ST & RB_UMS_DEV_ATTACH) + { // 豸 +#ifdef DISK_BASE_BUF_LEN + if(CHRV3DiskStatus == DISK_DISCONNECT +#else + if(ThisUsbDev.DeviceStatus == ROOT_DEV_DISCONNECT // ⵽豸 +#endif + || (R8_UHOST_CTRL & RB_UH_PORT_EN) == 0x00) + { // ⵽豸,δ,˵Ǹղ + DisableRootHubPort(); // رն˿ +#ifdef DISK_BASE_BUF_LEN + CHRV3DiskStatus = DISK_CONNECT; +#else + ThisUsbDev.DeviceSpeed = R8_USB_MIS_ST & RB_UMS_DM_LEVEL ? 0 : 1; + ThisUsbDev.DeviceStatus = ROOT_DEV_CONNECTED; //ӱ־ +#endif + PRINT("USB dev in\n"); + s = ERR_USB_CONNECT; + } + } + +#ifdef DISK_BASE_BUF_LEN + else if(CHRV3DiskStatus >= DISK_CONNECT) + { +#else + else if(ThisUsbDev.DeviceStatus >= ROOT_DEV_CONNECTED) + { //⵽豸γ +#endif + DisableRootHubPort(); // رն˿ + PRINT("USB dev out\n"); + if(s == ERR_SUCCESS) + { + s = ERR_USB_DISCON; + } + } + // R8_USB_INT_FG = RB_UIF_DETECT; // жϱ־ + return (s); +} + +/********************************************************************* + * @fn SetHostUsbAddr + * + * @brief USBǰUSB豸ַ + * + * @param addr - USB豸ַ + * + * @return none + */ +void SetHostUsbAddr(uint8_t addr) +{ + R8_USB_DEV_AD = (R8_USB_DEV_AD & RB_UDA_GP_BIT) | (addr & MASK_USB_ADDR); +} + +/********************************************************************* + * @fn SetUsbSpeed + * + * @brief õǰUSBٶ + * + * @param FullSpeed - USBٶ + * + * @return none + */ +void SetUsbSpeed(uint8_t FullSpeed) +{ +#ifndef DISK_BASE_BUF_LEN + if(FullSpeed) // ȫ + { + R8_USB_CTRL &= ~RB_UC_LOW_SPEED; // ȫ + R8_UH_SETUP &= ~RB_UH_PRE_PID_EN; // ֹPRE PID + } + else + { + R8_USB_CTRL |= RB_UC_LOW_SPEED; // + } +#endif + (void)FullSpeed; +} + +/********************************************************************* + * @fn ResetRootHubPort + * + * @brief ⵽豸,λ,Ϊö豸׼,ΪĬΪȫ + * + * @param none + * + * @return none + */ +void ResetRootHubPort(void) +{ + UsbDevEndp0Size = DEFAULT_ENDP0_SIZE; //USB豸Ķ˵0ߴ + SetHostUsbAddr(0x00); + R8_UHOST_CTRL &= ~RB_UH_PORT_EN; // ص˿ + SetUsbSpeed(1); // ĬΪȫ + R8_UHOST_CTRL = (R8_UHOST_CTRL & ~RB_UH_LOW_SPEED) | RB_UH_BUS_RESET; // ĬΪȫ,ʼλ + mDelaymS(15); // λʱ10mS20mS + R8_UHOST_CTRL = R8_UHOST_CTRL & ~RB_UH_BUS_RESET; // λ + mDelayuS(250); + R8_USB_INT_FG = RB_UIF_DETECT; // жϱ־ +} + +/********************************************************************* + * @fn EnableRootHubPort + * + * @brief ʹROOT-HUB˿,ӦbUH_PORT_EN1˿,豸Ͽܵ·ʧ + * + * @param none + * + * @return ERR_SUCCESSΪ⵽,ERR_USB_DISCONΪ + */ +uint8_t EnableRootHubPort(void) +{ +#ifdef DISK_BASE_BUF_LEN + if(CHRV3DiskStatus < DISK_CONNECT) + CHRV3DiskStatus = DISK_CONNECT; +#else + if(ThisUsbDev.DeviceStatus < ROOT_DEV_CONNECTED) + ThisUsbDev.DeviceStatus = ROOT_DEV_CONNECTED; +#endif + if(R8_USB_MIS_ST & RB_UMS_DEV_ATTACH) + { // 豸 +#ifndef DISK_BASE_BUF_LEN + if((R8_UHOST_CTRL & RB_UH_PORT_EN) == 0x00) + { // δʹ + ThisUsbDev.DeviceSpeed = (R8_USB_MIS_ST & RB_UMS_DM_LEVEL) ? 0 : 1; + if(ThisUsbDev.DeviceSpeed == 0) + { + R8_UHOST_CTRL |= RB_UH_LOW_SPEED; // + } + } +#endif + R8_UHOST_CTRL |= RB_UH_PORT_EN; //ʹHUB˿ + return (ERR_SUCCESS); + } + return (ERR_USB_DISCON); +} + +#ifndef DISK_BASE_BUF_LEN +/********************************************************************* + * @fn SelectHubPort + * + * @brief ѡҪHUB + * + * @param HubPortIndex - ѡָROOT-HUB˿ڵⲿHUBָ˿ + * + * @return None + */ +void SelectHubPort(uint8_t HubPortIndex) +{ + if(HubPortIndex) // ѡָROOT-HUB˿ڵⲿHUBָ˿ + { + SetHostUsbAddr(DevOnHubPort[HubPortIndex - 1].DeviceAddress); // USBǰUSB豸ַ + SetUsbSpeed(DevOnHubPort[HubPortIndex - 1].DeviceSpeed); // õǰUSBٶ + if(DevOnHubPort[HubPortIndex - 1].DeviceSpeed == 0) // ͨⲿHUBUSB豸ͨѶҪǰID + { + R8_UEP1_CTRL |= RB_UH_PRE_PID_EN; // PRE PID + mDelayuS(100); + } + } + else + { + SetHostUsbAddr(ThisUsbDev.DeviceAddress); // USBǰUSB豸ַ + SetUsbSpeed(ThisUsbDev.DeviceSpeed); // USB豸ٶ + } +} +#endif + +/********************************************************************* + * @fn WaitUSB_Interrupt + * + * @brief ȴUSBж + * + * @param none + * + * @return ERR_SUCCESS ݽջ߷ͳɹ,ERR_USB_UNKNOWN ݽջ߷ʧ + */ +uint8_t WaitUSB_Interrupt(void) +{ + uint16_t i; + for(i = WAIT_USB_TOUT_200US; i != 0 && (R8_USB_INT_FG & RB_UIF_TRANSFER) == 0; i--) + { + ; + } + return ((R8_USB_INT_FG & RB_UIF_TRANSFER) ? ERR_SUCCESS : ERR_USB_UNKNOWN); +} + +/********************************************************************* + * @fn USBHostTransact + * + * @brief ,ĿĶ˵ַ/PID,ͬ־,20uSΪλNAKʱ(0,0xFFFF),0ɹ,ʱ/ + * ӳ,ʵӦ,Ϊṩٶ,ӦöԱӳŻ + * + * @param endp_pid - ƺ͵ַ, 4λtoken_pid, 4λǶ˵ַ + * @param tog - ͬ־ + * @param timeout - ʱʱ + * + * @return ERR_USB_UNKNOWN ʱӲ쳣 + * ERR_USB_DISCON 豸Ͽ + * ERR_USB_CONNECT 豸 + * ERR_SUCCESS + */ +uint8_t USBHostTransact(uint8_t endp_pid, uint8_t tog, uint32_t timeout) +{ + uint8_t TransRetry; + + uint8_t s, r; + uint16_t i; + + R8_UH_RX_CTRL = R8_UH_TX_CTRL = tog; + TransRetry = 0; + + do + { + R8_UH_EP_PID = endp_pid; // ָPIDĿĶ˵ + R8_USB_INT_FG = RB_UIF_TRANSFER; + for(i = WAIT_USB_TOUT_200US; i != 0 && (R8_USB_INT_FG & RB_UIF_TRANSFER) == 0; i--) + { + ; + } + R8_UH_EP_PID = 0x00; // ֹͣUSB + if((R8_USB_INT_FG & RB_UIF_TRANSFER) == 0) + { + return (ERR_USB_UNKNOWN); + } + + if(R8_USB_INT_FG & RB_UIF_DETECT) + { // USB豸¼ + // mDelayuS( 200 ); // ȴ + R8_USB_INT_FG = RB_UIF_DETECT; + s = AnalyzeRootHub(); // ROOT-HUB״̬ + + if(s == ERR_USB_CONNECT) + FoundNewDev = 1; +#ifdef DISK_BASE_BUF_LEN + if(CHRV3DiskStatus == DISK_DISCONNECT) + { + return (ERR_USB_DISCON); + } // USB豸Ͽ¼ + if(CHRV3DiskStatus == DISK_CONNECT) + { + return (ERR_USB_CONNECT); + } // USB豸¼ +#else + if(ThisUsbDev.DeviceStatus == ROOT_DEV_DISCONNECT) + { + return (ERR_USB_DISCON); + } // USB豸Ͽ¼ + if(ThisUsbDev.DeviceStatus == ROOT_DEV_CONNECTED) + { + return (ERR_USB_CONNECT); + } // USB豸¼ +#endif + mDelayuS(200); // ȴ + } + + if(R8_USB_INT_FG & RB_UIF_TRANSFER) // ¼ + { + if(R8_USB_INT_ST & RB_UIS_TOG_OK) + { + return (ERR_SUCCESS); + } + r = R8_USB_INT_ST & MASK_UIS_H_RES; // USB豸Ӧ״̬ + if(r == USB_PID_STALL) + { + return (r | ERR_USB_TRANSFER); + } + if(r == USB_PID_NAK) + { + if(timeout == 0) + { + return (r | ERR_USB_TRANSFER); + } + if(timeout < 0xFFFFFFFF) + { + timeout--; + } + --TransRetry; + } + else + switch(endp_pid >> 4) + { + case USB_PID_SETUP: + case USB_PID_OUT: + if(r) + { + return (r | ERR_USB_TRANSFER); + } // dzʱ/,Ӧ + break; // ʱ + case USB_PID_IN: + if(r == USB_PID_DATA0 || r == USB_PID_DATA1) + { // ͬ趪 + } // ͬ + else if(r) + { + return (r | ERR_USB_TRANSFER); + } // dzʱ/,Ӧ + break; // ʱ + default: + return (ERR_USB_UNKNOWN); // ܵ + break; + } + } + else + { // ж,Ӧ÷ + R8_USB_INT_FG = 0xFF; /* жϱ־ */ + } + mDelayuS(15); + } while(++TransRetry < 3); + return (ERR_USB_TRANSFER); // Ӧʱ +} + +/********************************************************************* + * @fn HostCtrlTransfer + * + * @brief ִпƴ,8ֽpSetupReq,DataBufΪѡշ + * + * @param DataBuf - Ҫպͷ,ôDataBufָЧڴź + * @param RetLen - ʵʳɹշܳȱRetLenָֽڱ + * + * @return ERR_USB_BUF_OVER IN״̬׶γ + * ERR_SUCCESS ݽɹ + */ +uint8_t HostCtrlTransfer(uint8_t *DataBuf, uint8_t *RetLen) +{ + uint16_t RemLen = 0; + uint8_t s, RxLen, RxCnt, TxCnt; + uint8_t *pBuf; + uint8_t *pLen; + + pBuf = DataBuf; + pLen = RetLen; + mDelayuS(200); + if(pLen) + { + *pLen = 0; // ʵʳɹշܳ + } + + R8_UH_TX_LEN = sizeof(USB_SETUP_REQ); + s = USBHostTransact(USB_PID_SETUP << 4 | 0x00, 0x00, 200000 / 20); // SETUP׶,200mSʱ + if(s != ERR_SUCCESS) + { + return (s); + } + R8_UH_RX_CTRL = R8_UH_TX_CTRL = RB_UH_R_TOG | RB_UH_R_AUTO_TOG | RB_UH_T_TOG | RB_UH_T_AUTO_TOG; // ĬDATA1 + R8_UH_TX_LEN = 0x01; // Ĭݹ״̬׶ΪIN + RemLen = pSetupReq->wLength; + PRINT("wLength: %x\n", RemLen); + if(RemLen && pBuf) // Ҫշ + { + PRINT("bRequestType: %x\n", pSetupReq->bRequestType); + if(pSetupReq->bRequestType & USB_REQ_TYP_IN) // + { + while(RemLen) + { + mDelayuS(200); + s = USBHostTransact(USB_PID_IN << 4 | 0x00, R8_UH_RX_CTRL, 200000 / 20); // IN + if(s != ERR_SUCCESS) + { + return (s); + } + RxLen = R8_USB_RX_LEN < RemLen ? R8_USB_RX_LEN : RemLen; + RemLen -= RxLen; + if(pLen) + { + *pLen += RxLen; // ʵʳɹշܳ + } + for(RxCnt = 0; RxCnt != RxLen; RxCnt++) + { + *pBuf = pHOST_RX_RAM_Addr[RxCnt]; + pBuf++; + } + if(R8_USB_RX_LEN == 0 || (R8_USB_RX_LEN & (UsbDevEndp0Size - 1))) + { + break; // ̰ + } + } + R8_UH_TX_LEN = 0x00; // ״̬׶ΪOUT + } + else // + { + while(RemLen) + { + mDelayuS(200); + R8_UH_TX_LEN = RemLen >= UsbDevEndp0Size ? UsbDevEndp0Size : RemLen; + for(TxCnt = 0; TxCnt != R8_UH_TX_LEN; TxCnt++) + { + pHOST_TX_RAM_Addr[TxCnt] = *pBuf; + pBuf++; + } + s = USBHostTransact(USB_PID_OUT << 4 | 0x00, R8_UH_TX_CTRL, 200000 / 20); // OUT + if(s != ERR_SUCCESS) + { + return (s); + } + RemLen -= R8_UH_TX_LEN; + if(pLen) + { + *pLen += R8_UH_TX_LEN; // ʵʳɹշܳ + } + } + PRINT("Send: %d\n", *pLen); + // R8_UH_TX_LEN = 0x01; // ״̬׶ΪIN + } + } + mDelayuS(200); + s = USBHostTransact((R8_UH_TX_LEN ? USB_PID_IN << 4 | 0x00 : USB_PID_OUT << 4 | 0x00), RB_UH_R_TOG | RB_UH_T_TOG, 200000 / 20); // STATUS׶ + if(s != ERR_SUCCESS) + { + return (s); + } + if(R8_UH_TX_LEN == 0) + { + return (ERR_SUCCESS); // ״̬OUT + } + if(R8_USB_RX_LEN == 0) + { + return (ERR_SUCCESS); // ״̬IN,IN״̬ݳ + } + return (ERR_USB_BUF_OVER); // IN״̬׶δ +} + +/********************************************************************* + * @fn CopySetupReqPkg + * + * @brief ƿƴ + * + * @param pReqPkt - ַ + * + * @return none + */ +void CopySetupReqPkg(const uint8_t *pReqPkt) // ƿƴ +{ + uint8_t i; + for(i = 0; i != sizeof(USB_SETUP_REQ); i++) + { + ((uint8_t *)pSetupReq)[i] = *pReqPkt; + pReqPkt++; + } +} + +/********************************************************************* + * @fn CtrlGetDeviceDescr + * + * @brief ȡ豸, pHOST_TX_RAM_Addr + * + * @param none + * + * @return ERR_USB_BUF_OVER ȴ + * ERR_SUCCESS ɹ + */ +uint8_t CtrlGetDeviceDescr(void) +{ + uint8_t s; + uint8_t len; + + UsbDevEndp0Size = DEFAULT_ENDP0_SIZE; + CopySetupReqPkg(SetupGetDevDescr); + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + UsbDevEndp0Size = ((PUSB_DEV_DESCR)Com_Buffer)->bMaxPacketSize0; // ˵0,Ǽ򻯴,ӦȻȡǰ8ֽںUsbDevEndp0Sizeټ + if(len < ((PUSB_SETUP_REQ)SetupGetDevDescr)->wLength) + { + return (ERR_USB_BUF_OVER); // ȴ + } + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlGetConfigDescr + * + * @brief ȡ, pHOST_TX_RAM_Addr + * + * @param none + * + * @return ERR_USB_BUF_OVER ȴ + * ERR_SUCCESS ɹ + */ +uint8_t CtrlGetConfigDescr(void) +{ + uint8_t s; + uint8_t len; + + CopySetupReqPkg(SetupGetCfgDescr); + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + if(len < ((PUSB_SETUP_REQ)SetupGetCfgDescr)->wLength) + { + return (ERR_USB_BUF_OVER); // سȴ + } + + len = ((PUSB_CFG_DESCR)Com_Buffer)->wTotalLength; + CopySetupReqPkg(SetupGetCfgDescr); + pSetupReq->wLength = len; // ܳ + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + +#ifdef DISK_BASE_BUF_LEN + if(len > 64) + len = 64; + memcpy(TxBuffer, Com_Buffer, len); //U̲ʱҪTxBuffer +#endif + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlSetUsbAddress + * + * @brief USB豸ַ + * + * @param addr - 豸ַ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbAddress(uint8_t addr) +{ + uint8_t s; + + CopySetupReqPkg(SetupSetUsbAddr); + pSetupReq->wValue = addr; // USB豸ַ + s = HostCtrlTransfer(NULL, NULL); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + SetHostUsbAddr(addr); // USBǰUSB豸ַ + mDelaymS(10); // ȴUSB豸ɲ + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlSetUsbConfig + * + * @brief USB豸 + * + * @param cfg - ֵ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbConfig(uint8_t cfg) +{ + CopySetupReqPkg(SetupSetUsbConfig); + pSetupReq->wValue = cfg; // USB豸 + return (HostCtrlTransfer(NULL, NULL)); // ִпƴ +} + +/********************************************************************* + * @fn CtrlClearEndpStall + * + * @brief ˵STALL + * + * @param endp - ˵ַ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlClearEndpStall(uint8_t endp) +{ + CopySetupReqPkg(SetupClrEndpStall); // ˵Ĵ + pSetupReq->wIndex = endp; // ˵ַ + return (HostCtrlTransfer(NULL, NULL)); // ִпƴ +} + +/********************************************************************* + * @fn CtrlSetUsbIntercace + * + * @brief USB豸ӿ + * + * @param cfg - ֵ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbIntercace(uint8_t cfg) +{ + CopySetupReqPkg(SetupSetUsbInterface); + pSetupReq->wValue = cfg; // USB豸 + return (HostCtrlTransfer(NULL, NULL)); // ִпƴ +} + +/********************************************************************* + * @fn USB_HostInit + * + * @brief USBܳʼ + * + * @param none + * + * @return none + */ +void USB_HostInit(void) +{ + R8_USB_CTRL = RB_UC_HOST_MODE; + R8_UHOST_CTRL = 0; + R8_USB_DEV_AD = 0x00; + + R8_UH_EP_MOD = RB_UH_EP_TX_EN | RB_UH_EP_RX_EN; + R16_UH_RX_DMA = (uint32_t)pHOST_RX_RAM_Addr; + R16_UH_TX_DMA = (uint32_t)pHOST_TX_RAM_Addr; + + R8_UH_RX_CTRL = 0x00; + R8_UH_TX_CTRL = 0x00; + R8_USB_CTRL = RB_UC_HOST_MODE | RB_UC_INT_BUSY | RB_UC_DMA_EN; + R8_UH_SETUP = RB_UH_SOF_EN; + R8_USB_INT_FG = 0xFF; + DisableRootHubPort(); + R8_USB_INT_EN = RB_UIE_TRANSFER | RB_UIE_DETECT; + + FoundNewDev = 0; +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostClass.c b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostClass.c new file mode 100644 index 0000000..0d6956d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/CH57x_usbhostClass.c @@ -0,0 +1,840 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_usbhost.c + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : source file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#include "CH57x_common.h" +#if DISK_LIB_ENABLE + #include "CHRV3UFI.H" +#endif + +/* HIDϴ */ +__attribute__((aligned(4))) const uint8_t SetupSetHIDIdle[] = {0x21, HID_SET_IDLE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +/* ȡHID豸 */ +__attribute__((aligned(4))) const uint8_t SetupGetHIDDevReport[] = {0x81, USB_GET_DESCRIPTOR, 0x00, USB_DESCR_TYP_REPORT, + 0x00, 0x00, 0x41, 0x00}; +/* ȡHUB */ +__attribute__((aligned(4))) const uint8_t SetupGetHubDescr[] = {HUB_GET_HUB_DESCRIPTOR, HUB_GET_DESCRIPTOR, 0x00, + USB_DESCR_TYP_HUB, 0x00, 0x00, sizeof(USB_HUB_DESCR), 0x00}; + +__attribute__((aligned(4))) uint8_t Com_Buffer[128]; // ûʱ,öʱڴ,öٽҲͨʱ + +/********************************************************************* + * @fn AnalyzeHidIntEndp + * + * @brief зHIDж϶˵ĵַ,HubPortIndex0浽ROOTHUBǷֵ򱣴浽HUB½ṹ + * + * @param buf - ݻַ HubPortIndex0ʾHUB0ʾⲿHUBµĶ˿ں + * + * @return ˵ + */ +uint8_t AnalyzeHidIntEndp(uint8_t *buf, uint8_t HubPortIndex) +{ + uint8_t i, s, l; + s = 0; + + if(HubPortIndex) + { + memset(DevOnHubPort[HubPortIndex - 1].GpVar, 0, sizeof(DevOnHubPort[HubPortIndex - 1].GpVar)); // + } + else + { + memset(ThisUsbDev.GpVar, 0, sizeof(ThisUsbDev.GpVar)); // + } + + for(i = 0; i < ((PUSB_CFG_DESCR)buf)->wTotalLength; i += l) // ж϶˵,ͽӿ + { + if(((PUSB_ENDP_DESCR)(buf + i))->bDescriptorType == USB_DESCR_TYP_ENDP // Ƕ˵ + && (((PUSB_ENDP_DESCR)(buf + i))->bmAttributes & USB_ENDP_TYPE_MASK) == USB_ENDP_TYPE_INTER // ж϶˵ + && (((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_DIR_MASK)) // IN˵ + { // ж϶˵ĵַ,λ7ͬ־λ,0 + if(HubPortIndex) + { + DevOnHubPort[HubPortIndex - 1].GpVar[s] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; + } + else + { + ThisUsbDev.GpVar[s] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; // ж϶˵ĵַԸҪwMaxPacketSizebInterval + } + PRINT("%02x ", (uint16_t)ThisUsbDev.GpVar[s]); + s++; + if(s >= 4) + { + break; //ֻ4˵ + } + } + l = ((PUSB_ENDP_DESCR)(buf + i))->bLength; // ǰ, + if(l > 16) + { + break; + } + } + PRINT("\n"); + return (s); +} + +/********************************************************************* + * @fn AnalyzeBulkEndp + * + * @brief ˵,GpVar[0]GpVar[1]ϴ˵㡣GpVar[2]GpVar[3]´˵ + * + * @param buf - ݻַ HubPortIndex0ʾHUB0ʾⲿHUBµĶ˿ں + * + * @return 0 + */ +uint8_t AnalyzeBulkEndp(uint8_t *buf, uint8_t HubPortIndex) +{ + uint8_t i, s1, s2, l; + s1 = 0; + s2 = 2; + + if(HubPortIndex) + { + memset(DevOnHubPort[HubPortIndex - 1].GpVar, 0, sizeof(DevOnHubPort[HubPortIndex - 1].GpVar)); // + } + else + { + memset(ThisUsbDev.GpVar, 0, sizeof(ThisUsbDev.GpVar)); // + } + + for(i = 0; i < ((PUSB_CFG_DESCR)buf)->wTotalLength; i += l) // ж϶˵,ͽӿ + { + if((((PUSB_ENDP_DESCR)(buf + i))->bDescriptorType == USB_DESCR_TYP_ENDP) // Ƕ˵ + && ((((PUSB_ENDP_DESCR)(buf + i))->bmAttributes & USB_ENDP_TYPE_MASK) == USB_ENDP_TYPE_BULK)) // ж϶˵ + + { + if(HubPortIndex) + { + if(((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_DIR_MASK) + { + DevOnHubPort[HubPortIndex - 1].GpVar[s1++] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; + } + else + { + DevOnHubPort[HubPortIndex - 1].GpVar[s2++] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; + } + } + else + { + if(((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_DIR_MASK) + { + ThisUsbDev.GpVar[s1++] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; + } + else + { + ThisUsbDev.GpVar[s2++] = ((PUSB_ENDP_DESCR)(buf + i))->bEndpointAddress & USB_ENDP_ADDR_MASK; + } + } + + if(s1 == 2) + { + s1 = 1; + } + if(s2 == 4) + { + s2 = 3; + } + } + l = ((PUSB_ENDP_DESCR)(buf + i))->bLength; // ǰ, + if(l > 16) + { + break; + } + } + return (0); +} + +/********************************************************************* + * @fn InitRootDevice + * + * @brief ʼָROOT-HUB˿ڵUSB豸 + * + * @param none + * + * @return + */ +uint8_t InitRootDevice(void) +{ + uint8_t i, s; + uint8_t cfg, dv_cls, if_cls; + + PRINT("Reset host port\n"); + ResetRootHubPort(); // ⵽豸,λӦ˿ڵUSB + for(i = 0, s = 0; i < 100; i++) + { // ȴUSB豸λ,100mSʱ + mDelaymS(1); + if(EnableRootHubPort() == ERR_SUCCESS) + { // ʹܶ˿ + i = 0; + s++; + if(s > 100) + { + break; // Ѿȶ100mS + } + } + } + if(i) + { // λ豸û + DisableRootHubPort(); + PRINT("Disable host port because of disconnect\n"); + return (ERR_USB_DISCON); + } + SetUsbSpeed(ThisUsbDev.DeviceSpeed); // õǰUSBٶ + + PRINT("GetDevDescr: "); + s = CtrlGetDeviceDescr(); // ȡ豸 + if(s == ERR_SUCCESS) + { + for(i = 0; i < ((PUSB_SETUP_REQ)SetupGetDevDescr)->wLength; i++) + { + PRINT("x%02X ", (uint16_t)(Com_Buffer[i])); + } + PRINT("\n"); + + ThisUsbDev.DeviceVID = ((PUSB_DEV_DESCR)Com_Buffer)->idVendor; //VID PIDϢ + ThisUsbDev.DevicePID = ((PUSB_DEV_DESCR)Com_Buffer)->idProduct; + dv_cls = ((PUSB_DEV_DESCR)Com_Buffer)->bDeviceClass; + + s = CtrlSetUsbAddress(((PUSB_SETUP_REQ)SetupSetUsbAddr)->wValue); + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceAddress = ((PUSB_SETUP_REQ)SetupSetUsbAddr)->wValue; // USBַ + + PRINT("GetCfgDescr: "); + s = CtrlGetConfigDescr(); + if(s == ERR_SUCCESS) + { + for(i = 0; i < ((PUSB_CFG_DESCR)Com_Buffer)->wTotalLength; i++) + { + PRINT("x%02X ", (uint16_t)(Com_Buffer[i])); + } + PRINT("\n"); + /* ,ȡ˵/˵ַ/˵С,±endp_addrendp_size */ + cfg = ((PUSB_CFG_DESCR)Com_Buffer)->bConfigurationValue; + if_cls = ((PUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceClass; // ӿ + + if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_STORAGE)) + { // USB洢豸,ȷU +#ifdef FOR_ROOT_UDISK_ONLY + CHRV3DiskStatus = DISK_USB_ADDR; + return (ERR_SUCCESS); + } + else + { + return (ERR_USB_UNSUPPORT); + } +#else + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = USB_DEV_CLASS_STORAGE; + PRINT("USB-Disk Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + } + else if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_PRINTER) && ((PUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceSubClass == 0x01) + { // Ǵӡ豸 + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + // 豣˵ϢԱUSB + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = USB_DEV_CLASS_PRINTER; + PRINT("USB-Print Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + } + else if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_HID) && ((PUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceSubClass <= 0x01) + { // HID豸,/ + // зHIDж϶˵ĵַ + s = AnalyzeHidIntEndp(Com_Buffer, 0); // зHIDж϶˵ĵַ + PRINT("AnalyzeHidIntEndp %02x\n", (uint16_t)s); + // ж϶˵ĵַ,λ7ͬ־λ,0 + if_cls = ((PUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceProtocol; + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + s = CtrlGetHIDDeviceReport(dv_cls); //ȡ + if(s == ERR_SUCCESS) + { + for(i = 0; i < 64; i++) + { + PRINT("x%02X ", (uint16_t)(Com_Buffer[i])); + } + PRINT("\n"); + } + // 豣˵ϢԱUSB + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + if(if_cls == 1) + { + ThisUsbDev.DeviceType = DEV_TYPE_KEYBOARD; + // һʼ,豸ָʾLED + PRINT("USB-Keyboard Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + else if(if_cls == 2) + { + ThisUsbDev.DeviceType = DEV_TYPE_MOUSE; + // ΪԺѯ״̬,Ӧ÷,ȡж϶˿ڵĵַ,ȵϢ + PRINT("USB-Mouse Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + s = ERR_USB_UNSUPPORT; + } + } + else if(dv_cls == USB_DEV_CLASS_HUB) + { // HUB豸, + s = CtrlGetHubDescr(); + if(s == ERR_SUCCESS) + { + PRINT("Max Port:%02X ", (((PXUSB_HUB_DESCR)Com_Buffer)->bNbrPorts)); + ThisUsbDev.GpHUBPortNum = ((PXUSB_HUB_DESCR)Com_Buffer)->bNbrPorts; // HUBĶ˿ + if(ThisUsbDev.GpHUBPortNum > HUB_MAX_PORTS) + { + ThisUsbDev.GpHUBPortNum = HUB_MAX_PORTS; // ΪṹDevOnHubPortʱΪٶÿHUBHUB_MAX_PORTS˿ + } + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = USB_DEV_CLASS_HUB; + //豣˵ϢԱUSB,ж϶˵HUB¼֪ͨ,ʹòѯ״̬ƴ + //HUB˿ϵ,ѯ˿״̬,ʼ豸ӵHUB˿,ʼ豸 + for(i = 1; i <= ThisUsbDev.GpHUBPortNum; i++) // HUB˿ڶϵ + { + DevOnHubPort[i - 1].DeviceStatus = ROOT_DEV_DISCONNECT; // ⲿHUB˿豸״̬ + s = HubSetPortFeature(i, HUB_PORT_POWER); + if(s != ERR_SUCCESS) + { + PRINT("Ext-HUB Port_%1d# power on error\n", (uint16_t)i); // ˿ϵʧ + } + } + PRINT("USB-HUB Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + } + } + else + { // Խһ + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + // 豣˵ϢԱUSB + ThisUsbDev.DeviceStatus = ROOT_DEV_SUCCESS; + ThisUsbDev.DeviceType = DEV_TYPE_UNKNOW; + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); /* δ֪豸ʼɹ */ + } + } +#endif + } + } + } + + PRINT("InitRootDev Err = %02X\n", (uint16_t)s); +#ifdef FOR_ROOT_UDISK_ONLY + CHRV3DiskStatus = DISK_CONNECT; +#else + ThisUsbDev.DeviceStatus = ROOT_DEV_FAILED; +#endif + SetUsbSpeed(1); // ĬΪȫ + return (s); +} + +/********************************************************************* + * @fn InitDevOnHub + * + * @brief ʼöⲿHUBĶUSB豸 + * + * @param HubPortIndex - ָⲿHUB + * + * @return + */ +uint8_t InitDevOnHub(uint8_t HubPortIndex) +{ + uint8_t i, s, cfg, dv_cls, if_cls; + uint8_t ifc; + PRINT("Init dev @ExtHub-port_%1d ", (uint16_t)HubPortIndex); + if(HubPortIndex == 0) + { + return (ERR_USB_UNKNOWN); + } + SelectHubPort(HubPortIndex); // ѡָROOT-HUB˿ڵⲿHUBָ˿,ѡٶ + PRINT("GetDevDescr: "); + s = CtrlGetDeviceDescr(); // ȡ豸 + if(s != ERR_SUCCESS) + { + return (s); + } + DevOnHubPort[HubPortIndex - 1].DeviceVID = ((uint16_t)((PUSB_DEV_DESCR)Com_Buffer)->idVendor); //VID PIDϢ + DevOnHubPort[HubPortIndex - 1].DevicePID = ((uint16_t)((PUSB_DEV_DESCR)Com_Buffer)->idProduct); + + dv_cls = ((PUSB_DEV_DESCR)Com_Buffer)->bDeviceClass; // 豸 + cfg = (1 << 4) + HubPortIndex; // һUSBַ,ַص + s = CtrlSetUsbAddress(cfg); // USB豸ַ + if(s != ERR_SUCCESS) + { + return (s); + } + DevOnHubPort[HubPortIndex - 1].DeviceAddress = cfg; // USBַ + PRINT("GetCfgDescr: "); + s = CtrlGetConfigDescr(); // ȡ + if(s != ERR_SUCCESS) + { + return (s); + } + cfg = ((PUSB_CFG_DESCR)Com_Buffer)->bConfigurationValue; + for(i = 0; i < ((PUSB_CFG_DESCR)Com_Buffer)->wTotalLength; i++) + { + PRINT("x%02X ", (uint16_t)(Com_Buffer[i])); + } + PRINT("\n"); + /* ,ȡ˵/˵ַ/˵С,±endp_addrendp_size */ + if_cls = ((PXUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceClass; // ӿ + if(dv_cls == 0x00 && if_cls == USB_DEV_CLASS_STORAGE) // USB洢豸,ȷU + { + AnalyzeBulkEndp(Com_Buffer, HubPortIndex); + for(i = 0; i != 4; i++) + { + PRINT("%02x ", (uint16_t)DevOnHubPort[HubPortIndex - 1].GpVar[i]); + } + PRINT("\n"); + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + DevOnHubPort[HubPortIndex - 1].DeviceStatus = ROOT_DEV_SUCCESS; + DevOnHubPort[HubPortIndex - 1].DeviceType = USB_DEV_CLASS_STORAGE; + PRINT("USB-Disk Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); + } + } + else if((dv_cls == 0x00) && (if_cls == USB_DEV_CLASS_HID) && (((PXUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceSubClass <= 0x01)) // HID豸,/ + { + ifc = ((PXUSB_CFG_DESCR_LONG)Com_Buffer)->cfg_descr.bNumInterfaces; + s = AnalyzeHidIntEndp(Com_Buffer, HubPortIndex); // зHIDж϶˵ĵַ + PRINT("AnalyzeHidIntEndp %02x\n", (uint16_t)s); + if_cls = ((PXUSB_CFG_DESCR_LONG)Com_Buffer)->itf_descr.bInterfaceProtocol; + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + for(dv_cls = 0; dv_cls < ifc; dv_cls++) + { + s = CtrlGetHIDDeviceReport(dv_cls); //ȡ + if(s == ERR_SUCCESS) + { + for(i = 0; i < 64; i++) + { + PRINT("x%02X ", (uint16_t)(Com_Buffer[i])); + } + PRINT("\n"); + } + } + //豣˵ϢԱUSB + DevOnHubPort[HubPortIndex - 1].DeviceStatus = ROOT_DEV_SUCCESS; + if(if_cls == 1) + { + DevOnHubPort[HubPortIndex - 1].DeviceType = DEV_TYPE_KEYBOARD; + //һʼ,豸ָʾLED + if(ifc > 1) + { + PRINT("USB_DEV_CLASS_HID Ready\n"); + DevOnHubPort[HubPortIndex - 1].DeviceType = USB_DEV_CLASS_HID; //HID豸 + } + PRINT("USB-Keyboard Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + + return (ERR_SUCCESS); + } + else if(if_cls == 2) + { + DevOnHubPort[HubPortIndex - 1].DeviceType = DEV_TYPE_MOUSE; + //ΪԺѯ״̬,Ӧ÷,ȡж϶˿ڵĵַ,ȵϢ + if(ifc > 1) + { + PRINT("USB_DEV_CLASS_HID Ready\n"); + DevOnHubPort[HubPortIndex - 1].DeviceType = USB_DEV_CLASS_HID; //HID豸 + } + PRINT("USB-Mouse Ready\n"); + SetUsbSpeed(1); // ĬΪȫ + + return (ERR_SUCCESS); + } + s = ERR_USB_UNSUPPORT; + } + } + else if(dv_cls == USB_DEV_CLASS_HUB) // HUB豸, + { + DevOnHubPort[HubPortIndex - 1].DeviceType = USB_DEV_CLASS_HUB; + PRINT("This program don't support Level 2 HUB\n"); // Ҫֶ֧༶HUBοչ + s = HubClearPortFeature(i, HUB_PORT_ENABLE); // ֹHUB˿ + if(s != ERR_SUCCESS) + { + return (s); + } + s = ERR_USB_UNSUPPORT; + } + else //豸 + { + AnalyzeBulkEndp(Com_Buffer, HubPortIndex); //˵ + for(i = 0; i != 4; i++) + { + PRINT("%02x ", (uint16_t)DevOnHubPort[HubPortIndex - 1].GpVar[i]); + } + PRINT("\n"); + s = CtrlSetUsbConfig(cfg); // USB豸 + if(s == ERR_SUCCESS) + { + //豣˵ϢԱUSB + DevOnHubPort[HubPortIndex - 1].DeviceStatus = ROOT_DEV_SUCCESS; + DevOnHubPort[HubPortIndex - 1].DeviceType = dv_cls ? dv_cls : if_cls; + SetUsbSpeed(1); // ĬΪȫ + return (ERR_SUCCESS); //δ֪豸ʼɹ + } + } + PRINT("InitDevOnHub Err = %02X\n", (uint16_t)s); + DevOnHubPort[HubPortIndex - 1].DeviceStatus = ROOT_DEV_FAILED; + SetUsbSpeed(1); // ĬΪȫ + return (s); +} + +/********************************************************************* + * @fn EnumHubPort + * + * @brief öָROOT-HUB˿ϵⲿHUBĸ˿,˿ӻƳ¼ʼUSB豸 + * + * @param RootHubIndex - ROOT_HUB0ROOT_HUB1 + * + * @return + */ +uint8_t EnumHubPort() +{ + uint8_t i, s; + + for(i = 1; i <= ThisUsbDev.GpHUBPortNum; i++) // ѯĶ˿Ƿб仯 + { + SelectHubPort(0); // ѡָROOT-HUB˿,õǰUSBٶԼ豸USBַ + s = HubGetPortStatus(i); // ȡ˿״̬ + if(s != ERR_SUCCESS) + { + return (s); // ǸHUBϿ + } + if(((Com_Buffer[0] & (1 << (HUB_PORT_CONNECTION & 0x07))) && (Com_Buffer[2] & (1 << (HUB_C_PORT_CONNECTION & 0x07)))) || (Com_Buffer[2] == 0x10)) + { // 豸 + DevOnHubPort[i - 1].DeviceStatus = ROOT_DEV_CONNECTED; // 豸 + DevOnHubPort[i - 1].DeviceAddress = 0x00; + s = HubGetPortStatus(i); // ȡ˿״̬ + if(s != ERR_SUCCESS) + { + return (s); // ǸHUBϿ + } + DevOnHubPort[i - 1].DeviceSpeed = Com_Buffer[1] & (1 << (HUB_PORT_LOW_SPEED & 0x07)) ? 0 : 1; // ٻȫ + if(DevOnHubPort[i - 1].DeviceSpeed) + { + PRINT("Found full speed device on port %1d\n", (uint16_t)i); + } + else + { + PRINT("Found low speed device on port %1d\n", (uint16_t)i); + } + mDelaymS(200); // ȴ豸ϵȶ + s = HubSetPortFeature(i, HUB_PORT_RESET); // 豸ӵĶ˿ڸλ + if(s != ERR_SUCCESS) + { + return (s); // ǸHUBϿ + } + PRINT("Reset port and then wait in\n"); + do // ѯλ˿,ֱλ,ɺ״̬ʾ + { + mDelaymS(1); + s = HubGetPortStatus(i); + if(s != ERR_SUCCESS) + { + return (s); // ǸHUBϿ + } + } while(Com_Buffer[0] & (1 << (HUB_PORT_RESET & 0x07))); // ˿ڸλȴ + mDelaymS(100); + s = HubClearPortFeature(i, HUB_C_PORT_RESET); // λɱ־ + // s = HubSetPortFeature( i, HUB_PORT_ENABLE ); // HUB˿ + s = HubClearPortFeature(i, HUB_C_PORT_CONNECTION); // ӻƳ仯־ + if(s != ERR_SUCCESS) + { + return (s); + } + s = HubGetPortStatus(i); // ٶȡ״̬,豸Ƿ + if(s != ERR_SUCCESS) + { + return (s); + } + if((Com_Buffer[0] & (1 << (HUB_PORT_CONNECTION & 0x07))) == 0) + { + DevOnHubPort[i - 1].DeviceStatus = ROOT_DEV_DISCONNECT; // 豸 + } + s = InitDevOnHub(i); // ʼUSB豸 + if(s != ERR_SUCCESS) + { + return (s); + } + SetUsbSpeed(1); // ĬΪȫ + } + else if(Com_Buffer[2] & (1 << (HUB_C_PORT_ENABLE & 0x07))) // 豸ӳ + { + HubClearPortFeature(i, HUB_C_PORT_ENABLE); // Ӵ־ + PRINT("Device on port error\n"); + s = HubSetPortFeature(i, HUB_PORT_RESET); // 豸ӵĶ˿ڸλ + if(s != ERR_SUCCESS) + return (s); // ǸHUBϿ + do // ѯλ˿,ֱλ,ɺ״̬ʾ + { + mDelaymS(1); + s = HubGetPortStatus(i); + if(s != ERR_SUCCESS) + return (s); // ǸHUBϿ + } while(Com_Buffer[0] & (1 << (HUB_PORT_RESET & 0x07))); // ˿ڸλȴ + } + else if((Com_Buffer[0] & (1 << (HUB_PORT_CONNECTION & 0x07))) == 0) // 豸ѾϿ + { + if(DevOnHubPort[i - 1].DeviceStatus >= ROOT_DEV_CONNECTED) + { + PRINT("Device on port %1d removed\n", (uint16_t)i); + } + DevOnHubPort[i - 1].DeviceStatus = ROOT_DEV_DISCONNECT; // 豸 + if(Com_Buffer[2] & (1 << (HUB_C_PORT_CONNECTION & 0x07))) + { + HubClearPortFeature(i, HUB_C_PORT_CONNECTION); // Ƴ仯־ + } + } + } + return (ERR_SUCCESS); // زɹ +} + +/********************************************************************* + * @fn EnumAllHubPort + * + * @brief öROOT-HUB˿ⲿHUBĶUSB豸 + * + * @return + */ +uint8_t EnumAllHubPort(void) +{ + uint8_t s; + + if((ThisUsbDev.DeviceStatus >= ROOT_DEV_SUCCESS) && (ThisUsbDev.DeviceType == USB_DEV_CLASS_HUB)) // HUBöٳɹ + { + SelectHubPort(0); // ѡָROOT-HUB˿,õǰUSBٶԼ豸USBַ + s = EnumHubPort(); // öָROOT-HUB˿ϵⲿHUBĸ˿,˿ӻƳ¼ + if(s != ERR_SUCCESS) // HUBϿ + { + PRINT("EnumAllHubPort err = %02X\n", (uint16_t)s); + } + SetUsbSpeed(1); // ĬΪȫ + } + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn SearchTypeDevice + * + * @brief ROOT-HUBԼⲿHUB˿ָ͵豸ڵĶ˿ں,˿ںΪ0xFFFFδ. + * ȻҲԸUSBijVIDƷPID(Ҫ¼豸VIDPID),Լָ + * + * @param type - 豸 + * + * @return 8λΪROOT-HUB˿ں,8λΪⲿHUBĶ˿ں,8λΪ0豸ֱROOT-HUB˿ + */ +uint16_t SearchTypeDevice(uint8_t type) +{ + uint8_t RootHubIndex; //CH554ֻһUSB,RootHubIndex = 0,ֻ迴ֵĵͰλ + uint8_t HubPortIndex; + + RootHubIndex = 0; + if((ThisUsbDev.DeviceType == USB_DEV_CLASS_HUB) && (ThisUsbDev.DeviceStatus >= ROOT_DEV_SUCCESS)) // ⲿHUBöٳɹ + { + for(HubPortIndex = 1; HubPortIndex <= ThisUsbDev.GpHUBPortNum; HubPortIndex++) // ⲿHUBĸ˿ + { + if(DevOnHubPort[HubPortIndex - 1].DeviceType == type && DevOnHubPort[HubPortIndex - 1].DeviceStatus >= ROOT_DEV_SUCCESS) + { + return (((uint16_t)RootHubIndex << 8) | HubPortIndex); // ƥöٳɹ + } + } + } + if((ThisUsbDev.DeviceType == type) && (ThisUsbDev.DeviceStatus >= ROOT_DEV_SUCCESS)) + { + return ((uint16_t)RootHubIndex << 8); // ƥöٳɹ,ROOT-HUB˿ + } + + return (0xFFFF); +} + +/********************************************************************* + * @fn SETorOFFNumLock + * + * @brief NumLockĵж + * + * @param buf - Ƽֵ + * + * @return + */ +uint8_t SETorOFFNumLock(uint8_t *buf) +{ + uint8_t tmp[] = {0x21, 0x09, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00}; + uint8_t len, s; + if((buf[2] == 0x53) & ((buf[0] | buf[1] | buf[3] | buf[4] | buf[5] | buf[6] | buf[7]) == 0)) + { + for(s = 0; s != sizeof(tmp); s++) + { + ((uint8_t *)pSetupReq)[s] = tmp[s]; + } + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + } + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlGetHIDDeviceReport + * + * @brief ȡHID豸,TxBuffer + * + * @param none + * + * @return + */ +uint8_t CtrlGetHIDDeviceReport(uint8_t infc) +{ + uint8_t s; + uint8_t len; + + CopySetupReqPkg(SetupSetHIDIdle); + pSetupReq->wIndex = infc; + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + + CopySetupReqPkg(SetupGetHIDDevReport); + pSetupReq->wIndex = infc; + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn CtrlGetHubDescr + * + * @brief ȡHUB,Com_Buffer + * + * @param none + * + * @return + */ +uint8_t CtrlGetHubDescr(void) +{ + uint8_t s; + uint8_t len; + + CopySetupReqPkg(SetupGetHubDescr); + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + if(len < ((PUSB_SETUP_REQ)SetupGetHubDescr)->wLength) + { + return (ERR_USB_BUF_OVER); // ȴ + } + // if ( len < 4 ) return( ERR_USB_BUF_OVER ); // ȴ + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn HubGetPortStatus + * + * @brief ѯHUB˿״̬,Com_Buffer + * + * @param HubPortIndex - ˿ں + * + * @return + */ +uint8_t HubGetPortStatus(uint8_t HubPortIndex) +{ + uint8_t s; + uint8_t len; + + pSetupReq->bRequestType = HUB_GET_PORT_STATUS; + pSetupReq->bRequest = HUB_GET_STATUS; + pSetupReq->wValue = 0x0000; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0004; + s = HostCtrlTransfer(Com_Buffer, &len); // ִпƴ + if(s != ERR_SUCCESS) + { + return (s); + } + if(len < 4) + { + return (ERR_USB_BUF_OVER); // ȴ + } + return (ERR_SUCCESS); +} + +/********************************************************************* + * @fn HubSetPortFeature + * + * @brief HUB˿ + * + * @param HubPortIndex - ˿ں + * @param FeatureSelt - ˿ + * + * @return + */ +uint8_t HubSetPortFeature(uint8_t HubPortIndex, uint8_t FeatureSelt) +{ + pSetupReq->bRequestType = HUB_SET_PORT_FEATURE; + pSetupReq->bRequest = HUB_SET_FEATURE; + pSetupReq->wValue = 0x0000 | FeatureSelt; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0000; + return (HostCtrlTransfer(NULL, NULL)); // ִпƴ +} + +/********************************************************************* + * @fn HubClearPortFeature + * + * @brief HUB˿ + * + * @param HubPortIndex - ˿ں + * @param FeatureSelt - ˿ + * + * @return + */ +uint8_t HubClearPortFeature(uint8_t HubPortIndex, uint8_t FeatureSelt) +{ + pSetupReq->bRequestType = HUB_CLEAR_PORT_FEATURE; + pSetupReq->bRequest = HUB_CLEAR_FEATURE; + pSetupReq->wValue = 0x0000 | FeatureSelt; + pSetupReq->wIndex = 0x0000 | HubPortIndex; + pSetupReq->wLength = 0x0000; + return (HostCtrlTransfer(NULL, NULL)); // ִпƴ +} diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH572SFR.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH572SFR.h new file mode 100644 index 0000000..16d68b1 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH572SFR.h @@ -0,0 +1,1600 @@ +/* Define for CH572 */ +/* Website: http://wch.cn */ +/* Email: tech@wch.cn */ +/* Author: RDL14 2024.11.22 */ +/* V1.0 SpecialFunctionRegister */ +/* V1.01 Update breif and define of RAM ROM FLASH PLL */ +/* V1.02 Update interupt define and number for keyscan and encoder */ +/* V1.03 Update breif and define for PWM_DATA_REG */ +/* V1.04 Update name and breif for RTC PWM LSI */ + +// multi-blocks: __BASE_TYPE__, __CH572SFR_H__, __CH572USBSFR_H__, __USB_TYPE__... + +#ifndef __BASE_TYPE__ +#define __BASE_TYPE__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* ********************************************************************************************************************* */ +/* Base types & constants */ + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif +#ifndef NULL +#define NULL 0 +#endif + +#ifndef VOID +#define VOID void +#endif +#ifndef CONST +#define CONST const +#endif +#ifndef BOOL +typedef unsigned char BOOL; +#endif +#ifndef BOOLEAN +typedef unsigned char BOOLEAN; +#endif +#ifndef CHAR +typedef char CHAR; +#endif +#ifndef INT8 +typedef char INT8; +#endif +#ifndef INT16 +typedef short INT16; +#endif +#ifndef INT32 +typedef long INT32; +#endif +#ifndef UINT8 +typedef unsigned char UINT8; +#endif +#ifndef UINT16 +typedef unsigned short UINT16; +#endif +#ifndef UINT32 +typedef unsigned long UINT32; +#endif +#ifndef UINT64 +typedef unsigned long long UINT64; +#endif +#ifndef UINT8V +typedef unsigned char volatile UINT8V; +#endif +#ifndef UINT16V +typedef unsigned short volatile UINT16V; +#endif +#ifndef UINT32V +typedef unsigned long volatile UINT32V; +#endif +#ifndef UINT64V +typedef unsigned long long volatile UINT64V; +#endif + +#ifndef PVOID +typedef void *PVOID; +#endif +#ifndef PCHAR +typedef char *PCHAR; +#endif +#ifndef PCHAR +typedef const char *PCCHAR; +#endif +#ifndef PINT8 +typedef char *PINT8; +#endif +#ifndef PINT16 +typedef short *PINT16; +#endif +#ifndef PINT32 +typedef long *PINT32; +#endif +#ifndef PUINT8 +typedef unsigned char *PUINT8; +#endif +#ifndef PUINT16 +typedef unsigned short *PUINT16; +#endif +#ifndef PUINT32 +typedef unsigned long *PUINT32; +#endif +#ifndef PUINT8V +typedef volatile unsigned char *PUINT8V; +#endif +#ifndef PUINT16V +typedef volatile unsigned short *PUINT16V; +#endif +#ifndef PUINT32V +typedef volatile unsigned long *PUINT32V; +#endif +#ifndef PUINT64V +typedef volatile unsigned long long *PUINT64V; +#endif + +/* ********************************************************************************************************************* */ +/* Base macros */ + +#ifndef min +#define min(a,b) (((a) < (b)) ? (a) : (b)) +#endif +#ifndef max +#define max(a,b) (((a) > (b)) ? (a) : (b)) +#endif + +/* Calculate the byte offset of a field in a structure of type */ +#define FIELD_OFFSET(Type, Field) ((UINT16)&(((Type *)0)->Field)) + +/* Calculate the size of a field in a structure of type */ +#define FIELD_SIZE(Type, Field) (sizeof(((Type *)0)->Field)) + +/* An expression that yields the type of a field in a struct */ +#define FIELD_TYPE(Type, Field) (((Type *)0)->Field) + +/* Return the number of elements in a statically sized array */ +#define NUMBER_OF(Array) (sizeof(Array)/sizeof((Array)[0])) +#define NUMBER_OF_FIELD(Type, Field) (NUMBER_OF(FIELD_TYPE(Type, Field))) + +#ifdef __cplusplus +} +#endif + +#endif // __BASE_TYPE__ + + +#ifndef __CH572SFR_H__ +#define __CH572SFR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* ********************************************************************************************************************* */ + +// Address Space +// CODE: 00000000H - 0003BFFFH 240KB +// BOOT: 0003C000H - 0003DFFFH 8KB +// INFO: 0003E000H - 0003FFFFH 8KB +// DATA: 20000000H - 20002FFFH 12KB +// SFR: 40000000H - 4000FFFFH 64KB +// +// SFR: 40000000H - 4000FFFFH, 64KB +// SYS: +1000H - 17FFH, include base configuration, interrupt, GPIO, etc... +// FLASH: +1800H - 23FFH +// TMR: +2400H - 27FFH +// UART: +3400H - 37FFH +// SPI: +4000H - 43FFH +// I2C: +4800H - 4BFFH +// PWMx: +5000H - 53FFH +// LCD: +6000H - 63FFH +// USB: +8000H - 83FFH +// BLE: +C000H - D3FFH + +// Register Bit Attribute / Bit Access Type +// RF: Read only for Fixed value +// RO: Read Only (internal change) +// RZ: Read only with auto clear Zero +// WO: Write Only (read zero or different) +// WA: Write only under safe Accessing mode (read zero or different) +// WZ: Write only with auto clear Zero +// RW: Read / Write +// RWA: Read / Write under safe Accessing mode +// RW1: Read / Write 1 to Clear + +/* Register name rule: + R32_* for 32 bits register (UINT32,ULONG) + R16_* for 16 bits register (UINT16,USHORT) + R8_* for 8 bits register (UINT8,UCHAR) + RB_* for bit or bit mask of 8 bit register + BA_* for base address point + b* for GPIO bit mask + Others for register address offset */ + +/* ********************************************************************************************************************* */ + +/* Independent watch-dog register */ +#define R32_IWDG_KR (*((PUINT32V)0x40001000)) // WO, watch-dog key register +#define R32_IWDG_CFG (*((PUINT32V)0x40001004)) // RW, watch-dog configuration + +/* System: safe accessing register */ +#define R32_SAFE_ACCESS (*((PUINT32V)0x40001040)) // RW, safe accessing +#define R8_SAFE_ACCESS_SIG (*((PUINT8V)0x40001040)) // WO, safe accessing sign register, must write SAFE_ACCESS_SIG1 then SAFE_ACCESS_SIG2 to enter safe accessing mode +#define RB_SAFE_ACC_MODE 0x03 // RO, current safe accessing mode: 11=safe/unlocked (SAM), other=locked (00..01..10..11) +#define RB_SAFE_ACC_ACT 0x04 // RO, indicate safe accessing on +#define RB_SAFE_ACC_TIMER 0xF8 // RO, safe accessing mode closed +#define SAFE_ACCESS_SIG1 0x57 // WO: safe accessing sign value step 1 +#define SAFE_ACCESS_SIG2 0xA8 // WO: safe accessing sign value step 2 +#define SAFE_ACCESS_SIG0 0x00 // WO: safe accessing sign value for disable +#define R8_CHIP_ID (*((PUINT8V)0x40001041)) // RF, chip ID register, always is ID_CH57* +#define R8_SAFE_ACCESS_ID (*((PUINT8V)0x40001042)) // RF, safe accessing ID register, always 0x0C +#define R8_WDOG_COUNT (*((PUINT8V)0x40001043)) // RW, watch-dog count, count by clock frequency Fsys/131072 + +/* System: global configuration register */ +#define R32_GLOBAL_CONFIG (*((PUINT32V)0x40001044)) // RW, global configuration +#define R8_RESET_STATUS (*((PUINT8V)0x40001044)) // RO, reset status +#define RB_RESET_FLAG 0x07 // RO: recent reset flag +#define RST_FLAG_SW 0x00 +#define RST_FLAG_RPOR 0x01 +#define RST_FLAG_WTR 0x02 +#define RST_FLAG_MR 0x03 +//#define RST_FLAG_GPWSM 0x04 // RO, power on reset flag during sleep/shutdown: 0=no power on reset during sleep/shutdown, 1=power on reset occurred during sleep/shutdown +#define RST_FLAG_GPWSM 0x05 +// RB_RESET_FLAG: recent reset flag +// 000 - SR, software reset, by RB_SOFTWARE_RESET=1 @RB_WDOG_RST_EN=0 +// 001 - RPOR, real power on reset +// 010 - WTR, watch-dog timer-out reset +// 011 - MR, external manual reset by RST pin input low +// 101 - GRWSM, global reset by waking under shutdown mode +// 1?? - LRW, power on reset occurred during sleep +#define R8_GLOB_ROM_CFG R8_RESET_STATUS // RWA, flash ROM configuration, SAM +#define RB_ROM_CODE_WE 0xC0 // RWA, enable flash ROM code area being erase/write: X0=code writing protect, 01=enable 129~240K area program and erase, 11=enable 0~240K area program and erase +#define RB_ROM_CTRL_EN 0x20 // RWA, enable flash ROM control interface enable: 0=disable access, 1=enable access control register +#define RB_ROM_CODE_OFS 0x10 // RWA, code offset address selection in Flash ROM: 0=start address 0x000000, 1=start address 0x008000 +#define R8_GLOB_CFG_INFO (*((PUINT8V)0x40001045)) // RO, global configuration information and status +#define RB_BOOT_LOADER 0x20 // RO, indicate boot loader status: 0=application status (by software reset), 1=boot loader status +#define RB_CFG_RST_PIN 0x10 // RO, reset pin sel,1=PA7,0=PA8 +#define RB_CFG_BOOT_EN 0x08 // RO, boot-loader enable status +#define RB_CFG_RESET_EN 0x04 // RO, manual reset input enable status +#define R8_RST_WDOG_CTRL (*((PUINT8V)0x40001046)) // RWA, reset and watch-dog control, SAM +#define RB_WDOG_INT_FLAG 0x10 // RW1, watch-dog timer overflow interrupt flag, cleared by RW1 or reload watch-dog count or __SEV(Send-Event) +#define RB_WDOG_INT_EN 0x04 // RWA, watch-dog timer overflow interrupt enable: 0=disable, 1=enable +#define RB_WDOG_RST_EN 0x02 // RWA, enable watch-dog reset if watch-dog timer overflow: 0=as timer only, 1=enable reset if timer overflow +#define RB_BOOT_LOAD_MAN 0x01 // RO, manual boot loader flag, high action +#define RB_SOFTWARE_RESET 0x01 // WA/WZ, global software reset, high action, auto clear +#define R8_GLOB_RESET_KEEP (*((PUINT8V)0x40001047)) // RW, value keeper during global reset + +/* System: clock configuration register */ +#define R32_CLOCK_CONFIG (*((PUINT32V)0x40001008)) // RWA, clock configuration, SAM +#define R8_CLK_SYS_CFG (*((PUINT8V)0x40001008)) // RWA, system clock configuration, SAM +#define RB_CLK_SYS_MOD 0xC0 // RWA, system clock source mode: 00/10=divided from 32MHz, 01=divided from PLL-600MHz,11=directly from LSI +#define RB_CLK_PLL_DIV 0x1F // RWA, output clock divider from PLL or CK32M +#define R8_HFCK_PWR_CTRL (*((PUINT8V)0x4000100A)) // RWA, power configuration for system high clock, SAM +#define RB_CLK_PLL_PON 0x10 // RWA, PLL power control +#define RB_CLK_XT32M_KEEP 0x08 // RWA, RWA, disable auto closing when in halt mode +#define RB_CLK_XT32M_PON 0x04 // RWA, extern 32MHz HSE power contorl + +// FckLSI = RC_LSI +// Fpll = XT_32MHz * 18.75 = 600MHz +// Fsys = RB_CLK_SYS_MOD==3 ? FckLSI : ( ( RB_CLK_SYS_MOD[0] ? Fpll : XT_32MHz ) / RB_CLK_PLL_DIV ) +// default: Fsys = XT_32MHz / RB_CLK_PLL_DIV = 32MHz / 5 = 6.4MHz +// range: 24~42KHz, 1MHz~16MHz, 18.75MHz~100MHz + +/* System: sleep control register */ +#define R32_SLEEP_CONTROL (*((PUINT32V)0x4000100C)) // RWA, sleep control, SAM +#define R8_SLP_CLK_OFF0 (*((PUINT8V)0x4000100C)) // RWA, sleep clock off control byte 0, SAM +#define RB_SLP_KEYSCAN_WAKE 0x80 // RWA, enable key_scan waking +#define RB_SLP_CLK_UART 0x10 // RWA, set 1 close UART clock +#define RB_SLP_CLK_CMP 0x02 // RWA, set 1 close CMP clock +#define RB_SLP_CLK_TMR 0x01 // RWA, set 1 close TMR clock +#define R8_SLP_CLK_OFF1 (*((PUINT8V)0x4000100D)) // RWA, sleep clock off control byte 1, SAM +#define RB_SLP_CLK_BLE 0x80 // RWA, set 1 close BLE clock +#define RB_SLP_CLK_USB 0x10 // RWA, set 1 close USB clock +#define RB_SLP_CLK_I2C 0x08 // RWA, set 1 close I2C clock +#define RB_SLP_CLK_PWMX 0x04 // RWA, set 1 close PWMx clock +#define RB_CLK_OFF_AESCCM 0x02 // RWA, set 1 close AES_CCM clock +#define RB_SLP_CLK_SPI 0x01 // RWA, set 1 close SPI clock +#define R8_SLP_WAKE_CTRL (*((PUINT8V)0x4000100E)) // RWA, wake control, SAM +#define RB_GPIO_WAKE_MODE 0x80 // RWA, GPIO wakeup mode: RB_SLP_GPIO_EDGE_MODE=1,1=all edge , RB_SLP_GPIO_EDGE_MODE=0,1=rise edge;0=high level +#define RB_WAKE_EV_MODE 0x40 // RWA, event wakeup mode: 0=event keep valid for long time, 1=short pulse event +#define RB_SLP_BAT_WAKE 0x20 // RWA, enable BAT waking +#define RB_SLP_GPIO_WAKE 0x10 // RWA, enable GPIO waking +#define RB_SLP_RTC_WAKE 0x08 // RWA, enable RTC waking +#define RB_SLP_GPIO_EDGE_MODE 0x04 // RWA, GPIO waking edge select:1=all edge,0=pos edge +#define RB_SLP_ENC_WAKE 0x02 // RWA, enable encoder waking +#define RB_SLP_USB_WAKE 0x01 // RWA, enable USB waking +#define R8_SLP_POWER_CTRL (*((PUINT8V)0x4000100F)) // RWA, peripherals power down control, SAM +#define RB_RAM_RET_LV 0xC0 // RWA, SRAM retention voltage selection: 00=disable, 01=low power mode 1, 10=low power mode 2, 11=low power mode 3, +#define RB_SLP_CLK_RAMX 0x10 // RWA, 1=close main SRAM clock, 0=enable main SRAM clock +#define RB_WAKE_DLY_MOD 0x07 // RWA, wakeup wait time selection,FCLK + 48cycle == SCLK +// RB_WAKE_DLY_MOD select wakeup delay +// 000: short time, 3584 cycles+TSUHSE +// 001: short time, 512 cycles+TSUHSE +// 010: short time, 64 cycles+TSUHSE +// 011: short time, 1 cycles+TSUHSE +// 100: long time, 8191 cycles+TSUHSE +// 101: long time, 7168 cycles+TSUHSE +// 110: long time, 6144 cycles+TSUHSE +// 111: long time, 4096 cycles+TSUHSE + +/* System: I/O pin configuration register */ +#define R16_PIN_ALTERNATE (*((PUINT16V)0x40001018)) // RW, function pin alternate configuration low word +#define RB_PIN_DEBUG_EN 0x4000 // RW, debug interface enable +#define RB_PIN_USB_EN 0x2000 // RW, USB analog I/O enable: 0=analog I/O disable, 1=analog I/O enable +#define RB_UDP_PU_EN 0x1000 // RW, USB UDP internal pullup resistance enable: 0=enable/disable by RB_UC_DEV_PU_EN, 1=enable pullup, replace RB_UC_DEV_PU_EN under sleep mode +#define RB_PA_DI_DIS 0x0FFF // RW, 1=disable PA input , 0=enable PA input +#define R16_PIN_ALTERNATE_H (*((PUINT16V)0x4000101A)) // RW, function pin alternate configuration high word +#define RB_25M_EN 0x1000 // RW, CLK25M OUPUT enable +#define RB_SPI_CLK 0x0800 // RW, SPI CLK alternate pin enable +#define RB_I2C_PIN 0x0600 // RW, I2C alternate pin enable +#define RB_SPI_CS 0x0100 // RW, SPI CS alternate pin enable +#define RB_TMR_PIN 0x00C0 // RW, TIMER alternate pin enable +#define RB_UART_TXD 0x0038 // RW, TXD alternate pin enable +#define RB_UART_RXD 0x0007 // RW, RXD alternate pin enable +#define R16_SLP_WAKE_CFG (*((PUINT16V)0x4000101E)) // RWA, sleep clock aux register, SAM +#define RB_ACAUTO_ENABLE 0x0100 // RWA, 1=enable safe register acess auto off,1=disable safe register acess auto off +#define RB_PRECLK_CNT_SEL 0x0060 // RWA, preclk count value sel,11=2048,101024,01= 512,00=256(actual time value = cnt * Fsys) +#define RB_PRECLK_CNT_EN 0x0010 // RWA, 1=need to wait until reach to wait time to release flck when wake up +#define RB_OSCCLK_RDY_KEEP 0x0001 // RWA, 1=force OSC READY when halt sleep , 0= OSC not READY when halt sleep +#define R8_SLP_CLK_OFF2 (*((PUINT8V)0x4000101D)) // RWA, sleep clock off control byte 2, SAM +#define RB_CLK_OFF_HCLK 0x10 // RW, 1=XROM hclk off +#define RB_CLK_OFF_DEBUG 0x02 // RW, 1=2wire debug clk off +#define RB_CLK_OFF_XROM 0x01 // RW, 1=XROM 64M or 600M clk off +#define R8_LONG_RST_CFG (*((PUINT8V)0x4000101C)) // RWA, long reset config, SAM +#define RB_LONG_TIM_SEL 0x06 // RW, long reset time value selecet 11=32.768ms,10=25.000ms,01=20.000msm,00=15.000ms +#define RB_LONG_RST_EN 0x01 // RW, long reset enable + +/* System: power management register */ +#define R32_POWER_MANAG (*((PUINT32V)0x40001020)) // RWA, power management register, SAM +#define R16_POWER_PLAN (*((PUINT16V)0x40001020)) // RWA, power plan before sleep instruction, SAM +#define RB_PWR_PLAN_EN 0x8000 // RWA/WZ, power plan enable, auto clear after sleep executed +#define RB_XT_PRE_EN 0x4000 // RWA, extern 32MHz HSE early wake up enable, must be used with LSI +#define RB_PWR_MUST_0 0x2000 // RWA, must write 0 +// #define RB_XT_PRE_CFG 0x1800 // RWA, extern 32MHz HSE early wake up time configuration +#define RB_PWR_LDO5V_EN 0x0100 // RWA, internal LDO5v enable,1=power by V5,0=power by VDD33 +#define RB_PWR_SYS_EN 0x80 // RWA, power for system +#define RB_MAIN_ACT 0x40 // RWA, main power chose +#define RB_PWR_EXTEND 0x08 // RWA, power retention for USB and BLE +#define RB_PWR_CORE 0x04 // RWA, power retention for core and base peripherals +#define RB_PWR_RAM12K 0x02 // RWA, power for retention 12KB SRAM +#define RB_PWR_XROM 0x01 // RWA, power for flash ROM +#define R16_AUX_POWER_ADJ (*((PUINT16V)0x40001022)) // RWA, aux power adjust control, SAM +#define RB_CFG_IVREF 0x0F00 // RWA, I/V reference config data +#define RB_ULPLDO_ADJ 0x0007 // RWA, Ultra-Low-Power LDO voltage adjust + +/* System: battery detector register */ +#define R32_BATTERY_CTRL (*((PUINT32V)0x40001024)) // RWA, battery voltage detector, SAM +#define R8_BAT_DET_CTRL (*((PUINT8V)0x40001024)) // RWA, battery voltage detector control, SAM +#define RB_BAT_LOW_IE 0x08 // RWA, interrupt enable for battery low voltage +#define RB_BAT_MON_EN 0x02 // RWA, battery voltage monitor enable under sleep mode +#define RB_PWR_LDO_EN 0x01 // RWA, enable LDO +// request NMI interrupt if both RB_BAT_LOWER_IE and RB_BAT_LOW_IE enabled +#define R8_BAT_DET_CFG (*((PUINT8V)0x40001025)) // RWA, battery voltage detector configuration, SAM +#define RB_BAT_LOW_VTH 0x03 // RWA, select detector/monitor threshold voltage of battery voltage low +#define R8_BAT_STATUS (*((PUINT8V)0x40001026)) // RO, battery status +#define RB_BAT_STAT_LOW 0x02 // RO, battery low voltage status for detector/monitor, high action + +/* System: LSI oscillator control register */ +#define R32_OSC_LSI_CTRL (*((PUINT32V)0x4000102C)) // RWA, LSI oscillator control, SAM +#define R16_INT_LSI_TUNE (*((PUINT16V)0x4000102C)) // RWA, LSI oscillator tune control, SAM +#define RB_INT_LSI_TUNE 0x1FFF // RWA, LSI oscillator frequency tune +#define R8_LSI_CONFIG (*((PUINT8V)0x4000102F)) // RWA, LSI oscillator configure +#define RB_LSI_CLK_PIN 0x80 // RO, LSI oscillator clock pin status +#define RB_CLK_LSI_PON 0x01 // RWA, LSI oscillator power on + +/* System: real-time clock register */ +#define R32_RTC_CTRL (*((PUINT32V)0x40001030)) // RWA, RTC control, SAM +#define R8_RTC_FLAG_CTRL (*((PUINT8V)0x40001030)) // RW, RTC flag and clear control +#define RB_RTC_TRIG_FLAG 0x80 // RO, RTC trigger action flag +#define RB_RTC_TMR_FLAG 0x40 // RO, RTC timer action flag +#define RB_RTC_TRIG_CLR 0x20 // RW, set 1 to clear RTC trigger action flag, auto clear +#define RB_RTC_TMR_CLR 0x10 // RW, set 1 to clear RTC timer action flag, auto clear +#define R8_RTC_MODE_CTRL (*((PUINT8V)0x40001031)) // RWA, RTC mode control, SAM +#define RB_RTC_LOAD_HI 0x80 // RWA, set 1 to load RTC count high word R32_RTC_CNT_DAY, auto clear after loaded +#define RB_RTC_LOAD_LO 0x40 // RWA, set 1 to load RTC count low word R32_RTC_CNT_LSI, auto clear after loaded +#define RB_RTC_TRIG_EN 0x20 // RWA, RTC trigger mode enable +#define RB_RTC_TMR_EN 0x10 // RWA, RTC timer mode enable +#define RB_RTC_IGNORE_B0 0x08 // RWA, force ignore bit0 for trigger mode: 0=compare bit0, 1=ignore bit0 +#define RB_RTC_TMR_MODE 0x07 // RWA, RTC timer mode(unit=cycle): 000: 1; 001: 4096; 010: 12288; 011: 28672 ; 100:61440 ;101: 122880 ;110: 245760; 111: 491520 +#define R32_RTC_TRIG (*((PUINT32V)0x40001034)) // RWA, RTC trigger value, SAM +#define R32_RTC_CNT_LSI (*((PUINT32V)0x40001038)) // RO, RTC count based LSI +#define R16_RTC_CNT_LSI (*((PUINT16V)0x40001038)) // RO, RTC count based LSI +#define R16_RTC_CNT_DIV1 (*((PUINT16V)0x4000103A)) // RO, RTC count based 65536 frequency division period +#define R32_RTC_CNT_DIV2 (*((PUINT32V)0x4000103C)) // RO, RTC count based 2764800000 frequency division period + +/*System: Miscellaneous Control register */ +#define R32_MISC_CTRL (*((PUINT32V)0x40001048)) // RWA, miscellaneous control register +#define R8_PLL_CONFIG (*((PUINT8V)0x4000104B)) // RWA, PLL configuration control, SAM +#define RB_PLL_CFG_DAT 0x7F // RWA, PLL configuration control, SAM + +/* System: 32MHz oscillator control register */ +#define R8_XT32M_TUNE (*((PUINT8V)0x4000104E)) // RWA, external 32MHz oscillator tune control, SAM +#define RB_XT32M_C_LOAD 0x70 // RWA, external 32MHz oscillator load capacitor tune: Cap = RB_XT32M_C_LOAD * 2 + 10pF +#define RB_XT32M_I_BIAS 0x03 // RWA, external 32MHz oscillator bias current tune: 00=75% current, 01=standard current, 10=125% current, 11=150% current + +/* System: oscillator frequency calibration register */ +#define R32_OSC_CALIB (*((PUINT32V)0x40001050)) // RWA, oscillator frequency calibration, SAM +#define R16_OSC_CAL_CNT (*((PUINT16V)0x40001050)) // RO, system clock count value for LSI multi-cycles +#define RB_OSC_CAL_IF 0x8000 // RW1, interrupt flag for oscillator capture end, set 1 to clear +#define RB_OSC_CAL_OV_CLR 0x4000 // RW1, indicate R8_OSC_CAL_OV_CNT not zero, set 1 to clear R8_OSC_CAL_OV_CNT +#define RB_OSC_CAL_CNT 0x3FFF // RO, system clock count value for LSI multi-cycles +#define R8_OSC_CAL_OV_CNT (*((PUINT8V)0x40001052)) // RO, oscillator frequency calibration overflow times +#define R8_OSC_CAL_CTRL (*((PUINT8V)0x40001053)) // RWA, oscillator frequency calibration control, SAM +#define RB_CNT_CLR 0x80 // RWA, reset RB_OSC_CAL_CNT +#define RB_OSC_CNT_END 0x40 // RWA, select oscillator capture end mode: 0=normal, 1=append 2 cycles +#define RB_OSC_CNT_EN 0x20 // RWA, calibration counter enable +#define RB_OSC_CAL_IE 0x10 // RWA, interrupt enable for oscillator capture end +#define RB_OSC_CNT_HALT 0x08 // RO, calibration counter halt status: 0=counting, 1=halt for reading count value +#define RB_OSC_CNT_TOTAL 0x07 // RWA, total cycles mode for oscillator capture +// RB_OSC_CNT_TOTAL: select total cycles for oscillator capture +// 000: 1 +// 001: 2 +// 010: 4 +// 011: 32 +// 100: 64 +// 101: 128 +// 110: 1024 +// 111: 2047 + +/*system: CMP*/ +#define R32_CMP_CTRL (*((PUINT32V)0x40001054)) // RW, configuration for comparator, +#define R8_CMP_CTRL_0 (*((PUINT8V)0x40001054)) // RW, configuration for comparator0, +#define RB_CMP_NREF_LEVEL 0xF0 // RW, comparator negative end point Vref sel:1111=800mv,0000=50mv +#define RB_CMP_SW 0x0C // RW, [0]comparator -channel input sel:1=PA7,0=PA3 ; [1]comparator +channel input sel: 1=COMP_VERF,0=PA2 +#define RB_CMP_CAP 0x02 // RW, connect COMP_output to be TIM_cap1_input +#define RB_CMP_EN 0x01 // RW, enable comparators +#define R8_CMP_CTRL_1 (*((PUINT8V)0x40001055)) // RW, configuration for comparator1, +#define RB_CMP_OUT_SEL 0x0C // RW, comparator output sel:11=rise edge,10=fall edge,01=low,00=high +#define RB_CMP_IE 0x01 // RW, comparator interupt enable +#define R8_CMP_CTRL_2 (*((PUINT8V)0x40001056)) // RW, configuration for comparator2, +#define RB_CMP_IF 0x01 // RW1Z, comparator interupt flag +#define R8_CMP_CTRL_3 (*((PUINT8V)0x40001057)) // RW, configuration for comparator3, +#define RB_CMP_REAL_SIG 0x01 // RO, comparator current real siginal +#define RB_APR_OUT_CMP 0x02 // RO, comparator current output siginal +#define R32_SAFE_ACCESS_SIG2 (*((PUINT32V)0x40001058)) // RO, safe accessing sign register2, +#define RB_FUN_MODE 0x07000000 // RO, function enable +#define RB_FLASH_HALTED 0x00800000 // RO, 2wire flash prohibited operation flag,1=prohibit operation; 0=allow operation +#define RB_MANU_CFG_LOCK 0x00400000 // RO, vendor configuration word lock flag,1=locked; 0= not locked +#define RB_RD_PROTECT 0x00200000 // RO, flash read protecet flag,1=enable read project; 0=disable read project +#define RB_SAFE_AC_DIS 0x00100000 // RO, safe register auto disable flag,1=disable safe access auto off; 0=enable safe access auto off + + +/* System: Flash ROM control register */ +#define R32_FLASH_DATA (*((PUINT32V)0x40001800)) // RO/WO, flash ROM data +#define R32_FLASH_CONTROL (*((PUINT32V)0x40001804)) // RWA, flash ROM control,byte1 and byte3 need RWA +#define R8_FLASH_DATA (*((PUINT8V)0x40001804)) // RO/WO, flash ROM data buffer +#define R8_FLASH_SCK (*((PUINT8V)0x40001805)) // RW, flash ROM sck time config +#define R8_FLASH_CTRL (*((PUINT8V)0x40001806)) // RW, flash ROM access control +#define R8_FLASH_CFG (*((PUINT8V)0x40001807)) // RWA, flash ROM access config, SAM + +/* System: GPIO interrupt control register */ +#define R32_GPIO_INT_EN (*((PUINT32V)0x40001090)) // RW, GPIO interrupt enable +#define R16_PA_INT_EN (*((PUINT16V)0x40001090)) // RW, GPIO PA interrupt enable +#define R32_GPIO_INT_MODE (*((PUINT32V)0x40001094)) // RW, GPIO interrupt mode: 0=level action, 1=edge action +#define R16_PA_INT_MODE (*((PUINT16V)0x40001094)) // RW, GPIO PA interrupt mode: 0=level action, 1=edge action +#define R16_PA_INT_EDGE_TYPE (*((PUINT16V)0x40001096)) // RW, GPIO interrupt edge mode: 0=according to por, 1= don't according to por +#define R32_GPIO_INT_IF (*((PUINT32V)0x4000109C)) // RW1, GPIO interrupt flag +#define R16_PA_INT_IF (*((PUINT16V)0x4000109C)) // RW1, GPIO PA interrupt flag + +/* GPIO PA register */ +#define R32_PA_DIR (*((PUINT32V)0x400010A0)) // RW, GPIO PA I/O direction: 0=in, 1=out +#define R8_PA_DIR_0 (*((PUINT8V)0x400010A0)) // RW, GPIO PA I/O direction byte 0 +#define R8_PA_DIR_1 (*((PUINT8V)0x400010A1)) // RW, GPIO PA I/O direction byte 1 +#define R32_PA_PIN (*((PUINT32V)0x400010A4)) // RO, GPIO PA input +#define R8_PA_PIN_0 (*((PUINT8V)0x400010A4)) // RO, GPIO PA input byte 0 +#define R8_PA_PIN_1 (*((PUINT8V)0x400010A5)) // RO, GPIO PA input byte 1 +#define R32_PA_OUT (*((PUINT32V)0x400010A8)) // RW, GPIO PA output +#define R8_PA_OUT_0 (*((PUINT8V)0x400010A8)) // RW, GPIO PA output byte 0 +#define R8_PA_OUT_1 (*((PUINT8V)0x400010A9)) // RW, GPIO PA output byte 1 +#define R32_PA_CLR (*((PUINT32V)0x400010AC)) // WZ, GPIO PA clear output: 0=keep, 1=clear +#define R8_PA_CLR_0 (*((PUINT8V)0x400010AC)) // WZ, GPIO PA clear output byte 0 +#define R8_PA_CLR_1 (*((PUINT8V)0x400010AD)) // WZ, GPIO PA clear output byte 1 +#define R32_PA_PU (*((PUINT32V)0x400010B0)) // RW, GPIO PA pullup resistance enable +#define R8_PA_PU_0 (*((PUINT8V)0x400010B0)) // RW, GPIO PA pullup resistance enable byte 0 +#define R8_PA_PU_1 (*((PUINT8V)0x400010B1)) // RW, GPIO PA pullup resistance enable byte 1 +#define R32_PA_PD_DRV (*((PUINT32V)0x400010B4)) // RW, PA pulldown for input or PA driving capability for output +#define R8_PA_PD_DRV_0 (*((PUINT8V)0x400010B4)) // RW, PA pulldown for input or PA driving capability for output byte 0 +#define R8_PA_PD_DRV_1 (*((PUINT8V)0x400010B5)) // RW, PA pulldown for input or PA driving capability for output byte 1 +#define R32_PA_SET (*((PUINT32V)0x400010B8)) // WZ, PA set high for output ,1=set output high,0=IDLE +/* KEYSCAN register */ +#define R16_KEY_SCAN_CTRL (*((PUINT16V)0x40001064))// KEY SCAN control register +#define RB_CLR_WAKEUP_EN 0x4000 // RW, claer wake_up siginal after chip wakeing up, 1=enable 0=disable +#define RB_SCAN_1END_WAKE_EN 0x2000 // RW, wake up chip after 1 round of key scanning, 1=enable 0=disable +#define RB_PIN_SCAN_EN 0x1F00 // RW, select which pin could be scaned, 1=enable 0=disable +#define RB_SCAN_CLK_DIV 0x00F0 // RW, divider value of scanning clock +#define RB_SCAN_CNT_END 0x000E // RW, set the times of the same key_scan value +#define RB_SCAN_START_EN 0x0001 // RW, start key scan enable,1=enable 0=disable +#define R8_KEY_SCAN_INT_EN (*((PUINT8V)0x40001066)) // KEY SCAN interupt enable register +#define RB_SCAN_1END_IE 0x02 // RW, key scan 1 round end interupt enable +#define RB_KEY_PRESSED_IE 0x01 // RW, detect key pressed interupt enable +#define R8_KEY_SCAN_INT_FLAG (*((PUINT8V)0x40001067))// KEY SCAN interupt flag register +#define RB_SCAN_1END_IF 0x02 // RW1, key scan 1 round end flag enable +#define RB_KEY_PRESSED_IF 0x01 // RW1, detect key pressed flag enable +#define R32_KEY_SCAN_NUMB (*((PUINT32V)0x40001068))// SCAN_KEY number address now register +#define RB_KEY_SCAN_CNT 0x700000 // current SCAN_KEY times +#define RB_KEY_SCAN_NUMB 0x0FFFFF // SCAN_KEY number address now + +/* GPIO register address offset and bit define */ +#define BA_PA ((PUINT8V)0x400010A0) // point GPIO PA base address +#define GPIO_DIR 0x00 +#define GPIO_DIR_0 0x00 +#define GPIO_DIR_1 0x01 +#define GPIO_PIN 0x04 +#define GPIO_PIN_0 0x04 +#define GPIO_PIN_1 0x05 +#define GPIO_OUT 0x08 +#define GPIO_OUT_0 0x08 +#define GPIO_OUT_1 0x09 +#define GPIO_CLR 0x0C +#define GPIO_CLR_0 0x0C +#define GPIO_CLR_1 0x0D +#define GPIO_PU 0x10 +#define GPIO_PU_0 0x10 +#define GPIO_PU_1 0x11 +#define GPIO_PD_DRV 0x14 +#define GPIO_PD_DRV_0 0x14 +#define GPIO_PD_DRV_1 0x15 + +/* GPIO alias name */ +#define bTIO (1<<0) //PA0 +#define bTXD_3 (1<<0) //PA0 +#define bRXD_2 (1<<0) //PA0 +#define bSCL_1 (1<<0) //PA0 +#define bUDM (1<<0) //PA0 + +#define bTCK (1<<1) //PA1 +#define bTXD_2 (1<<1) //PA1 +#define bRXD_3 (1<<1) //PA1 +#define bSDA_1 (1<<1) //PA1 +#define bUDP (1<<1) //PA1 + +#define bTXD_1 (1<<2) //PA2 +#define bRXD_0 (1<<2) //PA2 +#define bSDA_2 (1<<2) //PA2 +#define bPWM2 (1<<2) //PA2 +#define bPWM0_1 (1<<2) //PA2 +#define bCAP1_1 (1<<2) //PA2 +#define bCAP2_0 (1<<2) //PA2 +#define bSCS_ (1<<2) //PA2 +#define bKEY0 (1<<2) //PA2 +#define bCMP0 (1<<2) //PA2 + +#define bTXD_0 (1<<3) //PA3 +#define bRXD_1 (1<<3) //PA3 +#define bSCL_2 (1<<3) //PA3 +#define bPWM3 (1<<3) //PA3 +#define bSCK_ (1<<3) //PA3 +#define bKEY1 (1<<3) //PA3 +#define bCMP1 (1<<3) //PA3 + +#define bPWM4 (1<<4) //PA4 +#define bPWM0_2 (1<<4) //PA4 +#define bSCS (1<<4) //PA4 +#define bCAP1_2 (1<<4) //PA4 +#define bCAP2_3 (1<<4) //PA4 +#define bXM25MO (1<<4) //PA4 + +#define bSCL_3 (1<<5) //PA5 +#define bSCK (1<<5) //PA5 + +#define bSDA_6 (1<<6) //PA6 +#define bMISO (1<<6) //PA6 +#define bRXD_4 (1<<6) //PA6 + +#define bTXD_4 (1<<7) //PA7 +#define bMOSI (1<<7) //PA7 +#define bPWM1 (1<<7) //PA7 +#define bPWM0_0 (1<<7) //PA7 +#define bRST_ (1<<7) //PA7 +#define bCAP1_0 (1<<7) //PA7 +#define bCAP2_1 (1<<7) //PA7 +#define bCMP2 (1<<7) //PA7 + +#define bRST (1<<8) //PA8 +#define bTXD_5 (1<<8) //PA8 +#define bSCL_0 (1<<8) //PA8 +#define bPWM5 (1<<8) //PA8 +#define bKEY2 (1<<8) //PA8 + +#define bSDA_0 (1<<9) //PA9 +#define bPWM0_3 (1<<9) //PA9 +#define bRXD_5 (1<<9) //PA9 +#define bCAP1_3 (1<<9) //PA9 +#define bCAP2_2 (1<<9) //PA9 + +#define bTXD_7 (1<<10) //PA10 +#define bRXD_6 (1<<10) //PA10 +#define bKEY3 (1<<10) //PA10 + +#define bTXD_6 (1<<11) //PA11 +#define bRXD_7 (1<<11) //PA11 +#define bKEY4 (1<<11) //PA11 + +/* Timer1 register */ +#define R32_TMR_CONTROL (*((PUINT32V)0x40002400)) // RW, TMR control +#define R8_TMR_CTRL_MOD (*((PUINT8V)0x40002400)) // RW, TMR mode control +#define R8_TMR_CTRL_DMA (*((PUINT8V)0x40002401)) // RW, TMR DMA control +#define R8_TMR_INTER_EN (*((PUINT8V)0x40002402)) // RW, TMR interrupt enable +// #define R32_TMR_STATUS (*((PUINT32V)0x40002404)) // RW, TMR status +#define R8_TMR_INT_FLAG (*((PUINT8V)0x40002406)) // RW1, TMR interrupt flag +#define R8_TMR_FIFO_COUNT (*((PUINT8V)0x40002407)) // RO, TMR FIFO count status +#define R32_TMR_COUNT (*((PUINT32V)0x40002408)) // RO, TMR current count +#define R16_TMR_COUNT (*((PUINT16V)0x40002408)) // RO, TMR current count +#define R8_TMR_COUNT (*((PUINT8V)0x40002408)) // RO, TMR current count +#define R32_TMR_CNT_END (*((PUINT32V)0x4000240C)) // RW, TMR end count value, only low 26 bit +#define R32_TMR_FIFO (*((PUINT32V)0x40002410)) // RO/WO, TMR FIFO register, only low 26 bit +#define R16_TMR_FIFO (*((PUINT16V)0x40002410)) // RO/WO, TMR FIFO register +#define R8_TMR_FIFO (*((PUINT8V)0x40002410)) // RO/WO, TMR FIFO register +#define R32_TMR_DMA_NOW (*((PUINT32V)0x40002414)) // RW, TMR DMA current address +#define R16_TMR_DMA_NOW (*((PUINT16V)0x40002414)) // RW, TMR DMA current address +#define R32_TMR_DMA_BEG (*((PUINT32V)0x40002418)) // RW, TMR DMA begin address +#define R16_TMR_DMA_BEG (*((PUINT16V)0x40002418)) // RW, TMR DMA begin address +#define R32_TMR_DMA_END (*((PUINT32V)0x4000241C)) // RW, TMR DMA end address +#define R16_TMR_DMA_END (*((PUINT16V)0x4000241C)) // RW, TMR DMA end address +/* ENCODER register */ +#define R32_ENC_REG_CTRL (*((PUINT32V)0x40002420)) +#define R8_ENC_REG_CTRL (*((PUINT8V)0x40002420)) // RW, ENCODER control register +// #define RB_WAKEUP_CLR_EN 0x10 // RW, clear wake_up siginal after chip wake up enable +#define RB_ENC_DIR 0x20 // RO, encoder director,0=forward,1=backward +#define RB_RD_CLR_EN 0x08 // RW, clear encoder count value after R32_ENC_REG_CCNT be read +#define RB_SMS_MODE 0x06 // RW, SMS mode value,10=T1EDGE,01=T2EDGE,11=T12EDGE +#define RB_START_ENC_EN 0x01 // RW, start encode enable +#define R8_ENC_INTER_EN (*((PUINT8V)0x40002421)) // RW, ENCODER interupt enable register +#define RB_IE_DIR_DEC 0x02 // RW, encode decrease interupt enable +#define RB_IE_DIR_INC 0x01 // RW, encode increase interupt enable +#define R8_ENC_INT_FLAG (*((PUINT8V)0x40002422)) // RW, ENCODER interupt flag register +#define RB_IF_DIR_DEC 0x02 // RWA, encode decrease interupt flag +#define RB_IF_DIR_INC 0x01 // RWA, encode increase interupt flag +#define R32_ENC_REG_CEND (*((PUINT32V)0x40002424)) +#define R32_ENC_REG_CCNT (*((PUINT32V)0x40002428)) + +/* Timer register address offset and bit define */ +#define TMR_FIFO_SIZE 8 // timer FIFO size (depth) +#define BA_TMR ((PUINT8V)0x40002400) // point TMR base address +#define TMR_CTRL_MOD 0 +#define RB_TMR_PWM_REPEAT 0xC0 // RW, timer PWM repeat mode: 00=1, 01=4, 10=8, 11-16 +#define RB_TMR_CAP_EDGE 0xC0 // RW, timer capture edge mode: 00=disable, 01=edge change, 10=fall to fall, 11-rise to rise +#define RB_TMR_OUT_POLAR 0x10 // RW, timer PWM output polarity: 0=default low and high action, 1=default high and low action +#define RB_TMR_CAP_COUNT 0x10 // RW, count sub-mode if RB_TMR_MODE_IN=1: 0=capture, 1=count +#define RB_TMR_OUT_EN 0x08 // RW, timer output enable +#define RB_TMR_COUNT_EN 0x04 // RW, timer count enable +#define RB_TMR_ALL_CLEAR 0x02 // RW, force clear timer FIFO and count +#define RB_TMR_MODE_IN 0x01 // RW, timer in mode: 0=timer/PWM, 1=capture/count +#define TMR_CTRL_DMA 1 +#define RB_TMR_DMA_LOOP 0x04 // RW, timer1/2 DMA address loop enable +#define RB_TMR_DMA_ENABLE 0x01 // RW, timer1/2 DMA enable +#define TMR_INTER_EN 2 +#define RB_TMR_IE_FIFO_OV 0x10 // RW, enable interrupt for timer FIFO overflow +#define RB_TMR_IE_DMA_END 0x08 // RW, enable interrupt for timer1/2 DMA completion +#define RB_TMR_IE_FIFO_HF 0x04 // RW, enable interrupt for timer FIFO half (capture fifo >=4 or PWM fifo <=3) +#define RB_TMR_IE_DATA_ACT 0x02 // RW, enable interrupt for timer capture input action or PWM trigger +#define RB_TMR_IE_CYC_END 0x01 // RW, enable interrupt for timer capture count timeout or PWM cycle end +#define TMR_INT_FLAG 6 +#define RB_TMR_IF_FIFO_OV 0x10 // RW1, interrupt flag for timer FIFO overflow +#define RB_TMR_IF_DMA_END 0x08 // RW1, interrupt flag for timer1/2 DMA completion +#define RB_TMR_IF_FIFO_HF 0x04 // RW1, interrupt flag for timer FIFO half (capture fifo >=4 or PWM fifo <=3) +#define RB_TMR_IF_DATA_ACT 0x02 // RW1, interrupt flag for timer capture input action or PWM trigger +#define RB_TMR_IF_CYC_END 0x01 // RW1, interrupt flag for timer capture count timeout or PWM cycle end +#define TMR_FIFO_COUNT 7 +#define TMR_DMA_END 0x1C +#define TMR_DMA_BEG 0x18 +#define TMR_DMA_NOW 0x14 +#define TMR_FIFO 0x10 +#define TMR_CNT_END 0x0C +#define TMR_COUNT 0x08 + +/* UART register */ +#define R32_UART_CTRL (*((PUINT32V)0x40003400)) // RW, UART control +#define R8_UART_MCR (*((PUINT8V)0x40003400)) // RW, UART modem control +#define R8_UART_IER (*((PUINT8V)0x40003401)) // RW, UART interrupt enable +#define R8_UART_FCR (*((PUINT8V)0x40003402)) // RW, UART FIFO control +#define R8_UART_LCR (*((PUINT8V)0x40003403)) // RW, UART line control +#define R8_UART_IIR (*((PUINT8V)0x40003404)) // RO, UART interrupt identification +#define R8_UART_LSR (*((PUINT8V)0x40003405)) // RO, UART line status +#define R8_UART_RBR (*((PUINT8V)0x40003408)) // RO, UART receiver buffer, receiving byte +#define R8_UART_THR (*((PUINT8V)0x40003408)) // WO, UART transmitter holding, transmittal byte +#define R8_UART_RFC (*((PUINT8V)0x4000340A)) // RO, UART receiver FIFO count +#define R8_UART_TFC (*((PUINT8V)0x4000340B)) // RO, UART transmitter FIFO count +#define R16_UART_DL (*((PUINT16V)0x4000340C)) // RW, UART divisor latch +#define R8_UART_DLL (*((PUINT8V)0x4000340C)) // RW, UART divisor latch LSB byte +#define R8_UART_DLM (*((PUINT8V)0x4000340D)) // RW, UART divisor latch MSB byte +#define R8_UART_DIV (*((PUINT8V)0x4000340E)) // RW, UART pre-divisor latch byte, only low 7 bit, from 1 to 0/128 + +/* UART register address offset and bit define */ +#define UART_FIFO_SIZE 8 // UART FIFO size (depth) +#define UART_RECV_RDY_SZ 7 // the max FIFO trigger level for UART receiver data available +#define BA_UART ((PUINT8V)0x40003400) // point UART base address +#define UART_MCR 0 +#define RB_MCR_OUT2 0x08 // RW, UART control OUT2 +#define RB_MCR_INT_OE 0x08 // RW, UART interrupt output enable +#define UART_IER 1 +#define RB_IER_TXD_EN 0x40 // RW, UART TXD pin enable +#define RB_IER_LINE_STAT 0x04 // RW, UART interrupt enable for receiver line status +#define RB_IER_THR_EMPTY 0x02 // RW, UART interrupt enable for THR empty +#define RB_IER_RECV_RDY 0x01 // RW, UART interrupt enable for receiver data ready +#define UART_FCR 2 +#define RB_FCR_FIFO_TRIG 0xC0 // RW, UART receiver FIFO trigger level: 00-1byte, 01-2bytes, 10-4bytes, 11-7bytes +#define RB_FCR_FIFO_EN 0x01 // RW, UART FIFO enable +#define UART_LCR 3 +#define RB_LCR_DLAB 0x80 // RW, UART reserved bit +#define RB_LCR_GP_BIT 0x80 // RW, UART general purpose bit +#define RB_LCR_BREAK_EN 0x40 // RW, UART break control enable +#define RB_LCR_PAR_MOD 0x30 // RW, UART parity mode: 00-odd, 01-even, 10-mark, 11-space +#define RB_LCR_PAR_EN 0x08 // RW, UART parity enable +#define RB_LCR_STOP_BIT 0x04 // RW, UART stop bit length: 0-1bit, 1-2bit +#define RB_LCR_WORD_SZ 0x03 // RW, UART word bit length: 00-5bit, 01-6bit, 10-7bit, 11-8bit +#define UART_IIR 4 +#define RB_IIR_FIFO_ID 0xC0 // RO, UART FIFO enabled flag +#define RB_IIR_INT_MASK 0x0F // RO, UART interrupt flag bit mask +#define RB_IIR_NO_INT 0x01 // RO, UART no interrupt flag: 0=interrupt action, 1=no interrupt +#define UART_LSR 5 +#define RB_LSR_ERR_RX_FIFO 0x80 // RO, indicate error in UART receiver fifo +#define RB_LSR_TX_ALL_EMP 0x40 // RO, UART transmitter all empty status +#define RB_LSR_TX_FIFO_EMP 0x20 // RO, UART transmitter fifo empty status +#define RB_LSR_BREAK_ERR 0x10 // RZ, UART receiver break error +#define RB_LSR_FRAME_ERR 0x08 // RZ, UART receiver frame error +#define RB_LSR_PAR_ERR 0x04 // RZ, UART receiver parity error +#define RB_LSR_OVER_ERR 0x02 // RZ, UART receiver overrun error +#define RB_LSR_DATA_RDY 0x01 // RO, UART receiver fifo data ready status +#define UART_MSR 6 +#define UART_RBR 8 +#define UART_THR 8 +#define UART_RFC 0x0A +#define UART_TFC 0x0B +#define UART_DLL 0x0C +// #define UART_DLM 0x0D +#define UART_DIV 0x0E +#define UART_ADR 0x0F + +/* UART interrupt identification values for IIR bits 3:0 */ +#define UART_II_RECV_TOUT 0x0C // RO, UART interrupt by receiver fifo timeout +#define UART_II_LINE_STAT 0x06 // RO, UART interrupt by receiver line status +#define UART_II_RECV_RDY 0x04 // RO, UART interrupt by receiver data available +#define UART_II_THR_EMPTY 0x02 // RO, UART interrupt by THR empty +#define UART_II_NO_INTER 0x01 // RO, no UART interrupt is pending + +/* SPI register */ +#define R32_SPI_CONTROL (*((PUINT32V)0x40004000)) // RW, SPI control +#define R8_SPI_CTRL_MOD (*((PUINT8V)0x40004000)) // RW, SPI mode control +#define R8_SPI_CTRL_CFG (*((PUINT8V)0x40004001)) // RW, SPI configuration control +#define R8_SPI_INTER_EN (*((PUINT8V)0x40004002)) // RW, SPI interrupt enable +#define R8_SPI_CLOCK_DIV (*((PUINT8V)0x40004003)) // RW, SPI master clock divisor +#define R8_SPI_SLAVE_PRE (*((PUINT8V)0x40004003)) // RW, SPI slave preset value +#define R32_SPI_STATUS (*((PUINT32V)0x40004004)) // RW, SPI status +#define R8_SPI_BUFFER (*((PUINT8V)0x40004004)) // RO, SPI data buffer +#define R8_SPI_RUN_FLAG (*((PUINT8V)0x40004005)) // RO, SPI work flag +#define R8_SPI_INT_FLAG (*((PUINT8V)0x40004006)) // RW1, SPI interrupt flag +#define R8_SPI_FIFO_COUNT (*((PUINT8V)0x40004007)) // RO, SPI FIFO count status +#define R32_SPI_INTER_CFG1 (*((PUINT32V)0x40004008)) // RO, SPI interrupt configuration1 +#define R16_SPI_TOTAL_CNT (*((PUINT16V)0x4000400C)) // RW, SPI total byte count, only low 12 bit +#define R32_SPI_FIFO (*((PUINT32V)0x40004010)) // RW, SPI FIFO register +#define R8_SPI_FIFO (*((PUINT8V)0x40004010)) // RO/WO, SPI FIFO register +#define R8_SPI_FIFO_COUNT1 (*((PUINT8V)0x40004013)) // RO, SPI FIFO count status +#define R16_SPI_DMA_NOW (*((PUINT16V)0x40004014)) // RW, SPI DMA current address +#define R16_SPI_DMA_BEG (*((PUINT16V)0x40004018)) // RW, SPI DMA begin address +#define R16_SPI_DMA_END (*((PUINT16V)0x4000401C)) // RW, SPI DMA end address + +/* SPI register address offset and bit define */ +#define SPI_FIFO_SIZE 8 // SPI FIFO size (depth) +#define BA_SPI ((PUINT8V)0x40004000) // point SPI base address +#define SPI_CTRL_MOD 0 +#define RB_SPI_MISO_OE 0x80 // RW, SPI MISO output enable +#define RB_SPI_MOSI_OE 0x40 // RW, SPI MOSI output enable +#define RB_SPI_SCK_OE 0x20 // RW, SPI SCK output enable +#define RB_SPI_FIFO_DIR 0x10 // RW, SPI FIFO direction: 0=out(write @master mode), 1=in(read @master mode) +#define RB_SPI_SLV_CMD_MOD 0x08 // RW, SPI slave command mode: 0=byte stream, 1=first byte command +#define RB_SPI_MST_SCK_MOD 0x08 // RW, SPI master clock mode: 0=mode 0, 1=mode 3 +#define RB_SPI_2WIRE_MOD 0x04 // RW, SPI enable 2 wire mode for slave: 0=3wire(SCK0,MOSI,MISO), 1=2wire(SCK0,MISO=MXSX) +#define RB_SPI_ALL_CLEAR 0x02 // RW, force clear SPI FIFO and count +#define RB_SPI_MODE_SLAVE 0x01 // RW, SPI slave mode: 0=master/host, 1=slave/device +#define SPI_CTRL_CFG 1 +#define RB_SPI_MST_DLY_EN 0x40 // RW, SPI master input delay enable +#define RB_SPI_BIT_ORDER 0x20 // RW, SPI bit data order: 0=MSB first, 1=LSB first +#define RB_SPI_AUTO_IF 0x10 // RW, enable buffer/FIFO accessing to auto clear RB_SPI_IF_BYTE_END interrupt flag +#define RB_SPI_DMA_LOOP 0x04 // RW, SPI DMA address loop enable +#define RB_MST_CLK_SEL 0x02 // RW, hclk polarity reversal,1= polarity reversal,0=IDLE +#define RB_SPI_DMA_ENABLE 0x01 // RW, SPI DMA enable +#define SPI_INTER_EN 2 +#define RB_SPI_IE_FST_BYTE 0x80 // RW, enable interrupt for SPI slave mode first byte received +#define RB_SPI_IE_FIFO_OV 0x10 // RW, enable interrupt for SPI FIFO overflow +#define RB_SPI_IE_DMA_END 0x08 // RW, enable interrupt for SPI DMA completion +#define RB_SPI_IE_FIFO_HF 0x04 // RW, enable interrupt for SPI FIFO half +#define RB_SPI_IE_BYTE_END 0x02 // RW, enable interrupt for SPI byte exchanged +#define RB_SPI_IE_CNT_END 0x01 // RW, enable interrupt for SPI total byte count end +#define SPI_CLOCK_DIV 3 +#define SPI_SLAVE_PRESET 3 +#define SPI_BUFFER 4 +#define SPI_RUN_FLAG 5 +#define RB_SPI_SLV_SELECT 0x80 // RO, SPI slave selection status +#define RB_SPI_SLV_CS_LOAD 0x40 // RO, SPI slave chip-select loading status +#define RB_SPI_FIFO_READY 0x20 // RO, SPI FIFO ready status +#define RB_SPI_SLV_CMD_ACT 0x10 // RO, SPI slave first byte / command flag +#define SPI_INT_FLAG 6 +#define RB_SPI_IF_FST_BYTE 0x80 // RW1, interrupt flag for SPI slave mode first byte received +#define RB_SPI_FREE 0x40 // RO, current SPI free status +#define RB_SPI_IF_FIFO_OV 0x10 // RW1, interrupt flag for SPI FIFO overflow +#define RB_SPI_IF_DMA_END 0x08 // RW1, interrupt flag for SPI DMA completion +#define RB_SPI_IF_FIFO_HF 0x04 // RW1, interrupt flag for SPI FIFO half (RB_SPI_FIFO_DIR ? >=4bytes : <4bytes) +#define RB_SPI_IF_BYTE_END 0x02 // RW1, interrupt flag for SPI byte exchanged +#define RB_SPI_IF_CNT_END 0x01 // RW1, interrupt flag for SPI total byte count end +#define SPI_FIFO_COUNT 7 +#define SPI_INTER_CFG1 8 +#define RB_SPI_IF_FIFO_FULL 0x020000 // RW, fifo full interupt flag +#define RB_SPI_IF_FIFO_EMPTY 0x010000 // RW, fifo empty interupt flag +#define RB_SPI_IE_FIFO_FULL 0x0200 // RW, fifo full interupt enable +#define RB_SPI_IE_FIFO_EMPTY 0x0100 // RW, fifo empty interupt enable +#define RB_SPI_INT_TYPE 0x001F // RW, interupt trig mode select,1=edge,0=level +#define SPI_TOTAL_CNT 0x0C +#define SPI_FIFO 0x10 +#define SPI_DMA_NOW 0x14 +#define SPI_DMA_BEG 0x18 + +/* I2C register */ +#define R16_I2C_CTRL1 (*((PUINT16V)0x40004800)) // RW, I2C control 1 +#define R16_I2C_CTRL2 (*((PUINT16V)0x40004804)) // RW, I2C control 2 +#define R16_I2C_OADDR1 (*((PUINT16V)0x40004808)) // RW, I2C own address register 1 +#define R16_I2C_OADDR2 (*((PUINT16V)0x4000480C)) // RW, I2C own address register 2 +#define R16_I2C_DATAR (*((PUINT16V)0x40004810)) // RW, I2C data register +#define R16_I2C_STAR1 (*((PUINT16V)0x40004814)) // R0, I2C stauts register 1 +#define R16_I2C_STAR2 (*((PUINT16V)0x40004818)) // R0, I2C status register 2 +// #define R8_I2C_PEC (*((PUINT8V) 0x40004819)) // R0, I2C Packet error checking register +#define R16_I2C_CKCFGR (*((PUINT16V)0x4000481C)) // RW, I2C clock control register +#define R16_I2C_RTR (*((PUINT16V)0x40004820)) // RW, I2C trise register + +/* I2C register address offset and bit define */ +#define BA_I2C ((PUINT8V)0x40004800) // point I2C base address +#define I2C_CTRL1 0 +#define RB_I2C_SWRST 0x8000 // RW, Software reset +#define RB_I2C_ALERT 0x2000 // RW, SMBus alert: 0=Releases SMBA pin high, 1=Drives SMBA pin low. +#define RB_I2C_PEC 0x1000 // RW, Packet error checking: 0=No PEC transfer, 1=PEC transfer (in Tx or Rx mode) +#define RB_I2C_POS 0x0800 // RW, Acknowledge/PEC Position (for data reception) +#define RB_I2C_ACK 0x0400 // RW, Acknowledge enable +#define RB_I2C_STOP 0x0200 // RW, Stop generation: master mode: 0=no stop, 1=stop after the current byte transfer or after the current Start condition is sent; slave mode: 0=no stop, 1=Release the SCL and SDA lines after the current byte transfer +#define RB_I2C_START 0x0100 // RW, Start generation: master mode: 0=no start, 1=repeated start; slave mode: 0=no start, 1=start at bus free +#define RB_I2C_NOSTRETCH 0x0080 // RW, Clock stretching disable (Slave mode) +#define RB_I2C_ENGC 0x0040 // RW, General call enable +#define RB_I2C_ENPEC 0x0020 // RW, PEC ebable +#define RB_I2C_EBARP 0x0010 // RW, ARP enable +#define RB_I2C_SMBTYPE 0x0008 // RW, SMBus type: 0=Device, 1=Host +#define RB_I2C_SMBUS 0x0002 // RW, SMBUS mode: 0=I2C mode, 1=SMBUS mode +#define RB_I2C_PE 0x0001 // RW, Peripheral enable +#define I2C_CTRL2 4 +#define RB_I2C_ITBUFEN 0x0400 // RW, Buffer interrupt enable +#define RB_I2C_ITEVTEN 0x0200 // RW, Event interrupt enable +#define RB_I2C_ITERREN 0x0100 // RW, Error interrupt enable +#define RB_I2C_FREQ 0x003F // RW, Peripheral clock frequency, The minimum allowed frequency is 2 MHz,the maximum frequency is 36 MHz +#define I2C_OADDR1 8 +#define RB_I2C_ADDMODE 0x8000 // RW, Addressing mode (slave mode): 0=7-bit slave address, 1=10-bit slave address +#define RB_I2C_ADD9_8 0x0300 // RW, bit[9:8] of address in 10-bit addressing mode +#define RB_I2C_ADD7_1 0x00FE // RW, bit[7:1] of address +#define RB_I2C_ADD0 0x0001 // RW, bit0 of address in 10-bit addressing mode +#define I2C_OADDR2 12 +#define RB_I2C_ADD2 0x00FE // RW, bit[7:1] of address2 +#define RB_I2C_ENDUAL 0x0001 // RW, Dual addressing mode enable +#define I2C_DATAR 16 +#define I2C_STAR1 20 +#define RB_I2C_SMBALERT 0x8000 // RW0, SMBus alert flag +#define RB_I2C_TIMEOUT 0x4000 // RW0, Timeout or Tlow error flag +#define RB_I2C_PECERR 0x1000 // RW0, PEC Error flag in reception +#define RB_I2C_OVR 0x0800 // RW0, Overrun/Underrun flag +#define RB_I2C_AF 0x0400 // RW0, Acknowledge failure flag +#define RB_I2C_ARLO 0x0200 // RW0, Arbitration lost flag (master mode) +#define RB_I2C_BERR 0x0100 // RW0, Bus error flag +#define RB_I2C_TxE 0x0080 // RO, Data register empty flag (transmitters) +#define RB_I2C_RxNE 0x0040 // RO, Data register not empty flag (receivers) +#define RB_I2C_STOPF 0x0010 // RO, Stop detection flag (slave mode) +#define RB_I2C_ADD10 0x0008 // RO, 10-bit header sent flag (Master mode) +#define RB_I2C_BTF 0x0004 // RO, Byte transfer finished flag +#define RB_I2C_ADDR 0x0002 // RW0, Address sent (master mode)/matched (slave mode) flag +#define RB_I2C_SB 0x0001 // RW0, Start bit flag (Master mode) +#define I2C_STAR2 24 +#define RB_I2C_PECX 0xFF00 // RO, Packet error checking register +#define RB_I2C_DUALF 0x0080 // RO, Dual flag (Slave mode): 0=Received address matched with OAR1, 1=Received address matched with OAR2 +#define RB_I2C_SMBHOST 0x0040 // RO, SMBus host header (Slave mode) received flag +#define RB_I2C_SMBDEFAULT 0x0020 // RO, SMBus device default address (Slave mode) received flag +#define RB_I2C_GENCALL 0x0010 // RO, General call address (Slave mode) received flag +#define RB_I2C_TRA 0x0004 // RO, Trans flag: 0=data bytes received, 1=data bytes transmitted +#define RB_I2C_BUSY 0x0002 // RO, Bus busy flag +#define RB_I2C_MSL 0x0001 // RO, Mode statu: 0=Slave mode, 1=Master mode +#define I2C_CKCFGR 28 +#define RB_I2C_F_S 0x8000 // RW, I2C master mode selection: 0=standard mode, 1=fast mode +#define RB_I2C_DUTY 0x4000 // RW, Fm mode duty cycle: 0=L/H=2, 1=L/H=16/9 +#define RB_I2C_CCR 0x0FFF // RW, Controls the SCL clock in Fm/Sm mode (Master mode) +#define I2C_RTR 32 +#define RB_I2C_TRISE 0x003F // RW, Maximum rise time in Fm/Sm mode (Master mode) + +/* PWM1/2/3/4/5/register */ +#define R32_PWM_CONTROL (*((PUINT32V)0x40005000)) // RW, PWM control +#define R8_PWM_OUT_EN (*((PUINT8V)0x40005000)) // RW, PWM output enable control +#define R8_PWM_POLAR (*((PUINT8V)0x40005001)) // RW, PWM output polarity control +#define R8_PWM_CONFIG (*((PUINT8V)0x40005002)) // RW, PWM configuration +#define R8_PWM_DMA_CTRL (*((PUINT8V)0x40005003)) // RW, PWM DMA control +#define R32_PWM1_3_DATA (*((PUINT32V)0x40005004)) // RW, PWM1-3 data holding +#define R16_PWM1_DATA (*((PUINT16V)0x40005004)) // RW, PWM1 data (16 bit) holding +#define R16_PWM2_DATA (*((PUINT16V)0x40005006)) // RW, PWM2 data (16 bit) holding +#define R8_PWM1_DATA (*((PUINT8V)0x40005004)) // RW, PWM1 data (8 bit) holding +#define R8_PWM2_DATA (*((PUINT8V)0x40005005)) // RW, PWM2 data (8 bit) holding +#define R8_PWM3_DATA (*((PUINT8V)0x40005006)) // RW, PWM3 data (8 bit) holding +#define R16_PWM3_DATA (*((PUINT16V)0x40005008)) // RW, PWM3 data (16 bit) holding +#define R32_PWM4_5_DATA (*((PUINT32V)0x40005010)) // RW, PWM4-5 data register +#define R16_PWM4_DATA (*((PUINT16V)0x40005010))// RW, PWM4 data (16 bit) holding +#define R16_PWM5_DATA (*((PUINT16V)0x40005012))// RW, PWM5 data (16 bit) holding +#define R8_PWM4_DATA (*((PUINT8V)0x40005010)) // RW, PWM4 data (8 bit) holding +#define R8_PWM5_DATA (*((PUINT8V)0x40005011)) // RW, PWM5 data (8 bit) holding +#define R8_PWM_INT_EN (*((PUINT8V)0x4000500C)) // RW, PWM interrupt enable +#define RB_PWM_IE_OVER 0x40 // RW, enable interrupt for fifo overflow +#define RB_PWM_IE_DMA 0x20 // RW, enable interrupt for DMA transmision end +#define RB_PWM_IE_FIFO 0x10 // RW, enable interrupt for fifo count < 4 +#define RB_PWM1_IE_CYC 0x04 // RW, enable interrupt for PWM4\5 cycle end +#define RB_PWM_CYC_PRE 0x02 // RW, select PWM cycle interrupt point: 0=after count 0xFE (0x7E for 7 bits mode...), 1=after count 0xF0 (0x70 for 7 bits mode...) +#define RB_PWM_IE_CYC 0x01 // RW, enable interrupt for PWM1\2\3 cycle end +#define R8_PWM_INT_FLAG (*((PUINT8V)0x4000500D)) // RW1, PWM interrupt flag +#define RB_PWM_IF_OVER 0x10 // RW1, interrupt flag for fifo overflow +#define RB_PWM_IF_DMA 0x08 // RW1, interrupt flag for DMA transmision end +#define RB_PWM_IF_FIFO 0x04 // RW1, interrupt flag for fifo count < 4 +#define RB_PWM1_IF_CYC 0x02 // RW1, interrupt flag for PWM4\5 cycle end +#define RB_PWM_IF_CYC 0x01 // RW1, interrupt flag for PWM1\2\3 cycle end +#define R16_PWM_CYC_VALUE (*((PUINT16V)0x40005014)) // RW, PWM1\2\3 cycle value for 16bit +#define R16_PWM_CYC1_VALUE (*((PUINT16V)0x40005016)) // RW, PWM4\5 cycle value for 16bit +#define R16_PWM_CLOCK_DIV (*((PUINT16V)0x40005018)) // RW, PWM clock division +#define R32_PWM_DMA_NOW (*((PUINT32V)0x4000501C)) // RW, PWM DMA addr for now +#define R32_PWM_DMA_BEG (*((PUINT32V)0x40005020)) // RW, PWM DMA addr of begining +#define R32_PWM_DMA_END (*((PUINT32V)0x40005024)) // RW, PWM DMA addr of end + +/* PWM1/2/3/4/5 register address offset and bit define */ +#define BA_PWMX ((PUINT8V)0x40005000) // point PWM1/2/3/4/5 base address +#define PWM_OUT_EN 0 +#define RB_PWM5_OUT_EN 0x10 // RW, PWM5 output enable +#define RB_PWM4_OUT_EN 0x08 // RW, PWM4 output enable +#define RB_PWM3_OUT_EN 0x04 // RW, PWM3 output enable +#define RB_PWM2_OUT_EN 0x02 // RW, PWM2 output enable +#define RB_PWM1_OUT_EN 0x01 // RW, PWM1 output enable +#define PWM_POLAR 1 +#define RB_PWM5_POLAR 0x10 // RW, PWM5 output polarity: 0=default low and high action, 1=default high and low action +#define RB_PWM4_POLAR 0x08 // RW, PWM4 output polarity: 0=default low and high action, 1=default high and low action +#define RB_PWM3_POLAR 0x04 // RW, PWM3 output polarity: 0=default low and high action, 1=default high and low action +#define RB_PWM2_POLAR 0x02 // RW, PWM2 output polarity: 0=default low and high action, 1=default high and low action +#define RB_PWM1_POLAR 0x01 // RW, PWM1 output polarity: 0=default low and high action, 1=default high and low action +#define PWM_CONFIG 2 +#define RB_PWM_SYNC_EN 0x80 // RW, enable sync +#define RB_PWM_SYNC_START 0x40 // RW, enable sync start when RB_PWM_SYN_EN=1 +#define RB_PWM4_5_CH 0x10 // RO, 1=PWM4 channel output 0=PWM5 channel output +#define RB_PWM4_5_STAG_EN 0x08 // RW, PWM4/5 stagger output enable: 0=independent output, 1=stagger output +#define RB_PWM_CYC_MOD 0x06 // RW, PWM data width mode: 00=8 bits data, 01=7 bits data, 10=6 bits data, 11=16 bits data +#define RB_PWM_CYCLE_SEL 0x01 // RW, PWM cycle selection: 0=256/128/64/32 clocks, 1=255/127/63/31 clocks +#define PWM_DMA_CTRL 3 +#define RB_DMA_SEL 0x04 // RW, RB_PWM_SYN_EN=0: 1=DMA choose 1/2/3 channel output , 0=DMA choose 4/5 channel output ,RB_PWM_SYN_EN=1: 1=DMA choose 1/2/3/4/5 channel output +#define RB_DMA_ADDR_LOOP 0x02 // RW, DMA mode:1=DMA loop,0=DMA no loop +#define RB_DMA_ENABLE 0x01 // RW, DMA enable(only 16bit data) + +#define PWM1_DATA_HOLD 4 +#define PWM2_DATA_HOLD 5 +#define PWM3_DATA_HOLD 6 +#define PWM4_DATA_HOLD 7 +#define PWM5_DATA_HOLD 8 + +/* Address space define */ +#define BA_CODE ((PUINT32)0x00000000) // point code base address +#define SZ_CODE 0x00080000 // code size +#define BA_SFR ((PUINT32)0x40000000) // point SFR base address +#define SZ_SFR 0x00010000 // SFR size +#define BA_RAM ((PUINT32)0x20000000) // point RAM base address +#define SZ_RAM 0x00003000 // RAM size + +/* Special Program Space */ +#define CODE_FLASH_SIZE 0x00000 // size of Data-Flash +#define BOOT_LOAD_ADDR 0x3C000 // start address of boot loader program +#define BOOT_LOAD_SIZE 0x2000 // size of boot loader program +#define BOOT_LOAD_CFG 0x3E000 // start address of configuration information for boot loader program +#define ROM_CFG_ADDR 0x3F000 // chip configuration information address + +/*----- Reference Information --------------------------------------------*/ +#define ID_CH572 0x72 // chip ID +#define ID_CH570 0x70 // chip ID + +/* Interrupt routine address and interrupt number */ +// #define INT_ID_TMR0 0 // interrupt number for Timer0 +#define INT_ID_GPIO_A 17 // interrupt number for GPIO port A +#define INT_ID_SPI 19 // interrupt number for SPI +#define INT_ID_BLEB 20 // interrupt number for BLEBB +#define INT_ID_BLEL 21 // interrupt number for BLELLE +#define INT_ID_USB 22 // interrupt number for USB +#define INT_ID_TMR 24 // interrupt number for Timer +#define INT_ID_UART 27 // interrupt number for UART +#define INT_ID_RTC 28 // interrupt number for RTC +#define INT_ID_CMP 29 +#define INT_ID_I2C 30 +#define INT_ID_PWMX 31 // interrupt number for PWM1~5 +#define INT_ID_KEYSCAN 33 // interrupt number for KEYSCAN +#define INT_ID_ENCODE 34 // interrupt number for ENCODER +#define INT_ID_WDOG_BAT 35 // interrupt number for Watch-Dog timer and Battery low voltage +#define INT_VEC_ENTRY_SZ 4 // size of each interrupt vector entry +// #define INT_ADDR_TMR0 (INT_ID_TMR0*INT_VEC_ENTRY_SZ+64) // interrupt vector address for Timer0 +#define INT_ADDR_GPIO_A (INT_ID_GPIO_A*INT_VEC_ENTRY_SZ+64) // interrupt vector address for GPIO port A +#define INT_ADDR_SPI (INT_ID_SPI*INT_VEC_ENTRY_SZ+64) // interrupt vector address for SPI +#define INT_ADDR_BLEB (INT_ID_BLEB*INT_VEC_ENTRY_SZ+64) // interrupt vector address for BLEBB +#define INT_ADDR_BLEL (INT_ID_BLEL*INT_VEC_ENTRY_SZ+64) // interrupt vector address for BLELLE +#define INT_ADDR_USB (INT_ID_USB*INT_VEC_ENTRY_SZ+64) // interrupt vector address for USB +#define INT_ADDR_TMR (INT_ID_TMR*INT_VEC_ENTRY_SZ+64) // interrupt vector address for Timer1 +#define INT_ADDR_UART (INT_ID_UART*INT_VEC_ENTRY_SZ+64) // interrupt vector address for UART +#define INT_ADDR_RTC (INT_ID_RTC*INT_VEC_ENTRY_SZ+64) // interrupt vector address for RTC +#define INT_ADDR_CMP (INT_ID_CMP*INT_VEC_ENTRY_SZ+64) +#define INT_ADDR_I2C (INT_ID_I2C*INT_VEC_ENTRY_SZ+64) +#define INT_ADDR_PWMX (INT_ID_PWMX*INT_VEC_ENTRY_SZ+64) // interrupt vector address for PWM1~5 +#define INT_ADDR_KEYSCAN (INT_ID_KEYSCAN*INT_VEC_ENTRY_SZ+64) // interrupt vector address for KEYSCAN +#define INT_ADDR_ENCODE (INT_ID_ENCODE*INT_VEC_ENTRY_SZ+64) // interrupt vector address for ENCODER +#define INT_ADDR_WDOG_BAT (INT_ID_WDOG_BAT*INT_VEC_ENTRY_SZ+64) // interrupt vector address for Watch-Dog timer and Battery low voltage + +#ifndef TABLE_IRQN +#define __PFIC_PRIO_BITS 2 /*!< uses 8 Bits for the Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ +typedef enum IRQn +{ + Reset_IRQn = 0, + NMI_IRQn = 2, + EXC_IRQn = 3, + ECALL_M_IRQn = 5, + ECALL_U_IRQn = 8, + BREAKPOINT_IRQn = 9, + SysTick_IRQn = 12, + SWI_IRQn = 14, + GPIO_A_IRQn = 17, + SPI_IRQn = 19, + BLEB_IRQn = 20, + BLEL_IRQn = 21, + USB_IRQn = 22, + TMR_IRQn = 24, + UART_IRQn = 27, + RTC_IRQn = 28, + CMP_IRQn = 29, + I2C_IRQn = 30, + PWMX_IRQn = 31, + KEYSCAN_IRQn = 33, + ENCODE_IRQn = 34, + WDOG_BAT_IRQn = 35 +} IRQn_Type; +#endif + + +#ifdef __cplusplus +} +#endif + +#endif // __CH572SFR_H__ + + +#ifndef __CH572USBSFR_H__ +#define __CH572USBSFR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************/ +/* Peripheral memory map */ +/******************************************************************************/ +/* usb addresses +// USB: +8000H - 83FFH */ +#define USB_BASE_ADDR (0x40008000) +#define BA_USB ((PUINT8V)0x40008000) // point USB base address + +/* USB */ +#define R32_USB_CONTROL (*((PUINT32V)0x40008000)) // USB control & interrupt enable & device address +#define R8_USB_CTRL (*((PUINT8V)0x40008000)) // USB base control +#define RB_UC_HOST_MODE 0x80 // enable USB host mode: 0=device mode, 1=host mode +#define RB_UC_LOW_SPEED 0x40 // enable USB low speed: 0=12Mbps, 1=1.5Mbps +#define RB_UC_DEV_PU_EN 0x20 // USB device enable and internal pullup resistance enable +#define RB_UC_SYS_CTRL1 0x20 // USB system control high bit +#define RB_UC_SYS_CTRL0 0x10 // USB system control low bit +#define MASK_UC_SYS_CTRL 0x30 // bit mask of USB system control +// bUC_HOST_MODE & bUC_SYS_CTRL1 & bUC_SYS_CTRL0: USB system control +// 0 00: disable USB device and disable internal pullup resistance +// 0 01: enable USB device and disable internal pullup resistance, need RB_PIN_USB_DP_PU=1 or need external pullup resistance +// 0 1x: enable USB device and enable internal pullup resistance +// 1 00: enable USB host and normal status +// 1 01: enable USB host and force UDP/UDM output SE0 state +// 1 10: enable USB host and force UDP/UDM output J state +// 1 11: enable USB host and force UDP/UDM output resume or K state +#define RB_UC_INT_BUSY 0x08 // enable automatic responding busy for device mode or automatic pause for host mode during interrupt flag UIF_TRANSFER valid +#define RB_UC_RESET_SIE 0x04 // force reset USB SIE, need software clear +#define RB_UC_CLR_ALL 0x02 // force clear FIFO and count of USB +#define RB_UC_DMA_EN 0x01 // DMA enable and DMA interrupt enable for USB + +#define R8_UDEV_CTRL (*((PUINT8V)0x40008001)) // USB device physical prot control +#define RB_UD_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable +#define RB_UD_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level +#define RB_UD_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level +#define RB_UD_LOW_SPEED 0x04 // enable USB physical port low speed: 0=full speed, 1=low speed +#define RB_UD_GP_BIT 0x02 // general purpose bit +#define RB_UD_PORT_EN 0x01 // enable USB physical port I/O: 0=disable, 1=enable + +#define R8_UHOST_CTRL R8_UDEV_CTRL // USB host physical prot control +#define RB_UH_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable +#define RB_UH_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level +#define RB_UH_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level +#define RB_UH_LOW_SPEED 0x04 // enable USB port low speed: 0=full speed, 1=low speed +#define RB_UH_BUS_RESET 0x02 // control USB bus reset: 0=normal, 1=force bus reset +#define RB_UH_PORT_EN 0x01 // enable USB port: 0=disable, 1=enable port, automatic disabled if USB device detached + +#define R8_USB_INT_EN (*((PUINT8V)0x40008002)) // USB interrupt enable +#define RB_UIE_DEV_SOF 0x80 // enable interrupt for SOF received for USB device mode +#define RB_UIE_DEV_NAK 0x40 // enable interrupt for NAK responded for USB device mode +#define RB_MOD_1_WIRE 0x20 // enable single wire mode +#define RB_UIE_FIFO_OV 0x10 // enable interrupt for FIFO overflow +#define RB_UIE_HST_SOF 0x08 // enable interrupt for host SOF timer action for USB host mode +#define RB_UIE_SUSPEND 0x04 // enable interrupt for USB suspend or resume event +#define RB_UIE_TRANSFER 0x02 // enable interrupt for USB transfer completion +#define RB_UIE_DETECT 0x01 // enable interrupt for USB device detected event for USB host mode +#define RB_UIE_BUS_RST 0x01 // enable interrupt for USB bus reset event for USB device mode + +#define R8_USB_DEV_AD (*((PUINT8V)0x40008003)) // USB device address +#define RB_UDA_GP_BIT 0x80 // general purpose bit +#define MASK_USB_ADDR 0x7F // bit mask for USB device address + +#define R32_USB_STATUS (*((PUINT32V)0x40008004)) // USB miscellaneous status & interrupt flag & interrupt status +#define R8_USB_MIS_ST (*((PUINT8V)0x40008005)) // USB miscellaneous status +#define RB_UMS_SOF_PRES 0x80 // RO, indicate host SOF timer presage status +#define RB_UMS_SOF_ACT 0x40 // RO, indicate host SOF timer action status for USB host +#define RB_UMS_SIE_FREE 0x20 // RO, indicate USB SIE free status +#define RB_UMS_R_FIFO_RDY 0x10 // RO, indicate USB receiving FIFO ready status (not empty) +#define RB_UMS_BUS_RESET 0x08 // RO, indicate USB bus reset status +#define RB_UMS_SUSPEND 0x04 // RO, indicate USB suspend status +#define RB_UMS_DM_LEVEL 0x02 // RO, indicate UDM level saved at device attached to USB host +#define RB_UMS_DEV_ATTACH 0x01 // RO, indicate device attached status on USB host + +#define R8_USB_INT_FG (*((PUINT8V)0x40008006)) // USB interrupt flag +#define RB_U_IS_NAK 0x80 // RO, indicate current USB transfer is NAK received +#define RB_U_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK +#define RB_U_SIE_FREE 0x20 // RO, indicate USB SIE free status +#define RB_UIF_FIFO_OV 0x10 // FIFO overflow interrupt flag for USB, direct bit address clear or write 1 to clear +#define RB_UIF_HST_SOF 0x08 // host SOF timer interrupt flag for USB host, direct bit address clear or write 1 to clear +#define RB_UIF_SUSPEND 0x04 // USB suspend or resume event interrupt flag, direct bit address clear or write 1 to clear +#define RB_UIF_TRANSFER 0x02 // USB transfer completion interrupt flag, direct bit address clear or write 1 to clear +#define RB_UIF_DETECT 0x01 // device detected event interrupt flag for USB host mode, direct bit address clear or write 1 to clear +#define RB_UIF_BUS_RST 0x01 // bus reset event interrupt flag for USB device mode, direct bit address clear or write 1 to clear + +#define R8_USB_INT_ST (*((PUINT8V)0x40008007)) // USB interrupt status +#define RB_UIS_SETUP_ACT 0x80 // RO, indicate SETUP token & 8 bytes setup request received for USB device mode +#define RB_UIS_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK +#define RB_UIS_TOKEN1 0x20 // RO, current token PID code bit 1 received for USB device mode +#define RB_UIS_TOKEN0 0x10 // RO, current token PID code bit 0 received for USB device mode +#define MASK_UIS_TOKEN 0x30 // RO, bit mask of current token PID code received for USB device mode +#define UIS_TOKEN_OUT 0x00 +#define UIS_TOKEN_SOF 0x10 +#define UIS_TOKEN_IN 0x20 +#define UIS_TOKEN_SETUP 0x30 +// bUIS_TOKEN1 & bUIS_TOKEN0: current token PID code received for USB device mode, keep last status during SETUP token, clear RB_UIF_TRANSFER ( RB_UIF_TRANSFER from 1 to 0 ) to set free +// 00: OUT token PID received +// 01: SOF token PID received +// 10: IN token PID received +// 11: free +#define MASK_UIS_ENDP 0x0F // RO, bit mask of current transfer endpoint number for USB device mode +#define MASK_UIS_H_RES 0x0F // RO, bit mask of current transfer handshake response for USB host mode: 0000=no response, time out from device, others=handshake response PID received + +#define R8_USB_RX_LEN (*((PUINT8V)0x40008008)) // USB receiving length +#define R32_USB_BUF_MODE (*((PUINT32V)0x4000800C)) // USB endpoint buffer mode +#define R8_UEP4_1_MOD (*((PUINT8V)0x4000800C)) // endpoint 4/1 mode +#define RB_UEP1_RX_EN 0x80 // enable USB endpoint 1 receiving (OUT) +#define RB_UEP1_TX_EN 0x40 // enable USB endpoint 1 transmittal (IN) +#define RB_UEP1_BUF_MOD 0x10 // buffer mode of USB endpoint 1 +// bUEPn_RX_EN & bUEPn_TX_EN & bUEPn_BUF_MOD: USB endpoint 1/2/3 buffer mode, buffer start address is UEPn_DMA +// 0 0 x: disable endpoint and disable buffer +// 1 0 0: 64 bytes buffer for receiving (OUT endpoint) +// 1 0 1: dual 64 bytes buffer by toggle bit bUEP_R_TOG selection for receiving (OUT endpoint), total=128bytes +// 0 1 0: 64 bytes buffer for transmittal (IN endpoint) +// 0 1 1: dual 64 bytes buffer by toggle bit bUEP_T_TOG selection for transmittal (IN endpoint), total=128bytes +// 1 1 0: 64 bytes buffer for receiving (OUT endpoint) + 64 bytes buffer for transmittal (IN endpoint), total=128bytes +// 1 1 1: dual 64 bytes buffer by bUEP_R_TOG selection for receiving (OUT endpoint) + dual 64 bytes buffer by bUEP_T_TOG selection for transmittal (IN endpoint), total=256bytes +#define RB_UEP4_RX_EN 0x08 // enable USB endpoint 4 receiving (OUT) +#define RB_UEP4_TX_EN 0x04 // enable USB endpoint 4 transmittal (IN) +// bUEP4_RX_EN & bUEP4_TX_EN: USB endpoint 4 buffer mode, buffer start address is UEP0_DMA +// 0 0: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) +// 1 0: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) + 64 bytes buffer for endpoint 4 receiving (OUT endpoint), total=128bytes +// 0 1: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) + 64 bytes buffer for endpoint 4 transmittal (IN endpoint), total=128bytes +// 1 1: single 64 bytes buffer for endpoint 0 receiving & transmittal (OUT & IN endpoint) +// + 64 bytes buffer for endpoint 4 receiving (OUT endpoint) + 64 bytes buffer for endpoint 4 transmittal (IN endpoint), total=192bytes + +#define R8_UEP2_3_MOD (*((PUINT8V)0x4000800D)) // endpoint 2/3 mode +#define RB_UEP3_RX_EN 0x80 // enable USB endpoint 3 receiving (OUT) +#define RB_UEP3_TX_EN 0x40 // enable USB endpoint 3 transmittal (IN) +#define RB_UEP3_BUF_MOD 0x10 // buffer mode of USB endpoint 3 +#define RB_UEP2_RX_EN 0x08 // enable USB endpoint 2 receiving (OUT) +#define RB_UEP2_TX_EN 0x04 // enable USB endpoint 2 transmittal (IN) +#define RB_UEP2_BUF_MOD 0x01 // buffer mode of USB endpoint 2 + +#define R8_UEP567_MOD (*((PUINT8V)0x4000800E)) // endpoint 5/6/7 mode +#define RB_UEP7_RX_EN 0x20 // enable USB endpoint 7 receiving (OUT) +#define RB_UEP7_TX_EN 0x10 // enable USB endpoint 7 transmittal (IN) +#define RB_UEP6_RX_EN 0x08 // enable USB endpoint 6 receiving (OUT) +#define RB_UEP6_TX_EN 0x04 // enable USB endpoint 6 transmittal (IN) +#define RB_UEP5_RX_EN 0x02 // enable USB endpoint 5 receiving (OUT) +#define RB_UEP5_TX_EN 0x01 // enable USB endpoint 5 transmittal (IN) +// bUEPn_RX_EN & bUEPn_TX_EN: USB endpoint 5/6/7 buffer mode, buffer start address is UEPn_DMA +// 0 0: disable endpoint and disable buffer +// 1 0: 64 bytes buffer for receiving (OUT endpoint) +// 0 1: 64 bytes buffer for transmittal (IN endpoint) +// 1 1: 64 bytes buffer for receiving (OUT endpoint) + 64 bytes buffer for transmittal (IN endpoint), total=128bytes + +#define R8_UH_EP_MOD R8_UEP2_3_MOD //host endpoint mode +#define RB_UH_EP_TX_EN 0x40 // enable USB host OUT endpoint transmittal +#define RB_UH_EP_TBUF_MOD 0x10 // buffer mode of USB host OUT endpoint +// bUH_EP_TX_EN & bUH_EP_TBUF_MOD: USB host OUT endpoint buffer mode, buffer start address is UH_TX_DMA +// 0 x: disable endpoint and disable buffer +// 1 0: 64 bytes buffer for transmittal (OUT endpoint) +// 1 1: dual 64 bytes buffer by toggle bit bUH_T_TOG selection for transmittal (OUT endpoint), total=128bytes +#define RB_UH_EP_RX_EN 0x08 // enable USB host IN endpoint receiving +#define RB_UH_EP_RBUF_MOD 0x01 // buffer mode of USB host IN endpoint +// bUH_EP_RX_EN & bUH_EP_RBUF_MOD: USB host IN endpoint buffer mode, buffer start address is UH_RX_DMA +// 0 x: disable endpoint and disable buffer +// 1 0: 64 bytes buffer for receiving (IN endpoint) +// 1 1: dual 64 bytes buffer by toggle bit bUH_R_TOG selection for receiving (IN endpoint), total=128bytes + +#define R16_UEP0_DMA (*((PUINT16V)0x40008010)) // endpoint 0 DMA buffer address +#define R16_UEP1_DMA (*((PUINT16V)0x40008014)) // endpoint 1 DMA buffer address +#define R16_UEP2_DMA (*((PUINT16V)0x40008018)) // endpoint 2 DMA buffer address +#define R16_UH_RX_DMA R16_UEP2_DMA // host rx endpoint buffer address +#define R16_UEP3_DMA (*((PUINT16V)0x4000801C)) // endpoint 3 DMA buffer address +#define R16_UH_TX_DMA R16_UEP3_DMA // host tx endpoint buffer address +#define R16_UEP5_DMA (*((PUINT16V)0x40008054)) // endpoint 5 DMA buffer address +#define R16_UEP6_DMA (*((PUINT16V)0x40008058)) // endpoint 6 DMA buffer address +#define R16_UEP7_DMA (*((PUINT16V)0x4000805C)) // endpoint 7 DMA buffer address +#define R32_USB_EP0_CTRL (*((PUINT32V)0x40008020)) // endpoint 0 control & transmittal length +#define R8_UEP0_T_LEN (*((PUINT8V)0x40008020)) // endpoint 0 transmittal length +#define R8_UEP0_CTRL (*((PUINT8V)0x40008022)) // endpoint 0 control +#define R32_USB_EP1_CTRL (*((PUINT32V)0x40008024)) // endpoint 1 control & transmittal length +#define R8_UEP1_T_LEN (*((PUINT8V)0x40008024)) // endpoint 1 transmittal length +#define R8_UEP1_CTRL (*((PUINT8V)0x40008026)) // endpoint 1 control +#define RB_UEP_R_TOG 0x80 // expected data toggle flag of USB endpoint X receiving (OUT): 0=DATA0, 1=DATA1 +#define RB_UEP_T_TOG 0x40 // prepared data toggle flag of USB endpoint X transmittal (IN): 0=DATA0, 1=DATA1 +#define RB_UEP_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion on endpoint 1/2/3: 0=manual toggle, 1=automatic toggle +#define RB_UEP_R_RES1 0x08 // handshake response type high bit for USB endpoint X receiving (OUT) +#define RB_UEP_R_RES0 0x04 // handshake response type low bit for USB endpoint X receiving (OUT) +#define MASK_UEP_R_RES 0x0C // bit mask of handshake response type for USB endpoint X receiving (OUT) +#define UEP_R_RES_ACK 0x00 +#define UEP_R_RES_TOUT 0x04 +#define UEP_R_RES_NAK 0x08 +#define UEP_R_RES_STALL 0x0C +// RB_UEP_R_RES1 & RB_UEP_R_RES0: handshake response type for USB endpoint X receiving (OUT) +// 00: ACK (ready) +// 01: no response, time out to host, for non-zero endpoint isochronous transactions +// 10: NAK (busy) +// 11: STALL (error) +#define RB_UEP_T_RES1 0x02 // handshake response type high bit for USB endpoint X transmittal (IN) +#define RB_UEP_T_RES0 0x01 // handshake response type low bit for USB endpoint X transmittal (IN) +#define MASK_UEP_T_RES 0x03 // bit mask of handshake response type for USB endpoint X transmittal (IN) +#define UEP_T_RES_ACK 0x00 +#define UEP_T_RES_TOUT 0x01 +#define UEP_T_RES_NAK 0x02 +#define UEP_T_RES_STALL 0x03 +// bUEP_T_RES1 & bUEP_T_RES0: handshake response type for USB endpoint X transmittal (IN) +// 00: DATA0 or DATA1 then expecting ACK (ready) +// 01: DATA0 or DATA1 then expecting no response, time out from host, for non-zero endpoint isochronous transactions +// 10: NAK (busy) +// 11: STALL (error) + +#define R8_UH_SETUP R8_UEP1_CTRL // host aux setup +#define RB_UH_PRE_PID_EN 0x80 // USB host PRE PID enable for low speed device via hub +#define RB_UH_SOF_EN 0x40 // USB host automatic SOF enable + +#define R32_USB_EP2_CTRL (*((PUINT32V)0x40008028)) // endpoint 2 control & transmittal length +#define R8_UEP2_T_LEN (*((PUINT8V)0x40008028)) // endpoint 2 transmittal length +#define R8_UEP2_CTRL (*((PUINT8V)0x4000802A)) // endpoint 2 control + +#define R8_UH_EP_PID R8_UEP2_T_LEN // host endpoint and PID +#define MASK_UH_TOKEN 0xF0 // bit mask of token PID for USB host transfer +#define MASK_UH_ENDP 0x0F // bit mask of endpoint number for USB host transfer + +#define R8_UH_RX_CTRL R8_UEP2_CTRL // host receiver endpoint control +#define RB_UH_R_TOG 0x80 // expected data toggle flag of host receiving (IN): 0=DATA0, 1=DATA1 +#define RB_UH_R_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle +#define RB_UH_R_RES 0x04 // prepared handshake response type for host receiving (IN): 0=ACK (ready), 1=no response, time out to device, for isochronous transactions + +#define R32_USB_EP3_CTRL (*((PUINT32V)0x4000802c)) // endpoint 3 control & transmittal length +#define R8_UEP3_T_LEN (*((PUINT8V)0x4000802c)) // endpoint 3 transmittal length +#define R8_UEP3_CTRL (*((PUINT8V)0x4000802e)) // endpoint 3 control +#define R8_UH_TX_LEN R8_UEP3_T_LEN // host transmittal endpoint transmittal length + +#define R8_UH_TX_CTRL R8_UEP3_CTRL // host transmittal endpoint control +#define RB_UH_T_TOG 0x40 // prepared data toggle flag of host transmittal (SETUP/OUT): 0=DATA0, 1=DATA1 +#define RB_UH_T_AUTO_TOG 0x10 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle +#define RB_UH_T_RES 0x01 // expected handshake response type for host transmittal (SETUP/OUT): 0=ACK (ready), 1=no response, time out from device, for isochronous transactions + +#define R32_USB_EP4_CTRL (*((PUINT32V)0x40008030)) // endpoint 4 control & transmittal length +#define R8_UEP4_T_LEN (*((PUINT8V)0x40008030)) // endpoint 4 transmittal length +#define R8_UEP4_CTRL (*((PUINT8V)0x40008032)) // endpoint 4 control + +#define R32_USB_EP5_CTRL (*((PUINT32V)0x40008064)) // endpoint 5 control & transmittal length +#define R8_UEP5_T_LEN (*((PUINT8V)0x40008064)) // endpoint 5 transmittal length +#define R8_UEP5_CTRL (*((PUINT8V)0x40008066)) // endpoint 5 control + +#define R32_USB_EP6_CTRL (*((PUINT32V)0x40008068)) // endpoint 6 control & transmittal length +#define R8_UEP6_T_LEN (*((PUINT8V)0x40008068)) // endpoint 6 transmittal length +#define R8_UEP6_CTRL (*((PUINT8V)0x4000806A)) // endpoint 6 control + +#define R32_USB_EP7_CTRL (*((PUINT32V)0x4000806C)) // endpoint 7 control & transmittal length +#define R8_UEP7_T_LEN (*((PUINT8V)0x4000806C)) // endpoint 7 transmittal length +#define R8_UEP7_CTRL (*((PUINT8V)0x4000806E)) // endpoint 7 control + +#ifdef __cplusplus +} +#endif + +#endif //__CH572USBSFR_H__ + + +#ifndef __USB_TYPE__ +#define __USB_TYPE__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*----- USB constant and structure define --------------------------------*/ + +/* USB PID */ +#ifndef USB_PID_SETUP +#define USB_PID_NULL 0x00 /* reserved PID */ +#define USB_PID_SOF 0x05 +#define USB_PID_SETUP 0x0D +#define USB_PID_IN 0x09 +#define USB_PID_OUT 0x01 +#define USB_PID_ACK 0x02 +#define USB_PID_NAK 0x0A +#define USB_PID_STALL 0x0E +#define USB_PID_DATA0 0x03 +#define USB_PID_DATA1 0x0B +#define USB_PID_PRE 0x0C +#endif + +/* USB standard device request code */ +#ifndef USB_GET_DESCRIPTOR +#define USB_GET_STATUS 0x00 +#define USB_CLEAR_FEATURE 0x01 +#define USB_SET_FEATURE 0x03 +#define USB_SET_ADDRESS 0x05 +#define USB_GET_DESCRIPTOR 0x06 +#define USB_SET_DESCRIPTOR 0x07 +#define USB_GET_CONFIGURATION 0x08 +#define USB_SET_CONFIGURATION 0x09 +#define USB_GET_INTERFACE 0x0A +#define USB_SET_INTERFACE 0x0B +#define USB_SYNCH_FRAME 0x0C +#endif + +/* USB hub class request code */ +#ifndef HUB_GET_DESCRIPTOR +#define HUB_GET_STATUS 0x00 +#define HUB_CLEAR_FEATURE 0x01 +#define HUB_GET_STATE 0x02 +#define HUB_SET_FEATURE 0x03 +#define HUB_GET_DESCRIPTOR 0x06 +#define HUB_SET_DESCRIPTOR 0x07 +#endif + +/* USB HID class request code */ +#ifndef HID_GET_REPORT +#define HID_GET_REPORT 0x01 +#define HID_GET_IDLE 0x02 +#define HID_GET_PROTOCOL 0x03 +#define HID_SET_REPORT 0x09 +#define HID_SET_IDLE 0x0A +#define HID_SET_PROTOCOL 0x0B +#endif + +/* Bit define for USB request type */ +#ifndef USB_REQ_TYP_MASK +#define USB_REQ_TYP_IN 0x80 /* control IN, device to host */ +#define USB_REQ_TYP_OUT 0x00 /* control OUT, host to device */ +#define USB_REQ_TYP_READ 0x80 /* control read, device to host */ +#define USB_REQ_TYP_WRITE 0x00 /* control write, host to device */ +#define USB_REQ_TYP_MASK 0x60 /* bit mask of request type */ +#define USB_REQ_TYP_STANDARD 0x00 +#define USB_REQ_TYP_CLASS 0x20 +#define USB_REQ_TYP_VENDOR 0x40 +#define USB_REQ_TYP_RESERVED 0x60 +#define USB_REQ_RECIP_MASK 0x1F /* bit mask of request recipient */ +#define USB_REQ_RECIP_DEVICE 0x00 +#define USB_REQ_RECIP_INTERF 0x01 +#define USB_REQ_RECIP_ENDP 0x02 +#define USB_REQ_RECIP_OTHER 0x03 +#endif + +/* USB request type for hub class request */ +#ifndef HUB_GET_HUB_DESCRIPTOR +#define HUB_CLEAR_HUB_FEATURE 0x20 +#define HUB_CLEAR_PORT_FEATURE 0x23 +#define HUB_GET_BUS_STATE 0xA3 +#define HUB_GET_HUB_DESCRIPTOR 0xA0 +#define HUB_GET_HUB_STATUS 0xA0 +#define HUB_GET_PORT_STATUS 0xA3 +#define HUB_SET_HUB_DESCRIPTOR 0x20 +#define HUB_SET_HUB_FEATURE 0x20 +#define HUB_SET_PORT_FEATURE 0x23 +#endif + +/* Hub class feature selectors */ +#ifndef HUB_PORT_RESET +#define HUB_C_HUB_LOCAL_POWER 0 +#define HUB_C_HUB_OVER_CURRENT 1 +#define HUB_PORT_CONNECTION 0 +#define HUB_PORT_ENABLE 1 +#define HUB_PORT_SUSPEND 2 +#define HUB_PORT_OVER_CURRENT 3 +#define HUB_PORT_RESET 4 +#define HUB_PORT_POWER 8 +#define HUB_PORT_LOW_SPEED 9 +#define HUB_C_PORT_CONNECTION 16 +#define HUB_C_PORT_ENABLE 17 +#define HUB_C_PORT_SUSPEND 18 +#define HUB_C_PORT_OVER_CURRENT 19 +#define HUB_C_PORT_RESET 20 +#endif + +/* USB descriptor type */ +#ifndef USB_DESCR_TYP_DEVICE +#define USB_DESCR_TYP_DEVICE 0x01 +#define USB_DESCR_TYP_CONFIG 0x02 +#define USB_DESCR_TYP_STRING 0x03 +#define USB_DESCR_TYP_INTERF 0x04 +#define USB_DESCR_TYP_ENDP 0x05 +#define USB_DESCR_TYP_QUALIF 0x06 +#define USB_DESCR_TYP_SPEED 0x07 +#define USB_DESCR_TYP_OTG 0x09 +#define USB_DESCR_TYP_HID 0x21 +#define USB_DESCR_TYP_REPORT 0x22 +#define USB_DESCR_TYP_PHYSIC 0x23 +#define USB_DESCR_TYP_CS_INTF 0x24 +#define USB_DESCR_TYP_CS_ENDP 0x25 +#define USB_DESCR_TYP_HUB 0x29 +#endif + +/* USB device class */ +#ifndef USB_DEV_CLASS_HUB +#define USB_DEV_CLASS_RESERVED 0x00 +#define USB_DEV_CLASS_AUDIO 0x01 +#define USB_DEV_CLASS_COMMUNIC 0x02 +#define USB_DEV_CLASS_HID 0x03 +#define USB_DEV_CLASS_MONITOR 0x04 +#define USB_DEV_CLASS_PHYSIC_IF 0x05 +#define USB_DEV_CLASS_POWER 0x06 +#define USB_DEV_CLASS_PRINTER 0x07 +#define USB_DEV_CLASS_STORAGE 0x08 +#define USB_DEV_CLASS_HUB 0x09 +#define USB_DEV_CLASS_VEN_SPEC 0xFF +#endif + +/* USB endpoint type and attributes */ +#ifndef USB_ENDP_TYPE_MASK +#define USB_ENDP_DIR_MASK 0x80 +#define USB_ENDP_ADDR_MASK 0x0F +#define USB_ENDP_TYPE_MASK 0x03 +#define USB_ENDP_TYPE_CTRL 0x00 +#define USB_ENDP_TYPE_ISOCH 0x01 +#define USB_ENDP_TYPE_BULK 0x02 +#define USB_ENDP_TYPE_INTER 0x03 +#endif + +#ifndef USB_DEVICE_ADDR +#define USB_DEVICE_ADDR 0x02 /*default addr of USB */ +#endif +#ifndef DEFAULT_ENDP0_SIZE +#define DEFAULT_ENDP0_SIZE 8 /* default maximum packet size for endpoint 0 */ +#endif +#ifndef MAX_PACKET_SIZE +#define MAX_PACKET_SIZE 64 /* maximum packet size */ +#endif +#ifndef USB_BO_CBW_SIZE +#define USB_BO_CBW_SIZE 0x1F /* total length of CBW command block */ +#define USB_BO_CSW_SIZE 0x0D /* total length of CSW command state block */ +#endif +#ifndef USB_BO_CBW_SIG +#define USB_BO_CBW_SIG 0x43425355 /* identification mark of CBW command block 'USBC' */ +#define USB_BO_CSW_SIG 0x53425355 /* identification mark of CSW command state block 'USBC'USBS' */ +#endif + +#ifndef __PACKED +#define __PACKED __attribute__((packed)) +#endif + +typedef struct __PACKED _USB_SETUP_REQ { + UINT8 bRequestType; + UINT8 bRequest; + UINT16 wValue; + UINT16 wIndex; + UINT16 wLength; +} USB_SETUP_REQ, *PUSB_SETUP_REQ; + +typedef struct __PACKED _USB_DEVICE_DESCR { + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 bcdUSB; + UINT8 bDeviceClass; + UINT8 bDeviceSubClass; + UINT8 bDeviceProtocol; + UINT8 bMaxPacketSize0; + UINT16 idVendor; + UINT16 idProduct; + UINT16 bcdDevice; + UINT8 iManufacturer; + UINT8 iProduct; + UINT8 iSerialNumber; + UINT8 bNumConfigurations; +} USB_DEV_DESCR, *PUSB_DEV_DESCR; + +typedef struct __PACKED _USB_CONFIG_DESCR { + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 wTotalLength; + UINT8 bNumInterfaces; + UINT8 bConfigurationValue; + UINT8 iConfiguration; + UINT8 bmAttributes; + UINT8 MaxPower; +} USB_CFG_DESCR, *PUSB_CFG_DESCR; + +typedef struct __PACKED _USB_INTERF_DESCR { + UINT8 bLength; + UINT8 bDescriptorType; + UINT8 bInterfaceNumber; + UINT8 bAlternateSetting; + UINT8 bNumEndpoints; + UINT8 bInterfaceClass; + UINT8 bInterfaceSubClass; + UINT8 bInterfaceProtocol; + UINT8 iInterface; +} USB_ITF_DESCR, *PUSB_ITF_DESCR; + +typedef struct __PACKED _USB_ENDPOINT_DESCR { + UINT8 bLength; + UINT8 bDescriptorType; + UINT8 bEndpointAddress; + UINT8 bmAttributes; + UINT16 wMaxPacketSize; + UINT8 bInterval; +} USB_ENDP_DESCR, *PUSB_ENDP_DESCR; + +typedef struct __PACKED _USB_CONFIG_DESCR_LONG { + USB_CFG_DESCR cfg_descr; + USB_ITF_DESCR itf_descr; + USB_ENDP_DESCR endp_descr[1]; +} USB_CFG_DESCR_LONG, *PUSB_CFG_DESCR_LONG; + +typedef USB_CFG_DESCR_LONG *PXUSB_CFG_DESCR_LONG; + +typedef struct __PACKED _USB_HUB_DESCR { + UINT8 bDescLength; + UINT8 bDescriptorType; + UINT8 bNbrPorts; + UINT8 wHubCharacteristicsL; + UINT8 wHubCharacteristicsH; + UINT8 bPwrOn2PwrGood; + UINT8 bHubContrCurrent; + UINT8 DeviceRemovable; + UINT8 PortPwrCtrlMask; +} USB_HUB_DESCR, *PUSB_HUB_DESCR; + +typedef USB_HUB_DESCR *PXUSB_HUB_DESCR; + +typedef struct __PACKED _USB_HID_DESCR { + UINT8 bLength; + UINT8 bDescriptorType; + UINT16 bcdHID; + UINT8 bCountryCode; + UINT8 bNumDescriptors; + UINT8 bDescriptorTypeX; + UINT8 wDescriptorLengthL; + UINT8 wDescriptorLengthH; +} USB_HID_DESCR, *PUSB_HID_DESCR; + +typedef USB_HID_DESCR *PXUSB_HID_DESCR; + +typedef struct __PACKED _UDISK_BOC_CBW { /* command of BulkOnly USB-FlashDisk */ + UINT32 mCBW_Sig; + UINT32 mCBW_Tag; + UINT32 mCBW_DataLen; /* uppest byte of data length, always is 0 */ + UINT8 mCBW_Flag; /* transfer direction and etc. */ + UINT8 mCBW_LUN; + UINT8 mCBW_CB_Len; /* length of command block */ + UINT8 mCBW_CB_Buf[16]; /* command block buffer */ +} UDISK_BOC_CBW, *PUDISK_BOC_CBW; + +typedef UDISK_BOC_CBW *PXUDISK_BOC_CBW; + +typedef struct __PACKED _UDISK_BOC_CSW { /* status of BulkOnly USB-FlashDisk */ + UINT32 mCSW_Sig; + UINT32 mCSW_Tag; + UINT32 mCSW_Residue; /* return: remainder bytes */ + UINT8 mCSW_Status; /* return: result status */ +} UDISK_BOC_CSW, *PUDISK_BOC_CSW; + +typedef UDISK_BOC_CSW *PXUDISK_BOC_CSW; + +#ifdef __cplusplus +} +#endif + +#endif // __USB_TYPE__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_clk.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_clk.h new file mode 100644 index 0000000..93de385 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_clk.h @@ -0,0 +1,243 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_clk.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_CLK_H__ +#define __CH57x_CLK_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief ϵͳƵ + */ +typedef enum +{ + CLK_SOURCE_LSI = 0xC0, + + CLK_SOURCE_HSE_16MHz = (0x02), + CLK_SOURCE_HSE_8MHz = (0x04), + CLK_SOURCE_HSE_6_4MHz = (0x05), + CLK_SOURCE_HSE_4MHz = (0x08), + CLK_SOURCE_HSE_2MHz = (0x10), + CLK_SOURCE_HSE_1MHz = (0x0), + + CLK_SOURCE_HSE_PLL_100MHz = (0x40 | 6), + CLK_SOURCE_HSE_PLL_75MHz = (0x40 | 8), + CLK_SOURCE_HSE_PLL_60MHz = (0x40 | 10), + CLK_SOURCE_HSE_PLL_50MHz = (0x40 | 12), + CLK_SOURCE_HSE_PLL_40MHz = (0x40 | 15), + CLK_SOURCE_HSE_PLL_30MHz = (0x40 | 20), + CLK_SOURCE_HSE_PLL_25MHz = (0x40 | 24), + CLK_SOURCE_HSE_PLL_24MHz = (0x40 | 25), + CLK_SOURCE_HSE_PLL_20MHz = (0x40 | 30), + +} SYS_CLKTypeDef; + +/** + * @brief 32Mλ + */ +typedef enum +{ + HSE_RCur_75 = 0, + HSE_RCur_100, + HSE_RCur_125, + HSE_RCur_150 + +} HSECurrentTypeDef; + +/** + * @brief 32Mڲݵλ + */ +typedef enum +{ + HSECap_6p = 0, + HSECap_8p, + HSECap_10p, + HSECap_12p, + HSECap_14p, + HSECap_16p, + HSECap_18p, + HSECap_20p + +} HSECapTypeDef; + +#define RTC_MAX_COUNT 0xA8C00000 + +#define MAX_DAY 0x00004000 +#define MAX_2_SEC 0x0000A8C0 +//#define MAX_SEC 0x545FFFFF + +#define BEGYEAR 2020 +#define IsLeapYear(yr) (!((yr) % 400) || (((yr) % 100) && !((yr) % 4))) +#define YearLength(yr) (IsLeapYear(yr) ? 366 : 365) +#define monthLength(lpyr, mon) (((mon) == 1) ? (28 + (lpyr)) : (((mon) > 6) ? (((mon) & 1) ? 31 : 30) : (((mon) & 1) ? 30 : 31))) + +/** + * @brief the total number of cycles captured by the oscillator define + */ +typedef enum +{ + Count_1 = 0, + Count_2, + Count_4, + Count_32, + Count_64, + Count_128, + Count_1024, + Count_2047, +} RTC_OSCCntTypeDef; + +/** + * @brief rtc timer mode period define + */ +typedef enum +{ + Period_4096 = 0, + Period_8192, + Period_16384, + Period_32768, + Period_65536, + Period_131072, + Period_262144, + Period_524288, +} RTC_TMRCycTypeDef; + +/** + * @brief rtc interrupt event define + */ +typedef enum +{ + RTC_TRIG_EVENT = 0, // RTC ¼ + RTC_TMR_EVENT, // RTC ڶʱ¼ + +} RTC_EVENTTypeDef; + +/** + * @brief rtc interrupt mode define + */ +typedef enum +{ + RTC_TRIG_MODE = 0, // RTC ģʽ + RTC_TMR_MODE, // RTC ڶʱģʽ + +} RTC_MODETypeDef; + +/** + * @brief HSE ƫõ + * + * @param c - 75%,100%,125%,150% + */ +void HSECFG_Current(HSECurrentTypeDef c); + +/** + * @brief HSE ص + * + * @param c - refer to HSECapTypeDef + */ +void HSECFG_Capacitance(HSECapTypeDef c); + +/** + * @brief ʼ RTCʱ, Խ,ʼʱԽ,ʱӾԽ + * + * @param cnt - the total number of cycles captured by the oscillator + * + * @return RTCʱ, 24~42KHz + */ +uint32_t RTC_InitClock(RTC_OSCCntTypeDef cnt); + +/** + * @brief RTCʱӳʼǰʱ + * + * @param y - ꣬MAX_Y = BEGYEAR + 44 + * @param mon - £MAX_MON = 12 + * @param d - գMAX_D = 31 + * @param h - СʱMAX_H = 23 + * @param m - ÷ӣMAX_M = 59 + * @param s - 룬MAX_S = 59 + */ +void RTC_InitTime(uint16_t y, uint16_t mon, uint16_t d, uint16_t h, uint16_t m, uint16_t s); + +/** + * @brief ȡǰʱ + * + * @param py - ȡ꣬MAX_Y = BEGYEAR + 44 + * @param pmon - ȡ£MAX_MON = 12 + * @param pd - ȡգMAX_D = 31 + * @param ph - ȡСʱMAX_H = 23 + * @param pm - ȡķӣMAX_M = 59 + * @param ps - ȡ룬MAX_S = 59 + */ +void RTC_GetTime(uint16_t *py, uint16_t *pmon, uint16_t *pd, uint16_t *ph, uint16_t *pm, uint16_t *ps); + +/** + * @brief LSIʱӣõǰRTC + * + * @param cyc - ڼֵMAX_CYC = 0xA8BFFFFF = 2831155199 + */ +void RTC_SetCycleLSI(uint32_t cyc); + +/** + * @brief LSIʱӣȡǰRTC + * + * @return ǰMAX_CYC = 0xA8BFFFFF = 2831155199 + */ +uint32_t RTC_GetCycleLSI(void); + +/** + * @brief RTCʱģʽãעⶨʱ׼̶Ϊ32768Hz + * + * @param t - refer to RTC_TMRCycTypeDef + */ +void RTC_TRIGFunCfg(uint32_t cyc); + +/** + * @brief RTCʱģʽãעⶨʱ׼̶Ϊ32768Hz + * + * @param t - refer to RTC_TMRCycTypeDef + */ +void RTC_TMRFunCfg(RTC_TMRCycTypeDef t); + +/** + * @brief RTC ģʽܹر + * + * @param m - Ҫرյĵǰģʽ + */ +void RTC_ModeFunDisable(RTC_MODETypeDef m); + +/** + * @brief ȡRTCжϱ־ + * + * @param f - refer to RTC_EVENTTypeDef + * + * @return жϱ־״̬ + */ +uint8_t RTC_GetITFlag(RTC_EVENTTypeDef f); + +/** + * @brief RTCжϱ־ + * + * @param f - refer to RTC_EVENTTypeDef + */ +void RTC_ClearITFlag(RTC_EVENTTypeDef f); + +/** + * @brief ƵʱӵԴ + */ +void LClk_Cfg(FunctionalState s); + + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_CLK_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_cmp.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_cmp.h new file mode 100644 index 0000000..1cb9bdc --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_cmp.h @@ -0,0 +1,79 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_cmp.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_CMP_H__ +#define __CH57x_CMP_H__ + +#ifdef __cplusplus +extern "C" { +#endif +/* comparator -channel input sel */ +typedef enum +{ + cmp_sw_0 = 0, // CMP_P0(PA3),CMP_N(PA2) + cmp_sw_1, // CMP_P0(PA3),CMP_N(CMP_VERF) + cmp_sw_2, // CMP_P0(PA7),CMP_N(PA2) + cmp_sw_3 // CMP_P0(PA7),CMP_N(CMP_VERF) +} CMPSwTypeDef; + +//GPIOModeTypeDef +/* comparator negative end point Vref sel */ +typedef enum +{ + cmp_nref_level_50 = 0, // 50mv + cmp_nref_level_100, // 100mv + cmp_nref_level_150, // 150mv + cmp_nref_level_200, // 200mv + cmp_nref_level_250, // 250mv + cmp_nref_level_300, // 300mv + cmp_nref_level_350, // 350mv + cmp_nref_level_400, // 400mv + cmp_nref_level_450, // 450mv + cmp_nref_level_500, // 500mv + cmp_nref_level_550, // 550mv + cmp_nref_level_600, // 600mv + cmp_nref_level_650, // 650mv + cmp_nref_level_700, // 700mv + cmp_nref_level_750, // 750mv + cmp_nref_level_800, // 800mv +} CMPNrefLevelTypeDef; + +/* comparator output sel */ +typedef enum +{ + cmp_out_sel_high = 0, // high + cmp_out_sel_low, // low + cmp_out_sel_fall, // fall edge + cmp_out_sel_rise // rise edge +} CMPOutSelTypeDef; + +#define CMP_GetITStatus() (R8_CMP_CTRL_2 & RB_CMP_IF) + +#define CMP_ClearITStatus() (R8_CMP_CTRL_2 |= RB_CMP_IF) + +#define CMP_ReadAPROut() (R8_CMP_CTRL_3 & RB_APR_OUT_CMP) + +#define CMP_Enable() (R8_CMP_CTRL_0 |= RB_CMP_EN) + +#define CMP_Disable() (R8_CMP_CTRL_0 &= ~RB_CMP_EN) + +void CMP_Init (CMPSwTypeDef s, CMPNrefLevelTypeDef v); + +void CMP_OutToTIMCAPCfg(FunctionalState s); + +void CMP_INTCfg (CMPOutSelTypeDef sel, FunctionalState s); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_CMP_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_common.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_common.h new file mode 100644 index 0000000..94939b8 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_common.h @@ -0,0 +1,95 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_common.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + + +#ifndef __CH57x_COMM_H__ +#define __CH57x_COMM_H__ + +#ifdef __cplusplus + extern "C" { +#endif + + +#ifndef NULL +#define NULL 0 +#endif +#define ALL 0xFFFF + +#ifndef __HIGH_CODE +#define __HIGH_CODE __attribute__((section(".highcode"))) +#endif + +#ifndef __INTERRUPT +#ifdef INT_SOFT +#define __INTERRUPT __attribute__((interrupt())) +#else +#define __INTERRUPT __attribute__((interrupt("WCH-Interrupt-fast"))) +#endif +#endif + +#ifdef DEBUG +#include +#endif + +#ifdef DEBUG +#define PRINT(X...) printf(X) +#else +#define PRINT(X...) +#endif + +/** + * @brief ϵͳƵʱӣHz + */ +#ifndef FREQ_SYS +#define FREQ_SYS 100000000 +#endif + +#ifndef SAFEOPERATE +#define SAFEOPERATE asm volatile("fence.i") +#endif + +#include +#include +#include +#include "core_riscv.h" +#include "CH57x_clk.h" +#include "CH57x_cmp.h" +#include "CH57x_keyscan.h" +#include "CH57x_uart.h" +#include "CH57x_gpio.h" +#include "CH57x_i2c.h" +#include "CH57x_flash.h" +#include "CH57x_pwr.h" +#include "CH57x_pwm.h" +#include "CH57x_sys.h" +#include "CH57x_timer.h" +#include "CH57x_spi.h" +#include "CH57x_usbdev.h" +#include "CH57x_usbhost.h" +#include "ISP572.h" + + /** + * @brief LSIʱӣHz + */ + extern uint32_t Freq_LSI; + +#define DelayMs(x) mDelaymS(x) +#define DelayUs(x) mDelayuS(x) + +#define ROM_CFG_VERISON 0x7F010 + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_COMM_H__ + diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_flash.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_flash.h new file mode 100644 index 0000000..8bc7321 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_flash.h @@ -0,0 +1,41 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_flash.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_FLASH_H__ +#define __CH57x_FLASH_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief ȡFlash-ROM + * + * @param StartAddr - read address + * @param Buffer - read buffer + * @param len - read len + */ +void FLASH_ROM_READ(uint32_t StartAddr, void *Buffer, uint32_t len); + +uint8_t UserOptionByteConfig(FunctionalState RESET_EN, FunctionalState UART_NO_KEY_EN, + uint32_t FLASHProt_Size); + +uint8_t UserOptionByteClose_SWD(void); + +void UserOptionByte_Active(void); + +void GET_UNIQUE_ID(uint8_t *Buffer); +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_FLASH_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_gpio.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_gpio.h new file mode 100644 index 0000000..a19f90f --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_gpio.h @@ -0,0 +1,202 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_gpio.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_GPIO_H__ +#define __CH57x_GPIO_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief GPIO_pins_define + */ +#define GPIO_Pin_0 (0x00000001) /*!< Pin 0 selected */ +#define GPIO_Pin_1 (0x00000002) /*!< Pin 1 selected */ +#define GPIO_Pin_2 (0x00000004) /*!< Pin 2 selected */ +#define GPIO_Pin_3 (0x00000008) /*!< Pin 3 selected */ +#define GPIO_Pin_4 (0x00000010) /*!< Pin 4 selected */ +#define GPIO_Pin_5 (0x00000020) /*!< Pin 5 selected */ +#define GPIO_Pin_6 (0x00000040) /*!< Pin 6 selected */ +#define GPIO_Pin_7 (0x00000080) /*!< Pin 7 selected */ +#define GPIO_Pin_8 (0x00000100) /*!< Pin 8 selected */ +#define GPIO_Pin_9 (0x00000200) /*!< Pin 9 selected */ +#define GPIO_Pin_10 (0x00000400) /*!< Pin 10 selected */ +#define GPIO_Pin_11 (0x00000800) /*!< Pin 11 selected */ +#define GPIO_Pin_12 (0x00001000) /*!< Pin 12 selected */ +#define GPIO_Pin_13 (0x00002000) /*!< Pin 13 selected */ +#define GPIO_Pin_14 (0x00004000) /*!< Pin 14 selected */ +#define GPIO_Pin_15 (0x00008000) /*!< Pin 15 selected */ +#define GPIO_Pin_16 (0x00010000) /*!< Pin 16 selected */ +#define GPIO_Pin_17 (0x00020000) /*!< Pin 17 selected */ +#define GPIO_Pin_18 (0x00040000) /*!< Pin 18 selected */ +#define GPIO_Pin_19 (0x00080000) /*!< Pin 19 selected */ +#define GPIO_Pin_20 (0x00100000) /*!< Pin 20 selected */ +#define GPIO_Pin_21 (0x00200000) /*!< Pin 21 selected */ +#define GPIO_Pin_22 (0x00400000) /*!< Pin 22 selected */ +#define GPIO_Pin_23 (0x00800000) /*!< Pin 23 selected */ +#define GPIO_Pin_All (0xFFFFFFFF) /*!< All pins selected */ + +/** + * @brief GPIO_pins_remap_define + */ +#define REMAP_RXD_PA2 0x00 /*!<Ĭӳ䣨RXD/PA2 */ +#define REMAP_RXD_PA3 0x01 /*!<ӳ䣨RXD/PA3 */ +#define REMAP_RXD_PA0 0x02 /*!<ӳ䣨RXD/PA0 */ +#define REMAP_RXD_PA1 0x03 /*!<ӳ䣨RXD/PA1 */ +#define REMAP_RXD_PA4 0x04 /*!<ӳ䣨RXD/PA4 */ +#define REMAP_RXD_PA9 0x05 /*!<ӳ䣨RXD/PA9 */ +#define REMAP_RXD_PA10 0x06 /*!<ӳ䣨RXD/PA10 */ +#define REMAP_RXD_PA11 0x07 /*!<ӳ䣨RXD/PA11 */ + +#define REMAP_TXD_PA3 0x00 /*!<Ĭӳ䣨TXD/PA3 */ +#define REMAP_TXD_PA2 0x08 /*!<ӳ䣨TXD/PA2 */ +#define REMAP_TXD_PA1 0x10 /*!<ӳ䣨TXD/PA1 */ +#define REMAP_TXD_PA0 0x18 /*!<ӳ䣨TXD/PA0 */ +#define REMAP_TXD_PA7 0x20 /*!<ӳ䣨TXD/PA7 */ +#define REMAP_TXD_PA8 0x28 /*!<ӳ䣨TXD/PA8 */ +#define REMAP_TXD_PA11 0x30 /*!<ӳ䣨TXD/PA11 */ +#define REMAP_TXD_PA10 0x38 /*!<ӳ䣨TXD/PA10 */ + +#define REMAP_TMR_DEFAULT 0x00 /*!<Ĭӳ䣨PWM0/PA7CAP_IN1/PA7CAP_IN2/PA2 */ +#define REMAP_TMR_MODE1 0x40 /*!<ӳ1 PWM0/PA2CAP_IN1/PA2CAP_IN2/PA7 */ +#define REMAP_TMR_MODE2 0x80 /*!<ӳ2PWM0/PA4CAP_IN1/PA4CAP_IN2/PA9 */ +#define REMAP_TMR_MODE3 0xC0 /*!<ӳ3PWM0/PA9CAP_IN1/PA9CAP_IN2/PA4 */ + +#define REMAP_I2C_DEFAULT 0x00 /*!<Ĭӳ䣨SCL/PA8SDA/PA9 */ +#define REMAP_I2C_MODE1 0x200 /*!<ӳ1 SCL/PA0SDA/PA1 */ +#define REMAP_I2C_MODE2 0x400 /*!<ӳ2 SCL/PA3SDA/PA2 */ +#define REMAP_I2C_MODE3 0x600 /*!<ӳ3 SCL/PA5SDA/PA6 */ + +/** + * @brief Configuration GPIO Mode + */ +typedef enum +{ + GPIO_ModeIN_Floating, // + GPIO_ModeIN_PU, // + GPIO_ModeIN_PD, // + GPIO_ModeOut_PP_5mA, //5mA + GPIO_ModeOut_PP_20mA, //20mA + +} GPIOModeTypeDef; + +/** + * @brief Configuration GPIO IT Mode + */ +typedef enum +{ + GPIO_ITMode_LowLevel, //͵ƽ + GPIO_ITMode_HighLevel, //ߵƽ + GPIO_ITMode_FallEdge, //½ش + GPIO_ITMode_RiseEdge, //ش + +} GPIOITModeTpDef; + +/** + * @brief GPIOA˿ģʽ + * + * @param pin - PA0-PA15 + * @param mode - + */ +void GPIOA_ModeCfg(uint32_t pin, GPIOModeTypeDef mode); + +/** + * @brief GPIOA˿õ + * + * @param pin - PA0-PA15 + */ +#define GPIOA_ResetBits(pin) (R32_PA_CLR = pin) + +/** + * @brief GPIOA˿ø + * + * @param pin - PA0-PA15 + */ +#define GPIOA_SetBits(pin) (R32_PA_SET = pin) + +/** + * @brief GPIOA˿ƽת + * + * @param pin - PA0-PA15 + */ +#define GPIOA_InverseBits(pin) (R32_PA_OUT ^= pin) + +/** + * @brief GPIOA˿32λݷأ16λЧ + * + * @return GPIOA˿32λ + */ +#define GPIOA_ReadPort() (R32_PA_PIN) + +/** + * @brief GPIOA˿״̬0-ŵ͵ƽ(!0)-Ÿߵƽ + * + * @param pin - PA0-PA15 + * + * @return GPIOA˿״̬ + */ +#define GPIOA_ReadPortPin(pin) (R32_PA_PIN & (pin)) + +/** + * @brief GPIOAжģʽ + * + * @param pin - PA0-PA15 + * @param mode - + */ +void GPIOA_ITModeCfg(uint32_t pin, GPIOITModeTpDef mode); + +/** + * @brief ȡGPIOA˿жϱ־״̬ + * + * @return GPIOA˿жϱ־״̬ + */ +#define GPIOA_ReadITFlagPort() (R16_PA_INT_IF) + +/** + * @brief ȡGPIOA˿жϱ־״̬ + * + * @param pin - PA0-PA15 + * + * @return GPIOA˿жϱ־״̬ + */ +#define GPIOA_ReadITFlagBit(pin) (R16_PA_INT_IF & (pin)) + +/** + * @brief GPIOA˿жϱ־״̬ + * + * @param pin - PA0-PA15 + */ +#define GPIOA_ClearITFlagBit(pin) (R16_PA_INT_IF = pin) + +/** + * @brief 蹦ӳ + * + * @param s - Ƿʹӳ + * @param perph - дӳϵGPIO_pins_remap_define + */ +void GPIOPinRemap(FunctionalState s, uint16_t perph); + +/** + * @brief I/O pinֹܿ + * + * @param s - Ƿ򿪶ӦI/O pinֹ + * @param pin - PA0-PA15 + */ +void GPIOADigitalCfg(FunctionalState s, uint16_t pin); + + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_GPIO_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_i2c.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_i2c.h new file mode 100644 index 0000000..34782b7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_i2c.h @@ -0,0 +1,191 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_i2c.h + * Author : WCH + * Version : V1.0 + * Date : 2024/8/22 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + + +#ifndef __CH57x_I2C_H__ +#define __CH57x_I2C_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* I2C_transfer_direction */ +#define I2C_Direction_Transmitter ((uint8_t)0x00) +#define I2C_Direction_Receiver ((uint8_t)0x01) + +/* I2C ADD0 mask */ +#define OADDR1_ADD0_Set ((uint16_t)0x0001) +#define OADDR1_ADD0_Reset ((uint16_t)0xFFFE) + +/* I2C_NACK_position */ +#define I2C_NACKPosition_Next ((uint16_t)RB_I2C_POS) +#define I2C_NACKPosition_Current ((uint16_t)~RB_I2C_POS) + +/* I2C_PEC_position */ +#define I2C_PECPosition_Next ((uint16_t)RB_I2C_POS) +#define I2C_PECPosition_Current ((uint16_t)~RB_I2C_POS) + +/* I2C_SMBus_alert_pin_level */ +#define I2C_SMBusAlert_Low ((uint16_t)RB_I2C_ALERT) +#define I2C_SMBusAlert_High ((uint16_t)~RB_I2C_ALERT) + +/* I2C FLAG mask */ +#define FLAG_Mask ((uint32_t)0x00FFFFFF) + +/* I2C Interrupt Enable mask */ +#define ITEN_Mask ((uint32_t)0x07000000) + +/* I2C_mode */ +typedef enum +{ + I2C_Mode_I2C = 0x0000, + I2C_Mode_SMBusDevice = 0x0002, + I2C_Mode_SMBusHost = 0x000A, +} I2C_ModeTypeDef; + +/* I2C_duty_cycle_in_fast_mode */ +typedef enum +{ + I2C_DutyCycle_16_9 = RB_I2C_DUTY, /* I2C fast mode Tlow/Thigh = 16/9 */ + I2C_DutyCycle_2 = 0x0000, /* I2C fast mode Tlow/Thigh = 2 */ +} I2C_DutyTypeDef; + +/* I2C_acknowledgement - Enables or disables the acknowledgement.*/ +typedef enum +{ + I2C_Ack_Enable = RB_I2C_ACK, + I2C_Ack_Disable = 0x0000, +} I2C_AckTypeDef; + +/* I2C_acknowledged_address - Specifies if 7-bit or 10-bit address is acknowledged. */ +typedef enum +{ + I2C_AckAddr_7bit = 0x4000, + I2C_AckAddr_10bit = 0xC000, +} I2C_AckAddrTypeDef; + +/* I2C_interrupts_definition */ +typedef enum +{ + I2C_IT_BUF = 0x0400, /* Buffer interrupt mask. */ + I2C_IT_EVT = 0x0200, /* Event interrupt mask. */ + I2C_IT_ERR = 0x0100, /* Error interrupt mask. */ +} I2C_ITTypeDef; + +/* I2C_interrupts_definition */ +#define I2C_IT_SMBALERT ((uint32_t)0x01008000) +#define I2C_IT_TIMEOUT ((uint32_t)0x01004000) +#define I2C_IT_PECERR ((uint32_t)0x01001000) +#define I2C_IT_OVR ((uint32_t)0x01000800) +#define I2C_IT_AF ((uint32_t)0x01000400) +#define I2C_IT_ARLO ((uint32_t)0x01000200) +#define I2C_IT_BERR ((uint32_t)0x01000100) +#define I2C_IT_TXE ((uint32_t)0x06000080) +#define I2C_IT_RXNE ((uint32_t)0x06000040) +#define I2C_IT_STOPF ((uint32_t)0x02000010) +#define I2C_IT_ADD10 ((uint32_t)0x02000008) +#define I2C_IT_BTF ((uint32_t)0x02000004) +#define I2C_IT_ADDR ((uint32_t)0x02000002) +#define I2C_IT_SB ((uint32_t)0x02000001) + +/* SR2 register flags */ +#define I2C_FLAG_DUALF ((uint32_t)0x00800000) +#define I2C_FLAG_SMBHOST ((uint32_t)0x00400000) +#define I2C_FLAG_SMBDEFAULT ((uint32_t)0x00200000) +#define I2C_FLAG_GENCALL ((uint32_t)0x00100000) +#define I2C_FLAG_TRA ((uint32_t)0x00040000) +#define I2C_FLAG_BUSY ((uint32_t)0x00020000) +#define I2C_FLAG_MSL ((uint32_t)0x00010000) + +/* SR1 register flags */ +#define I2C_FLAG_SMBALERT ((uint32_t)0x10008000) +#define I2C_FLAG_TIMEOUT ((uint32_t)0x10004000) +#define I2C_FLAG_PECERR ((uint32_t)0x10001000) +#define I2C_FLAG_OVR ((uint32_t)0x10000800) +#define I2C_FLAG_AF ((uint32_t)0x10000400) +#define I2C_FLAG_ARLO ((uint32_t)0x10000200) +#define I2C_FLAG_BERR ((uint32_t)0x10000100) +#define I2C_FLAG_TXE ((uint32_t)0x10000080) +#define I2C_FLAG_RXNE ((uint32_t)0x10000040) +#define I2C_FLAG_STOPF ((uint32_t)0x10000010) +#define I2C_FLAG_ADD10 ((uint32_t)0x10000008) +#define I2C_FLAG_BTF ((uint32_t)0x10000004) +#define I2C_FLAG_ADDR ((uint32_t)0x10000002) +#define I2C_FLAG_SB ((uint32_t)0x10000001) + +/****************I2C Master Events (Events grouped in order of communication)********************/ + +#define I2C_EVENT_MASTER_MODE_SELECT ((uint32_t)0x00030001) /* BUSY, MSL and SB flag */ +#define I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ((uint32_t)0x00070082) /* BUSY, MSL, ADDR, TXE and TRA flags */ +#define I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ((uint32_t)0x00030002) /* BUSY, MSL and ADDR flags */ +#define I2C_EVENT_MASTER_MODE_ADDRESS10 ((uint32_t)0x00030008) /* BUSY, MSL and ADD10 flags */ +#define I2C_EVENT_MASTER_BYTE_RECEIVED ((uint32_t)0x00030040) /* BUSY, MSL and RXNE flags */ +#define I2C_EVENT_MASTER_BYTE_TRANSMITTING ((uint32_t)0x00070080) /* TRA, BUSY, MSL, TXE flags */ +#define I2C_EVENT_MASTER_BYTE_TRANSMITTED ((uint32_t)0x00070084) /* TRA, BUSY, MSL, TXE and BTF flags */ + +/******************I2C Slave Events (Events grouped in order of communication)******************/ + +#define I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED ((uint32_t)0x00020002) /* BUSY and ADDR flags */ +#define I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED ((uint32_t)0x00060082) /* TRA, BUSY, TXE and ADDR flags */ +#define I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED ((uint32_t)0x00820000) /* DUALF and BUSY flags */ +#define I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED ((uint32_t)0x00860080) /* DUALF, TRA, BUSY and TXE flags */ +#define I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED ((uint32_t)0x00120000) /* GENCALL and BUSY flags */ +#define I2C_EVENT_SLAVE_BYTE_RECEIVED ((uint32_t)0x00020040) /* BUSY and RXNE flags */ +#define I2C_EVENT_SLAVE_STOP_DETECTED ((uint32_t)0x00000010) /* STOPF flag */ +#define I2C_EVENT_SLAVE_BYTE_TRANSMITTED ((uint32_t)0x00060084) /* TRA, BUSY, TXE and BTF flags */ +#define I2C_EVENT_SLAVE_BYTE_TRANSMITTING ((uint32_t)0x00060080) /* TRA, BUSY and TXE flags */ +#define I2C_EVENT_SLAVE_ACK_FAILURE ((uint32_t)0x00000400) /* AF flag */ + +void I2C_Init(I2C_ModeTypeDef I2C_Mode, uint32_t I2C_ClockSpeed, I2C_DutyTypeDef I2C_DutyCycle, + I2C_AckTypeDef I2C_Ack, I2C_AckAddrTypeDef I2C_AckAddr, uint16_t I2C_OwnAddress1); +void I2C_Cmd(FunctionalState NewState); +void I2C_GenerateSTART(FunctionalState NewState); +void I2C_GenerateSTOP(FunctionalState NewState); +void I2C_AcknowledgeConfig(FunctionalState NewState); +void I2C_OwnAddress2Config(uint8_t Address); +void I2C_DualAddressCmd(FunctionalState NewState); +void I2C_GeneralCallCmd(FunctionalState NewState); +void I2C_ITConfig(I2C_ITTypeDef I2C_IT, FunctionalState NewState); +void I2C_SendData(uint8_t Data); + +uint8_t I2C_ReceiveData(void); + +void I2C_Send7bitAddress(uint8_t Address, uint8_t I2C_Direction); +void I2C_SoftwareResetCmd(FunctionalState NewState); +void I2C_NACKPositionConfig(uint16_t I2C_NACKPosition); +void I2C_SMBusAlertConfig(uint16_t I2C_SMBusAlert); +void I2C_TransmitPEC(FunctionalState NewState); +void I2C_PECPositionConfig(uint16_t I2C_PECPosition); +void I2C_CalculatePEC(FunctionalState NewState); + +uint8_t I2C_GetPEC(void); + +void I2C_ARPCmd(FunctionalState NewState); +void I2C_StretchClockCmd(FunctionalState NewState); +void I2C_FastModeDutyCycleConfig(uint16_t I2C_DutyCycle); + +/**************************************************************************************** + * I2C State Monitoring Functions + ****************************************************************************************/ +uint8_t I2C_CheckEvent(uint32_t I2C_EVENT); +uint32_t I2C_GetLastEvent(void); +FlagStatus I2C_GetFlagStatus(uint32_t I2C_FLAG); + +void I2C_ClearFlag(uint32_t I2C_FLAG); +ITStatus I2C_GetITStatus(uint32_t I2C_IT); +void I2C_ClearITPendingBit(uint32_t I2C_IT); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_I2C_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_keyscan.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_keyscan.h new file mode 100644 index 0000000..5a02341 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_keyscan.h @@ -0,0 +1,96 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_keyscan.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_KEYSCAN_H__ +#define __CH57x_KEYSCAN_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * @brief Keyscan Pin Configuration + */ +#define KEYSCAN_PA2 0x100 +#define KEYSCAN_PA3 0x200 +#define KEYSCAN_PA8 0x400 +#define KEYSCAN_PA10 0x800 +#define KEYSCAN_PA11 0x1000 +#define KEYSCAN_ALL 0x1F00 + +/* + * @brief Keyscan Clock Division + */ +#define KEYSCAN_DIV1 0x00 +#define KEYSCAN_DIV2 0x10 +#define KEYSCAN_DIV4 0x30 +#define KEYSCAN_DIV8 0x70 +#define KEYSCAN_DIV16 0xF0 + +/* + * @brief Keyscan repetition times + */ +#define KEYSCAN_REP1 0x02 +#define KEYSCAN_REP2 0x04 +#define KEYSCAN_REP3 0x06 +#define KEYSCAN_REP4 0x08 +#define KEYSCAN_REP5 0x0A +#define KEYSCAN_REP6 0x0C +#define KEYSCAN_REP7 0x0E + +/* + * @brief Keyscan Configuration + */ +void KeyScan_Cfg(uint8_t s, uint16_t keyScanPin, uint16_t ClkDiv, uint16_t Rep); + +/* + * @brief Keypress Wakeup Enable + */ +void KeyPress_Wake(uint8_t s); + +/* + * @brief Key Values Return + */ +#define KeyValue (R32_KEY_SCAN_NUMB & RB_KEY_SCAN_NUMB) + +/* + * @brief Keyscan Count + */ +#define KeyScan_Cnt (R32_KEY_SCAN_NUMB >> 20) + +/** + * @brief KeyScanж + * + * @param s - ʹ/ر + * @param f - refer to ENC interrupt bit define + */ +#define KeyScan_ITCfg(s, f) ((s) ? (R8_KEY_SCAN_INT_EN |= f) : (R8_KEY_SCAN_INT_EN &= ~f)) + +/** + * @brief ENCжϱ־ + * + * @param f - refer to ENC interrupt bit define + */ +#define KeyScan_ClearITFlag(f) (R8_KEY_SCAN_INT_FLAG = f) + +/** + * @brief ѯжϱ־״̬ + * + * @param f - refer to ENC interrupt bit define + */ +#define KeyScan_GetITFlag(f) (R8_KEY_SCAN_INT_FLAG & f) + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_KEYSCAN_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwm.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwm.h new file mode 100644 index 0000000..17e542d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwm.h @@ -0,0 +1,223 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_pwm.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_PWM_H__ +#define __CH57x_PWM_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief channel of PWM define + */ +#define CH_PWM1 0x01 // PWM1 ͨ +#define CH_PWM2 0x02 // PWM2 ͨ +#define CH_PWM3 0x04 // PWM3 ͨ +#define CH_PWM4 0x08 // PWM4 ͨ +#define CH_PWM5 0x10 // PWM5 ͨ +#define CH_PWM_ALL 0x1F // PWM1-5 ͨ + +/** + * @brief DMA channel of PWM + */ +typedef enum +{ + Mode_DMACH1_3 = 0, // DMAѡ123ͨ + Mode_DMACH4_5, // DMAѡ45ͨ + Mode_DMACH1_5, // DMAѡ12345ͨ +} PWM_DMAChannel; + +/** + * @brief channel of PWM define + */ +typedef enum +{ + High_Level = 0, // Ĭϵ͵ƽߵƽЧ + Low_Level, // Ĭϸߵƽ͵ƽЧ +} PWMX_PolarTypeDef; + +/** + * @brief Configuration PWM4_11 Cycle size + */ +typedef enum +{ + PWMX_Cycle_256 = 0, // 256 PWMX + PWMX_Cycle_255, // 255 PWMX + PWMX_Cycle_128, // 128 PWMX + PWMX_Cycle_127, // 127 PWMX + PWMX_Cycle_64, // 64 PWMX + PWMX_Cycle_63, // 63 PWMX +} PWMX_CycleTypeDef; + +/** + * @brief Configuration DMA mode + */ +typedef enum +{ + PWM_ModeSINGLE = 0, // ģʽ + PWM_ModeLOOP, // ѭģʽ +} PWM_DMAModeTypeDef; + +/** + * @brief PWM ͨ׼ʱ + * + * @param d - ͨ׼ʱ = d*Tsys + */ +#define PWMX_CLKCfg(d) (R16_PWM_CLOCK_DIV = d) + +/** + * @brief PWM 8λ + * + * @param cyc - refer to PWMX_CycleTypeDef + */ +void PWMX_CycleCfg(PWMX_CycleTypeDef cyc); + +/** + * @brief PWM 16λ + * + * @param ch - select channel of pwm, refer to channel of PWM define + * cyc - 16λ + */ +void PWMX_16bit_CycleCfg(uint8_t ch, uint16_t cyc); + +/** + * @brief PWM 16λλʹ + */ +#define PWM_16bit_CycleEnable() (R8_PWM_CONFIG |= (3 << 1)) + +/** + * @brief PWM 16λλʧ + */ +#define PWM_16bit_CycleDisable() (R8_PWM_CONFIG &= ~(3 << 1)) + +/** + * @brief PWM1 8λЧ + * + * @param d - Ч + */ +#define PWM1_ActDataWidth(d) (R8_PWM1_DATA = d) + +/** + * @brief PWM2 8λЧ + * + * @param d - Ч + */ +#define PWM2_ActDataWidth(d) (R8_PWM2_DATA = d) + +/** + * @brief PWM3 8λЧ + * + * @param d - Ч + */ +#define PWM3_ActDataWidth(d) (R8_PWM3_DATA = d) + +/** + * @brief PWM4 8λЧ + * + * @param d - Ч + */ +#define PWM4_ActDataWidth(d) (R8_PWM4_DATA = d) + +/** + * @brief PWM5 8λЧ + * + * @param d - Ч + */ +#define PWM5_ActDataWidth(d) (R8_PWM5_DATA = d) + +/** + * @brief PWM1 16λЧ + * + * @param d - Ч + */ +#define PWM1_16bit_ActDataWidth(d) (R16_PWM1_DATA = d) + +/** + * @brief PWM2 16λЧ + * + * @param d - Ч + */ +#define PWM2_16bit_ActDataWidth(d) (R16_PWM2_DATA = d) + +/** + * @brief PWM3 16λЧ + * + * @param d - Ч + */ +#define PWM3_16bit_ActDataWidth(d) (R16_PWM3_DATA = d) + +/** + * @brief PWM4 16λЧ + * + * @param d - Ч + */ +#define PWM4_16bit_ActDataWidth(d) (R16_PWM4_DATA = d) + +/** + * @brief PWM5 16λЧ + * + * @param d - Ч + */ +#define PWM5_16bit_ActDataWidth(d) (R16_PWM5_DATA = d) + +/** + * @brief PWM 8λ + * + * @param ch - select channel of pwm, refer to channel of PWM define + * @param da - effective pulse width + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param s - control pwmx function, ENABLE or DISABLE + */ +void PWMX_ACTOUT(uint8_t ch, uint8_t da, PWMX_PolarTypeDef pr, FunctionalState s); + +/** + * @brief PWM 16λ + * + * @param ch - select channel of pwm, refer to channel of PWM define + * @param da - effective pulse width + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param s - control pwmx function, ENABLE or DISABLE + */ +void PWMX_16bit_ACTOUT(uint8_t ch, uint16_t da, PWMX_PolarTypeDef pr, FunctionalState s); + +/** + * @brief PWM ģʽ + * + * @param ch - select group of PWM alternate output + * RB_PWM4_5_STAG_EN - PWM4 PWM5 ͨ + * @param s - control pwmx function, ENABLE or DISABLE + */ +void PWMX_AlterOutCfg(uint8_t ch, FunctionalState s); + +/** + * @brief PWM ͬģʽ + * + * @param s - control pwmx function, ENABLE or DISABLE + */ +void PWMX_SyncOutCfg(FunctionalState s); + +/** + * @brief PWM DMA + * + * @param s - ǷDMA + * @param startAddr - DMA ʼַ + * @param endAddr - DMA ַ + * @param m - DMAģʽ + */ +void PWM_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, PWM_DMAModeTypeDef m, PWM_DMAChannel ch); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_PWM_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwr.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwr.h new file mode 100644 index 0000000..980dbb7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_pwr.h @@ -0,0 +1,118 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_pwr.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_PWR_H__ +#define __CH57x_PWR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define ROM_CFG_ADR_HW 0x7F00C // config address for hardware config for LDO&OSC and etc + +/** + * @brief wakeup mode define, select wakeup delay + */ +typedef enum +{ + Fsys_Delay_3584 = 0, + Fsys_Delay_512, + Fsys_Delay_64, + Fsys_Delay_1, + Fsys_Delay_8191, + Fsys_Delay_7168, + Fsys_Delay_6144, + Fsys_Delay_4096, + +} WakeUP_ModeypeDef; + +/** + * @brief wakeup mode define + */ +typedef enum +{ + /* ȼʹõ͹ļأ1uA */ + LPLevel_1V8 = 0, + LPLevel_2V0, + LPLevel_2V2, + LPLevel_2V4, + +} VolM_LevelypeDef; + +/** + * @brief ʱӿλ + * + * @param s - Ƿ򿪶Ӧʱ + * @param perph - please refer to Peripher CLK control bit define + */ +void PWR_PeriphClkCfg(FunctionalState s, uint16_t perph); + +/** + * @brief ˯߻Դ + * + * @param s - Ƿ򿪴˯߻ѹ + * @param perph - ҪõĻԴ + * RB_SLP_USB_WAKE - USB ΪԴ + * RB_SLP_RTC_WAKE - RTC ΪԴ + * RB_SLP_GPIO_WAKE - GPIO ΪԴ + * RB_SLP_BAT_WAKE - BAT ΪԴ + * @param mode - refer to WakeUP_ModeypeDef + */ +void PWR_PeriphWakeUpCfg(FunctionalState s, uint8_t perph, WakeUP_ModeypeDef mode); + +/** + * @brief Դ + * + * @param s - Ƿ򿪴˹ + * @param vl - refer to VolM_LevelypeDef + */ +void PowerMonitor(FunctionalState s, VolM_LevelypeDef vl); + +/** + * @brief ͹-Idleģʽ + */ +void LowPower_Idle(void); + +/** + * @brief ͹-Haltģʽ˵͹еHSI/5ʱУѺҪûԼѡϵͳʱԴ + */ +void LowPower_Halt(void); + +/** + * @brief ͹-Sleepģʽ˵͹еHSI/5ʱУѺҪûԼѡϵͳʱԴ + * @note עô˺DCDCǿƹرգѺֶٴδ + * + * @param rm - ģѡ + * RB_PWR_RAM2K - 2K retention SRAM + * RB_PWR_RAM16K - 16K main SRAM + * RB_PWR_EXTEND - USB BLE Ԫ򹩵 + * RB_PWR_XROM - FlashROM + * NULL - ϵԪϵ + */ +void LowPower_Sleep(uint16_t rm); + +/** + * @brief ͹-Shutdownģʽ˵͹еHSI/5ʱУѺҪûԼѡϵͳʱԴ + * @note עô˺DCDCǿƹرգѺֶٴδ + * + * @param rm - ģѡ + * RB_PWR_RAM2K - 2K retention SRAM + * RB_PWR_RAM16K - 16K main SRAM + * NULL - ϵԪϵ + */ +void LowPower_Shutdown(uint16_t rm); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_PWR_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_spi.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_spi.h new file mode 100644 index 0000000..979170b --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_spi.h @@ -0,0 +1,229 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_SPI.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_SPI_H__ +#define __CH57x_SPI_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief SPI interrupt bit define + */ +#define SPI_IT_FST_BYTE RB_SPI_IE_FST_BYTE // ӻģʽֽģʽ£յֽж +#define SPI_IT_FIFO_OV RB_SPI_IE_FIFO_OV // FIFO +#define SPI_IT_DMA_END RB_SPI_IE_DMA_END // DMA +#define SPI_IT_FIFO_HF RB_SPI_IE_FIFO_HF // FIFO ʹù +#define SPI_IT_BYTE_END RB_SPI_IE_BYTE_END // ֽڴ +#define SPI_IT_CNT_END RB_SPI_IE_CNT_END // ȫֽڴ + +/** + * @brief Configuration data mode + */ +typedef enum +{ + Mode0_LowBitINFront = 0, // ģʽ0λǰ + Mode0_HighBitINFront, // ģʽ0λǰ + Mode3_LowBitINFront, // ģʽ3λǰ + Mode3_HighBitINFront, // ģʽ3λǰ +} ModeBitOrderTypeDef; + +/** + * @brief Configuration SPI slave mode + */ +typedef enum +{ + Mode_DataStream = 0, // ģʽ + Mose_FirstCmd, // ֽģʽ +} Slave_ModeTypeDef; + +/** + * @brief ģʽĬϳʼģʽ0+3ȫ˫+8MHz + */ +void SPI_MasterDefInit(void); + +/** + * @brief 2߷ģʽʼģʽ1+2߰˫+8MHz + */ +void SPI_2WIRE_MasterOutputInit(void); + +/** + * @brief 2߽ģʽʼģʽ1+2߰˫+8MHz + */ +void SPI_2WIRE_MasterReceiveInit(void); + +/** + * @brief ӻ2߽ģʽʼ + */ +void SPI_2WIRE_SlaveInputInit(void); + +/** + * @brief ӻ2߷ģʽʼ + */ +void SPI_2WIRE_SlaveOutputInit(void); + +/** + * @brief SPI ׼ʱã= d*Tsys + * + * @param c - ʱӷƵϵ + */ +void SPI_CLKCfg(uint8_t c); + +/** + * @brief ģʽ + * + * @param m - ģʽ refer to ModeBitOrderTypeDef + */ +void SPI_DataMode(ModeBitOrderTypeDef m); + +/** + * @brief ͵ֽ (buffer) + * + * @param d - ֽ + */ +void SPI_MasterSendByte(uint8_t d); + +/** + * @brief յֽ (buffer) + * + * @param none + */ +uint8_t SPI_MasterRecvByte(void); + +/** + * @brief ʹFIFOͶֽ + * + * @param pbuf - ͵׵ַ + * @param len - ͵ݳȣ4095 + */ +void SPI_MasterTrans(uint8_t *pbuf, uint16_t len); + +/** + * @brief ʹFIFOնֽ + * + * @param pbuf - յ׵ַ + * @param len - յݳȣ4095 + */ +void SPI_MasterRecv(uint8_t *pbuf, uint16_t len); + +/** + * @brief DMAʽ + * + * @param pbuf - ʼַ,Ҫֽڶ + * @param len - ݳ + */ +void SPI_MasterDMATrans(uint8_t *pbuf, uint16_t len); + +/** + * @brief DMAʽ + * + * @param pbuf - ݴʼַ,Ҫֽڶ + * @param len - ݳ + */ +void SPI_MasterDMARecv(uint8_t *pbuf, uint16_t len); + +/** + * @brief ֽ + * + * @param d - ֽ + */ +#define SetFirstData(d) (R8_SPI_SLAVE_PRE = d) + +/** + * @brief ӻģʽʼ + */ +void SPI_SlaveInit(void); + +/** + * @brief ӻ2ģʽʼ + */ +void SPI_2WIRE_SlaveInit(void); + +/** + * @brief ӻģʽһֽ + * + * @param d - + */ +void SPI_SlaveSendByte(uint8_t d); + +/** + * @brief ӻģʽһֽ + * + * @return յ + */ +uint8_t SPI_SlaveRecvByte(void); + +/** + * @brief ӻģʽͶֽ + * + * @param pbuf - ͵׵ַ + * @param len - ͵ݳȣ4095 + */ +void SPI_SlaveTrans(uint8_t *pbuf, uint16_t len); + +/** + * @brief ӻģʽնֽ + * + * @param pbuf - ݴʼַ + * @param len - ݳ + */ +void SPI_SlaveRecv(uint8_t *pbuf, uint16_t len); + +/** + * @brief DMAʽ + * + * @param pbuf - ʼַ,Ҫֽڶ + * @param len - ݳ + */ +void SPI_SlaveDMATrans(uint8_t *pbuf, uint16_t len); + +/** + * @brief DMAʽ + * + * @param pbuf - ݴʼַ,Ҫֽڶ + * @param len - ݳ + */ +void SPI_SlaveDMARecv(uint8_t *pbuf, uint16_t len); + +/** + * @brief SPIж + * + * @param s - ʹ/ر + * @param f - refer to SPI interrupt bit define + */ +#define SPI_ITCfg(s, f) ((s) ? (R8_SPI_INTER_EN |= f) : (R8_SPI_INTER_EN &= ~f)) + +/** + * @brief ȡжϱ־״̬0-δλ(!0)- + * + * @param f - refer to SPI interrupt bit define + */ +#define SPI_GetITFlag(f) (R8_SPI_INT_FLAG & f) + +/** + * @brief ǰжϱ־ + * + * @param f - refer to SPI interrupt bit define + */ +#define SPI_ClearITFlag(f) (R8_SPI_INT_FLAG = f) + +/** + * @brief رSPI + */ +#define SPI_Disable() (R8_SPI_CTRL_MOD &= ~(RB_SPI_MOSI_OE | RB_SPI_SCK_OE | RB_SPI_MISO_OE)) + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_SPI_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_sys.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_sys.h new file mode 100644 index 0000000..fbdbdf7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_sys.h @@ -0,0 +1,188 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_SYS.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_SYS_H__ +#define __CH57x_SYS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief rtc interrupt event define + */ +typedef enum +{ + RST_STATUS_SW = 0, // λ + RST_STATUS_RPOR, // ϵ縴λ + RST_STATUS_WTR, // Źʱλ + RST_STATUS_MR, // ⲿֶλ + RST_STATUS_LRM0, // Ѹλ-λ + RST_STATUS_GPWSM, // µģʽѸλ + RST_STATUS_LRM1, // Ѹλ-Ź + RST_STATUS_LRM2, // Ѹλ-ֶλ + +} SYS_ResetStaTypeDef; + +/** + * @brief rtc interrupt event define + */ +typedef enum +{ + INFO_RESET_EN = 0x4, // RST#ⲿֶλ빦Ƿ + INFO_BOOT_EN = 0x8, // ϵͳ BootLoader Ƿ + INFO_RST_PIN = 0x10, // λѡ1PA70PA8 + INFO_LOADER = 0x20, // ǰϵͳǷBootloader + STA_SAFEACC_ACT = 0x30,// ǰϵͳǷڰȫ״̬RWA򲻿ɷ + +} SYS_InfoStaTypeDef; + +/** + * @brief ȡоƬID࣬һΪ̶ֵ + */ +#define SYS_GetChipID() R8_CHIP_ID + +/** + * @brief ȡȫIDһΪ̶ֵ + */ +#define SYS_GetAccessID() R8_SAFE_ACCESS_ID + +/** + * @brief ϵͳʱ + * + * @param sc - ϵͳʱԴѡ refer to SYS_CLKTypeDef + */ +void SetSysClock(SYS_CLKTypeDef sc); + +/** + * @brief ȡǰϵͳʱ + * + * @return Hz + */ +uint32_t GetSysClock(void); + +/** + * @brief ȡǰϵͳϢ״̬ + * + * @param i - refer to SYS_InfoStaTypeDef + * + * @return Ƿ + */ +uint8_t SYS_GetInfoSta(SYS_InfoStaTypeDef i); + +/** + * @brief ȡϵͳϴθλ״̬ + * + * @return refer to SYS_ResetStaTypeDef + */ +#define SYS_GetLastResetSta() (R8_RESET_STATUS & RB_RESET_FLAG) + +/** + * @brief ִϵͳλ + */ +void SYS_ResetExecute(void); + +/** + * @brief øλĴֵֶλ λ ŹλͨѸλӰ + * + * @param i - refer to SYS_InfoStaTypeDef + */ +#define SYS_ResetKeepBuf(d) (R8_GLOB_RESET_KEEP = d) + +/** + * @brief رжϣǰжֵ + * + * @param pirqv - ǰжֵ + */ +void SYS_DisableAllIrq(uint32_t *pirqv); + +/** + * @brief ָ֮ǰرյжֵ + * + * @param irq_status - ǰжֵ + */ +void SYS_RecoverIrq(uint32_t irq_status); + +/** + * @brief ȡǰϵͳ(SYSTICK)ֵ + * + * @return ǰֵ + */ +uint32_t SYS_GetSysTickCnt(void); + +/** + * @brief ؿŹֵ + * + * @param c - Źֵ + */ +#define WWDG_SetCounter(c) (R8_WDOG_COUNT = c) + +/** + * @brief Źʱжʹ + * + * @param s - Ƿж + */ +void WWDG_ITCfg(FunctionalState s); + +/** + * @brief Źʱλ + * + * @param s - Ƿλ + */ +void WWDG_ResetCfg(FunctionalState s); + +/** + * @brief ȡǰŹʱ־ + * + * @return Źʱ־ + */ +#define WWDG_GetFlowFlag() (R8_RST_WDOG_CTRL & RB_WDOG_INT_FLAG) + +/** + * @brief Źжϱ־¼ؼֵҲ + */ +void WWDG_ClearFlag(void); + +/** + * @brief uS ʱ + * + * @param t - ʱ + */ +void mDelayuS(uint16_t t); + +/** + * @brief mS ʱ + * + * @param t - ʱ + */ +void mDelaymS(uint16_t t); + +/** + * @brief Enter safe access mode. + * + * @NOTE: After enter safe access mode, about 16 system frequency cycles + * are in safe mode, and one or more secure registers can be rewritten + * within the valid period. The safe mode will be automatically + * terminated after the above validity period is exceeded. + * if sys_safe_access_enable() is called, + * you must call sys_safe_access_disable() before call sys_safe_access_enable() again. + */ +#define sys_safe_access_enable() do{volatile uint32_t mpie_mie;mpie_mie=__risc_v_disable_irq();SAFEOPERATE;\ + R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;SAFEOPERATE; + +#define sys_safe_access_disable() R8_SAFE_ACCESS_SIG = 0;__risc_v_enable_irq(mpie_mie);SAFEOPERATE;}while(0) + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_SYS_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_timer.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_timer.h new file mode 100644 index 0000000..06010d7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_timer.h @@ -0,0 +1,263 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_timer.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_TIMER_H__ +#define __CH57x_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define DataBit_25 (1 << 25) + +/** + * @brief TMR interrupt bit define + */ +#define TMR_IT_CYC_END 0x01 // ڽ־׽-ʱʱ-ڽPWM-ڽ +#define TMR_IT_DATA_ACT 0x02 // Ч־׽-ݣPWM-Чƽ +#define TMR_IT_FIFO_HF 0x04 // FIFO ʹù룺׽- FIFO>=4 PWM- FIFO<4 +#define TMR_IT_DMA_END 0x08 // DMA ֧TMR-TMR3 +#define TMR_IT_FIFO_OV 0x10 // FIFO ׽- FIFO PWM- FIFO + +/** + * @brief ENC interrupt bit define + */ +#define RB_IE_DIR_INC 0x01 // ǰжʹ +#define RB_IE_DIR_DEC 0x02 // жʹ + +/** + * @brief Configuration PWM effective level repeat times + */ +typedef enum +{ + PWM_Times_1 = 0, // PWM Чظ1 + PWM_Times_4, // PWM Чظ4 + PWM_Times_8, // PWM Чظ8 + PWM_Times_16, // PWM Чظ16 +} PWM_RepeatTsTypeDef; + +/** + * @brief Configuration Cap mode + */ +typedef enum +{ + CAP_NULL = 0, // ׽ & + Edge_To_Edge, // ֮ & + FallEdge_To_FallEdge, // ½ص½ & ½ + RiseEdge_To_RiseEdge, // ص & +} CapModeTypeDef; + +/** + * @brief Configuration DMA mode + */ +typedef enum +{ + Mode_Single = 0, // ģʽ + Mode_LOOP, // ѭģʽ +} DMAModeTypeDef; + +/** + * @brief Configuration ENC mode + */ +typedef enum +{ + Mode_IDLE = 0, // IDLEģʽ + Mode_T2 , // T2ؼģʽ + Mode_T1 , // T1ؼģʽ + Mode_T1T2 , // T1T2ؼģʽ +} ENCModeTypeDef; + +/** + * @brief ʱܳʼ + * + * @param t - ʱʱ䣬ڵǰϵͳʱTsys, ʱ 67108864 + */ +void TMR_TimerInit(uint32_t t); + +/** + * @brief ؼܳʼ + * + * @param cap - ɼ + */ +void TMR_EXTSingleCounterInit(CapModeTypeDef cap); + +/** + * @brief üͳС67108863 + * + * @param cyc - ͳС + */ +#define TMR_CountOverflowCfg(cyc) (R32_TMR_CNT_END = (cyc + 2)) + +/** + * @brief ȡǰֵ67108863 + * + * @return ǰֵ + */ +#define TMR_GetCurrentCount() R32_TMR_COUNT + +/** + * @brief PWM0 ͨ, 67108863 + * + * @param cyc - + */ +#define TMR_PWMCycleCfg(cyc) (R32_TMR_CNT_END = cyc) + +/** + * @brief PWM ʼ + * + * @param pr - select wave polar, refer to PWMX_PolarTypeDef + * @param ts - set pwm repeat times, refer to PWM_RepeatTsTypeDef + */ +void TMR_PWMInit(PWMX_PolarTypeDef pr, PWM_RepeatTsTypeDef ts); + +/** + * @brief PWM0 Ч, 67108864 + * + * @param d - Ч + */ +#define TMR_PWMActDataWidth(d) (R32_TMR_FIFO = d) + +/** + * @brief CAP0 ׽ƽʱ, 33554432 + * + * @param cyc - ׽ƽʱ + */ +#define TMR_CAPTimeoutCfg(cyc) (R32_TMR_CNT_END = cyc) + +/** + * @brief ⲿźŲ׽ܳʼ + * + * @param cap - select capture mode, refer to CapModeTypeDef + */ +void TMR_CapInit(CapModeTypeDef cap); + +/** + * @brief ȡ + * + * @return + */ +#define TMR_CAPGetData() R32_TMR_FIFO + +/** + * @brief ȡǰѲݸ + * + * @return ǰѲݸ + */ +#define TMR_CAPDataCounter() R8_TMR_FIFO_COUNT + +/** + * @brief DMA + * + * @param s - ǷDMA + * @param startAddr - DMA ʼַ + * @param endAddr - DMA ַ + * @param m - DMAģʽ + */ +void TMR_DMACfg(uint8_t s, uint32_t startAddr, uint32_t endAddr, DMAModeTypeDef m); + +/** + * @brief ENC + * + * @param s - Ƿ + * @param encReg - ģʽֵ(ֵ0xFFFF) + * @param m - ENCģʽ + * + * @return none + */ +void ENC_Config(uint8_t s, uint32_t encReg, ENCModeTypeDef m); + +/** + * @brief ر TMR PWM + */ +#define TMR_PWMDisable() (R8_TMR_CTRL_MOD &= ~RB_TMR_OUT_EN) + +/** + * @brief TMR PWM + */ +#define TMR_PWMEnable() (R8_TMR_CTRL_MOD |= RB_TMR_OUT_EN) + +/** + * @brief ر TMR + */ +#define TMR_Disable() (R8_TMR_CTRL_MOD &= ~RB_TMR_COUNT_EN) + +/** + * @brief TMR + */ +#define TMR_Enable() (R8_TMR_CTRL_MOD |= RB_TMR_COUNT_EN) + +/** + * @brief TMRж + * + * @param s - ʹ/ر + * @param f - refer to TMR interrupt bit define + */ +#define TMR_ITCfg(s, f) ((s) ? (R8_TMR_INTER_EN |= f) : (R8_TMR_INTER_EN &= ~f)) + +/** + * @brief TMRжϱ־ + * + * @param f - refer to TMR interrupt bit define + */ +#define TMR_ClearITFlag(f) (R8_TMR_INT_FLAG = f) + +/** + * @brief ѯжϱ־״̬ + * + * @param f - refer to TMR interrupt bit define + */ +#define TMR_GetITFlag(f) (R8_TMR_INT_FLAG & f) + +/** + * @brief ȡǰ + * + * @return ֵ 0:ǰ 1: + */ +#define ENC_GetCurrentDir (R8_ENC_REG_CTRL>>5 & 0x01) + +/** + * @brief ȡǰֵ + */ +#define ENC_GetCurrentCount R32_ENC_REG_CCNT + +/** + * @brief ģʽ0 + */ +#define ENC_GetCountandReset() R8_ENC_REG_CTRL |= RB_RD_CLR_EN + +/** + * @brief ENCж + * + * @param s - ʹ/ر + * @param f - refer to ENC interrupt bit define + */ +#define ENC_ITCfg(s, f) ((s) ? (R8_ENC_INTER_EN |= f) : (R8_ENC_INTER_EN &= ~f)) + +/** + * @brief ENCжϱ־ + * + * @param f - refer to ENC interrupt bit define + */ +#define ENC_ClearITFlag(f) (R8_ENC_INT_FLAG = f) + +/** + * @brief ѯжϱ־״̬ + * + * @param f - refer to ENC interrupt bit define + */ +#define ENC_GetITFlag(f) (R8_ENC_INT_FLAG & f) + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_TIMER_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_uart.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_uart.h new file mode 100644 index 0000000..532cf32 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_uart.h @@ -0,0 +1,172 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_uart.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_UART_H__ +#define __CH57x_UART_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief LINE error and status define + */ +#define STA_ERR_BREAK RB_LSR_BREAK_ERR // ݼ +#define STA_ERR_FRAME RB_LSR_FRAME_ERR // ֡ +#define STA_ERR_PAR RB_LSR_PAR_ERR // żУλ +#define STA_ERR_FIFOOV RB_LSR_OVER_ERR // + +#define STA_TXFIFO_EMP RB_LSR_TX_FIFO_EMP // ǰFIFOգԼ䷢ +#define STA_TXALL_EMP RB_LSR_TX_ALL_EMP // ǰзݶ +#define STA_RECV_DATA RB_LSR_DATA_RDY // ǰнյ + +/** + * @brief Configuration UART TrigByte num + */ +typedef enum +{ + UART_1BYTE_TRIG = 0, // 1ֽڴ + UART_2BYTE_TRIG, // 2ֽڴ + UART_4BYTE_TRIG, // 4ֽڴ + UART_7BYTE_TRIG, // 7ֽڴ + +} UARTByteTRIGTypeDef; + +/** + * @brief UART Tx Pin Remap Def + */ +typedef enum +{ + UART_TX_REMAP_PA3 = 0, /*!<Ĭӳ䣨TXD/PA3 */ + UART_TX_REMAP_PA2, /*!<ӳ䣨TXD/PA2 */ + UART_TX_REMAP_PA1, /*!<ӳ䣨TXD/PA1 */ + UART_TX_REMAP_PA0, /*!<ӳ䣨TXD/PA0 */ + UART_TX_REMAP_PA7, /*!<ӳ䣨TXD/PA7 */ + UART_TX_REMAP_PA8, /*!<ӳ䣨TXD/PA8 */ + UART_TX_REMAP_PA11, /*!<ӳ䣨TXD/PA11 */ + UART_TX_REMAP_PA10, /*!<ӳ䣨TXD/PA10 */ +} UARTTxPinRemapDef; + +/** + * @brief UART Rx Pin Remap Def + */ +typedef enum +{ + UART_RX_REMAP_PA2 = 0, /*!<Ĭӳ䣨RXD/PA2 */ + UART_RX_REMAP_PA3, /*!<ӳ䣨RXD/PA3 */ + UART_RX_REMAP_PA0, /*!<ӳ䣨RXD/PA0 */ + UART_RX_REMAP_PA1, /*!<ӳ䣨RXD/PA1 */ + UART_RX_REMAP_PA6, /*!<ӳ䣨RXD/PA6 */ + UART_RX_REMAP_PA9, /*!<ӳ䣨RXD/PA9 */ + UART_RX_REMAP_PA10, /*!<ӳ䣨RXD/PA10 */ + UART_RX_REMAP_PA11, /*!<ӳ䣨RXD/PA11 */ +} UARTRxPinRemapDef; + +/** + * @brief Ĭϳʼ + */ +void UART_DefInit(void); + +/** + * @brief ڲ + * + * @param baudrate - + */ +void UART_BaudRateCfg(uint32_t baudrate); + +/** + * @brief ֽڴж + * + * @param b - ֽ refer to UARTByteTRIGTypeDef + */ +void UART_ByteTrigCfg(UARTByteTRIGTypeDef b); + +/** + * @brief ж + * + * @param s - жϿ״̬ǷʹӦж + * @param i - ж + * RB_IER_MODEM_CHG - ƽ״̬仯жʹλ UART0 ֧֣ + * RB_IER_LINE_STAT - ·״̬ж + * RB_IER_THR_EMPTY - ͱּĴж + * RB_IER_RECV_RDY - ж + */ +void UART_INTCfg(FunctionalState s, uint8_t i); + +/** + * @brief ǰFIFO + */ +#define UART_CLR_RXFIFO() (R8_UART_FCR |= RB_FCR_RX_FIFO_CLR) + +/** + * @brief ǰFIFO + */ +#define UART_CLR_TXFIFO() (R8_UART_FCR |= RB_FCR_TX_FIFO_CLR) + +/** + * @brief ȡǰжϱ־ + * + * @return ǰжϱ־ + */ +#define UART_GetITFlag() (R8_UART_IIR & RB_IIR_INT_MASK) + +/** + * @brief ȡǰͨѶ״̬ + * + * @return refer to LINE error and status define + */ +#define UART_GetLinSTA() (R8_UART_LSR) + +/** + * @brief ڵֽڷ + * + * @param b ͵ֽ + */ +#define UART_SendByte(b) (R8_UART_THR = b) + +/** + * @brief ڶֽڷ + * + * @param buf - ͵׵ַ + * @param l - ͵ݳ + */ +void UART_SendString(uint8_t *buf, uint16_t l); + +/** + * @brief ڶȡֽ + * + * @return ȡĵֽ + */ +#define UART_RecvByte() (R8_UART_RBR) + +/** + * @brief ڶȡֽ + * + * @param buf - ȡݴŻ׵ַ + * + * @return ȡݳ + */ +uint16_t UART_RecvString(uint8_t *buf); + +/** + * @brief ӳ + * + * @param s - Ƿʹӳ + * @param perph - дTxRxӳϵ + */ +void UART_Remap(FunctionalState s, UARTTxPinRemapDef u_tx, UARTRxPinRemapDef u_rx); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_UART_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbdev.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbdev.h new file mode 100644 index 0000000..1b9c600 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbdev.h @@ -0,0 +1,152 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_usbdev.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_USBDEV_H__ +#define __CH57x_USBDEV_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* HID */ +#define DEF_USB_GET_IDLE 0x02 /* get idle for key or mouse */ +#define DEF_USB_GET_PROTOCOL 0x03 /* get protocol for bios type */ +#define DEF_USB_SET_REPORT 0x09 /* set report for key */ +#define DEF_USB_SET_IDLE 0x0A /* set idle for key or mouse */ +#define DEF_USB_SET_PROTOCOL 0x0B /* set protocol for bios type */ + +/* »USBģշʹõݻܹ9ͨ9黺棩ûɸʵʹõͨӦ */ +extern uint8_t *pEP0_RAM_Addr; //ep0(64)+ep4_out(64)+ep4_in(64) +extern uint8_t *pEP1_RAM_Addr; //ep1_out(64)+ep1_in(64) +extern uint8_t *pEP2_RAM_Addr; //ep2_out(64)+ep2_in(64) +extern uint8_t *pEP3_RAM_Addr; //ep3_out(64)+ep3_in(64) + +#define pSetupReqPak ((PUSB_SETUP_REQ)pEP0_RAM_Addr) +#define pEP0_DataBuf (pEP0_RAM_Addr) +#define pEP1_OUT_DataBuf (pEP1_RAM_Addr) +#define pEP1_IN_DataBuf (pEP1_RAM_Addr + 64) +#define pEP2_OUT_DataBuf (pEP2_RAM_Addr) +#define pEP2_IN_DataBuf (pEP2_RAM_Addr + 64) +#define pEP3_OUT_DataBuf (pEP3_RAM_Addr) +#define pEP3_IN_DataBuf (pEP3_RAM_Addr + 64) +#define pEP4_OUT_DataBuf (pEP0_RAM_Addr + 64) +#define pEP4_IN_DataBuf (pEP0_RAM_Addr + 128) + +/** + * @brief USB豸ܳʼ4˵㣬8ͨ + */ +void USB_DeviceInit(void); + +/** + * @brief USB豸Ӧ䴦 + */ +void USB_DevTransProcess(void); + +/** + * @brief ˵1´ݴ + * + * @param l - ݳ(<64B) + */ +void DevEP1_OUT_Deal(uint8_t l); + +/** + * @brief ˵2´ݴ + * + * @param l - ݳ(<64B) + */ +void DevEP2_OUT_Deal(uint8_t l); + +/** + * @brief ˵3´ݴ + * + * @param l - ݳ(<64B) + */ +void DevEP3_OUT_Deal(uint8_t l); + +/** + * @brief ˵4´ݴ + * + * @param l - ݳ(<64B) + */ +void DevEP4_OUT_Deal(uint8_t l); + +/** + * @brief ˵1ϴ + * + * @param l - ϴݳ(<64B) + */ +void DevEP1_IN_Deal(uint8_t l); + +/** + * @brief ˵2ϴ + * + * @param l - ϴݳ(<64B) + */ +void DevEP2_IN_Deal(uint8_t l); + +/** + * @brief ˵3ϴ + * + * @param l - ϴݳ(<64B) + */ +void DevEP3_IN_Deal(uint8_t l); + +/** + * @brief ˵4ϴ + * + * @param l - ϴݳ(<64B) + */ +void DevEP4_IN_Deal(uint8_t l); + +/** + * @brief ѯ˵1Ƿϴ + * + * @return 0-δ (!0)- + */ +#define EP1_GetINSta() (R8_UEP1_CTRL & UEP_T_RES_NAK) + +/** + * @brief ѯ˵2Ƿϴ + * + * @return 0-δ (!0)- + */ +#define EP2_GetINSta() (R8_UEP2_CTRL & UEP_T_RES_NAK) + +/** + * @brief ѯ˵3Ƿϴ + * + * @return 0-δ (!0)- + */ +#define EP3_GetINSta() (R8_UEP3_CTRL & UEP_T_RES_NAK) + +/** + * @brief ѯ˵4Ƿϴ + * + * @return 0-δ (!0)- + */ +#define EP4_GetINSta() (R8_UEP4_CTRL & UEP_T_RES_NAK) + +/** + * @brief رUSB + */ +#define USB_DisablePin() (R16_PIN_ANALOG_IE &= ~(RB_PIN_USB_IE | RB_PIN_USB_DP_PU)) + +/** + * @brief رUSB + */ +#define USB_Disable() (R32_USB_CONTROL = 0) + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_USBDEV_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbhost.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbhost.h new file mode 100644 index 0000000..c401cca --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/CH57x_usbhost.h @@ -0,0 +1,314 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : CH57x_usbhost.h + * Author : WCH + * Version : V1.2 + * Date : 2021/11/17 + * Description : head file(ch572/ch570) + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef __CH57x_USBHOST_H__ +#define __CH57x_USBHOST_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#if DISK_LIB_ENABLE + #if DISK_WITHOUT_USB_HUB + /* ʹUļϵͳU̹USBhub棬Ҫر涨 */ + #define FOR_ROOT_UDISK_ONLY + #endif + /* ʹUļϵͳ⣬Ҫ涨, ʹر */ + #define DISK_BASE_BUF_LEN 512 /* ĬϵĴݻСΪ512ֽ,ѡΪ20484096֧ijЩU,Ϊ0ֹ.Hļж建ӦópDISK_BASE_BUFָ */ +#endif + +// ӳ򷵻״̬ +#define ERR_SUCCESS 0x00 // ɹ +#define ERR_USB_CONNECT 0x15 /* ⵽USB豸¼,Ѿ */ +#define ERR_USB_DISCON 0x16 /* ⵽USB豸Ͽ¼,ѾϿ */ +#define ERR_USB_BUF_OVER 0x17 /* USB̫໺ */ +#define ERR_USB_DISK_ERR 0x1F /* USB洢ʧ,ڳʼʱUSB洢֧,ڶдпǴ𻵻ѾϿ */ +#define ERR_USB_TRANSFER 0x20 /* NAK/STALLȸ0x20~0x2F */ +#define ERR_USB_UNSUPPORT 0xFB /* ֵ֧USB豸*/ +#define ERR_USB_UNKNOWN 0xFE /* 豸*/ +#define ERR_AOA_PROTOCOL 0x41 /* Э汾 */ + +/*USB豸Ϣ,֧1豸*/ +#define ROOT_DEV_DISCONNECT 0 +#define ROOT_DEV_CONNECTED 1 +#define ROOT_DEV_FAILED 2 +#define ROOT_DEV_SUCCESS 3 +#define DEV_TYPE_KEYBOARD (USB_DEV_CLASS_HID | 0x20) +#define DEV_TYPE_MOUSE (USB_DEV_CLASS_HID | 0x30) +#define DEF_AOA_DEVICE 0xF0 +#define DEV_TYPE_UNKNOW 0xFF + +/* +Լ: USB豸ַ(οUSB_DEVICE_ADDR) +ֵַ 豸λ +0x02 Root-HUBµUSB豸ⲿHUB +0x1x Root-HUBµⲿHUBĶ˿xµUSB豸,xΪ1~n +*/ +#define HUB_MAX_PORTS 4 +#define WAIT_USB_TOUT_200US 800 // ȴUSBжϳʱʱ + +typedef struct +{ + uint8_t DeviceStatus; // 豸״̬,0-豸,1-豸δʼ,2-豸ʼöʧ,3-豸ҳʼöٳɹ + uint8_t DeviceAddress; // 豸USBַ + uint8_t DeviceSpeed; // 0Ϊ,0Ϊȫ + uint8_t DeviceType; // 豸 + uint16_t DeviceVID; + uint16_t DevicePID; + uint8_t GpVar[4]; // ͨñŶ˵ + uint8_t GpHUBPortNum; // ͨñ,HUBʾHUB˿ +} _RootHubDev; + +typedef struct +{ + uint8_t DeviceStatus; // 豸״̬,0-豸,1-豸δʼ,2-豸ʼöʧ,3-豸ҳʼöٳɹ + uint8_t DeviceAddress; // 豸USBַ + uint8_t DeviceSpeed; // 0Ϊ,0Ϊȫ + uint8_t DeviceType; // 豸 + uint16_t DeviceVID; + uint16_t DevicePID; + uint8_t GpVar[4]; // ͨñ +} _DevOnHubPort; // ٶ:1ⲿHUB,ÿⲿHUBHUB_MAX_PORTS˿(˲) + +extern _RootHubDev ThisUsbDev; +extern _DevOnHubPort DevOnHubPort[HUB_MAX_PORTS]; // ٶ:1ⲿHUB,ÿⲿHUBHUB_MAX_PORTS˿(˲) +extern uint8_t UsbDevEndp0Size; // USB豸Ķ˵0ߴ */ +extern uint8_t FoundNewDev; + +extern uint8_t *pHOST_RX_RAM_Addr; +extern uint8_t *pHOST_TX_RAM_Addr; + +extern _RootHubDev ThisUsb2Dev; +extern _DevOnHubPort DevOnU2HubPort[HUB_MAX_PORTS]; // ٶ:1ⲿHUB,ÿⲿHUBHUB_MAX_PORTS˿(˲) +extern uint8_t Usb2DevEndp0Size; // USB豸Ķ˵0ߴ */ +extern uint8_t FoundNewU2Dev; + +extern uint8_t *pU2HOST_RX_RAM_Addr; +extern uint8_t *pU2HOST_TX_RAM_Addr; + +#define pSetupReq ((PUSB_SETUP_REQ)pHOST_TX_RAM_Addr) +#define pU2SetupReq ((PUSB_SETUP_REQ)pU2HOST_TX_RAM_Addr) +extern uint8_t Com_Buffer[]; +extern uint8_t U2Com_Buffer[]; + +/* ΪUSB */ +extern const uint8_t SetupGetDevDescr[]; // ȡ豸*/ +extern const uint8_t SetupGetCfgDescr[]; // ȡ*/ +extern const uint8_t SetupSetUsbAddr[]; // USBַ*/ +extern const uint8_t SetupSetUsbConfig[]; // USB*/ +extern const uint8_t SetupSetUsbInterface[]; // USBӿ*/ +extern const uint8_t SetupClrEndpStall[]; // ˵STALL*/ + +extern const uint8_t SetupGetU2DevDescr[]; // ȡ豸*/ +extern const uint8_t SetupGetU2CfgDescr[]; // ȡ*/ +extern const uint8_t SetupSetUsb2Addr[]; // USBַ*/ +extern const uint8_t SetupSetUsb2Config[]; // USB*/ +extern const uint8_t SetupSetUsb2Interface[]; // USBӿ*/ +extern const uint8_t SetupClrU2EndpStall[]; // ˵STALL*/ + +/** + * @brief رROOT-HUB˿,ʵӲѾԶر,˴ֻһЩṹ״̬ + */ +void DisableRootHubPort(void); + +/** + * @brief ROOT-HUB״̬,ROOT-HUB˿ڵ豸¼ + * 豸γ,еDisableRootHubPort(),˿ڹر,¼,Ӧ˿ڵ״̬λ + * + * @return ERR_SUCCESSΪû,ERR_USB_CONNECTΪ⵽,ERR_USB_DISCONΪ⵽Ͽ + */ +uint8_t AnalyzeRootHub(void); + +/** + * @brief USBǰUSB豸ַ + * + * @param addr - USB豸ַ + */ +void SetHostUsbAddr(uint8_t addr); + +/** + * @brief õǰUSBٶ + * + * @param FullSpeed - USBٶ + */ +void SetUsbSpeed(uint8_t FullSpeed); + +/** + * @brief ⵽豸,λ,Ϊö豸׼,ΪĬΪȫ + */ +void ResetRootHubPort(void); + +/** + * @brief ʹROOT-HUB˿,ӦbUH_PORT_EN1˿,豸Ͽܵ·ʧ + * + * @return ERR_SUCCESSΪ⵽,ERR_USB_DISCONΪ + */ +uint8_t EnableRootHubPort(void); + +/** + * @brief ȴUSBж + * + * @return ERR_SUCCESS ݽջ߷ͳɹ,ERR_USB_UNKNOWN ݽջ߷ʧ + */ +uint8_t WaitUSB_Interrupt(void); + +/** + * @brief ,ĿĶ˵ַ/PID,ͬ־,20uSΪλNAKʱ(0,0xFFFF),0ɹ,ʱ/ + * ӳ,ʵӦ,Ϊṩٶ,ӦöԱӳŻ + * + * @param endp_pid - ƺ͵ַ, 4λtoken_pid, 4λǶ˵ַ + * @param tog - ͬ־ + * @param timeout - ʱʱ + * + * @return ERR_USB_UNKNOWN ʱӲ쳣 + * ERR_USB_DISCON 豸Ͽ + * ERR_USB_CONNECT 豸 + * ERR_SUCCESS + */ +uint8_t USBHostTransact(uint8_t endp_pid, uint8_t tog, uint32_t timeout); + +/** + * @brief ִпƴ,8ֽpSetupReq,DataBufΪѡշ + * + * @param DataBuf - Ҫպͷ,ôDataBufָЧڴź + * @param RetLen - ʵʳɹշܳȱRetLenָֽڱ + * + * @return ERR_USB_BUF_OVER IN״̬׶γ + * ERR_SUCCESS ݽɹ + */ +uint8_t HostCtrlTransfer(uint8_t *DataBuf, uint8_t *RetLen); + +/** + * @brief ƿƴ + * + * @param pReqPkt - ַ + */ +void CopySetupReqPkg(const uint8_t *pReqPkt); + +/** + * @brief ȡ豸, pHOST_TX_RAM_Addr + * + * @return ERR_USB_BUF_OVER ȴ + * ERR_SUCCESS ɹ + */ +uint8_t CtrlGetDeviceDescr(void); + +/** + * @brief ȡ, pHOST_TX_RAM_Addr + * + * @return ERR_USB_BUF_OVER ȴ + * ERR_SUCCESS ɹ + */ +uint8_t CtrlGetConfigDescr(void); + +/** + * @brief USB豸ַ + * + * @param addr - 豸ַ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbAddress(uint8_t addr); + +/** + * @brief USB豸 + * + * @param cfg - ֵ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbConfig(uint8_t cfg); + +/** + * @brief ˵STALL + * + * @param endp - ˵ַ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlClearEndpStall(uint8_t endp); + +/** + * @brief USB豸ӿ + * + * @param cfg - ֵ + * + * @return ERR_SUCCESS ɹ + */ +uint8_t CtrlSetUsbIntercace(uint8_t cfg); + +/** + * @brief USBܳʼ + */ +void USB_HostInit(void); +uint8_t EnumAllHubPort(void);// öROOT-HUB˿ⲿHUBĶUSB豸 +void SelectHubPort(uint8_t HubPortIndex); // HubPortIndex=0ѡָROOT-HUB˿,ѡָROOT-HUB˿ڵⲿHUBָ˿ +uint16_t SearchTypeDevice(uint8_t type); // ROOT-HUBԼⲿHUB˿ָ͵豸ڵĶ˿ں,˿ںΪ0xFFFFδ. +uint8_t SETorOFFNumLock(uint8_t *buf); // NumLockĵж + +/*************************************************************/ + +/** + * @brief ʼָROOT-HUB˿ڵUSB豸 + * + * @return + */ +uint8_t InitRootDevice(void); + +/** + * @brief ȡHID豸,TxBuffer + * + * @return + */ +uint8_t CtrlGetHIDDeviceReport(uint8_t infc); + +/** + * @brief ȡHUB,Com_Buffer + * + * @return + */ +uint8_t CtrlGetHubDescr(void); + +/** + * @brief ѯHUB˿״̬,Com_Buffer + * + * @param HubPortIndex - ˿ں + * + * @return + */ +uint8_t HubGetPortStatus(uint8_t HubPortIndex); + +/** + * @brief HUB˿ + * + * @param HubPortIndex - ˿ں + * @param FeatureSelt - ˿ + * + * @return + */ +uint8_t HubSetPortFeature(uint8_t HubPortIndex, uint8_t FeatureSelt); + +/** + * @brief HUB˿ + * + * @param HubPortIndex - ˿ں + * @param FeatureSelt - ˿ + * + * @return + */ +uint8_t HubClearPortFeature(uint8_t HubPortIndex, uint8_t FeatureSelt); + +#ifdef __cplusplus +} +#endif + +#endif // __CH57x_USBHOST_H__ diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/ISP572.h b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/ISP572.h new file mode 100644 index 0000000..dcdc5be --- /dev/null +++ b/BLV_RF_W13_V04_20260114/StdPeriphDriver/inc/ISP572.h @@ -0,0 +1,130 @@ +/* CH572 Flash-ROM & Data-Flash */ +/* Website: http://wch.cn */ +/* Email: tech@wch.cn */ +/* Author: W.ch 2024.12 */ +/* V1.0 FlashROM library for USER/BOOT */ +/* for the target in USER code area on the chip divided into USER code area and BOOT area */ +/* ھûоƬĿΪû + ûбãIAPдҲбãû룩 */ + +/* Flash-ROM feature: + for store program code, support block erasing, dword and page writing, dword verifying, unit for Length is byte, + minimal quantity for write or verify is one dword (4-bytes), + 256 bytes/page for writing, FLASH_ROM_WRITE support one dword or more dword writing, but multiple of 256 is the best, + 4KB (4096 bytes) bytes/block for erasing, so multiple of 4096 is the best */ + +#ifndef FLASH_MIN_WR_SIZE +#define FLASH_MIN_WR_SIZE 4 // Flash-ROM minimal size for writing +#endif +#ifndef FLASH_ROM_MAX_SIZE +#define FLASH_ROM_MAX_SIZE 0x03C000 // Flash-ROM maximum program size, 240KB +#endif +#ifndef FLASH_BLOCK_SIZE +#define FLASH_BLOCK_SIZE 4096 +#endif +// CMD_* for caller from FlashROM or RAM, auto execute CMD_FLASH_ROM_SW_RESET before command +#ifndef CMD_FLASH_ROM_SW_RESET +#define CMD_FLASH_ROM_START_IO 0x00 // start FlashROM I/O, without parameter +#define CMD_FLASH_ROM_SW_RESET 0x04 // software reset FlashROM, without parameter +#define CMD_GET_ROM_INFO 0x06 // get information from FlashROM, parameter @Address,Buffer +#define CMD_GET_UNIQUE_ID 0x07 // get 64 bit unique ID, parameter @Buffer +#define CMD_FLASH_ROM_PWR_DOWN 0x0D // power-down FlashROM, without parameter +#define CMD_FLASH_ROM_PWR_UP 0x0C // power-up FlashROM, without parameter +#define CMD_FLASH_ROM_ERASE 0x01 // erase FlashROM block, return 0 if success, parameter @StartAddr,Length +#define CMD_FLASH_ROM_WRITE 0x02 // write FlashROM data block, minimal block is dword, return 0 if success, parameter @StartAddr,Buffer,Length +#define CMD_FLASH_ROM_VERIFY 0x03 // read FlashROM data block, minimal block is dword, return 0 if success, parameter @StartAddr,Buffer,Length +#endif + +#define ROM_CFG_MAC_ADDR 0x3F018 // address for MAC address information +#define ROM_CFG_BOOT_INFO 0x3DFF8 // address for BOOT information + +/** + * @brief execute Flash/EEPROM command, caller from FlashROM or RAM + * + * @param cmd - CMD_* for caller from FlashROM or RAM. + * @param StartAddr - Address of the data to be process. + * @param Buffer - Pointer to the buffer where data should be process, Must in RAM and be aligned to 4 bytes. + * @param Length - Size of data to be process, in bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +extern uint32_t FLASH_EEPROM_CMD( uint8_t cmd, uint32_t StartAddr, void *Buffer, uint32_t Length ); + +/** + * @brief start FlashROM I/O + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_START_IO( ) FLASH_EEPROM_CMD( CMD_FLASH_ROM_START_IO, 0, NULL, 0 ) + +/** + * @brief software reset FlashROM + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_SW_RESET( ) FLASH_EEPROM_CMD( CMD_FLASH_ROM_SW_RESET, 0, NULL, 0 ) + +/** + * @brief get 6 bytes MAC address + * + * @param Buffer - Pointer to the buffer where data should be stored, Must in RAM and be aligned to 4 bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define GetMACAddress(Buffer) FLASH_EEPROM_CMD( CMD_GET_ROM_INFO, ROM_CFG_MAC_ADDR, Buffer, 0 ) + +/** + * @brief get 8 bytes BOOT information + * + * @param Buffer - Pointer to the buffer where data should be stored, Must in RAM and be aligned to 4 bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define GET_BOOT_INFO(Buffer) FLASH_EEPROM_CMD( CMD_GET_ROM_INFO, ROM_CFG_BOOT_INFO, Buffer, 0 ) + +/** + * @brief power-down FlashROM + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_PWR_DOWN( ) FLASH_EEPROM_CMD( CMD_FLASH_ROM_PWR_DOWN, 0, NULL, 0 ) + +/** + * @brief power-up FlashROM + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_PWR_UP( ) FLASH_EEPROM_CMD( CMD_FLASH_ROM_PWR_UP, 0, NULL, 0 ) + +/** + * @brief erase FlashROM block + * + * @param StartAddr - Address of the data to be erased. + * @param Length - Size of data to be erased, in bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_ERASE(StartAddr,Length) FLASH_EEPROM_CMD( CMD_FLASH_ROM_ERASE, StartAddr, NULL, Length ) + +/** + * @brief write FlashROM data block, minimal block is dword. + * + * @param StartAddr - Address of the data to be written. + * @param Buffer - Pointer to the source buffer, Must in RAM and be aligned to 4 bytes. + * @param Length - Size of data to be written, in bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_WRITE(StartAddr,Buffer,Length) FLASH_EEPROM_CMD( CMD_FLASH_ROM_WRITE, StartAddr, Buffer, Length ) + +/** + * @brief verify FlashROM data block, minimal block is dword. + * + * @param StartAddr - Address of the data to verify. + * @param Buffer - Pointer to the source buffer, Must in RAM and be aligned to 4 bytes. + * @param Length - Size of data to verify, in bytes. + * + * @return 0-SUCCESS (!0)-FAILURE + */ +#define FLASH_ROM_VERIFY(StartAddr,Buffer,Length) FLASH_EEPROM_CMD( CMD_FLASH_ROM_VERIFY, StartAddr, Buffer, Length ) + diff --git a/BLV_RF_W13_V04_20260114/StdPeriphDriver/libISP572.a b/BLV_RF_W13_V04_20260114/StdPeriphDriver/libISP572.a new file mode 100644 index 0000000000000000000000000000000000000000..3084bb0006d34fee09bf3ce0a009984adb56304e GIT binary patch literal 7720 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 ZkUq~MTC6k#7X;4$4@FXV^YhOT_isNKPs#uQ literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/User/include/includes.h b/BLV_RF_W13_V04_20260114/User/include/includes.h new file mode 100644 index 0000000..330ba3d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User/include/includes.h @@ -0,0 +1,30 @@ +#ifndef _INCLUDES_H_ +#define _INCLUDES_H_ + +#include "CH57x_common.h" +#include "CONFIG.h" +#include "HAL.h" +#include "gattprofile.h" +#include "peripheral.h" +#include "debug.h" +#include "uart.h" +#include "sensor_scan.h" +#include "flash.h" + +#define FW_Version 0x04 +#define EE_Version 0x04 + +/******************** + * periphera.cļе static uint8_t scanRspData[] ޸ + * + * + * */ + + + + +extern volatile uint32_t SysTick_100us; +extern volatile uint32_t SysTick_1ms; +extern volatile uint32_t SysTick_1s; + +#endif diff --git a/BLV_RF_W13_V04_20260114/User/main.c b/BLV_RF_W13_V04_20260114/User/main.c new file mode 100644 index 0000000..1e1decb --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User/main.c @@ -0,0 +1,71 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : main.c + * Author : WCH + * Version : V1.1 + * Date : 2026/01/14 + * Description : ӻӦϵͳʼ + *******************************************************************************/ + +/******************************************************************************/ +/* ͷļ */ +#include "../User/include/includes.h" + + +/********************************************************************* + * GLOBAL TYPEDEFS + */ +__attribute__((aligned(4))) uint32_t MEM_BUF[BLE_MEMHEAP_SIZE / 4]; + +#if(defined(BLE_MAC)) && (BLE_MAC == TRUE) +const uint8_t MacAddr[6] = {0x84, 0xC2, 0xE4, 0x03, 0x02, 0x02}; +#endif + + +#define ceshi 0x00 + +/********************************************************************* + * @fn main + * @brief + * @return none + */ +int main(void) +{ + HSECFG_Capacitance(HSECap_18p); + SetSysClock(CLK_SOURCE_HSE_PLL_100MHz); +#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) + GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU); +#endif + WDT_Init(); + + UARTx_Init(UART_0,115200,BLV_DETInfo_Recv_Processing); //RS485ͨѶ + + CH57x_BLEInit(); //ʼ BLE Эջײ + HAL_Init(); //ʼӲ㣨HALоƬ衣 + GAPRole_PeripheralInit(); //ʼ裨Peripheralɫ GAP + + EEPROM_Init(); + Peripheral_Init(); //ӦòԶʼ + Sensor_Init(); //IOɨʼ + + Dbg_Println(DBG_BIT_DEVICE_STATUS,"MCU Start:%s",VER_LIB); + PRINT("MCU_Rst:%04x\n", R8_RESET_STATUS); + + while(1) + { + WDT_Feed(); + + UART_RECEIVE(); + + DIP_ScanTask(); + + TMOS_SystemProcess(); + + Blv_CardlessPower_Tack(); + + print_RDRsta_Tack(); + + Action_Task(); + } +} + +/******************************** endfile @ main ******************************/ diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/debug.c b/BLV_RF_W13_V04_20260114/User_Drivers/debug.c new file mode 100644 index 0000000..bc633a7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/debug.c @@ -0,0 +1,117 @@ +#include +#include "../User/include/includes.h" + +volatile uint32_t SysTick_100us = 0; +volatile uint32_t SysTick_1ms = 0; +volatile uint32_t SysTick_1s = 0; + +void WDT_Init(void) +{ + WWDG_ResetCfg(ENABLE); + WWDG_SetCounter(WDT_NUM); +} + +void WDT_Feed(void) +{ + WWDG_ClearFlag(); + WWDG_SetCounter(WDT_NUM); +} + + + + +__INTERRUPT +__HIGH_CODE +void SysTick_Handler(void) +{ + SysTick->SR = 0; //жϱ־ + + static uint8_t NUM = 0; + static uint16_t NUM_s = 0; + SysTick_100us++; + NUM++; + + if(NUM >= 10){ + NUM = 0; + SysTick_1ms++; + NUM_s++; + if(NUM_s == 1000) + { + NUM_s = 0; + SysTick_1s++; + } + } +} + + +#ifdef DEBUG +int _write(int fd, char *buf, int size) +{ + int i; + for(i = 0; i < size; i++) + { +#if DEBUG == Debug_UART0 + while(R8_UART_TFC == UART_FIFO_SIZE); /* ȴݷ */ + R8_UART_THR = *buf++; /* */ +#endif + } + return size; +} +#endif + + + + +/*Debugӡر*/ +uint32_t SysTick_Now = 0, SysTick_Last = 0, SysTick_Diff = 0; +char Dbg_Buffer[100]; + +uint32_t Dbg_Switch = (DBG_OPT_Debug_STATUS << DBG_BIT_Debug_STATUS) + + (DBG_OPT_PC_COMM << DBG_BIT_PC_COMM) + + (DBG_OPT_BLE_STATUS << DBG_BIT_BLE_STATUS) + + (DBG_OPT_DEVICE_STATUS << DBG_BIT_DEVICE_STATUS) + + (DBG_OPT_SYS_STATUS << DBG_BIT_SYS_STATUS); + + +void Dbg_NoTick_Println(int DbgOptBit, const char *cmd, ...) { + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + va_list args; //һva_list͵ı浥 + va_start(args, cmd); //ʹargsָɱĵһ + vprintf(cmd, args); //vprintfȴV + va_end(args); //ɱĻȡ + DBG_Printf("\r\n"); + } +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...) { + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + SysTick_Now = SysTick_1ms; + SysTick_Diff = SysTick_Now - SysTick_Last; //һδӡʱ + SysTick_Last = SysTick_Now; + sprintf(Dbg_Buffer, "%8d [%6d]: ", SysTick_Now, SysTick_Diff); + DBG_Printf("%s", Dbg_Buffer); + va_list args; //һva_list͵ı浥 + va_start(args, cmd); //ʹargsָɱĵһ + vprintf(cmd, args); //vprintfȴV + va_end(args); //ɱĻȡ + DBG_Printf("\r\n"); + + } +} + +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, uint8_t *buff, uint32_t len) { + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + SysTick_Now = SysTick_1ms; + SysTick_Diff = SysTick_Now - SysTick_Last; //һδӡʱ + SysTick_Last = SysTick_Now; + sprintf(Dbg_Buffer, "%8d [%6d]: ", SysTick_Now, SysTick_Diff); + DBG_Printf("%s%s", Dbg_Buffer, cmd); + for (uint32_t i = 0; i < len; i++) { + DBG_Printf("%02X ", buff[i]); + } + DBG_Printf("\r\n"); + } +} + + + diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/flash.c b/BLV_RF_W13_V04_20260114/User_Drivers/flash.c new file mode 100644 index 0000000..bd37ae8 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/flash.c @@ -0,0 +1,528 @@ +#include "../User/include/includes.h" + +GroupInfo_t g_portGp; +OTADataFlashInfo_t p_image_flash; +RAR_Info g_rar_info; + +//жĬֵ +/* uint8_t Exist_Flag; //˱ 1: 2: 3:뿪 4ʱ뿪 + uint8_t Condi_Gruop; // + uint8_t Condi_Subset; // + + uint16_t Judgment_Time; // - жʱ + uint8_t Judgment_Unit; // - жʱ䵥λ 1, 2, 3,ʱ + + uint8_t Port_State[VIRTUAL_PORT_MAX]; //˿,0:ж 1: 2:ͷ 3, 4, + + uint16_t Timeout_Time; // - жʱʱ + uint8_t Timeout_Unit; // - жʱʱ䵥λ + + uint8_t Trigger_Flag; // + * */ +const uint8_t DefaultGroupInfo[VIRTUAL_GP_NUM_MAX][15]= + { //˵ + {1, 1,1, 0,0,1, 0,4,0,0,0, 2,0,1, 0}, //˲ + {1, 2,1, 0,0,1, 0,0,1,0,0, 20,0,1, 0}, //1 + {1, 2,2, 0,0,1, 0,0,0,1,0, 20,0,1, 0}, //2 + {1, 2,3, 0,0,1, 0,0,0,0,1, 20,0,1, 0}, //3 + //˵ + {3, 3,1, 0,0,1, 0,3,0,0,0, 2,0,1, 0}, //˲ + {3, 4,1, 5,0,1, 0,1,2,2,2, 10,0,2, 0}, // + {4, 5,1, 5,0,1, 0,1,2,2,2, 10,0,2, 0}, // + {2, 6,1, 5,0,2, 0,1,2,2,2, 10,0,2, 0}}; //ţ123 ͷ + +//˿Ϣ0ADzο2Ŵźʹ +uint8_t PortInfo[VIRTUAL_PORT_MAX][11]={0x00}; + + +void EEPROM_Init(void) +{ + uint8_t rev = 0x00; + uint8_t bufEE[5] = {0x00}; + //ȡ + FLASH_ROM_READ(OTA_DATAFLASH_ADD, &p_image_flash, 4); + /* һ */ + FLASH_ROM_ERASE(OTA_DATAFLASH_ADD, FLASH_BLOCK_SIZE); + /* Ϣ */ + // Dbg_Println(DBG_BIT_PC_COMM,"Revd:%d",p_image_flash.Revd[0]); + p_image_flash.Revd[0] = 0; + + if(p_image_flash.ImageFlag != IMAGE_A_FLAG){ + p_image_flash.ImageFlag = IMAGE_A_FLAG; + } + /* DataFlash */ + FLASH_ROM_WRITE(OTA_DATAFLASH_ADD, &p_image_flash, 4); + + memset(&g_portGp,0x00,sizeof(GroupInfo_t)); + memset(&g_rar_info,0x00,sizeof(RAR_Info)); + + //ȡ˿ں + rev = EEPROM_Read_PortInfo(); + if(rev == 0x00) + { + //ȡɹ + }else{ + //ȡʧܣʹĬ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default PortInfo"); + EEPROM_Default_PortInfo(); + } + + //ȡ + rev = EEPROM_Read_PortGroupData(&g_portGp); + if(rev == 0x00) + { + + }else{ + //ȡʧܣʹĬ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default GroupData"); + EEPROM_Default_PortGroupData(); + } + + rev = EEPROM_Read_RARDelayTim(&g_rar_info); + if(rev == 0x00) + { + + }else{ + //ȡʧܣʹĬ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default RARDelayTim"); + EEPROM_Default_RARDelayTim(&g_rar_info); + } + +} + +uint8_t EEPROM_CheckSum(uint8_t *data,uint16_t len) +{ + uint8_t data_sum = 0; + + for(uint16_t i = 0;i + + Port_DefaultData[5] = (i + 1); //˿ + Port_DefaultData[6] = 0x00; //·ʱ ñ,Ĭϲ + + Port_DefaultData[7] = 0x02; //·ͳʱ + Port_DefaultData[8] = 0x00; + Port_DefaultData[9] = 0x02; //·ͳʱ䵥λ + + Port_DefaultData[10] = 20; //ֵ -> + } + else if(i == 0x01) //Ŵ + { + Port_DefaultData[0] = 0x02; + Port_DefaultData[1] = 0x00; + Port_DefaultData[2] = (i + 1); //ӳ· + Port_DefaultData[3] = 0x00; + + Port_DefaultData[4] = 50; + + Port_DefaultData[5] = (i + 1); //˿ + Port_DefaultData[6] = 0x00; //·ʱ ñ,Ĭϲ + + Port_DefaultData[7] = 0x02; + Port_DefaultData[8] = 0x00; + Port_DefaultData[9] = 0x02; + + Port_DefaultData[10] = 20; + } + else{ // + Port_DefaultData[0] = 0x02; + Port_DefaultData[1] = 0x00; + Port_DefaultData[2] = (i + 1); //ӳ· + Port_DefaultData[3] = 0x00; + + Port_DefaultData[4] = 80; + + Port_DefaultData[5] = (i + 1); //˿ + Port_DefaultData[6] = 0x00; //·ʱ ñ,Ĭϲ + + Port_DefaultData[7] = 0x02; + Port_DefaultData[8] = 0x00; + Port_DefaultData[9] = 0x03; + + Port_DefaultData[10] = 20; + } + + memcpy(&PortInfo[i],Port_DefaultData,11); + + } + +} + + + +//豸Ķ˿òϢ +uint8_t EEPROM_Write_PortInfo(void) +{ + uint16_t data_len = sizeof(PortInfo); + uint16_t WR_Len = (data_len/4 +1)*4 + 4 ; + uint8_t data_buff[WR_Len]; + uint8_t rev = 0; + if(WR_Len > EEPROM_INFO_Size) return 0x01; + + memset(data_buff,0,(data_len + 4)); + + data_buff[0] = EEPROM_SaveInfo_Flag; + data_buff[1] = data_len & 0xFF; + data_buff[2] = (data_len >> 8) & 0xFF; + data_buff[3] = 0x00; //SumCheck + + memcpy(&data_buff[4],(uint8_t *)PortInfo,data_len); + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + data_len += 4; + + // Dbg_Println(DBG_BIT_PC_COMM, "flag:%02x,len:%d,sum:%02x",EEPROM_SaveInfo_Flag,data_len,data_buff[3]); + + // + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR1,EEPROM_INFO_Size); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ɹ!"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ʧ %02X!",rev); + return 0x01; + } + + //д + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR1, data_buff, WR_Len); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ɹ"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ʧ %02X!",rev); + return 0x02; + } + + return 0x00; +} + + + +/***************************************> жϲ <********************************************/ + + +//ȡ豸жϲϢ +uint8_t EEPROM_Read_PortGroupData(GroupInfo_t *info) +{ + uint16_t RD_Len = sizeof(GroupInfo_t) ; + uint16_t read_len = 0x00; + uint8_t read_info[4]; + uint8_t para_data[RD_Len]; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2,read_info,4); + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%02x,%02x,%02x,%02x",read_info[0],read_info[1],read_info[2],read_info[3]); + if(read_info[0] == EEPROM_SaveInfo_Flag){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2+4,para_data,read_len); + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%d,%02x,%02x",read_len,EEPROM_CheckSum(para_data,sizeof(PortGroupInfo)),read_info[3]); + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + // ȡˡ + memcpy(info,para_data,sizeof(GroupInfo_t)); + // ȡɹ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use:%d,%d,%d,%d",info->VC_ConNToSGruop,info->VC_ConNToSSubset,info->VC_ConSToNGruop,info->VC_ConSToNSubset); + + return 0x00; + } + } + }else{ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read Flag Fail2:%02x",read_info[0]); + } + + return 0x01; +} + +//жĬϢ +void EEPROM_Default_PortGroupData(void) +{ + g_portGp.VC_ConNToSGruop = 0x02; //޿ȡ + g_portGp.VC_ConNToSSubset = 0x04; //޿ȡ + g_portGp.VC_ConSToNGruop = 0x06; //() + g_portGp.VC_ConSToNSubset = 0x04; //޿ȡ + + memcpy(&g_portGp.PortGroupInfo,&DefaultGroupInfo,sizeof(DefaultGroupInfo)); + +} + +//豸жϢ +uint8_t EEPROM_Write_PortGroupData(GroupInfo_t *info) +{ + uint16_t data_len = sizeof(GroupInfo_t); //ز + uint16_t WR_Len = (data_len/4 +1)*4 + 4 ; + uint8_t data_buff[WR_Len]; + uint8_t rev = 0; + + if(WR_Len > EEPROM_INFO_Size) return 0x01; + + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_GroupData1:%d",data_len); + memset(data_buff,0x00,WR_Len); + + data_buff[0] = EEPROM_SaveInfo_Flag; + data_buff[1] = data_len & 0xFF; + data_buff[2] = (data_len >> 8) & 0xFF; + data_buff[3] = 0x00; //Sum Check + + memcpy(&data_buff[4],(uint8_t *)info,data_len); //ȥز + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + data_len += 4; + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupDataW22:%d,%d,%d,%d",data_buff[4],data_buff[5],data_buff[6],data_buff[7]); + // Dbg_Println(DBG_BIT_PC_COMM, "flag:%02x,len:%d,sum:%02x",EEPROM_SaveInfo_Flag,data_len,data_buff[3]); + + // + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR2,EEPROM_INFO_Size); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ɹ!"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ʧ %02X!",rev); + return 0x01; + } + + //д + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR2, data_buff, WR_Len); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ɹ"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ʧ %02X!",rev); + return 0x02; + } + + return 0x00; +} + + + +//豸жϢ +uint8_t EEPROM_Read_PortGroupData_2(uint32_t addr,uint16_t len,CONDITION_STRUCT *info) +{ + uint16_t RD_Len = sizeof(CONDITION_STRUCT) ; + uint16_t read_len = 0x00; + uint8_t read_info[4]; //ȡͷ + uint8_t para_data[RD_Len]; + + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2,read_info,4); + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%02x,%02x,%02x,%02x",read_info[0],read_info[1],read_info[2],read_info[3]); + + if(read_info[0] == EEPROM_SaveInfo_Flag){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2+4,(uint8_t *)info,RD_Len); + } + } + + return 0x01; +} + +/********************************* ʱ ***********************************************************/ + +/*************************************************************** + * : EEPROM_Read_RARDelayTim + * : ȡӳ¼ӳٲϢ + * : RarInfo : ṹ + * ز : + ****************************************************************/ +uint8_t EEPROM_Read_RARDelayTim(RAR_Info *RarInfo) +{ + uint16_t RD_Len = sizeof(RAR_Info) ; + uint16_t read_len = 0x00; + uint8_t read_info[4]; + uint8_t para_data[RD_Len]; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3,read_info,4); + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%02x,%02x,%02x,%02x",read_info[0],read_info[1],read_info[2],read_info[3]); + if(read_info[0] == EEPROM_RARDelayTim_Flag){ + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3+4,para_data,read_len); + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + // ȡˡ + memcpy(RarInfo,para_data,sizeof(RAR_Info)); + // ȡɹ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"RARDelayTim:%d,%d,%d,%d",RarInfo->Door_RARON_Time,RarInfo->Door_RARFF_TimeOut,RarInfo->BATH_RARON_Time,RarInfo->BATH_RARFF_TimeOut); + + if(RarInfo->Door_RARON_Time == 0) + { + + } + + if(RarInfo->Door_RARFF_TimeOut < 5000) + { + RarInfo->Door_RARFF_TimeOut = 5000; + } + + if(RarInfo->BATH_RARON_Time == 0) + { + + } + + if(RarInfo->BATH_RARFF_TimeOut < 5000) + { + RarInfo->BATH_RARFF_TimeOut = 5000; + } + + return 0x00; + } + } + }else{ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read RARDelayTim Flag Fail3:%02x",read_info[0]); + } + + return 0x01; +} + + +/*************************************************************** + * : EEPROM_Write_RARDelayTim + * : ӳ¼ӳٲϢ + * : RarInfo : ṹ + * ز : + ****************************************************************/ +uint8_t EEPROM_Write_RARDelayTim(RAR_Info *RarInfo) +{ + uint16_t data_len = sizeof(RAR_Info); //ز + uint16_t WR_Len = (data_len/4 +1)*4 + 4 ; + uint8_t data_buff[WR_Len]; + uint8_t rev = 0; + + if(WR_Len > EEPROM_INFO_Size) return 0x01; + + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_RARDelayTim:%d",data_len); + memset(data_buff,0x00,WR_Len); + + data_buff[0] = EEPROM_RARDelayTim_Flag; + data_buff[1] = data_len & 0xFF; + data_buff[2] = (data_len >> 8) & 0xFF; + data_buff[3] = 0x00; //Sum Check + + memcpy(&data_buff[4],(uint8_t *)RarInfo,data_len); //ȥز + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + data_len += 4; + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupDataW22:%d,%d,%d,%d",data_buff[4],data_buff[5],data_buff[6],data_buff[7]); + // Dbg_Println(DBG_BIT_PC_COMM, "flag:%02x,len:%d,sum:%02x",EEPROM_SaveInfo_Flag,data_len,data_buff[3]); + + //ҳ + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR3,EEPROM_INFO_Size); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ɹ!"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ʧ %02X!",rev); + return 0x01; + } + + //д + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR3, data_buff, WR_Len); + if(rev == 0x00){ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ɹ"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ʧ %02X!",rev); + return 0x02; + } + + return 0x00; +} + + + +/*************************************************************** + * : EEPROM_Default_RARDelayTim + * : ӳ¼ӳٲĬֵ + * : RarInfo : ṹ + * ز : + ****************************************************************/ +void EEPROM_Default_RARDelayTim(RAR_Info *RarInfo) +{ + RarInfo->Door_RARON_Time = 0; + RarInfo->Door_RARFF_TimeOut = DOOR_RDR_DELAYTIME; + RarInfo->BATH_RARON_Time = 0; + RarInfo->BATH_RARFF_TimeOut = BATH_RDR_DELAYTIME; +} + + + + + + + + + + + + + diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/gattprofile.c b/BLV_RF_W13_V04_20260114/User_Drivers/gattprofile.c new file mode 100644 index 0000000..651c6cc --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/gattprofile.c @@ -0,0 +1,734 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : gattprofile.C + * Author : WCH + * Version : V1.0 + * Date : 2018/12/10 + * Description : ԶֲͬԵķ񣬰ɶд֪ͨɶдȫɶ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/********************************************************************* + * INCLUDES + */ +#include "CONFIG.h" +#include "gattprofile.h" + +/********************************************************************* + * MACROS + */ + +/********************************************************************* + * CONSTANTS + */ + +// Position of simpleProfilechar4 value in attribute array +#define SIMPLEPROFILE_CHAR4_VALUE_POS 5//YYW,1008,11 + +/********************************************************************* + * TYPEDEFS + */ + +/********************************************************************* + * GLOBAL VARIABLES + */ +// Simple GATT Profile Service UUID: 0xFFF0 +const uint8_t simpleProfileServUUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_SERV_UUID), HI_UINT16(SIMPLEPROFILE_SERV_UUID)}; + +// Characteristic 1 UUID: 0xFFF1 +const uint8_t simpleProfilechar1UUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_CHAR1_UUID), HI_UINT16(SIMPLEPROFILE_CHAR1_UUID)}; + +// Characteristic 2 UUID: 0xFFF2 +const uint8_t simpleProfilechar2UUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_CHAR2_UUID), HI_UINT16(SIMPLEPROFILE_CHAR2_UUID)}; + +// Characteristic 3 UUID: 0xFFF3 +const uint8_t simpleProfilechar3UUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_CHAR3_UUID), HI_UINT16(SIMPLEPROFILE_CHAR3_UUID)}; + +// Characteristic 4 UUID: 0xFFF4 +const uint8_t simpleProfilechar4UUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_CHAR4_UUID), HI_UINT16(SIMPLEPROFILE_CHAR4_UUID)}; + +// Characteristic 5 UUID: 0xFFF5 +const uint8_t simpleProfilechar5UUID[ATT_BT_UUID_SIZE] = { + LO_UINT16(SIMPLEPROFILE_CHAR5_UUID), HI_UINT16(SIMPLEPROFILE_CHAR5_UUID)}; + +/********************************************************************* + * EXTERNAL VARIABLES + */ + +/********************************************************************* + * EXTERNAL FUNCTIONS + */ + +/********************************************************************* + * LOCAL VARIABLES + */ + +static simpleProfileCBs_t *simpleProfile_AppCBs = NULL; + +/********************************************************************* + * Profile Attributes - variables + */ + +// Simple Profile Service attribute +static const gattAttrType_t simpleProfileService = {ATT_BT_UUID_SIZE, simpleProfileServUUID}; + +// Simple Profile Characteristic 1 Properties +static uint8_t simpleProfileChar1Props = GATT_PROP_READ | GATT_PROP_WRITE; + +// Characteristic 1 Value +static uint8_t simpleProfileChar1[SIMPLEPROFILE_CHAR1_LEN] = {0}; + +// Simple Profile Characteristic 1 User Description +static uint8_t simpleProfileChar1UserDesp[] = "Characteristic 1\0"; + +// Simple Profile Characteristic 2 Properties +static uint8_t simpleProfileChar2Props = GATT_PROP_READ; // @suppress("Unused variable declaration in file scope") + +// Characteristic 2 Value +static uint8_t simpleProfileChar2[SIMPLEPROFILE_CHAR2_LEN] = {0}; + +// Simple Profile Characteristic 2 User Description +static uint8_t simpleProfileChar2UserDesp[] = "Characteristic 2\0"; // @suppress("Unused variable declaration in file scope") + +// Simple Profile Characteristic 3 Properties +static uint8_t simpleProfileChar3Props = GATT_PROP_WRITE; // @suppress("Unused variable declaration in file scope") + +// Characteristic 3 Value +static uint8_t simpleProfileChar3[SIMPLEPROFILE_CHAR3_LEN] = {0}; + +// Simple Profile Characteristic 3 User Description +static uint8_t simpleProfileChar3UserDesp[] = "Characteristic 3\0"; // @suppress("Unused variable declaration in file scope") + +// Simple Profile Characteristic 4 Properties +static uint8_t simpleProfileChar4Props = GATT_PROP_NOTIFY; + +// Characteristic 4 Value +static uint8_t simpleProfileChar4[1] = {0}; + +// Simple Profile Characteristic 4 Configuration Each client has its own +// instantiation of the Client Characteristic Configuration. Reads of the +// Client Characteristic Configuration only shows the configuration for +// that client and writes only affect the configuration of that client. +static gattCharCfg_t simpleProfileChar4Config[1]; + +// Simple Profile Characteristic 4 User Description +static uint8_t simpleProfileChar4UserDesp[] = "Characteristic 4\0"; + +// Simple Profile Characteristic 5 Properties +static uint8_t simpleProfileChar5Props = GATT_PROP_READ; + +// Characteristic 5 Value +static uint8_t simpleProfileChar5[SIMPLEPROFILE_CHAR5_LEN] = {0}; + +// Simple Profile Characteristic 5 User Description +static uint8_t simpleProfileChar5UserDesp[] = "Characteristic 5\0"; + +/********************************************************************* + * Profile Attributes - Table + */ + +static gattAttribute_t simpleProfileAttrTbl[] = { + // Simple Profile Service + { + {ATT_BT_UUID_SIZE, primaryServiceUUID}, /* type */ + GATT_PERMIT_READ, /* permissions */ + 0, /* handle */ + (uint8_t *)&simpleProfileService /* pValue */ + }, + + // Characteristic 1 Declaration + { + {ATT_BT_UUID_SIZE, characterUUID}, + GATT_PERMIT_READ, + 0, + &simpleProfileChar1Props}, //UUID1Ķд + + // Characteristic Value 1 + { + {ATT_BT_UUID_SIZE, simpleProfilechar1UUID}, + GATT_PERMIT_READ | GATT_PERMIT_WRITE, + 0, + simpleProfileChar1}, //UUID1Ĵ洢ʵ + + // Characteristic 1 User Description + { + {ATT_BT_UUID_SIZE, charUserDescUUID}, + GATT_PERMIT_READ, + 0, + simpleProfileChar1UserDesp}, //UUID1ı + + +//YYW,1008 +// // Characteristic 2 Declaration +// { +// {ATT_BT_UUID_SIZE, characterUUID}, +// GATT_PERMIT_READ, +// 0, +// &simpleProfileChar2Props}, +// +// // Characteristic Value 2 +// { +// {ATT_BT_UUID_SIZE, simpleProfilechar2UUID}, +// GATT_PERMIT_READ, +// 0, +// simpleProfileChar2}, +// +// // Characteristic 2 User Description +// { +// {ATT_BT_UUID_SIZE, charUserDescUUID}, +// GATT_PERMIT_READ, +// 0, +// simpleProfileChar2UserDesp}, +// +// // Characteristic 3 Declaration +// { +// {ATT_BT_UUID_SIZE, characterUUID}, +// GATT_PERMIT_READ, +// 0, +// &simpleProfileChar3Props}, +// +// // Characteristic Value 3 +// { +// {ATT_BT_UUID_SIZE, simpleProfilechar3UUID}, +// GATT_PERMIT_WRITE, +// 0, +// simpleProfileChar3}, +// +// // Characteristic 3 User Description +// { +// {ATT_BT_UUID_SIZE, charUserDescUUID}, +// GATT_PERMIT_READ, +// 0, +// simpleProfileChar3UserDesp}, + + + // Characteristic 4 Declaration + { + {ATT_BT_UUID_SIZE, characterUUID}, + GATT_PERMIT_READ, + 0, + &simpleProfileChar4Props}, + + // Characteristic Value 4 + { + {ATT_BT_UUID_SIZE, simpleProfilechar4UUID}, + 0, + 0, + simpleProfileChar4}, + + // Characteristic 4 configuration + { + {ATT_BT_UUID_SIZE, clientCharCfgUUID}, + GATT_PERMIT_READ | GATT_PERMIT_WRITE, + 0, + (uint8_t *)simpleProfileChar4Config}, + + // Characteristic 4 User Description + { + {ATT_BT_UUID_SIZE, charUserDescUUID}, + GATT_PERMIT_READ, + 0, + simpleProfileChar4UserDesp}, + + // Characteristic 5 Declaration + { + {ATT_BT_UUID_SIZE, characterUUID}, + GATT_PERMIT_READ, + 0, + &simpleProfileChar5Props}, + + // Characteristic Value 5 + { + {ATT_BT_UUID_SIZE, simpleProfilechar5UUID}, + GATT_PERMIT_AUTHEN_READ,//GATT_PERMIT_AUTHEN_READ, + 0, + simpleProfileChar5}, + + // Characteristic 5 User Description + { + {ATT_BT_UUID_SIZE, charUserDescUUID}, + GATT_PERMIT_READ, + 0, + simpleProfileChar5UserDesp}, +}; + +/********************************************************************* + * LOCAL FUNCTIONS + */ +static bStatus_t simpleProfile_ReadAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t *pLen, uint16_t offset, uint16_t maxLen, uint8_t method); +static bStatus_t simpleProfile_WriteAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t len, uint16_t offset, uint8_t method); + +static void simpleProfile_HandleConnStatusCB(uint16_t connHandle, uint8_t changeType); + +/********************************************************************* + * PROFILE CALLBACKS + */ +// Simple Profile Service Callbacks +gattServiceCBs_t simpleProfileCBs = { + simpleProfile_ReadAttrCB, // Read callback function pointer + simpleProfile_WriteAttrCB, // Write callback function pointer + NULL // Authorization callback function pointer +}; + +/********************************************************************* + * PUBLIC FUNCTIONS + */ + +/********************************************************************* + * @fn SimpleProfile_AddService + * + * @brief Initializes the Simple Profile service by registering + * GATT attributes with the GATT server. + * + * @param services - services to add. This is a bit map and can + * contain more than one service. + * + * @return Success or Failure + */ +bStatus_t SimpleProfile_AddService(uint32_t services) +{ + uint8_t status = SUCCESS; + + // Initialize Client Characteristic Configuration attributes + GATTServApp_InitCharCfg(INVALID_CONNHANDLE, simpleProfileChar4Config); //ʼUUID4֪ͨ + + // Register with Link DB to receive link status change callback + linkDB_Register(simpleProfile_HandleConnStatusCB); //·ݿ⣨Link DBע״̬仯Ļص + + if(services & SIMPLEPROFILE_SERVICE) //ע GATT 񵽷 + { + // Register GATT attribute list and CBs with GATT Server App + status = GATTServApp_RegisterService(simpleProfileAttrTbl, //UUIDעԱ + GATT_NUM_ATTRS(simpleProfileAttrTbl), //עԱԵ + GATT_MAX_ENCRYPT_KEY_SIZE, //Կ󳤶 + &simpleProfileCBs); //дص + } + + return (status); +} + +/********************************************************************* + * @fn SimpleProfile_RegisterAppCBs + * + * @brief Registers the application callback function. Only call + * this function once. + * + * @param callbacks - pointer to application callbacks. + * + * @return SUCCESS or bleAlreadyInRequestedMode + */ +bStatus_t SimpleProfile_RegisterAppCBs(simpleProfileCBs_t *appCallbacks) +{ + if(appCallbacks) + { + simpleProfile_AppCBs = appCallbacks; + + return (SUCCESS); + } + else + { + return (bleAlreadyInRequestedMode); + } +} + +/********************************************************************* + * @fn SimpleProfile_SetParameter + * + * @brief Set a Simple Profile parameter. + * + * @param param - Profile parameter ID + * @param len - length of data to right + * @param value - pointer to data to write. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + * + * @return bStatus_t + */ +bStatus_t SimpleProfile_SetParameter(uint8_t param, uint8_t len, void *value) +{ + bStatus_t ret = SUCCESS; + switch(param) + { + case SIMPLEPROFILE_CHAR1: + if(len == SIMPLEPROFILE_CHAR1_LEN) + { + tmos_memcpy(simpleProfileChar1, value, SIMPLEPROFILE_CHAR1_LEN); + } + else + { + ret = bleInvalidRange; + } + break; + + case SIMPLEPROFILE_CHAR2: + if(len == SIMPLEPROFILE_CHAR2_LEN) + { + tmos_memcpy(simpleProfileChar2, value, SIMPLEPROFILE_CHAR2_LEN); + } + else + { + ret = bleInvalidRange; + } + break; + + case SIMPLEPROFILE_CHAR3: + if(len == SIMPLEPROFILE_CHAR3_LEN) + { + tmos_memcpy(simpleProfileChar3, value, SIMPLEPROFILE_CHAR3_LEN); + } + else + { + ret = bleInvalidRange; + } + break; + + case SIMPLEPROFILE_CHAR4: + if(len == SIMPLEPROFILE_CHAR4_LEN) + { + tmos_memcpy(simpleProfileChar4, value, SIMPLEPROFILE_CHAR4_LEN); + } + else + { + ret = bleInvalidRange; + } + break; + + case SIMPLEPROFILE_CHAR5: + if(len == SIMPLEPROFILE_CHAR5_LEN) + { + tmos_memcpy(simpleProfileChar5, value, SIMPLEPROFILE_CHAR5_LEN); + } + else + { + ret = bleInvalidRange; + } + break; + + default: + ret = INVALIDPARAMETER; + break; + } + + return (ret); +} + +/********************************************************************* + * @fn SimpleProfile_GetParameter + * + * @brief Get a Simple Profile parameter. + * + * @param param - Profile parameter ID + * @param value - pointer to data to put. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + * + * @return bStatus_t + */ +bStatus_t SimpleProfile_GetParameter(uint8_t param, void *value) +{ + bStatus_t ret = SUCCESS; + switch(param) + { + case SIMPLEPROFILE_CHAR1: + tmos_memcpy(value, simpleProfileChar1, SIMPLEPROFILE_CHAR1_LEN); + break; + + case SIMPLEPROFILE_CHAR2: + tmos_memcpy(value, simpleProfileChar2, SIMPLEPROFILE_CHAR2_LEN); + break; + + case SIMPLEPROFILE_CHAR3: + tmos_memcpy(value, simpleProfileChar3, SIMPLEPROFILE_CHAR3_LEN); + break; + + case SIMPLEPROFILE_CHAR4: + tmos_memcpy(value, simpleProfileChar4, SIMPLEPROFILE_CHAR4_LEN); + break; + + case SIMPLEPROFILE_CHAR5: + tmos_memcpy(value, simpleProfileChar5, SIMPLEPROFILE_CHAR5_LEN); + break; + + default: + ret = INVALIDPARAMETER; + break; + } + + return (ret); +} + +/********************************************************************* + * @fn simpleProfile_Notify + * + * @brief Send a notification containing a heart rate + * measurement. + * + * @param connHandle - connection handle + * @param pNoti - pointer to notification structure + * + * @return Success or Failure + */ +bStatus_t simpleProfile_Notify(uint16_t connHandle, attHandleValueNoti_t *pNoti) +{ + uint16_t value = GATTServApp_ReadCharCfg(connHandle, simpleProfileChar4Config); + + // If notifications enabled + if(value & GATT_CLIENT_CFG_NOTIFY) + { + // Set the handle //SIMPLEPROFILE_CHAR4_VALUE_POS ֵ4λ + pNoti->handle = simpleProfileAttrTbl[SIMPLEPROFILE_CHAR4_VALUE_POS].handle; + + // Send the notification + return GATT_Notification(connHandle, pNoti, FALSE); + } + return bleIncorrectMode; +} + +/********************************************************************* + * @fn simpleProfile_ReadAttrCB + * + * @brief Read an attribute. + * + * @param connHandle - connection message was received on + * @param pAttr - pointer to attribute + * @param pValue - pointer to data to be read + * @param pLen - length of data to be read + * @param offset - offset of the first octet to be read + * @param maxLen - maximum length of data to be read + * + * @return Success or Failure + */ +static bStatus_t simpleProfile_ReadAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t *pLen, uint16_t offset, uint16_t maxLen, uint8_t method) +{ + bStatus_t status = SUCCESS; + + + // Make sure it's not a blob operation (no attributes in the profile are long) + if(offset > 0) + { + return (ATT_ERR_ATTR_NOT_LONG); + } + + if(pAttr->type.len == ATT_BT_UUID_SIZE) + { + // 16-bit UUID + uint16_t uuid = BUILD_UINT16(pAttr->type.uuid[0], pAttr->type.uuid[1]); + switch(uuid) + { + // No need for "GATT_SERVICE_UUID" or "GATT_CLIENT_CHAR_CFG_UUID" cases; + // gattserverapp handles those reads + + // characteristics 1 and 2 have read permissions + // characteritisc 3 does not have read permissions; therefore it is not + // included here + // characteristic 4 does not have read permissions, but because it + // can be sent as a notification, it is included here + case SIMPLEPROFILE_CHAR1_UUID: + if(maxLen > SIMPLEPROFILE_CHAR1_LEN) + { + *pLen = SIMPLEPROFILE_CHAR1_LEN; + } + else + { + *pLen = maxLen; + } + tmos_memcpy(pValue, pAttr->pValue, *pLen); + break; +//YYW,1008 +// case SIMPLEPROFILE_CHAR2_UUID: +// if(maxLen > SIMPLEPROFILE_CHAR2_LEN) +// { +// *pLen = SIMPLEPROFILE_CHAR2_LEN; +// } +// else +// { +// *pLen = maxLen; +// } +// tmos_memcpy(pValue, pAttr->pValue, *pLen); +// break; + + case SIMPLEPROFILE_CHAR4_UUID: + if(maxLen > SIMPLEPROFILE_CHAR4_LEN) + { + *pLen = SIMPLEPROFILE_CHAR4_LEN; + } + else + { + *pLen = maxLen; + } + tmos_memcpy(pValue, pAttr->pValue, *pLen); + break; + + case SIMPLEPROFILE_CHAR5_UUID: + if(maxLen > SIMPLEPROFILE_CHAR5_LEN) + { + *pLen = SIMPLEPROFILE_CHAR5_LEN; + } + else + { + *pLen = maxLen; + } + tmos_memcpy(pValue, pAttr->pValue, *pLen); + break; + + default: + // Should never get here! (characteristics 3 and 4 do not have read permissions) + *pLen = 0; + status = ATT_ERR_ATTR_NOT_FOUND; + break; + } + } + else + { + // 128-bit UUID + *pLen = 0; + status = ATT_ERR_INVALID_HANDLE; + } + + return (status); +} + +/********************************************************************* + * @fn simpleProfile_WriteAttrCB + * + * @brief Validate attribute data prior to a write operation + * + * @param connHandle - connection message was received on + * @param pAttr - pointer to attribute + * @param pValue - pointer to data to be written + * @param len - length of data + * @param offset - offset of the first octet to be written + * + * @return Success or Failure + */ +static bStatus_t simpleProfile_WriteAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t len, uint16_t offset, uint8_t method) +{ + bStatus_t status = SUCCESS; + uint8_t notifyApp = 0xFF; + + // If attribute permissions require authorization to write, return error + if(gattPermitAuthorWrite(pAttr->permissions)) + { + // Insufficient authorization + return (ATT_ERR_INSUFFICIENT_AUTHOR); + } + + if(pAttr->type.len == ATT_BT_UUID_SIZE) + { + // 16-bit UUID + uint16_t uuid = BUILD_UINT16(pAttr->type.uuid[0], pAttr->type.uuid[1]); + switch(uuid) + { + case SIMPLEPROFILE_CHAR1_UUID: + //Validate the value + // Make sure it's not a blob oper + if(offset == 0) + { + if(len > SIMPLEPROFILE_CHAR1_LEN) + { + status = ATT_ERR_INVALID_VALUE_SIZE; + } + } + else + { + status = ATT_ERR_ATTR_NOT_LONG; + } + + //Write the value + if(status == SUCCESS) + { + tmos_memcpy(pAttr->pValue, pValue, SIMPLEPROFILE_CHAR1_LEN); + notifyApp = SIMPLEPROFILE_CHAR1; + } + break; +//YYW,1008 +// case SIMPLEPROFILE_CHAR3_UUID: +// //Validate the value +// // Make sure it's not a blob oper +// if(offset == 0) +// { +// if(len > SIMPLEPROFILE_CHAR3_LEN) +// { +// status = ATT_ERR_INVALID_VALUE_SIZE; +// } +// } +// else +// { +// status = ATT_ERR_ATTR_NOT_LONG; +// } +// +// //Write the value +// if(status == SUCCESS) +// { +// tmos_memcpy(pAttr->pValue, pValue, SIMPLEPROFILE_CHAR3_LEN); +// notifyApp = SIMPLEPROFILE_CHAR3; +// } +// break; + + + case GATT_CLIENT_CHAR_CFG_UUID: + status = GATTServApp_ProcessCCCWriteReq(connHandle, pAttr, pValue, len, + offset, GATT_CLIENT_CFG_NOTIFY); + break; + + default: + // Should never get here! (characteristics 2 and 4 do not have write permissions) + status = ATT_ERR_ATTR_NOT_FOUND; + break; + } + } + else + { + // 128-bit UUID + status = ATT_ERR_INVALID_HANDLE; + } + + // If a charactersitic value changed then callback function to notify application of change + if((notifyApp != 0xFF) && simpleProfile_AppCBs && simpleProfile_AppCBs->pfnSimpleProfileChange) + { + simpleProfile_AppCBs->pfnSimpleProfileChange(notifyApp, pValue, len); + } + + return (status); +} + +/********************************************************************* + * @fn simpleProfile_HandleConnStatusCB + * + * @brief Simple Profile link status change handler function. + * + * @param connHandle - connection handle + * @param changeType - type of change + * + * @return none + */ +static void simpleProfile_HandleConnStatusCB(uint16_t connHandle, uint8_t changeType) +{ + // Make sure this is not loopback connection + if(connHandle != LOOPBACK_CONNHANDLE) + { + // Reset Client Char Config if connection has dropped + if((changeType == LINKDB_STATUS_UPDATE_REMOVED) || + ((changeType == LINKDB_STATUS_UPDATE_STATEFLAGS) && + (!linkDB_Up(connHandle)))) + { + GATTServApp_InitCharCfg(connHandle, simpleProfileChar4Config); // ӶϿʱCHAR4֪ͨ + } + } +} + +/********************************************************************* +*********************************************************************/ diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/debug.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/debug.h new file mode 100644 index 0000000..c0358df --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/debug.h @@ -0,0 +1,72 @@ +#ifndef USER_DRIVERS_INC_DEBUG_H_ +#define USER_DRIVERS_INC_DEBUG_H_ + +#include +#include "CH57x_common.h" + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* DEBUG log function. DEBUG printf() ض*/ +#ifndef DBG_LOG_EN +#define DBG_LOG_EN 1 //DEBUG LOG ܿ +#endif + +#ifndef DBG_Particular_EN +#define DBG_Particular_EN 0 //ϸϢ -- 嵽ļúк +#endif + +/*Ϣʼ״̬*/ +#define DBG_OPT_RDR_STATUS 0 //״̬ʹ +#define DBG_OPT_Debug_STATUS 0 //ʱϢӡ +#define DBG_OPT_PC_COMM 0 //PCͨѶӡ +#define DBG_OPT_BLE_STATUS 0 //Ϣӡ +#define DBG_OPT_DEVICE_STATUS 0 //豸ӡϢӡ +#define DBG_OPT_SYS_STATUS 0 //ϵͳϢӡ + +/*Ϣλ*/ +#define DBG_BIT_RDR_STATUS 5 +#define DBG_BIT_Debug_STATUS 4 +#define DBG_BIT_PC_COMM 3 +#define DBG_BIT_BLE_STATUS 2 +#define DBG_BIT_DEVICE_STATUS 1 +#define DBG_BIT_SYS_STATUS 0 + + +#define WDT_NUM 150 //Źʱ + +extern uint32_t Dbg_Switch; + +void WDT_Init(void); +void WDT_Feed(void); + + + +void Systick_Init(void); +void Dbg_NoTick_Println(int DbgOptBit, const char *cmd, ...); +void Dbg_Println(int DbgOptBit, const char *cmd, ...); +void Dbg_Print_Buff(int DbgOptBit, const char *cmd, uint8_t *buff, uint32_t len); + + +#if DBG_LOG_EN + +#if DBG_Particular_EN +#define DBG_Printf(...) {printf("%s %s-%d :",__FILE__,__func__,__LINE__);printf(__VA_ARGS__);} +#else +#define DBG_Printf(...) printf(__VA_ARGS__) +#endif + +#else +#define DBG_Printf(...) +#endif + +#define DBG_INFO(msg) DBG_Printf("%s %s-%d :%s",__FILE__,__func__,__LINE__,msg) + +#ifdef __cplusplus +} +#endif + +#endif /* USER_DRIVEN_INC_DEBUG_H_ */ diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/flash.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/flash.h new file mode 100644 index 0000000..7a50501 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/flash.h @@ -0,0 +1,99 @@ +#ifndef USER_DRIVERS_INC_FLASH_H_ +#define USER_DRIVERS_INC_FLASH_H_ + +#include "CH57x_common.h" + +/* CodeFlash: + * 0x0000000-0x0001000 : Jump , 4K + * 0x0001000-0x001E000 : APP , 116K + * 0x001E000-0x0036000 : IAP , 96K + * 0x0036000-0x0037000 : 4k + * 0x0037000-0x003A000 : User-Flash , 12K + * 0x003A000-0x003BFFF : image-Flag , 8K + * */ + +/*CH572D FlashROM : 240KB 0x00000000-0x0003BFFF + * ĿʹFlash 0x037000-0x00039FFF ~ ΪûϢ洢(12K) + */ + + + +#define EEPROM_INFO_START_ADDR 0x037000 + +#define EEPROM_INFO_SAVE_ADDR1 EEPROM_INFO_START_ADDR //˿Ϣ +#define EEPROM_INFO_SAVE_ADDR2 0x038000 // +#define EEPROM_INFO_SAVE_ADDR3 0x039000 //ʱ +#define EEPROM_INFO_END_ADDR 0x039FFF + +#define EEPROM_INFO_Size 4096 //0x001000 //flash-ROM,Сλ4K + +#define IMAGE_A_FLAG 0x01 +#define IMAGE_B_FLAG 0x02 +#define IMAGE_IAP_FLAG 0x03 + +#define EEPROM_DataInfo_Len 0x04 //Ŀǰݳ +#define EEPROM_SaveInfo_Flag 0x5A //־λ +#define EEPROM_SaveGpInfo_Flag 0x1A //鱣־λ +#define EEPROM_RARDelayTim_Flag 0x3A //ӳ¼ӳٲ־λ + + + +#define DOOR_RDR_DELAYTIME 30000 //Ŵʱʱ +#define BATH_RDR_DELAYTIME 3000000 //ԡʱʱ + + +/* DataFlashOTAϢ */ +typedef struct +{ + unsigned char ImageFlag; //¼ĵǰimage־ + unsigned char Revd[3]; //һֽڴOTAתAPPĴ +}OTADataFlashInfo_t; + + +typedef struct +{ + uint8_t VC_ConNToSGruop; //޿ȡ + uint8_t VC_ConNToSSubset; //޿ȡ + + uint8_t VC_ConSToNGruop; //() + uint8_t VC_ConSToNSubset; //޿ȡ + uint8_t PortGroupInfo[VIRTUAL_GP_NUM_MAX][15]; +}GroupInfo_t; + + +typedef struct +{ + uint32_t Door_RARON_Time; //Ŵſȵƿ¼ӳ + uint32_t Door_RARFF_TimeOut; //ȵƹ¼ӳ + uint32_t BATH_RARON_Time; //ԡ״↑ԡƿ¼ӳ + uint32_t BATH_RARFF_TimeOut; //ԡ״↑ԡƹ¼ӳ + +}RAR_Info; + + + + +/*ֲĬֵ*/ +extern uint8_t PortInfo[VIRTUAL_PORT_MAX][11]; +extern GroupInfo_t g_portGp; +extern RAR_Info g_rar_info; + +uint8_t EEPROM_CheckSum(uint8_t *data,uint16_t len); + +void EEPROM_Init(void); +uint8_t EEPROM_Read_PortInfo(void); +void EEPROM_Default_PortInfo(void); +uint8_t EEPROM_Write_PortInfo(void); + + +uint8_t EEPROM_Read_PortGroupData(GroupInfo_t *info); +void EEPROM_Default_PortGroupData(void); +uint8_t EEPROM_Write_PortGroupData(GroupInfo_t *info); + +void EEPROM_Default_RARDelayTim(RAR_Info *RarInfo); +uint8_t EEPROM_Write_RARDelayTim(RAR_Info *RarInfo); +uint8_t EEPROM_Read_RARDelayTim(RAR_Info *RarInfo); + +#endif + + diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/gattprofile.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/gattprofile.h new file mode 100644 index 0000000..94c0cf6 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/gattprofile.h @@ -0,0 +1,135 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : gattprofile.h + * Author : WCH + * Version : V1.0 + * Date : 2018/12/11 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef GATTPROFILE_H +#define GATTPROFILE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/********************************************************************* + * INCLUDES + */ + +/********************************************************************* + * CONSTANTS + */ + +// Profile Parameters +#define SIMPLEPROFILE_CHAR1 0 // RW uint8_t - Profile Characteristic 1 value +#define SIMPLEPROFILE_CHAR2 1 // RW uint8_t - Profile Characteristic 2 value +#define SIMPLEPROFILE_CHAR3 2 // RW uint8_t - Profile Characteristic 3 value +#define SIMPLEPROFILE_CHAR4 3 // RW uint8_t - Profile Characteristic 4 value +#define SIMPLEPROFILE_CHAR5 4 // RW uint8_t - Profile Characteristic 4 value + +// Simple Profile Service UUID +#define SIMPLEPROFILE_SERV_UUID 0xFFE0 + +// Key Pressed UUID +#define SIMPLEPROFILE_CHAR1_UUID 0xFFE1 // дͨ +#define SIMPLEPROFILE_CHAR2_UUID 0xFFE4 // δʼͨ +#define SIMPLEPROFILE_CHAR3_UUID 0xFFE5 // δʼͨ +#define SIMPLEPROFILE_CHAR4_UUID 0xFFE2 // ӡͨ +#define SIMPLEPROFILE_CHAR5_UUID 0xFFE3 // ͨδʹ + +// Simple Keys Profile Services bit fields +#define SIMPLEPROFILE_SERVICE 0x00000001 + +// Length of characteristic in bytes ( Default MTU is 23 ) +#define SIMPLEPROFILE_CHAR1_LEN 80 +#define SIMPLEPROFILE_CHAR2_LEN 10 +#define SIMPLEPROFILE_CHAR3_LEN 10 +#define SIMPLEPROFILE_CHAR4_LEN 60 +#define SIMPLEPROFILE_CHAR5_LEN 5 + +/********************************************************************* + * TYPEDEFS + */ + +/********************************************************************* + * MACROS + */ + +/********************************************************************* + * Profile Callbacks + */ + +// Callback when a characteristic value has changed +typedef void (*simpleProfileChange_t)(uint8_t paramID, uint8_t *pValue, uint16_t len); + +typedef struct +{ + simpleProfileChange_t pfnSimpleProfileChange; // Called when characteristic value changes +} simpleProfileCBs_t; + +/********************************************************************* + * API FUNCTIONS + */ + +/* + * SimpleProfile_AddService- Initializes the Simple GATT Profile service by registering + * GATT attributes with the GATT server. + * + * @param services - services to add. This is a bit map and can + * contain more than one service. + */ + +extern bStatus_t SimpleProfile_AddService(uint32_t services); + +/* + * SimpleProfile_RegisterAppCBs - Registers the application callback function. + * Only call this function once. + * + * appCallbacks - pointer to application callbacks. + */ +extern bStatus_t SimpleProfile_RegisterAppCBs(simpleProfileCBs_t *appCallbacks); + +/* + * SimpleProfile_SetParameter - Set a Simple GATT Profile parameter. + * + * param - Profile parameter ID + * len - length of data to right + * value - pointer to data to write. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + */ +extern bStatus_t SimpleProfile_SetParameter(uint8_t param, uint8_t len, void *value); + +/* + * SimpleProfile_GetParameter - Get a Simple GATT Profile parameter. + * + * param - Profile parameter ID + * value - pointer to data to write. This is dependent on + * the parameter ID and WILL be cast to the appropriate + * data type (example: data type of uint16_t will be cast to + * uint16_t pointer). + */ +extern bStatus_t SimpleProfile_GetParameter(uint8_t param, void *value); + +/* + * simpleProfile_Notify - Send notification. + * + * connHandle - connect handle + * pNoti - pointer to structure to notify. + */ +extern bStatus_t simpleProfile_Notify(uint16_t connHandle, attHandleValueNoti_t *pNoti); + +/********************************************************************* +*********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/peripheral.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/peripheral.h new file mode 100644 index 0000000..09a2254 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/peripheral.h @@ -0,0 +1,78 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : peripheral.h + * Author : WCH + * Version : V1.0 + * Date : 2018/12/11 + * Description : + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +#ifndef PERIPHERAL_H +#define PERIPHERAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +/********************************************************************* + * INCLUDES + */ + +/********************************************************************* + * CONSTANTS + */ + +// Peripheral Task Events +#define SBP_START_DEVICE_EVT 0x0001 +#define SBP_PERIODIC_EVT 0x0002 +#define SBP_READ_RSSI_EVT 0x0004 +#define SBP_PARAM_UPDATE_EVT 0x0008 +#define SBP_PHY_UPDATE_EVT 0x0010 + +#define SBP_MTU_DELAY_EVT 0x0020 //YYW,20250917MTUЭ¼ +#define SBP_PRINTF_BLE_EVT 0x0040 //YYW,20251008תOTA¼ + + +/* OTA ־ */ +#define IMAGE_IAP_FLAG 0x03 + +/* DataFlashַռλ */ +#define OTA_DATAFLASH_ADD 0x0003A000 +/********************************************************************* + * MACROS + */ +typedef struct +{ + uint16_t connHandle; // Connection handle of current connection + uint16_t connInterval; + uint16_t connSlaveLatency; + uint16_t connTimeout; +} peripheralConnItem_t; + +/********************************************************************* + * FUNCTIONS + */ +extern uint8_t BLE_OTA_flag; +/* + * Task Initialization for the BLE Application + */ +extern void Peripheral_Init(void); +extern void Ble_Printfln(int DbgOptBit, const char *cmd, ...); +extern void Ble_Buff_Print(uint8_t *pValue, uint16_t len); +/* + * Task Event Processor for the BLE Application + */ +extern uint16_t Peripheral_ProcessEvent(uint8_t task_id, uint16_t events); +void Jump_OTA(void); //YYW,20251009 +gapRole_States_t Peripheral_GetBLEState(void); +/********************************************************************* +*********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/sensor_scan.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/sensor_scan.h new file mode 100644 index 0000000..3c81276 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/sensor_scan.h @@ -0,0 +1,240 @@ +#ifndef _SENSOR_SCAN_H_ +#define _SENSOR_SCAN_H_ + + +#define WashRoom_Pin GPIO_Pin_2 //S1 +#define BedRoom_Pin GPIO_Pin_3 //S2 +#define GateWay_Pin GPIO_Pin_4 +#define Retain_Pin GPIO_Pin_5 //Ŵ + +#define DET_EXIST1 GPIO_Pin_6 +#define DET_EXIST2 GPIO_Pin_7 + + +#define DET_PRESS 0x00 +#define DET_LOOSEN 0x01 + + +#define DET_NONE 0x00 +#define DET_SER_PRESS 0x01 // +#define DET_SER_LOOSEN 0x02 //δ +#define DET_OPENTOCLOSE 0x03 +#define DET_CLOSETOOPEN 0x04 + +#define DIP_DELAY_COUNT 5 //ɨ +#define DIP_SCAN_Time 20 //ÿɨʱ + +#define DET_DELAY_COUNT 10 // +#define DET_DELAY_COUNT_LONG 600 //жʱΪ3S + +typedef enum{ + DET_CH0, + DET_CH1, + DET_CH2, + DET_CH3, + DET_CH4, + + DET_MAX, +}SENSORDET_CH_E; + + + +typedef enum { + KEY_VAL_NOT, //û + KEY_VAL_SHORT_PRESS, // + KEY_VAL_CONT_LONG_PRESS, // + KEY_VAL_SINGLE_LONG_PRESS, // + KEY_VAL_LONG_PRESS_LOOSEN, //ɿ +} KEY_VAL_e; + + + +typedef struct{ + + uint8_t det_ctrlout_state; //ʱرձ + uint32_t det_action_tick; //ʱʱ + + uint8_t door_rarON_flag; //Ŵſ־ + uint8_t bath_rarON_flag; //ϴԡ״̬ + + uint8_t bath_rarOFF_flag; //ϴԡ״̬ + + uint32_t door_rarOn_time; //Ŵʼʱʱ + uint32_t bath_rarOn_time; //ԡ״¼ʱʱ + + uint32_t door_rar_deltime; //Ŵʼʱʱ + uint32_t bath_rar_deltime; //ԡ״¼ʱʱ + +}__attribute__ ((__packed__))SENSORDET_INFO_T; + + + +#define SOMEONE 1 // +#define NOONE 2 // + +#define VIRTUAL_PORT_MAX 5 //˿ +#define VIRTUAL_GP_NUM_MAX 9 //// + +//ö˿ڳʱʱ +#define DETECTION_Window_Hour_Max 8//6 +#define DETECTION_Window_Min_Max 480//360 +#define DETECTION_Window_Sec_Max 28800//21600 //ʱ䴰ڼʱ䣬λ;S +#define DETECTION_Window_OnlyPort 240//270 //˿ֽDETECTION_Window_Sec_Max/10/8 +#define DETECTION_Window_BitMin 15 //һbit + +// +#define VC_CONDGROUP_SomeOne_Type 0x01 // +#define VC_CONDGROUP_NoOne_Type 0x02 +#define VC_CONDGROUP_BrieflyLeaving_Type 0x03 +#define VC_CONDGROUP_LongTermLeaving_Type 0x04 + + +//¼ +#define VC_Event_PersonDet_Flag 0x01 //˵¼ +#define VC_Event_NoPersonDet_Flag 0x02 //˵¼ +#define VC_Event_DoorSensorOpen_Flag 0x04 //Ŵſ¼ +#define VC_Event_DoorSensorClose_Flag 0x08 //Ŵʼ +#define VC_Event_BathroomRadarOn_Flag 0x10 //ϴּ״↑¼ +#define VC_Event_BathroomRadarOFF_Flag 0x20 //ϴּ״¼ + + + +#define VC_CONDGROUP_Default_StartGroup 0x01 // ĬʼΪ0x01 +#define VC_NONE_Default_StartGroup 0x06 //, Ĭ֧޸ģռ䲻 + + + +typedef enum +{ + DIP_VAL_OFF, //ɿ + DIP_VAL_ON, // +}DIP_VAL_e; + + +typedef struct +{ + uint8_t delayCnt_ON[DET_MAX]; + uint8_t delayCnt_OFF[DET_MAX]; + uint32_t DIP_val; + uint32_t DIP_last_val; +}DIP_t; + + +typedef struct +{ + uint8_t HPort_Type; //ӳ˿ + uint8_t HPort_Addr; //ӳ˿485ַ + uint16_t HPort_Loop; //ӳ˿ڻ· + + uint8_t Release_Thres; //ͷֵ -> + uint8_t PortIndex; //˿ں + uint8_t PortEnFlag; //·ʱ ñ + uint16_t Judgment_Time; //·ͳʱ + uint8_t Judgment_Unit; //·ͳʱ䵥λ + uint8_t Trigger_Thres; //ֵ -> +}__attribute__ ((__packed__))VPORT_INFO_STRUCT; //˿Ϣṹ - ļд洢ݽṹ + + +typedef struct +{ + uint8_t Exist_Flag; //˱ 1: 2: 3:뿪 4ʱ뿪 + uint8_t Condi_Gruop; // + uint8_t Condi_Subset; // + + uint16_t Judgment_Time; // - жʱ + uint8_t Judgment_Unit; // - жʱ䵥λ + + uint8_t Port_State[VIRTUAL_PORT_MAX]; //˿,0:ж 1: 2:ͷ 4, 3, + + uint16_t Timeout_Time; // - жʱʱ + uint8_t Timeout_Unit; // - жʱʱ䵥λ + + uint8_t Trigger_Flag; // + +// uint32_t Trigger_Tick; //ʱ +// uint32_t Timeout_Tick; //ʱʱ +}__attribute__ ((__packed__))CONDITION_STRUCT; //жϽṹ + + +typedef struct +{ + uint8_t HPort_Type; //ӳ˿ + uint8_t HPort_Addr; //ӳ˿485ַ + uint16_t HPort_Loop; //ӳ˿ڻ· + + uint8_t PortIndex; //˿ں + uint8_t PortEnFlag; //·ʱͳñ +}__attribute__ ((__packed__))VPORT_STRUCT; //˿Խṹ + + +typedef struct +{ + uint16_t Det1sTime; //15s⵱ǰ + uint16_t TriggerNum[VIRTUAL_PORT_MAX]; //15sڴ + uint8_t FullFlag[VIRTUAL_PORT_MAX]; //ⴰ - ־λ + + uint8_t Trigger_Thres[VIRTUAL_PORT_MAX]; //ֵ -> + uint8_t Release_Thres[VIRTUAL_PORT_MAX]; //ͷֵ -> + uint16_t DetWinTotalNum[VIRTUAL_PORT_MAX]; //ʱ Ĭ 8 Сʱ() λS + uint16_t DetWinTrigger[VIRTUAL_PORT_MAX]; //ʱ(λn) + uint16_t DetWinIdex[VIRTUAL_PORT_MAX]; //± + +}__attribute__ ((__packed__))DETECT_STRUCT; //89B + + + +typedef struct +{ + uint32_t PortTick; //˿ڼʱ 4 + uint8_t PortInit_Flag; //˿ӳ 1 + + VPORT_STRUCT Port_Info[VIRTUAL_PORT_MAX]; //ӳ˿ 77 + uint8_t PortState[VIRTUAL_PORT_MAX]; //˿״̬ 11 + uint8_t PortStateLast[VIRTUAL_PORT_MAX]; //һζ˿״̬ 11 + uint8_t PortStateAct[VIRTUAL_PORT_MAX]; //˿ڶ״̬ 11 ȶʹ 0:ж 1: 2:ͷ 3:ر仯 4:ر仯,ͷ + +// uint32_t PortTiggleTick[VIRTUAL_PORT_MAX]; //˿ڼ¼㰴ʱ - A9IOط״̬ 44 + DETECT_STRUCT DetInfo; //ʱϢ 102 + + float ActThreshold[VIRTUAL_PORT_MAX]; //ʵʴֵ 44 + + uint8_t ExistState; //˻״̬ + uint8_t ExistState_Last; + uint8_t ConGroupIndx; //ǰж± + uint8_t Action; // + uint8_t CardState; //п״̬ + uint8_t CardStateLast; + uint8_t DetNum; //봰ڼ˿ + uint8_t Last_ConGroupType; //һ - ڲ롢ʱ ¼ + + uint8_t print_rdrsta_flag; //״״̬־, 0x01, + uint8_t rdrsta_change_flag; // 0x01,״״̬ı + + uint32_t Condition_Trigger_Tick; + uint32_t Last_Trigger_Tick; //һʱ + + DIP_t g_Dip; //˿ + +}__attribute__ ((__packed__))VIRTUALCARD_STRUCT; + + + +extern SENSORDET_INFO_T sensor_info; + + + + +void Blv_CardlessPower_Tack(void); +void DetWin_WriteData_Bit(uint8_t port,uint16_t idex,uint8_t state); +uint8_t DetWin_ReadData_Bit(uint8_t port,uint16_t idex); + +void DIP_ScanTask(void); +void Sensor_Init(void); +void Action_Task(void); +void print_RDRsta_Tack(void); +uint8_t BLV_DETInfo_Recv_Processing(uint8_t* RecvData,uint16_t RecvLen); +#endif + + + + diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/inc/uart.h b/BLV_RF_W13_V04_20260114/User_Drivers/inc/uart.h new file mode 100644 index 0000000..ca11c2c --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/inc/uart.h @@ -0,0 +1,47 @@ +#ifndef USER_DRIVERS_UART_C_ +#define USER_DRIVERS_UART_C_ + +#include "CH57x_common.h" + +#define Recv_2400_TimeOut 3 //ms +#define Recv_9600_TimeOut 3 //ms +#define Recv_115200_TimeOut 3 //ms + +#define USART_BUFFER_NUM 3 +#define USART_BUFFER_SIZE 80 + +#define UART_SEND_BUFFER_NUM 5 +#define UART_SEND_BUFFER_SIZE 20 + + +#define MCU485_EN_High //GPIOA_SetBits(GPIO_Pin_12) +#define MCU485_EN_Low //GPIOA_ResetBits(GPIO_Pin_12) + +typedef uint8_t (*Uart_prt)(uint8_t *,uint16_t); + +typedef enum +{ + UART_0, + + UART_MAX, +}UART_IDX; + +typedef struct{ + + uint8_t RecvBuffer[USART_BUFFER_SIZE]; + uint8_t Receiving; + uint16_t RecvLen; + + uint32_t RecvTimeout; + uint32_t RecvIdleTiming; + + Uart_prt processing_cf; //ָ +}__attribute__((packed)) UART_t; + +extern UART_t g_uart[UART_MAX]; + +void UARTx_Init(UART_IDX uart_id, uint32_t buad, Uart_prt prt_cf) ; +void Set_Uart_recvTimeout(UART_t *set_uart,uint32_t baud); +void UART_RECEIVE(void); + +#endif /* USER_DRIVEN_UART_C_ */ diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/peripheral.c b/BLV_RF_W13_V04_20260114/User_Drivers/peripheral.c new file mode 100644 index 0000000..fc76fe0 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/peripheral.c @@ -0,0 +1,900 @@ +/********************************** (C) COPYRIGHT ******************************* + * File Name : peripheral.C + * Author : WCH + * Version : V1.0 + * Date : 2018/12/10 + * Description : ӻӦó򣬳ʼ㲥ӲȻ㲥 + * ӲͨԶ + ********************************************************************************* + * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. + * Attention: This software (modified or not) and binary are used for + * microcontroller manufactured by Nanjing Qinheng Microelectronics. + *******************************************************************************/ + +/********************************************************************* + * INCLUDES + */ + +#include + +#include "../User/include/includes.h" +/********************************************************************* + * MACROS + */ + +/********************************************************************* + * CONSTANTS + */ + +// How often to perform periodic event +#define SBP_PERIODIC_EVT_PERIOD 1600 + +// How often to perform read rssi event +#define SBP_READ_RSSI_EVT_PERIOD 3200 + +// Parameter update delay +#define SBP_PARAM_UPDATE_DELAY 6400 + +// PHY update delay +#define SBP_PHY_UPDATE_DELAY 2400 + +// What is the advertising interval when device is discoverable (units of 625us, 80=50ms),λΪ625 us +#define DEFAULT_ADVERTISING_INTERVAL 160 + +// Limited discoverable mode advertises for 30.72s, and then stops +// General discoverable mode advertises indefinitely +#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL + +// Minimum connection interval (units of 1.25ms, 6=7.5ms) +#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 8//60//6 + +// Maximum connection interval (units of 1.25ms, 100=125ms) +#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 40//800//YYW,10/08,100 + +// Slave latency to use parameter update +#define DEFAULT_DESIRED_SLAVE_LATENCY 0 + +// Supervision timeout value (units of 10ms, 100=1s) +#define DEFAULT_DESIRED_CONN_TIMEOUT 1000 + +// Company Identifier: WCH +#define WCH_COMPANY_ID 0x07D7 + +/********************************************************************* + * TYPEDEFS + */ + +/********************************************************************* + * GLOBAL VARIABLES + */ + +/********************************************************************* + * EXTERNAL VARIABLES + */ + +/********************************************************************* + * EXTERNAL FUNCTIONS + */ + +/********************************************************************* + * LOCAL VARIABLES + */ +static uint8_t Peripheral_TaskID = INVALID_TASK_ID; // Task ID for internal task/event processing + +uint8_t BLE_OTA_flag = 0x00; + +static gapRole_States_t W13_currentBleState = GAPROLE_INIT; + + +// GAP - SCAN RSP data (max size = 31 bytes) +static uint8_t scanRspData[] = { + // complete name + 0x0D, // length of this data + GAP_ADTYPE_LOCAL_NAME_COMPLETE, + 'B', + 'L', + 'V', + '_', + 'W', + '1', + '3', + '_', + '0', + '0', + '0', + '0', + // connection interval range + 0x05, // length of this data + GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE, + LO_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), // 100ms + HI_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), + LO_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), // 1s + HI_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), + + // Tx power level + 0x02, // length of this data + GAP_ADTYPE_POWER_LEVEL, + 0 // 0dBm +}; + +// GAP - Advertisement data (max size = 31 bytes, though this is +// best kept short to conserve power while advertising) +static uint8_t advertData[] = { + // Flags; this sets the device to use limited discoverable + // mode (advertises for 30 seconds at a time) instead of general + // discoverable mode (advertises indefinitely) + 0x02, // length of this data + GAP_ADTYPE_FLAGS, + DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED, + + // service UUID, to notify central devices what services are included + // in this peripheral + 0x03, // length of this data + GAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all + LO_UINT16(SIMPLEPROFILE_SERV_UUID), + HI_UINT16(SIMPLEPROFILE_SERV_UUID) +}; + +// GAP GATT Attributes +static uint8_t attDeviceName[GAP_DEVICE_NAME_LEN] = "BLV_W13_0000"; + +// Connection item list +static peripheralConnItem_t peripheralConnList; + +static uint16_t peripheralMTU = ATT_MTU_SIZE; +/********************************************************************* + * LOCAL FUNCTIONS + */ +static void Peripheral_ProcessTMOSMsg(tmos_event_hdr_t *pMsg); +static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEvent_t *pEvent); +//static void performPeriodicTask(void); + +static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len); +static void peripheralParamUpdateCB(uint16_t connHandle, uint16_t connInterval, + uint16_t connSlaveLatency, uint16_t connTimeout); +static void peripheralInitConnItem(peripheralConnItem_t *peripheralConnList); +static void peripheralRssiCB(uint16_t connHandle, int8_t rssi); +static void peripheralChar4Notify(uint8_t *pValue, uint16_t len); + +/********************************************************************* + * PROFILE CALLBACKS + */ + +// GAP Role Callbacks +static gapRolesCBs_t Peripheral_PeripheralCBs = { + peripheralStateNotificationCB, // Profile State Change Callbacks + peripheralRssiCB, // When a valid RSSI is read from controller (not used by application) + peripheralParamUpdateCB +}; + +// Broadcast Callbacks +static gapRolesBroadcasterCBs_t Broadcaster_BroadcasterCBs = { + NULL, // Not used in peripheral role + NULL // Receive scan request callback +}; + +// GAP Bond Manager Callbacks +static gapBondCBs_t Peripheral_BondMgrCBs = { + NULL, // Passcode callback (not used by application) + NULL, // Pairing / Bonding state Callback (not used by application) + NULL // oob callback +}; + +// Simple GATT Profile Callbacks +//ֵд +static simpleProfileCBs_t Peripheral_SimpleProfileCBs = { + simpleProfileChangeCB // Characteristic value change callback +}; +/********************************************************************* + * PUBLIC FUNCTIONS + */ + +/********************************************************************* + * @fn Peripheral_Init + * + * @brief Initialization function for the Peripheral App Task. + * This is called during initialization and should contain + * any application specific initialization (ie. hardware + * initialization/setup, table initialization, power up + * notificaiton ... ). + * + * @param task_id - the ID assigned by TMOS. This ID should be + * used to send messages and set timers. + * + * @return none + */ +void Peripheral_Init() +{ + Peripheral_TaskID = TMOS_ProcessEventRegister(Peripheral_ProcessEvent); + + // Setup the GAP Peripheral Role Profile + { + uint8_t initial_advertising_enable = TRUE; + uint16_t desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL; + uint16_t desired_max_interval = DEFAULT_DESIRED_MAX_CONN_INTERVAL; + + // Set the GAP Role Parameters + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable); //㲥ʹ + GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof(scanRspData), scanRspData); //㲥 + GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData); // + GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t), &desired_min_interval); //СӼ + GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t), &desired_max_interval); //Ӽ + } + + { + uint16_t advInt = DEFAULT_ADVERTISING_INTERVAL; //㲥 + + // Set advertising interval + GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt); //ù㲥 + GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, 320); //YYW,advInt -> 160 + + + // Enable scan req notify + GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, ENABLE); // ɨ֪ͨ + } + + // Setup the GAP Bond Manager + { + uint32_t passkey = 123456; // passkey "000000" // "000000" + uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ; // ȴģʽ + uint8_t mitm = TRUE; // м˹ + uint8_t bonding = TRUE; // ð󶨹 + uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY; // IOʾ룩 + GAPBondMgr_SetParameter(GAPBOND_PERI_DEFAULT_PASSCODE, sizeof(uint32_t), &passkey); + GAPBondMgr_SetParameter(GAPBOND_PERI_PAIRING_MODE, sizeof(uint8_t), &pairMode); + GAPBondMgr_SetParameter(GAPBOND_PERI_MITM_PROTECTION, sizeof(uint8_t), &mitm); + GAPBondMgr_SetParameter(GAPBOND_PERI_IO_CAPABILITIES, sizeof(uint8_t), &ioCap); + GAPBondMgr_SetParameter(GAPBOND_PERI_BONDING_ENABLED, sizeof(uint8_t), &bonding); + } + + // Initialize GATT attributes + GGS_AddService(GATT_ALL_SERVICES); // GAP עͨ÷ʷ + GATTServApp_AddService(GATT_ALL_SERVICES); // GATT attributes עͨԷ + SimpleProfile_AddService(GATT_ALL_SERVICES); // Simple GATT Profile עԶSimpleProfile + + // Set the GAP Characteristics + GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, attDeviceName); + + // Setup the SimpleProfile Characteristic Values + { + uint8_t charValue1[SIMPLEPROFILE_CHAR1_LEN] = {1}; //ʼĸʼ + uint8_t charValue4[SIMPLEPROFILE_CHAR4_LEN] = {0x00}; + uint8_t charValue5[SIMPLEPROFILE_CHAR5_LEN] = {1, 2, 3, 4, 5}; + + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR1, SIMPLEPROFILE_CHAR1_LEN, charValue1); + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR4, SIMPLEPROFILE_CHAR4_LEN, charValue4); + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR5, SIMPLEPROFILE_CHAR5_LEN, charValue5); + } + + // Init Connection Item + peripheralInitConnItem(&peripheralConnList); // ʼӹ + + // Register callback with SimpleGATTprofile + SimpleProfile_RegisterAppCBs(&Peripheral_SimpleProfileCBs); // עԶĻص + + // Register receive scan request callback + GAPRole_BroadcasterSetCB(&Broadcaster_BroadcasterCBs); // עɨص + + // YYW,20250915,MTUЭ + GATT_InitClient(); + + // Setup a delayed profile startup + tmos_set_event(Peripheral_TaskID, SBP_START_DEVICE_EVT); // 豸¼ + +} + +/********************************************************************* + * @fn peripheralInitConnItem + * + * @brief Init Connection Item + * + * @param peripheralConnList - + * + * @return NULL + */ +static void peripheralInitConnItem(peripheralConnItem_t *peripheralConnList) +{ + peripheralConnList->connHandle = GAP_CONNHANDLE_INIT; + peripheralConnList->connInterval = 0; + peripheralConnList->connSlaveLatency = 0; + peripheralConnList->connTimeout = 0; +} + +/********************************************************************* + * @fn Peripheral_ProcessEvent + * + * @brief Peripheral Application Task event processor. This function + * is called to process all events for the task. Events + * include timers, messages and any other user defined events. + * + * @param task_id - The TMOS assigned task ID. + * @param events - events to process. This is a bit map and can + * contain more than one event. + * + * @return events not processed + */ +uint16_t Peripheral_ProcessEvent(uint8_t task_id, uint16_t events) +{ + // VOID task_id; // TMOS required parameter that isn't used in this function + + if(events & SYS_EVENT_MSG) + { + uint8_t *pMsg; + + if((pMsg = tmos_msg_receive(Peripheral_TaskID)) != NULL) + { + Peripheral_ProcessTMOSMsg((tmos_event_hdr_t *)pMsg); + // Release the TMOS message + tmos_msg_deallocate(pMsg); + } + // return unprocessed events + return (events ^ SYS_EVENT_MSG); + } + + + //MTUЭ񣬳ʼ1sʱٽMTUЭ̣YYW,20250917 + if(events & SBP_MTU_DELAY_EVT) + { + if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT) + { + // -------------------------- + // ڴ˴MTUЭ̴루ģ + // -------------------------- + attExchangeMTUReq_t mtuReq; + mtuReq.clientRxMTU = 120; // MTUС + bStatus_t status = GATT_ExchangeMTU( peripheralConnList.connHandle, &mtuReq, Peripheral_TaskID); + if(status == SUCCESS) + { + PRINT("MTUЭ̷ɹС%d\n", mtuReq.clientRxMTU); + } + else + { + PRINT("MTUЭ̷ʧܣ״̬룺%02x\n", status); + } + } + return (events ^ SBP_MTU_DELAY_EVT); + } + + + if(events & SBP_START_DEVICE_EVT) + { + // Start the Device + GAPRole_PeripheralStartDevice(Peripheral_TaskID, &Peripheral_BondMgrCBs, &Peripheral_PeripheralCBs); + return (events ^ SBP_START_DEVICE_EVT); + } + + if(events & SBP_PERIODIC_EVT) // + { + // Restart timer + if(SBP_PERIODIC_EVT_PERIOD) + { + // tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + } + // Perform periodic application task + // performPeriodicTask(); //ֵ4ӡ + return (events ^ SBP_PERIODIC_EVT); + } + + if(events & SBP_PARAM_UPDATE_EVT) //Ӳ + { + // Send connect param update request + // When the current connection parameters already meet the requirements for update, return 0x18(InvalidRange) + GAPRole_PeripheralConnParamUpdateReq(peripheralConnList.connHandle, + DEFAULT_DESIRED_MIN_CONN_INTERVAL, + DEFAULT_DESIRED_MAX_CONN_INTERVAL, + DEFAULT_DESIRED_SLAVE_LATENCY, //Ĵӻӳ + DEFAULT_DESIRED_CONN_TIMEOUT, //ӳʱʱ + Peripheral_TaskID); + + return (events ^ SBP_PARAM_UPDATE_EVT); + } + + if(events & SBP_PHY_UPDATE_EVT) + { + // start phy update + PRINT("PHY Update %x...\n", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0, + GAP_PHY_BIT_LE_2M, GAP_PHY_BIT_LE_2M, 0)); + + return (events ^ SBP_PHY_UPDATE_EVT); + } + + if(events & SBP_READ_RSSI_EVT) + { + GAPRole_ReadRssiCmd(peripheralConnList.connHandle); + tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD); + return (events ^ SBP_READ_RSSI_EVT); + } + + if(events & SBP_PRINTF_BLE_EVT) //YYW,20251008,תIAPOTA + { + Jump_OTA(); + return (events ^ SBP_PRINTF_BLE_EVT); + } + + // Discard unknown events + return 0; +} + +/********************************************************************* + * @fn Peripheral_ProcessGAPMsg + * + * @brief Process an incoming task message. + * + * @param pMsg - message to process + * + * @return none + */ +static void Peripheral_ProcessGAPMsg(gapRoleEvent_t *pEvent) +{ + switch(pEvent->gap.opcode) + { + case GAP_SCAN_REQUEST_EVENT: + { +// PRINT("Receive scan req from %x %x %x %x %x %x ..\n", pEvent->scanReqEvt.scannerAddr[0], +// pEvent->scanReqEvt.scannerAddr[1], pEvent->scanReqEvt.scannerAddr[2], pEvent->scanReqEvt.scannerAddr[3], +// pEvent->scanReqEvt.scannerAddr[4], pEvent->scanReqEvt.scannerAddr[5]); + break; + } + + case GAP_PHY_UPDATE_EVENT: + { + PRINT("Phy update Rx:%x Tx:%x ..\n", pEvent->linkPhyUpdate.connRxPHYS, pEvent->linkPhyUpdate.connTxPHYS); + break; + } + + default: + break; + } +} + +/********************************************************************* + * @fn Peripheral_ProcessTMOSMsg + * + * @brief Process an incoming task message. + * + * @param pMsg - message to process + * + * @return none + */ +static void Peripheral_ProcessTMOSMsg(tmos_event_hdr_t *pMsg) +{ + switch(pMsg->event) + { + case GAP_MSG_EVENT: + { + Peripheral_ProcessGAPMsg((gapRoleEvent_t *)pMsg); + break; + } + + case GATT_MSG_EVENT: + { + gattMsgEvent_t *pMsgEvent; + + pMsgEvent = (gattMsgEvent_t *)pMsg; + if(pMsgEvent->method == ATT_MTU_UPDATED_EVENT) + { + peripheralMTU = pMsgEvent->msg.exchangeMTUReq.clientRxMTU; + PRINT("YYW -- mtu exchange: %d\n", pMsgEvent->msg.exchangeMTUReq.clientRxMTU); + } + break; + } + + default: + break; + } +} + +/********************************************************************* + * @fn Peripheral_LinkEstablished + * + * @brief Process link established. + * + * @param pEvent - event to process + * + * @return none + */ +static void Peripheral_LinkEstablished(gapRoleEvent_t *pEvent) +{ + gapEstLinkReqEvent_t *event = (gapEstLinkReqEvent_t *)pEvent; + + // See if already connected + if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT) + { + GAPRole_TerminateLink(pEvent->linkCmpl.connectionHandle); + PRINT("Connection max...\n"); + } + else + { + peripheralConnList.connHandle = event->connectionHandle; + peripheralConnList.connInterval = event->connInterval; + peripheralConnList.connSlaveLatency = event->connLatency; + peripheralConnList.connTimeout = event->connTimeout; + peripheralMTU = ATT_MTU_SIZE; + + // Set timer for periodic event + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + + // Set timer for param update event + tmos_start_task(Peripheral_TaskID, SBP_PARAM_UPDATE_EVT, SBP_PARAM_UPDATE_DELAY); + + // Start read rssi + tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD); + + //MTU,YYW,20250917 + tmos_start_task(Peripheral_TaskID, SBP_MTU_DELAY_EVT, 2000); + + PRINT("Conn %x - Int %x \n", event->connectionHandle, event->connInterval); + } +} + +/********************************************************************* + * @fn Peripheral_LinkTerminated + * + * @brief Process link terminated. + * + * @param pEvent - event to process + * + * @return none + */ +static void Peripheral_LinkTerminated(gapRoleEvent_t *pEvent) +{ + gapTerminateLinkEvent_t *event = (gapTerminateLinkEvent_t *)pEvent; + + if(event->connectionHandle == peripheralConnList.connHandle) + { + peripheralConnList.connHandle = GAP_CONNHANDLE_INIT; + peripheralConnList.connInterval = 0; + peripheralConnList.connSlaveLatency = 0; + peripheralConnList.connTimeout = 0; + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + tmos_stop_task(Peripheral_TaskID, SBP_READ_RSSI_EVT); + + //20260119 + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + tmos_stop_task(Peripheral_TaskID, SBP_READ_RSSI_EVT); + tmos_stop_task(Peripheral_TaskID, SBP_PARAM_UPDATE_EVT); + tmos_stop_task(Peripheral_TaskID, SBP_MTU_DELAY_EVT); + tmos_stop_task(Peripheral_TaskID, SBP_PHY_UPDATE_EVT); + + // Restart advertising + { + uint8_t advertising_enable = TRUE; + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &advertising_enable); + } + } + else + { + PRINT("ERR..\n"); + } +} + +/********************************************************************* + * @fn peripheralRssiCB + * + * @brief RSSI callback. + * + * @param connHandle - connection handle + * @param rssi - RSSI + * + * @return none + */ +static void peripheralRssiCB(uint16_t connHandle, int8_t rssi) +{ + // PRINT("RSSI -%d dB Conn %x \n", -rssi, connHandle); +} + +/********************************************************************* + * @fn peripheralParamUpdateCB + * + * @brief Parameter update complete callback + * + * @param connHandle - connect handle + * connInterval - connect interval + * connSlaveLatency - connect slave latency + * connTimeout - connect timeout + * + * @return none + */ +static void peripheralParamUpdateCB(uint16_t connHandle, uint16_t connInterval, + uint16_t connSlaveLatency, uint16_t connTimeout) +{ + if(connHandle == peripheralConnList.connHandle) + { + peripheralConnList.connInterval = connInterval; + peripheralConnList.connSlaveLatency = connSlaveLatency; + peripheralConnList.connTimeout = connTimeout; + + PRINT("Update11 %x - Int %x,%d \n", connHandle, connInterval,connTimeout); + } + else + { + PRINT("ERR..\n"); + } +} + +/********************************************************************* + * @fn peripheralStateNotificationCB + * + * @brief Notification from the profile of a state change. + * + * @param newState - new state + * + * @return none + */ +static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEvent_t *pEvent) +{ + W13_currentBleState = (newState & GAPROLE_STATE_ADV_MASK); //2026-01-16,ble״̬ + + switch(newState & GAPROLE_STATE_ADV_MASK) + { + case GAPROLE_STARTED: + PRINT("Initialized..\n"); + break; + + case GAPROLE_ADVERTISING: + if(pEvent->gap.opcode == GAP_LINK_TERMINATED_EVENT) + { + Peripheral_LinkTerminated(pEvent); + PRINT("Disconnected.. Reason:%x\n", pEvent->linkTerminate.reason); + PRINT("Advertising..\n"); + } + else if(pEvent->gap.opcode == GAP_MAKE_DISCOVERABLE_DONE_EVENT) + { + PRINT("Advertising..\n"); + } + break; + + case GAPROLE_CONNECTED: + if(pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT) + { + Peripheral_LinkEstablished(pEvent); + PRINT("Connected..\n"); + } + break; + + case GAPROLE_CONNECTED_ADV: + if(pEvent->gap.opcode == GAP_MAKE_DISCOVERABLE_DONE_EVENT) + { + PRINT("Connected Advertising..\n"); + } + break; + + case GAPROLE_WAITING: + if(pEvent->gap.opcode == GAP_END_DISCOVERABLE_DONE_EVENT) + { + PRINT("Waiting for advertising..\n"); + } + else if(pEvent->gap.opcode == GAP_LINK_TERMINATED_EVENT) + { + Peripheral_LinkTerminated(pEvent); + PRINT("Disconnected.. Reason:%x\n", pEvent->linkTerminate.reason); + } + else if(pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT) + { + if(pEvent->gap.hdr.status != SUCCESS) + { + PRINT("Waiting for advertising..\n"); + } + else + { + PRINT("Error..\n"); + } + } + else + { + PRINT("Error..%x\n", pEvent->gap.opcode); + } + break; + + case GAPROLE_ERROR: + PRINT("Error..\n"); + break; + + default: + break; + } +} + +/********************************************************************* + * @fn performPeriodicTask + * + * @brief Perform a periodic application task. This function gets + * called every five seconds as a result of the SBP_PERIODIC_EVT + * TMOS event. In this example, the value of the third + * characteristic in the SimpleGATTProfile service is retrieved + * from the profile, and then copied into the value of the + * the fourth characteristic. + * + * @param none + * + * @return none + */ +uint8_t print_BLE[SIMPLEPROFILE_CHAR4_LEN] = {0x00}; +//static void performPeriodicTask(void) +//{ +//// uint8_t notiData[SIMPLEPROFILE_CHAR4_LEN] = {0x88}; +//// peripheralChar4Notify(notiData, SIMPLEPROFILE_CHAR4_LEN); +// +// uint16_t SendLen = sizeof(print_BLE); +// +// +// peripheralChar4Notify(print_BLE, SendLen); +//} + + +void Ble_Printfln(int DbgOptBit, const char *cmd, ...) +{ + // ԿضӦλʱִ + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + va_list args; + va_start(args, cmd); // ʼɱб + + // ʽд뻺дSIMPLEPROFILE_CHAR4_LENֽ + // vsnprintfԶĩβ'\0'ȷ + int formatted_len = vsnprintf( + (char *)print_BLE, // Ŀ껺ǿתΪchar*ַ + SIMPLEPROFILE_CHAR4_LEN, // д볤ȣֹ + cmd, // ʽַ + args // ɱ + ); + va_end(args); // б + + // ʵʷͳȣųֹҲС + uint16_t send_len = 0; + if (formatted_len > 0) { // ʽɹ + send_len = (formatted_len < SIMPLEPROFILE_CHAR4_LEN) ? + formatted_len : (SIMPLEPROFILE_CHAR4_LEN - 1); + } + + // ֵͨ4BLE֪ͨ + if (send_len > 0) { + peripheralChar4Notify(print_BLE, send_len); + } + } +} +void Ble_Buff_Print(uint8_t *pValue, uint16_t len) +{ + if (len > 0) { + peripheralChar4Notify(pValue, len); + } +} + +/********************************************************************* + * @fn peripheralChar4Notify + * + * @brief Prepare and send simpleProfileChar4 notification + * + * @param pValue - data to notify + * len - length of data + * + * @return none + */ +static void peripheralChar4Notify(uint8_t *pValue, uint16_t len) +{ + attHandleValueNoti_t noti; + + //YYW,1008 + if(peripheralConnList.connHandle == GAP_CONNHANDLE_INIT) + { + return; + } + + if(len > (peripheralMTU - 3)) + { + PRINT("Too large noti\n"); + return; + } + noti.len = len; + noti.pValue = GATT_bm_alloc(peripheralConnList.connHandle, ATT_HANDLE_VALUE_NOTI, noti.len, NULL, 0); + if(noti.pValue) + { + tmos_memcpy(noti.pValue, pValue, noti.len); + if(simpleProfile_Notify(peripheralConnList.connHandle, ¬i) != SUCCESS) + { + GATT_bm_free((gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI); + } + } +} + + + +/* flashʱ洢 */ +__attribute__((aligned(8))) uint8_t block_buf[16]; + +/********************************************************************* + * @fn Jump_OTA + * + * @brief תOTA + * + * @return none + */ +void Jump_OTA(void) +{ + uint16_t i; + uint32_t ver_flag; + + /* ȡһ */ + FLASH_ROM_READ(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + + /* һ */ + FLASH_ROM_ERASE(OTA_DATAFLASH_ADD, FLASH_BLOCK_SIZE); + + /* ImageϢ */ + block_buf[0] = IMAGE_IAP_FLAG; + + /* DataFlash */ + FLASH_ROM_WRITE(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + + /* λ */ + SYS_ResetExecute(); +} +/********************************************************************* + * @fn simpleProfileChangeCB + * + * @brief Callback from SimpleBLEProfile indicating a value change + * + * @param paramID - parameter ID of the value that was changed. + * pValue - pointer to data that was changed + * len - length of data + * + * @return none + */ +static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len) +{ + uint8_t rev = 0xFF; + //洢ֵı + switch(paramID) + { + case SIMPLEPROFILE_CHAR1: + { + uint8_t newValue[SIMPLEPROFILE_CHAR1_LEN]; + tmos_memcpy(newValue, pValue, len); + tmos_memset(pValue,0,len); + // PRINT("profile ChangeCB CHAR1,len:%d\n",len); + + if(rev != 0x00) + { + rev = BLV_DETInfo_Recv_Processing(newValue,len); + } + + if(BLE_OTA_flag == 0x01) + { + BLE_OTA_flag = 0x00; + tmos_start_task(Peripheral_TaskID, SBP_PRINTF_BLE_EVT, 800); + + } + + break; + } + + case SIMPLEPROFILE_CHAR3: + { + uint8_t newValue[SIMPLEPROFILE_CHAR3_LEN]; + tmos_memcpy(newValue, pValue, len); + PRINT("profile ChangeCB CHAR3..\n"); + break; + } + + default: + // should not reach here! + break; + } +} + +/********************************************************************* + * @fn Peripheral_GetBLEState + * + * @brief Get current BLE state + * + * @return current BLE state,״̬ + */ +gapRole_States_t Peripheral_GetBLEState(void) +{ + return W13_currentBleState; +} + + + + +/********************************************************************* +*********************************************************************/ diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/sensor_scan.c b/BLV_RF_W13_V04_20260114/User_Drivers/sensor_scan.c new file mode 100644 index 0000000..08a9d3d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/sensor_scan.c @@ -0,0 +1,1703 @@ +#include "../User/include/includes.h" + +VIRTUALCARD_STRUCT VCard_Info; +SENSORDET_INFO_T sensor_info; +CONDITION_STRUCT condata; + +uint8_t portstate = 0; //ʱⴰڵж + +//ʱжϻ +//uint8_t portBuff[810] = {0x00}; +uint8_t portBuff[DETECTION_Window_OnlyPort*3] = {0x00}; + + +//1ʼIOṹ +void Sensor_Init(void) +{ + memset(&sensor_info,0,sizeof(SENSORDET_INFO_T)); + memset(&VCard_Info,0,sizeof(VIRTUALCARD_STRUCT)); + memset(&condata,0,sizeof(CONDITION_STRUCT)); + + // + GPIOA_ModeCfg(WashRoom_Pin, GPIO_ModeIN_PU); + GPIOA_ModeCfg(BedRoom_Pin, GPIO_ModeIN_PU); + GPIOA_ModeCfg(GateWay_Pin, GPIO_ModeIN_PU); + GPIOA_ModeCfg(Retain_Pin, GPIO_ModeIN_PU); + + // + GPIOA_ModeCfg(DET_EXIST1, GPIO_ModeOut_PP_5mA); + GPIOA_ModeCfg(DET_EXIST2, GPIO_ModeOut_PP_5mA); + GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeOut_PP_5mA); + GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); + GPIOA_ModeCfg(GPIO_Pin_10, GPIO_ModeOut_PP_5mA); + GPIOA_ModeCfg(GPIO_Pin_11, GPIO_ModeOut_PP_5mA); + + + //ʼΪ + GPIOA_SetBits(DET_EXIST1); + GPIOA_SetBits(DET_EXIST2); + GPIOA_SetBits(GPIO_Pin_8); + GPIOA_SetBits(GPIO_Pin_9); + GPIOA_SetBits(GPIO_Pin_10); + GPIOA_SetBits(GPIO_Pin_11); + +} + +uint16_t CRC16(uint8_t *aStr ,uint16_t len) +{ + uint16_t xda , xdapoly; + uint16_t i,j, xdabit; + xda = 0xFFFF; + xdapoly = 0xA001; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1; + if( xdabit ) xda ^= xdapoly; + } + } + return xda; +} + +/****************************************************** + * @name : Get_Port_State + * @brief : ö˿״̬ + * @param : ch : Ӧ˿״̬ + ******************************************************* */ +uint8_t Get_Port_State(uint8_t ch) +{ + uint8_t state = DET_SER_PRESS; + + switch(ch) + { + case DET_CH0: //忨ź - + state = DET_SER_LOOSEN; + break; + case DET_CH1: //Ŵ + if(GPIOA_ReadPortPin(Retain_Pin) != 0x00) { + state = DET_SER_LOOSEN; + } + break; + case DET_CH2: + if(GPIOA_ReadPortPin(WashRoom_Pin) != 0x00) { + state = DET_SER_LOOSEN; + } + break; + case DET_CH3: + if(GPIOA_ReadPortPin(BedRoom_Pin) != 0x00){ + state = DET_SER_LOOSEN; + } + break; + case DET_CH4: + if(GPIOA_ReadPortPin(GateWay_Pin) != 0x00){ + state = DET_SER_LOOSEN; + } + break; + default: + state = DET_SER_LOOSEN; + break; + } + + return state; +} + + +/****************************************************** + * @name : DIP_ScanTask + * @brief : ˿״̬ + * @param : + ******************************************************* */ +void DIP_ScanTask(void) +{ + static uint32_t update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + { + update_20ms = SysTick_1ms; + + for (uint8_t i = 0; i < DET_MAX; i++) + { + if (Get_Port_State(i) == DET_SER_PRESS) + { + VCard_Info.g_Dip.delayCnt_OFF[i] = 0; + if (VCard_Info.g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + { + VCard_Info.g_Dip.delayCnt_ON[i]++; + } + else + { + VCard_Info.g_Dip.DIP_val |= (DIP_VAL_ON << i); + VCard_Info.g_Dip.delayCnt_ON[i] = 0; + } + } + else + { + VCard_Info.g_Dip.delayCnt_ON[i] = 0; + if (VCard_Info.g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + { + VCard_Info.g_Dip.delayCnt_OFF[i]++; + } + else + { + VCard_Info.g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + VCard_Info.g_Dip.delayCnt_OFF[i] = 0; + } + } + } + } +} + + +/****************************************************** + * @name : Get_DETCH_State + * @brief : ˿״״̬ + * @param : ch : Ӧ˿״̬ + ******************************************************* */ +uint8_t Get_DETCH_State(uint8_t ch) +{ + uint8_t state = DET_SER_LOOSEN; + + if( (ch < DET_MAX)&&((VCard_Info.g_Dip.DIP_val&(0x01< DETECTION_Window_OnlyPort ) + { + writetime = DETECTION_Window_OnlyPort; + } + // Dbg_Println(DBG_BIT_Debug_STATUS,"Write Len:%d",writetime); + detaddr = port * DETECTION_Window_OnlyPort; + + for(uint8_t i = 0; i < writetime; i++) + { + portBuff[detaddr+i] = state; + } +} + + +/*޿ȡ óʱ⻺ - Bitд*/ +void DetWin_WriteData_Bit(uint8_t port,uint16_t idex,uint8_t state) +{ + uint16_t detaddr = 0; + uint8_t data_val = 0; + uint8_t bit_offset = 0; + uint8_t bit_remian = 0; + + if( port >= 3) return; + if( idex >= DETECTION_Window_OnlyPort*8) return; //һ˿λ + + if(idex != 0x00) + { + bit_remian = idex % 8; //ȡ + bit_offset = idex / 8; //ַƫ + } + +// if( (idex > 0x08) && (bit_remian) != 0x00 ) +// { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset) + 1; +// }else { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); +// } + + detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); + data_val = portBuff[detaddr]; + + if(state == 0x01) + { + data_val |= 0x01 << bit_remian; + }else { + data_val &= ~(0x01 << bit_remian); + } + + portBuff[detaddr] = data_val; +} + + +/*************************************************************** + * : DetWin_ReadData_Bit + * : ޿ȡ ȡʱ⻺ - Bitȡ + * : Port : ˿ں,עⲻ¼忨ȡ˿ + * idex : Ҫȡ±꣬bit + * ز : + ****************************************************************/ +uint8_t DetWin_ReadData_Bit(uint8_t port,uint16_t idex) +{ + uint32_t detaddr = 0; + uint8_t data_val = 0; + uint8_t bit_offset = 0; + uint8_t bit_remian = 0; + + if( port >= 3) return 0x00; + if( idex >= DETECTION_Window_OnlyPort*8) return 0x00; + + if(idex != 0x00) + { + bit_remian = idex % 8; //ȡ + bit_offset = idex / 8; //ַƫ + } + +// if( (idex > 0x08) && (bit_remian) != 0x00 ) +// { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset) + 1; +// }else { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); +// } + + detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); + data_val = portBuff[detaddr]; + + if( (data_val & (0x01 << bit_remian)) != 0x00 ) + { + return 0x01; + } + + return 0x00; +} + + +void Blv_CardlessPower_Tack(void) +{ + uint8_t condata_save_flag = 0x00; + uint32_t temp_jumpe_time = 0x00; + uint32_t temp_tickout = 0x00; + uint32_t temp_init_time = 0x00; + + //1ʼ + if(VCard_Info.PortInit_Flag == 0x00) + { + uint8_t temp[15]; + uint8_t temp_loop = 0; + memset(&temp,0,sizeof(temp)); + + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) //ʼӳ˿Ϣ + { + memcpy(&temp, PortInfo[i], sizeof(VPORT_INFO_STRUCT) ); + // Dbg_Print_Buff(DBG_BIT_PC_COMM,"VPORT_INFO_STRUCT ",temp,sizeof(VPORT_INFO_STRUCT)); + + if( (temp[5] != 0x00) && (temp[5] <= VIRTUAL_PORT_MAX) ) + { + temp_loop = temp[5] - 1; + VCard_Info.Port_Info[temp_loop].HPort_Type = temp[0]; + VCard_Info.Port_Info[temp_loop].HPort_Addr = temp[1]; + + VCard_Info.Port_Info[temp_loop].HPort_Loop = temp[3]; + VCard_Info.Port_Info[temp_loop].HPort_Loop <<= 8; + VCard_Info.Port_Info[temp_loop].HPort_Loop |= temp[2]; + VCard_Info.Port_Info[temp_loop].HPort_Loop -= 0x01; + + VCard_Info.Port_Info[temp_loop].PortEnFlag = temp[6]; //·óʱ - ʹܱ־λ + + /*2025-03-07 ж + * 1ֵΪ0 + * 2˿ڿ״̬ + */ + if( VCard_Info.Port_Info[temp_loop].PortEnFlag == 0x01 ) + { + VCard_Info.DetNum++; + } + + VCard_Info.PortState[temp_loop] = DET_SER_LOOSEN; + + //2025-09-19 ÿ·ijʱ + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = temp[8]; + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] <<= 8; + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + + // Dbg_Println(DBG_BIT_DEVICE_STATUS,"Det1:%d",VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + switch(temp[9]) + { + case 0x01: // + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Sec_Max) + { + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = DETECTION_Window_Sec_Max; + } + break; + case 0x02: // + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Min_Max) + { + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = DETECTION_Window_Min_Max; + } + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 60; + break; + case 0x03: //ʱ + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Hour_Max) + { + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = DETECTION_Window_Hour_Max; + } + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 3600; + break; + } + // Dbg_Println(DBG_BIT_DEVICE_STATUS,"Det2:%d",VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + VCard_Info.DetInfo.Trigger_Thres[temp_loop] = temp[4]; //ʱж - -> ֵ + VCard_Info.DetInfo.Release_Thres[temp_loop] = temp[10]; //ʱжͷ - -> ֵ + + VCard_Info.DetInfo.DetWinIdex[temp_loop] = 0x00; + VCard_Info.DetInfo.FullFlag[temp_loop] = 0x00; + + //YYW,20251011,ʼ±ʹٷֱȡ + VCard_Info.DetInfo.DetWinTrigger[temp_loop] = 0x00; + VCard_Info.ActThreshold[temp_loop] = 0; + + } + WDT_Feed(); + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ʼӳ˿%d ӳ:%d ӳ·:%d ֵ:%d-%d ʹܱ־:%d - %dS",\ + temp_loop,\ + VCard_Info.Port_Info[temp_loop].HPort_Type,\ + VCard_Info.Port_Info[temp_loop].HPort_Loop,\ + VCard_Info.DetInfo.Trigger_Thres[temp_loop],\ + VCard_Info.DetInfo.Release_Thres[temp_loop],\ + VCard_Info.Port_Info[temp_loop].PortEnFlag,\ + VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + } + + VCard_Info.PortInit_Flag = 0x01; //ʼɱע + + VCard_Info.DetInfo.Det1sTime = 0x00; + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; + VCard_Info.ExistState = NOONE; + VCard_Info.rdrsta_change_flag = 0x01; + VCard_Info.Action = 0x00; + //YYW,20251011,ճʱ仺 + memset(portBuff,0x00,(DETECTION_Window_OnlyPort*3)); + for(uint8_t i = 0x00;i= 50) && (VCard_Info.PortInit_Flag == 0x01)) + { + VCard_Info.PortTick = SysTick_1ms; + VCard_Info.DetInfo.Det1sTime++; + + //2.1˿ڱ仯 + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + { + if (Get_DETCH_State(i) == DET_SER_PRESS) + { + VCard_Info.PortState[i] = DET_SER_PRESS; + VCard_Info.DetInfo.TriggerNum[i]++; + + if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i]) + { + VCard_Info.rdrsta_change_flag = 0x01; + + if(VCard_Info.PortStateLast[i] == DET_SER_LOOSEN) + { + if(i == 0x01){ //ŴŹأ˿״̬Ϊͷŵ + //VCard_Info.Action |= VC_Event_DoorSensorClose_Flag; + + }else if(i == 0x02){ //ϴּ״Ӧˣ˿״̬Ϊͷŵ + //VCard_Info.Action |= VC_Event_BathroomRadarOn_Flag; + sensor_info.bath_rarON_flag = 0x01; + sensor_info.bath_rarOn_time = SysTick_1ms; + } + } + + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + if(i == 0x00) + { + VCard_Info.CardState = DET_SER_PRESS; + } + + }else{ + VCard_Info.PortStateAct[i] = DET_SER_PRESS; //ƽ״̬ǰ޵ƽ仯 + } + } + else if(Get_DETCH_State(i) == DET_SER_LOOSEN) + { + VCard_Info.PortState[i] = DET_SER_LOOSEN; + + if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i]) + { + VCard_Info.rdrsta_change_flag = 0x01; + + if(VCard_Info.PortStateLast[i] == DET_SER_PRESS) + { + if(i == 0x01){ //Ŵſ˿״̬Ϊͷ + //VCard_Info.Action |= VC_Event_DoorSensorOpen_Flag; + sensor_info.door_rarON_flag = 0x01; + sensor_info.door_rarOn_time = SysTick_1ms; + }else if(i == 0x02){ //ϴּ״Ӧˣ˿״̬Ϊͷ + //VCard_Info.Action |= VC_Event_BathroomRadarOFF_Flag; + sensor_info.bath_rarOFF_flag = 0x01; + sensor_info.bath_rar_deltime = SysTick_1ms; + } + } + + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + + if(i == 0x00) //ο״̬ + { + VCard_Info.CardState = DET_SER_LOOSEN; + } + }else{ + VCard_Info.PortStateAct[i] = DET_SER_LOOSEN; //ƽ״̬ǰ޵ƽ仯 + } + } + + + //2.2ʱ + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + || ( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1)) ) ) + { + if((i > 0x01) && (VCard_Info.Port_Info[i].PortEnFlag == 0x01)) //˿1,2̶Ϊпȡ硢Ŵ豸Ļ·ͳ + { + portstate = 0x00; + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15s¼һΣڼ300 + { + /*1S ʱ500ms㴥dzҲ */ + if(VCard_Info.DetInfo.TriggerNum[i] >= 150) + { + VCard_Info.DetInfo.TriggerNum[i] = 0x00; + portstate = 0x01; + }else { + portstate = 0x00; + } + + if(VCard_Info.DetInfo.FullFlag[i] == 0x01) + { + //ⴰ + if( DetWin_ReadData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i]) != portstate ) + { + //֮ǰ״̬һ + if(portstate == 0x01) + { + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + { + VCard_Info.DetInfo.DetWinTrigger[i] += DETECTION_Window_BitMin; + }else{ + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + } + }else { + if(VCard_Info.DetInfo.DetWinTrigger[i] > DETECTION_Window_BitMin) + { + VCard_Info.DetInfo.DetWinTrigger[i] -= DETECTION_Window_BitMin; + }else{ + VCard_Info.DetInfo.DetWinTrigger[i] = 0; + } + } + DetWin_WriteData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i],portstate); + }else { + //֮ǰ״̬һı + } + }else { + //ⴰ δ + if(portstate == 0x01) + { + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + { + VCard_Info.DetInfo.DetWinTrigger[i] += DETECTION_Window_BitMin; + }else{ + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + } + + } + DetWin_WriteData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i],portstate); + } + + if( (VCard_Info.DetInfo.DetWinIdex[i]*DETECTION_Window_BitMin) < VCard_Info.DetInfo.DetWinTotalNum[i]) + { + VCard_Info.DetInfo.DetWinIdex[i]++; + }else { + VCard_Info.DetInfo.DetWinIdex[i] = 0x00; + VCard_Info.DetInfo.FullFlag[i] = 0x01; + } + + /*ֵ*/ + //VCard_Info.ActThreshold[i] = (float)VCard_Info.DetInfo.DetWinTrigger[i] * 100 / (float)VCard_Info.DetInfo.DetWinTotalNum[i]; + VCard_Info.ActThreshold[i] = (VCard_Info.DetInfo.DetWinTrigger[i] * 100) / VCard_Info.DetInfo.DetWinTotalNum[i]; + Dbg_Println(DBG_BIT_PC_COMM,"˿ %d :%d %d - %d ֵ%d",i + 1,portstate,\ + VCard_Info.DetInfo.DetWinTrigger[i],VCard_Info.DetInfo.DetWinTotalNum[i],(uint32_t)VCard_Info.ActThreshold[i]); + } + } + }else { + //ͣʱͳ + //Dbg_Println(DBG_BIT_PC_COMM,"·%d ͣʱͳ",i + 1); + } + } + + //2.3ӡϢ + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15sڼ200 + { + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4],\ + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4],\ + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + + VCard_Info.DetInfo.Det1sTime = 0x00; + } + + } + + //3жִпʼ + if(VCard_Info.ExistState == NOONE) + { + for(uint8_t j = 0; j < g_portGp.VC_ConNToSSubset; j++) + { + condata_save_flag = 0x00; + + //ʼ,YYW, + memset(&condata,0,sizeof(CONDITION_STRUCT)); + memcpy(&condata, g_portGp.PortGroupInfo[j], sizeof(CONDITION_STRUCT) ); + + /*һҪĻж*/ + if( (condata.Condi_Gruop == VC_CONDGROUP_Default_StartGroup) || (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + { + //ж - ʱ + temp_jumpe_time = condata.Judgment_Time; + if(condata.Judgment_Unit == 0x03) + { + temp_jumpe_time = temp_jumpe_time * 3600; //ʱ + }else if(condata.Judgment_Unit == 0x02) + { + temp_jumpe_time = temp_jumpe_time * 60; // + }else { + // + } + + //ж - ʱʱ + temp_tickout = condata.Timeout_Time; + if(condata.Timeout_Unit == 0x03) + { + temp_tickout = temp_tickout * 3600; //ʱ + }else if(condata.Timeout_Unit == 0x02) + { + temp_tickout = temp_tickout * 60; // + }else { + // + } + + //жǷ + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + { + //㴥 + if(condata.Trigger_Flag != 0x01) + { + condata_save_flag = 0x01; + condata.Trigger_Flag = 0x01; + // condata.Trigger_Tick = SysTick_1s; + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + } + }else{ + //㴥 + if(condata.Trigger_Flag != 0x00) + { + condata_save_flag = 0x01; + condata.Trigger_Flag = 0x00; + } + } + + //ʱжϣڡһʱʱ"һ" + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + { + condata_save_flag = 0x01; + VCard_Info.Last_Trigger_Tick = SysTick_1s; + condata.Trigger_Flag = 0x00; + // condata.Trigger_Tick = SysTick_1s; //־λ + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //-> ж1 + + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + }else { + //ʱж£жǷʱ + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + { + condata_save_flag = 0x01; + + // - ʱ䣬ж + condata.Trigger_Flag = 0x00; + // condata.Trigger_Tick = SysTick_1s; + + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + + /*ֹȴӡϢ*/ + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + { + Dbg_Println(DBG_BIT_PC_COMM," %d %d",condata.Condi_Gruop,VCard_Info.ConGroupIndx); + //Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4]); + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d",condata.Condi_Gruop,VCard_Info.ConGroupIndx); + }else { + Dbg_Println(DBG_BIT_PC_COMM," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + //Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4]); + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + } + + + //л飬ͬʱ¼ʱ䣬һʱжʹ + VCard_Info.Last_Trigger_Tick = SysTick_1s; + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + VCard_Info.Last_ConGroupType = 0x00; + + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConNToSGruop ) + { + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + VCard_Info.ExistState = SOMEONE; + VCard_Info.rdrsta_change_flag = 0x01; + Dbg_Println(DBG_BIT_PC_COMM,"-¼:Ž--"); + VCard_Info.Action |= VC_Event_PersonDet_Flag; + + /*ջ·ijʱ״̬ - ע·1ĬDz忨ȡ磬볤ʱͳ*/ + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + { + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + { + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + VCard_Info.ActThreshold[i] = 100; + VCard_Info.DetInfo.DetWinIdex[i] = 0; + VCard_Info.DetInfo.FullFlag[i] = 0x01; + DetWin_WriteData((i - 2), 0xFF, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + } + } + } + } + } + + if(condata_save_flag == 0x01) + { + memcpy(g_portGp.PortGroupInfo[j],&condata , sizeof(CONDITION_STRUCT) ); + } + } + } + } + else if(VCard_Info.ExistState == SOMEONE) + { + /*ж*/ + for(uint8_t j = 0; j < g_portGp.VC_ConSToNSubset; j++) + { + condata_save_flag = 0x00; + //ʼ,YYW, + memset(&condata,0,sizeof(CONDITION_STRUCT)); + memcpy(&condata, g_portGp.PortGroupInfo[j + g_portGp.VC_ConNToSSubset], sizeof(CONDITION_STRUCT) ); + + /*һҪĻж*/ + if( (condata.Condi_Gruop == (g_portGp.VC_ConNToSGruop + 1) ) || (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + { + + //ж - ʱ + temp_jumpe_time = condata.Judgment_Time; + if(condata.Judgment_Unit == 0x03) //ʱ + { + temp_jumpe_time = temp_jumpe_time * 3600; + }else if(condata.Judgment_Unit == 0x02) // + { + temp_jumpe_time = temp_jumpe_time * 60; + }else { + // + } + + //ж - ʱʱ + temp_tickout = condata.Timeout_Time; + if(condata.Timeout_Unit == 0x03) //ʱ + { + temp_tickout = temp_tickout * 3600; + }else if(condata.Timeout_Unit == 0x02) // + { + temp_tickout = temp_tickout * 60; + }else { + // + } + + //YYW,20251009,룬ʱ + if( (condata.Condi_Gruop != (g_portGp.VC_ConNToSGruop + 1) ) && (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + { + if( ( VCard_Info.Last_ConGroupType == VC_CONDGROUP_BrieflyLeaving_Type ) && (condata.Exist_Flag != VCard_Info.Last_ConGroupType) ) + { + /*¼ */ + // Dbg_Println(DBG_BIT_PC_COMM,"¼ - %d",condata.Condi_Gruop); + VCard_Info.Last_ConGroupType = 0x00; + // VCard_Info.Action |= VC_Event_BrieflyLeaving_Flag; + + }else if( ( VCard_Info.Last_ConGroupType == VC_CONDGROUP_LongTermLeaving_Type ) && (condata.Exist_Flag != VCard_Info.Last_ConGroupType) ) + { + /*ʱ¼ */ + // Dbg_Println(DBG_BIT_PC_COMM,"ʱ¼ - %d",condata.Condi_Gruop); + VCard_Info.Last_ConGroupType = 0x00; + } + } + + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + { + //㴥 + if(condata.Trigger_Flag != 0x01) + { + condata_save_flag = 0x01; + condata.Trigger_Flag = 0x01; + // condata.Trigger_Tick = SysTick_1s; + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + } + }else{ + //㴥 + if(condata.Trigger_Flag != 0x00) + { + condata_save_flag = 0x01; + condata.Trigger_Flag = 0x00; + } + } + + //ʱжϣڡһʱʱ"һ" + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + { + condata_save_flag = 0x01; + + VCard_Info.Last_Trigger_Tick = SysTick_1s; + condata.Trigger_Flag = 0x01; //־λ + // condata.Trigger_Tick = SysTick_1s; + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; //-> жĵһ + + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + }else { + //ʱж£жǷʱ + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + { + condata_save_flag = 0x01; + // - ʱ䣬ж + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + condata.Trigger_Flag = 0x00; + // condata.Trigger_Tick = SysTick_1s; + + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + { + Dbg_Println(DBG_BIT_PC_COMM," %d ",condata.Condi_Gruop); + Ble_Printfln(DBG_BIT_BLE_STATUS," %d ",condata.Condi_Gruop); + }else { + // 1 + Dbg_Println(DBG_BIT_PC_COMM," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + } + + VCard_Info.Last_ConGroupType = condata.Exist_Flag; //YYW,20251009,ǰͱڴ"""ʱ" + //л飬ͬʱ¼ʱ䣬һʱжʹ + VCard_Info.Last_Trigger_Tick = SysTick_1s; + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConSToNGruop ) + { + VCard_Info.ExistState = NOONE; + VCard_Info.rdrsta_change_flag = 0x01; + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //жϵĵһ + + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + + if(VCard_Info.CardState == 0x01) + { + //Dbg_Println(DBG_BIT_PC_COMM,"-¼:--"); + //VCard_Info.Action |= VC_Event_CardedPersonLeft_Flag; + }else { + Dbg_Println(DBG_BIT_PC_COMM,"-¼:޿--"); + VCard_Info.Action |= VC_Event_NoPersonDet_Flag; + } + + /*ջ·ijʱ״̬ - ע·1ĬDz忨ȡ磬볤ʱͳ*/ + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + { + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + { + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + VCard_Info.ActThreshold[i] = 0; + VCard_Info.DetInfo.DetWinIdex[i] = 0; + VCard_Info.DetInfo.FullFlag[i] = 0x01; + DetWin_WriteData((i - 2), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + } + } + } + } + } + + if(condata_save_flag == 0x01) + { + memcpy(g_portGp.PortGroupInfo[j + g_portGp.VC_ConNToSSubset],&condata , sizeof(CONDITION_STRUCT) ); + } + } + } + } + /*жִн*/ + + + + /*ֵж˿ʼ - ֵж߼ жϷǵһʱЧ */ + if( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + { + /*ǰ״̬߼жϴ һʱִгʱжϣõĻ·һ·Ӧֵжϣ״̬Ϊ*/ + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + { + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Trigger_Thres[i] != 0x00) ) + { + if(VCard_Info.ActThreshold[i] >= VCard_Info.DetInfo.Trigger_Thres[i]) + { + /*״̬ıΪˣл·Ļȫաˡ״̬䣬¿ʼ*/ + //VCard_Info.Action |= VC_Event_RadarPersonDetected_Flag; + VCard_Info.Last_ConGroupType = 0x00; //YYW,20251009 + VCard_Info.ExistState = SOMEONE; + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + + Dbg_Println(DBG_BIT_PC_COMM,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Trigger_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + Ble_Printfln(DBG_BIT_BLE_STATUS,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Trigger_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + { + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + { + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + VCard_Info.ActThreshold[i] = 100; + VCard_Info.DetInfo.DetWinIdex[i] = 0; + VCard_Info.DetInfo.FullFlag[i] = 0x01; + DetWin_WriteData((i - 2), 0xFF, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + } + } + + break; + } + } + } + }else if( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1) ) ) + { + /*ǰ״̬߼жϴ һʱִгʱжϣõĻ·һ·Ӧֵжϣ״̬Ϊ*/ + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + { + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Release_Thres[i] < 100) ) + { + if(VCard_Info.ActThreshold[i] <= VCard_Info.DetInfo.Release_Thres[i]) + { + /*״̬ıΪˣл·Ļȫաˡ״̬䣬¿ʼ*/ + //VCard_Info.Action |= VC_Event_RadarPersonLeft_Flag; + + VCard_Info.ExistState = NOONE; + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //жϵĵһ + + Dbg_Println(DBG_BIT_PC_COMM,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Release_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + Ble_Printfln(DBG_BIT_BLE_STATUS,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Release_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + { + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + { + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + VCard_Info.ActThreshold[i] = 0; + VCard_Info.DetInfo.DetWinIdex[i] = 0; + VCard_Info.DetInfo.FullFlag[i] = 0x01; + DetWin_WriteData((i - 2), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + } + } + + break; + } + } + } + } + /*ֵж˽*/ + + + + //˿ڱ仯״ֻ̬һΣ仯״̬ + if( (VCard_Info.PortStateAct[0] != VCard_Info.PortState[0]) \ + || (VCard_Info.PortStateAct[1] != VCard_Info.PortState[1]) \ + || (VCard_Info.PortStateAct[2] != VCard_Info.PortState[2]) \ + || (VCard_Info.PortStateAct[3] != VCard_Info.PortState[3]) \ + || (VCard_Info.PortStateAct[4] != VCard_Info.PortState[4]) ) + { + + VCard_Info.PortStateAct[0] = VCard_Info.PortState[0]; + VCard_Info.PortStateAct[1] = VCard_Info.PortState[1]; + VCard_Info.PortStateAct[2] = VCard_Info.PortState[2]; + VCard_Info.PortStateAct[3] = VCard_Info.PortState[3]; + VCard_Info.PortStateAct[4] = VCard_Info.PortState[4]; + } + +} + +//ȡǰ¼״̬ +uint8_t Dev_VirtualCard_InType_Get(void) +{ + uint8_t Ret = 0; //Ч + + if((VCard_Info.Action&0x3F) != 0x00) + { + for(uint8_t i = 0x00; i < 8; i++) + { + if( ( VCard_Info.Action & (0x01 << i) ) != 0x00 ) + { + //Dbg_Println(DBG_BIT_PC_COMM,"- ޿ȡ ¼: %02x - %d ",VCard_Info.Action,i); + VCard_Info.Action &= ~(0x01 << i); + Ret = (i + 1); //Ч + break; + } + } + } + + return Ret; +} + + +//¼ +void Action_Task(void) +{ + uint8_t rev = 0x00; + static uint32_t scan_tisk = 0x00; + + // Ŵӳٿ + //if((VCard_Info.PortState[1] == DET_SER_LOOSEN)&&(sensor_info.door_rarON_flag == 0x01)) + if(sensor_info.door_rarON_flag == 0x01) + { + if(SysTick_1ms - sensor_info.door_rarOn_time >= g_rar_info.Door_RARON_Time) + { + Dbg_Println(DBG_BIT_PC_COMM,"Ŵſ¼"); + Ble_Printfln(DBG_BIT_BLE_STATUS, "Ŵſ¼"); + + sensor_info.door_rarOn_time = SysTick_1ms; + sensor_info.door_rar_deltime = SysTick_1ms; + sensor_info.door_rarON_flag = 0x02; + + VCard_Info.Action |= VC_Event_DoorSensorOpen_Flag; + } + }else if((sensor_info.door_rarON_flag == 0x02)) + { + if(SysTick_1ms - sensor_info.door_rar_deltime >= g_rar_info.Door_RARFF_TimeOut) + { + Dbg_Println(DBG_BIT_PC_COMM,"ŴŹأ¼"); + Ble_Printfln(DBG_BIT_BLE_STATUS,"ŴŹأ¼"); + + sensor_info.door_rar_deltime = SysTick_1ms; + sensor_info.door_rarON_flag = 0x00; + + VCard_Info.Action |= VC_Event_DoorSensorClose_Flag; + } + } + + // ӳٿ + if(sensor_info.bath_rarON_flag == 0x01) + { + sensor_info.bath_rar_deltime = SysTick_1ms; + if(SysTick_1ms - sensor_info.bath_rarOn_time >= g_rar_info.BATH_RARON_Time) + { + if(VCard_Info.ExistState == SOMEONE){ // ˵£ԡ״↑ԡҵ¼ʹ + + sensor_info.bath_rarOn_time = SysTick_1ms; + sensor_info.bath_rarON_flag = 0x02; + + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣ¼"); + Ble_Printfln(DBG_BIT_BLE_STATUS,"ϴּˣ¼"); + VCard_Info.Action |= VC_Event_BathroomRadarOn_Flag; + } + } + }else if(VCard_Info.PortState[2] == DET_SER_LOOSEN) + { + if((sensor_info.bath_rarON_flag == 0x02)&&(sensor_info.bath_rarOFF_flag == 0x01)) + { + if(SysTick_1ms - sensor_info.bath_rar_deltime >= g_rar_info.BATH_RARFF_TimeOut) + { + sensor_info.bath_rar_deltime = SysTick_1ms; + sensor_info.bath_rarON_flag = 0x00; + sensor_info.bath_rarOFF_flag = 0x00; + + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣص¼"); + Ble_Printfln(DBG_BIT_BLE_STATUS,"ϴּˣص¼"); + + VCard_Info.Action |= VC_Event_BathroomRadarOFF_Flag; + } + } + } + + + + + //1¼ + if(SysTick_1ms - scan_tisk >= 500){ + scan_tisk = SysTick_1ms; + rev = Dev_VirtualCard_InType_Get(); + + if(rev != 0x00) + { + FZL_CtrlOut(rev); + + Dbg_Println(DBG_BIT_PC_COMM,"- ¼: %d ",rev); + rev = 0x00; + } + } + + //2 + if(sensor_info.det_ctrlout_state != 0x00) { + if(SysTick_1ms - sensor_info.det_action_tick >= 200){ + sensor_info.det_action_tick = SysTick_1ms; + + Dbg_Println(DBG_BIT_PC_COMM," FZL Close"); + FZL_CtrlOut(0x00); + sensor_info.det_ctrlout_state = 0x00; + } + } + +} + + + + +/******************************************************************************* + * @FunctionName : NetCRC16_Data + * @Description : CRCУ - CRCڼ + * @Input : + aStr : ҪУ׵ַ + len : ݵij --FlashеУһ512Byte + crc_id : CRCе±λã͵ַǰ,ֻ͵ַ + * @Return : ݵУֵ + *******************************************************************************/ +uint16_t NetCRC16_Data(uint8_t *aStr ,uint16_t len,uint16_t crc_id) +{ + uint16_t xda , xdapoly ; + uint16_t i,j, xdabit ; + xda = 0xFFFF ; + xdapoly = 0xA001 ; // (X**16 + X**15 + X**2 + 1) + for(i=0;i>= 1 ; + if( xdabit ) xda ^= xdapoly ; + } + } + + return xda; +} + + + +void NoCard_Reply_Packing_Processing(uint8_t *data,uint16_t len,uint8_t state) +{ + if(len < 11) return; + + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + + SdData[Sdlen++] = data[0]; + SdData[Sdlen++] = data[1]; + // + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + //CRC + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + + SdData[Sdlen++] = data[6]; + SdData[Sdlen++] = data[7]; + SdData[Sdlen++] = data[8]; + SdData[Sdlen++] = data[9]; + SdData[Sdlen++] = data[10]; + + SdData[Sdlen++] = state; + + SdData[2] = (Sdlen&0xFF); + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + SdData[4] = (CRC_Check&0xFF); + SdData[5] = ((CRC_Check >> 8)&0xFF); + + UART_SendString(SdData,Sdlen); + Ble_Buff_Print(SdData,Sdlen); + +} + + + +//޿ȡ˿ڲ +//ڲ˿ڹ̶1忨״̬ 2Ŵ 3-5 +//Ӳ˿ڣŴ + 3 +uint8_t NoCard_Set_PortInfo_Processing(uint8_t* data,uint16_t lens) +{ + if(lens < 22) return 0x01; + + uint8_t para = 0x0B; + uint8_t para_len = 11; + uint8_t port_id = data[para+5];//(data[para+2] + (data[para+3] << 8)); + uint8_t revdata[11]; + + memcpy(revdata,&data[para],para_len); + + if(port_id != 0x00 && port_id <= VIRTUAL_PORT_MAX) //1-5 + { + if(revdata[4] > 100 ) + { + revdata[4] = 100; + } + if(revdata[10] > 100 ) + { + revdata[10] = 100; + } + + if(memcmp(&PortInfo[port_id-1],revdata,para_len) != 0x00 ) + { + memcpy(&PortInfo[port_id-1],revdata,para_len); + VCard_Info.PortInit_Flag = 0x00;//˿ڳʼ + Dbg_Println(DBG_BIT_PC_COMM, "Set_PortInfo Succ:%d",port_id); + Ble_Printfln(DBG_BIT_BLE_STATUS,"Set Succ"); + EEPROM_Write_PortInfo(); + } + else{ + Dbg_Println(DBG_BIT_PC_COMM, "No Need Save"); + } + }else{ + NoCard_Reply_Packing_Processing(data,lens,0x02); + return 0x02; + } + + NoCard_Reply_Packing_Processing(data,lens,0x01); + return 0x00; +} + + + +//ȡ汾ŵĻظ +uint8_t NoCard_Read_Version_Processing(uint8_t* data,uint16_t lens) +{ + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + + SdData[Sdlen++] = data[0]; + SdData[Sdlen++] = data[1]; + // + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + //CRC + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + + //֡ + SdData[Sdlen++] = data[6]; + SdData[Sdlen++] = data[7]; + SdData[Sdlen++] = data[8]; + SdData[Sdlen++] = data[9]; + + // + SdData[Sdlen++] = 0x01; + + SdData[Sdlen++] = FW_Version; //汾 + SdData[Sdlen++] = EE_Version; //Ӳ汾 + SdData[Sdlen++] = Peripheral_GetBLEState(); + + SdData[2] = (Sdlen&0xFF); + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + SdData[4] = (CRC_Check&0xFF); + SdData[5] = ((CRC_Check >> 8)&0xFF); + + UART_SendString(SdData,Sdlen); + Ble_Buff_Print(SdData,Sdlen); + + return 0x00; +} + + + +//޿ȡ +uint8_t NoCard_Set_CondGpJd_Processing(uint8_t* data,uint16_t lens) +{ + if(lens < 25) return 0x01; + + uint8_t para = 0x0B; + uint8_t para_len = 14; + uint8_t revdata[15]; + uint8_t rev = 0x02; + + uint8_t Gp_num = 0x00; //ţ + uint8_t Gp2_num = 0x00; // + + memcpy(revdata,&data[para],para_len); + Gp_num = revdata[1]; + Gp2_num = revdata[2]; + + //֤Ƿȷ֤Ͳflash + if((Gp_num != 0x00)&&(Gp_num <= VC_NONE_Default_StartGroup)) //1-5 + { + for(uint8_t i = 0x00;i 1800000){ + temp_tim = 1800000; + } + if(temp_tim != g_rar_info.Door_RARON_Time){ + g_rar_info.Door_RARON_Time = temp_tim; + rev = 0x01; + } + + + temp_tim = data[14]; + temp_tim_unit = data[15]; + if(temp_tim_unit == 2){ + temp_tim = (temp_tim*60*1000); + }else{ + temp_tim = (temp_tim*1000); + } + if(temp_tim > 1800000){ + temp_tim = 1800000; + } + if(temp_tim < 5000){ //ʱعܱ5s + temp_tim = 5000; + } + if(temp_tim != g_rar_info.Door_RARFF_TimeOut){ + g_rar_info.Door_RARFF_TimeOut = temp_tim; + rev = 0x01; + } + } + + if( (data[11]&0x02) != 0x00 ) + { + temp_tim = data[16]; + temp_tim_unit = data[17]; + if(temp_tim_unit == 2){ + temp_tim = (temp_tim*60*1000); + }else{ + temp_tim = (temp_tim*1000); + } + if(temp_tim > 1800000){ + temp_tim = 1800000; + } + if(temp_tim != g_rar_info.BATH_RARON_Time){ + g_rar_info.BATH_RARON_Time = temp_tim; + rev = 0x01; + } + + /**> <**/ + temp_tim = data[18]; + temp_tim_unit = data[19]; + if(temp_tim_unit == 2){ + temp_tim = (temp_tim*60*1000); + }else{ + temp_tim = (temp_tim*1000); + } + if(temp_tim > 1800000){ + temp_tim = 1800000; + } + if(temp_tim < 5000){ //ʱعܱ5s + temp_tim = 5000; + } + if(temp_tim != g_rar_info.BATH_RARFF_TimeOut){ + g_rar_info.BATH_RARFF_TimeOut = temp_tim; + rev = 0x01; + } + } + + + if(rev != 0x00) + { + EEPROM_Write_RARDelayTim(&g_rar_info); + } + + NoCard_Reply_Packing_Processing(data,lens,0x01); + + return 0x00; +} + + + +/****************************************************** + * @name : print_RDRSta_Changw + * @brief : ״ﴥ״̬ + * @param : + ******************************************************* */ +void print_RDRSta_Changw(void) +{ + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + uint8_t RDR_Sta = 0x00; + + SdData[Sdlen++] = 0xCC; + SdData[Sdlen++] = 0xC0; + // + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + //CRC + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x11; + + //data + SdData[Sdlen++] = 0x04; //Ч˿ + SdData[Sdlen++] = VCard_Info.ExistState; //״̬ + + if((VCard_Info.PortStateAct[1] == 1)||(VCard_Info.PortStateAct[1] == 3)){ + RDR_Sta |= 0x01; + } + + if((VCard_Info.PortStateAct[2] == 1)||(VCard_Info.PortStateAct[2] == 3)){ + RDR_Sta |= 0x02; + } + + if((VCard_Info.PortStateAct[3] == 1)||(VCard_Info.PortStateAct[3] == 3)){ + RDR_Sta |= 0x04; + } + + if((VCard_Info.PortStateAct[4] == 1)||(VCard_Info.PortStateAct[4] == 3)){ + RDR_Sta |= 0x08; + } + SdData[Sdlen++] = RDR_Sta; + + SdData[2] = (Sdlen&0xFF); + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + SdData[4] = (CRC_Check&0xFF); + SdData[5] = ((CRC_Check >> 8)&0xFF); + + + Ble_Buff_Print(SdData,Sdlen); +} + + + + +/****************************************************** + * @name : print_RDRsta_Tack + * @brief : 200ms ״״̬ + * @param : + ******************************************************* */ +void print_RDRsta_Tack(void) +{ + static uint32_t print_rdrsta_tisk = 0x00; + + if(VCard_Info.print_rdrsta_flag == 0x01) + { + VCard_Info.print_rdrsta_flag = 0x02; + print_rdrsta_tisk = SysTick_1ms; + Dbg_Println(DBG_BIT_PC_COMM,"print RAR_sta init"); + } + + + //ϿԶشӡ + if((VCard_Info.print_rdrsta_flag != 0x00)&&((Peripheral_GetBLEState() != GAPROLE_CONNECTED)&&(Peripheral_GetBLEState() != GAPROLE_CONNECTED_ADV)) ) + { + Dbg_Println(DBG_BIT_PC_COMM,"Stop print RAR_sta"); + + VCard_Info.print_rdrsta_flag = 0x00; + print_rdrsta_tisk = SysTick_1ms; + } + + if((VCard_Info.rdrsta_change_flag != 0x00)&&(SysTick_1ms - print_rdrsta_tisk >= 200)) //˿״̬ı״̬ı + { + print_rdrsta_tisk = SysTick_1ms; + if(VCard_Info.rdrsta_change_flag <= 0x03){ + VCard_Info.rdrsta_change_flag++; + }else{ + VCard_Info.rdrsta_change_flag = 0x00; + } + + if(VCard_Info.print_rdrsta_flag == 0x02) + { + //ӡ״״̬ + print_RDRSta_Changw(); + } + } +} + + +//մ +uint8_t BLV_DETInfo_Recv_Processing(uint8_t* RecvData,uint16_t RecvLen) +{ + uint16_t crc_temp = 0; + + if(RecvLen < 11) //2024-11-11 ӳж,ⳤȴ¿ڣãңУѭտŹλ + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro MAXLens Err"); + Ble_Printfln(DBG_BIT_BLE_STATUS, "Lens Err"); + return 0x01; + } + + + if( ((RecvData[3]<<8) + RecvData[2])!= RecvLen) + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro Lens Err"); + Ble_Printfln(DBG_BIT_BLE_STATUS, "Lens Err"); + return 0x01; + } + + if((RecvData[0] != 0xCC) || (RecvData[1] != 0xC0)) + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro Head Err"); + Ble_Printfln(DBG_BIT_BLE_STATUS, "Head Err"); + return 0x02; + } + + crc_temp = (RecvData[5]<<8) + RecvData[4]; + if(crc_temp != NetCRC16_Data(RecvData,RecvLen,4)) + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro CRC Err: %04X,%04X",crc_temp,NetCRC16_Data(RecvData,RecvLen,4)); + Ble_Printfln(DBG_BIT_BLE_STATUS, "CRC Err: %04X,%04X",crc_temp,NetCRC16_Data(RecvData,RecvLen,4)); + return 0x03; + } + + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro ACK: %02X",RecvData[10]); + switch(RecvData[10]) + { + case 0x01: //ȡ汾 + NoCard_Read_Version_Processing(RecvData,RecvLen); + + break; + case 0x08: // + NoCard_Set_CondGpJd_Processing(RecvData,RecvLen); + break; + case 0x09: //˿ + NoCard_Set_PortInfo_Processing(RecvData,RecvLen); + break; + case 0x0B: //OTAʼ + if(RecvData[11] == 0x01) + { + PRINT("OTA Up Start\n"); + + BLE_OTA_flag = 0x01; + } + break; + case 0x0C: //ӡ + NoCard_Set_Printf_Processing(RecvData,RecvLen); + break; + case 0x11: //״״̬ + NoCard_Set_RDR_Processing(RecvData,RecvLen); + break; + case 0x13: //ư + if(RecvData[11] == 0x01) + { + if(RecvData[12] != 0x00) + { + VCard_Info.Action |= RecvData[12]; + } + + NoCard_Reply_Packing_Processing(RecvData,RecvLen,0x01); + } + break; + case 0x16: //ò + NoCard_Set_RDRPara_Processing(RecvData,RecvLen); + break; + default: + + break; + } + + + return 0x00; +} + + + + + + + + + diff --git a/BLV_RF_W13_V04_20260114/User_Drivers/uart.c b/BLV_RF_W13_V04_20260114/User_Drivers/uart.c new file mode 100644 index 0000000..d4dd9f4 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/User_Drivers/uart.c @@ -0,0 +1,174 @@ +#include +#include "../User/include/includes.h" + +UART_t g_uart[UART_MAX]; + +uint8_t g_Dealbuf[USART_BUFFER_SIZE]; +uint16_t g_DealLen = 0x00; + +//uint8_t UART0_RecvBuff[USART_BUFFER_NUM][USART_BUFFER_SIZE]; //USART0 ݽջ +//uint8_t *UART0_RecvInPtr; //ָջݵλ +//uint8_t *UART0_RecvOutPtr; //ָջȡݵλ +//uint8_t *UART0_RecvEndPtr; //ָջλ +// +////RS485 +//uint8_t UART0_SendBuff[UART_SEND_BUFFER_NUM][UART_SEND_BUFFER_SIZE]; //USART0 ݷͻ +//uint8_t *UART0_SendInPtr; //ָͻݵλ +//uint8_t *UART0_SendOutPtr; //ָͻȡݵλ +//uint8_t *UART0_SendEndPtr; //ָͻλ + +/********************************************************************* + * @fn : UARTx_Init + * @brief : UARTʼ + * @param : uart_id - ID + * @param : buad - + * @param : prt_cf - ڽջص + * @return : none + */ +void UARTx_Init(UART_IDX uart_id, uint32_t buad, Uart_prt prt_cf) +{ + switch (uart_id) { + case UART_0: + /*ʼ 485ʹ*/ + //GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_20mA); + + /* ô1IOģʽô */ + // GPIOADigitalCfg(ENABLE,GPIO_Pin_0); + R16_PIN_ALTERNATE &= ~(1<<14); //PA0,PA1UART + + GPIOA_SetBits(bTXD_2); + GPIOA_ModeCfg(bRXD_2, GPIO_ModeIN_PU); // RXD- + GPIOA_ModeCfg(bTXD_2, GPIO_ModeOut_PP_5mA); // TXD-עIOߵƽ + UART_Remap(ENABLE, UART_TX_REMAP_PA1, UART_RX_REMAP_PA0); + +// GPIOA_SetBits(bTXD_0); +// GPIOA_ModeCfg(bRXD_0, GPIO_ModeIN_PU); // RXD- +// GPIOA_ModeCfg(bTXD_0, GPIO_ModeOut_PP_5mA); // TXD-עIOߵƽ +// UART_Remap(ENABLE, UART_TX_REMAP_PA3, UART_RX_REMAP_PA2); + + //UART_DefInit(); + UART_BaudRateCfg(buad); + R8_UART_FCR = RB_FCR_FIFO_EN;//(2 << 6) | RB_FCR_FIFO_EN; // FIFO򿪣1 0 4ֽ + R8_UART_LCR = RB_LCR_WORD_SZ; + R8_UART_IER = RB_IER_TXD_EN; + R8_UART_DIV = 1; + + UART_ByteTrigCfg( UART_7BYTE_TRIG ); + UART_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT ); +// UART_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT| RB_IER_THR_EMPTY); + PFIC_EnableIRQ(UART_IRQn); + + memset(&g_uart[UART_0],0,sizeof(UART_t)); + Set_Uart_recvTimeout(&g_uart[UART_0],buad); + g_uart[UART_0].processing_cf = prt_cf; + + + break; + } + +} + + +void Set_Uart_recvTimeout(UART_t *set_uart,uint32_t baud) +{ + if(baud == 115200) + { + set_uart->RecvTimeout = Recv_115200_TimeOut; + }else if(baud == 9600) + { + set_uart->RecvTimeout = Recv_9600_TimeOut; + }else if(baud == 2400) + { + set_uart->RecvTimeout = Recv_2400_TimeOut; + }else + { + set_uart->RecvTimeout = 20; + } +} + +/********************************************************************* + * @fn UART0_IRQHandler + * + * @brief UART0жϺ + * + * @return none + */ +__INTERRUPT +__HIGH_CODE +void UART_IRQHandler(void) +{ + volatile uint8_t i; + + switch(UART_GetITFlag()) + { + case UART_II_LINE_STAT: // ·״̬ + i = UART_GetLinSTA(); + break; + case UART_II_RECV_RDY: // ݴﵽô + case UART_II_RECV_TOUT: // ճʱʱһ֡ݽ + i = R8_UART_RFC; + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + i = UART_RecvString(&g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen]); + g_uart[UART_0].RecvLen += i; + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + + g_uart[UART_0].Receiving = 0x01; + break; + case UART_II_THR_EMPTY: // ͻգɼ + break; + + default: + break; + } + +} + +/********************************************************************* + * @fn UART0_RECEIVE + * + * @brief UART0 + * + * @return none + */ +void UART_RECEIVE(void) +{ + uint8_t rev = 0xFF; + uint16_t i = 0; + if(g_uart[UART_0].Receiving == 1) + { + if(SysTick_1ms - g_uart[UART_0].RecvIdleTiming > g_uart[UART_0].RecvTimeout) + { + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + /*жRX FIFOǷû*/ + if(UART_GetLinSTA() & 0x01) + { + i = R8_UART_RFC; + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + i = UART_RecvString(&g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen]); + g_uart[UART_0].RecvLen += i; + return ; + } + // printf("UART0_RECEIVE len:%d %08x \r\n",g_uart[UART_0].RecvLen,UART0_RecvInPtr); + // Dbg_Print_Buff(DBG_BIT_PC_COMM,"buff:",g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + + g_uart[UART_0].Receiving = 0; + + + memcpy(g_Dealbuf,g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + g_DealLen = g_uart[UART_0].RecvLen; + + + if(g_uart[UART_0].processing_cf != NULL){ + rev = g_uart[UART_0].processing_cf(g_Dealbuf,g_DealLen); + } + + g_uart[UART_0].RecvLen = 0; + g_uart[UART_0].Receiving = 0; + + memset(g_Dealbuf,0x00,g_DealLen); + g_DealLen = 0x00; + + } + } +} + diff --git a/BLV_RF_W13_V04_20260114/obj/APP/subdir.mk b/BLV_RF_W13_V04_20260114/obj/APP/subdir.mk new file mode 100644 index 0000000..0993dd7 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/APP/subdir.mk @@ -0,0 +1,21 @@ +################################################################################ +# MRS Version: 1.9.2 +# ԶɵļҪ༭ +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../APP/main.c + +OBJS += \ +./APP/main.o + +C_DEPS += \ +./APP/main.d + + +# Each subdirectory must supply rules for building sources it contributes +APP/%.o: ../APP/%.c + @ @ riscv-none-elf-gcc -march=rv32imc_zba_zbb_zbc_zbs_xw -mabi=ilp32 -mcmodel=medany -msmall-data-limit=8 -mno-save-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common --param=highcode-gen-section-name=1 -g -DDEBUG=0 -DBLE_BUFF_MAX_LEN=128 -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\Startup" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\APP\include" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\StdPeriphDriver\inc" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\HAL\include" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\Ld" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\LIB" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\RVMSIS" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\User_Drivers\inc" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_C13_New\User_Drivers" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<" + @ @ + diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem b/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem new file mode 100644 index 0000000..b8bf3db --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem @@ -0,0 +1,1093 @@ +.init + +.highcode_initlalign + +.highcodelalign + +.highcode + | 0x20000090 | SysTick_Handler | FUNC | 0x60 | + | 0x200000f0 | UART_IRQHandler | FUNC | 0xb4 | + | 0x200001a4 | SetSysClock | FUNC | 0x240 | + | 0x200003e4 | SYS_ResetExecute | FUNC | 0x5e | + | 0x20000442 | HardFault_Handler | FUNC | 0x84 | + | 0x200004c6 | SYS_GetClockValue | FUNC | 0x18 | + | 0x200004de | SYS_SetPendingIRQ | FUNC | 0xe | + | 0x200004ec | RTC_IRQHandler | FUNC | 0x16 | + | 0x20000502 | Main_Circulation | FUNC | 0x28 | + | 0x2000052a | FLASH_ROM_BEG_FF | FUNC | 0x34 | + | 0x2000055e | FLASH_ROM_BEG | FUNC | 0x14 | + | 0x20000572 | FLASH_ROM_END | FUNC | 0xe | + | 0x20000580 | FLASH_ROM_IN | FUNC | 0xe | + | 0x2000058e | FLASH_ROM_OUT | FUNC | 0xe | + | 0x2000059c | FLASH_ROM_ADDR | FUNC | 0x48 | + | 0x200005e4 | FLASH_ROM_WAIT | FUNC | 0x38 | + | 0x2000061c | FLASH_START | FUNC | 0x36 | + | 0x20000652 | FLASH_CMD_ROM_WRITE | FUNC | 0x60 | + | 0x200006b2 | FLASH_CMD_ROM_ERASE | FUNC | 0x72 | + | 0x20000724 | FLASH_CMD_ROM_VERIFY | FUNC | 0x50 | + | 0x20000774 | FLASH_CMD_ROM_PWR | FUNC | 0x12 | + | 0x20000786 | FLASH_CMD_GET_ROM_INFO | FUNC | 0x60 | + | 0x200007e6 | FLASH_CMD_GET_UNIQUE_ID | FUNC | 0x3e | + | 0x20000824 | FLASH_CMD_ROM_SW_RESET | FUNC | 0x1a | + | 0x2000083e | tmos_rand | FUNC | 0x46 | + | 0x20000884 | tmos_memcpy | FUNC | 0x3e | + | 0x200008c2 | tmos_memset | FUNC | 0x40 | + | 0x20000902 | tmos_memcmp | FUNC | 0x4c | + | 0x2000094e | TMOS_SystemProcess | FUNC | 0x1c4 | + | 0x20000b12 | clockGetHSEValue | FUNC | 0x30 | + | 0x20000b42 | BB_IRQLibHandler | FUNC | 0x88 | + | 0x20000bca | BB_IRQLibFunction | FUNC | 0x6 | + | 0x20000bd0 | ll_rx_wait_finish | FUNC | 0x1e | + | 0x20000bee | ll_rx_start | FUNC | 0x72 | + | 0x20000c60 | ble_ll_chkcrc | FUNC | 0x64 | + | 0x20000cc4 | ll_tx_wait_finish | FUNC | 0xf6 | + | 0x20000dba | LLE_IRQLibHandler | FUNC | 0x128 | + | 0x20000ee2 | LLE_IRQFIOFHandler | FUNC | 0x6 | + | 0x20000ee8 | tmos_memory_free | FUNC | 0xc0 | + | 0x20000fa8 | process_recv_data | FUNC | 0x3e | + | 0x20000fe6 | ll_wait_connect_event | FUNC | 0xe | + | 0x20000ff4 | LL_WhitelistLookup | FUNC | 0x46 | + +.text + | 0x000020fa | memcpy | FUNC | 0x16 | + | 0x00002110 | memset | FUNC | 0x10 | + | 0x00002120 | memmove | FUNC | 0x26 | + | 0x00002146 | WDT_Init | FUNC | 0x1c | + | 0x00002162 | WDT_Feed | FUNC | 0x1a | + | 0x0000217c | _write | FUNC | 0x26 | + | 0x000021a2 | Dbg_Println | FUNC | 0x7a | + | 0x0000221c | EEPROM_CheckSum | FUNC | 0x26 | + | 0x00002242 | EEPROM_Read_PortInfo | FUNC | 0x86 | + | 0x000022c8 | EEPROM_Default_PortInfo | FUNC | 0x5e | + | 0x00002326 | EEPROM_Write_PortInfo | FUNC | 0xa0 | + | 0x000023c6 | EEPROM_Read_PortGroupData | FUNC | 0xcc | + | 0x00002492 | EEPROM_Default_PortGroupData | FUNC | 0x42 | + | 0x000024d4 | EEPROM_Write_PortGroupData | FUNC | 0x120 | + | 0x000025f4 | EEPROM_Init | FUNC | 0x44 | + | 0x00002638 | Sensor_Init | FUNC | 0xc8 | + | 0x00002700 | Get_DETCH_State | FUNC | 0x58 | + | 0x00002758 | FZL_CtrlOut | FUNC | 0x9c | + | 0x000027f4 | DetWin_WriteData | FUNC | 0x4a | + | 0x0000283e | DetWin_WriteData_Bit | FUNC | 0x64 | + | 0x000028a2 | DetWin_ReadData_Bit | FUNC | 0x52 | + | 0x000028f4 | Blv_CardlessPower_Tack | FUNC | 0xd28 | + | 0x0000361c | Dev_VirtualCard_InType_Get | FUNC | 0x66 | + | 0x00003682 | Action_Task | FUNC | 0x90 | + | 0x00003712 | NetCRC16_Data | FUNC | 0x4a | + | 0x0000375c | NoCard_Set_PortInfo_Processing | FUNC | 0x9e | + | 0x000037fa | BLV_DETInfo_Recv_Processing | FUNC | 0x102 | + | 0x000038fc | Set_Uart_recvTimeout | FUNC | 0x36 | + | 0x00003932 | UARTx_Init | FUNC | 0xc8 | + | 0x000039fa | UART_RECEIVE | FUNC | 0x114 | + | 0x00003b0e | HSECFG_Capacitance | FUNC | 0x50 | + | 0x00003b5e | RTC_InitClock | FUNC | 0xea | + | 0x00003c48 | RTC_InitTime | FUNC | 0x1f8 | + | 0x00003e40 | FLASH_ROM_READ | FUNC | 0x1c | + | 0x00003e5c | GPIOA_ModeCfg | FUNC | 0x82 | + | 0x00003ede | GetSysClock | FUNC | 0x5a | + | 0x00003f38 | SYS_GetSysTickCnt | FUNC | 0x8 | + | 0x00003f40 | WWDG_ResetCfg | FUNC | 0x58 | + | 0x00003f98 | WWDG_ClearFlag | FUNC | 0x4a | + | 0x00003fe2 | _sbrk | FUNC | 0x2c | + | 0x0000400e | UART_BaudRateCfg | FUNC | 0x30 | + | 0x0000403e | UART_ByteTrigCfg | FUNC | 0x1a | + | 0x00004058 | UART_INTCfg | FUNC | 0x28 | + | 0x00004080 | UART_RecvString | FUNC | 0x20 | + | 0x000040a0 | UART_Remap | FUNC | 0x28 | + | 0x000040c8 | simpleProfile_ReadAttrCB | FUNC | 0x6e | + | 0x00004136 | simpleProfile_WriteAttrCB | FUNC | 0xaa | + | 0x000041e0 | simpleProfile_HandleConnStatusCB | FUNC | 0x3e | + | 0x0000421e | SimpleProfile_AddService | FUNC | 0x4c | + | 0x0000426a | SimpleProfile_RegisterAppCBs | FUNC | 0xe | + | 0x00004278 | SimpleProfile_SetParameter | FUNC | 0x8a | + | 0x00004302 | simpleProfile_Notify | FUNC | 0x40 | + | 0x00004342 | Lib_Read_Flash | FUNC | 0x18 | + | 0x0000435a | Lib_Write_Flash | FUNC | 0x34 | + | 0x0000438e | HAL_ProcessEvent | FUNC | 0x9e | + | 0x0000442c | CH57x_BLEInit | FUNC | 0x15a | + | 0x00004586 | HAL_Init | FUNC | 0x2c | + | 0x000045b2 | BLE_ClockConfig | FUNC | 0x26 | + | 0x000045d8 | HAL_TimeInit | FUNC | 0x102 | + | 0x000046da | GET_WakeUpLSIMaxTime | FUNC | 0xca | + | 0x000047a4 | main | FUNC | 0x62 | + | 0x00004806 | peripheralRssiCB | FUNC | 0x2 | + | 0x00004808 | simpleProfileChangeCB | FUNC | 0x76 | + | 0x0000487e | peripheralParamUpdateCB | FUNC | 0x2c | + | 0x000048aa | Peripheral_LinkTerminated | FUNC | 0x56 | + | 0x00004900 | peripheralStateNotificationCB | FUNC | 0x164 | + | 0x00004a64 | Peripheral_Init | FUNC | 0x17c | + | 0x00004be0 | performPeriodicTask_2 | FUNC | 0xaa | + | 0x00004c8a | Jump_OTA | FUNC | 0x44 | + | 0x00004cce | Peripheral_ProcessEvent | FUNC | 0x166 | + | 0x00004e34 | FLASH_EEPROM_CMD | FUNC | 0x136 | + | 0x00004f6a | tmos_msg_enqueue | FUNC | 0x1e | + | 0x00004f88 | tmos_msg_deallocate | FUNC | 0x52 | + | 0x00004fda | tmos_msg_allocate | FUNC | 0x62 | + | 0x0000503c | tmos_msg_receive | FUNC | 0x98 | + | 0x000050d4 | tmos_msg_send | FUNC | 0x90 | + | 0x00005164 | tmos_msg_init | FUNC | 0x6 | + | 0x0000516a | TMOS_CB_ProcessEvent | FUNC | 0x6a | + | 0x000051d4 | tmos_memdup | FUNC | 0x56 | + | 0x0000522a | tmos_get_periodic_task_time | FUNC | 0x24 | + | 0x0000524e | tmos_clear_event | FUNC | 0x40 | + | 0x0000528e | tmos_update_callback_timer | FUNC | 0xce | + | 0x0000535c | tmos_start_task | FUNC | 0x140 | + | 0x0000549c | tmos_start_callback_task | FUNC | 0xb6 | + | 0x00005552 | tmos_stop_task | FUNC | 0x92 | + | 0x000055e4 | tmos_stop_callback_task | FUNC | 0x7a | + | 0x0000565e | tmos_idle | FUNC | 0xea | + | 0x00005748 | TMOS_TimerRegister | FUNC | 0x1a | + | 0x00005762 | TMOS_ClockRegister | FUNC | 0x8 | + | 0x0000576a | TMOS_Init | FUNC | 0xc4 | + | 0x0000582e | TMOS_ProcessEventRegister | FUNC | 0x2a | + | 0x00005858 | BLE_LibInit | FUNC | 0xd4 | + | 0x0000592c | clockGetTickValve | FUNC | 0x80 | + | 0x000059ac | ll_get_sca_divisor | FUNC | 0x40 | + | 0x000059ec | ll_get_sca_own | FUNC | 0x46 | + | 0x00005a32 | ble_ll_common_rand8 | FUNC | 0x2c | + | 0x00005a5e | ble_ll_common_rand16 | FUNC | 0x2c | + | 0x00005a8a | ble_ll_common_rand32 | FUNC | 0x26 | + | 0x00005ab0 | TMOS_TimerSet | FUNC | 0x32 | + | 0x00005ae2 | TMOS_TimerInit | FUNC | 0xcc | + | 0x00005bae | tmos_snv_init | FUNC | 0xa2 | + | 0x00005c50 | tmos_snv_read | FUNC | 0x23c | + | 0x00005e8c | tmos_snv_notify | FUNC | 0x54 | + | 0x00005ee0 | tmos_snv_write | FUNC | 0x23e | + | 0x0000611e | tmos_snv_compact | FUNC | 0x4 | + | 0x00006122 | disconnectNext | FUNC | 0x20 | + | 0x00006142 | GAP_ParamInit | FUNC | 0x52 | + | 0x00006194 | sendTerminateEvent | FUNC | 0x5e | + | 0x000061f2 | gapRegisterPeripheral | FUNC | 0x6 | + | 0x000061f8 | gapRegisterPeripheralConn | FUNC | 0x6 | + | 0x000061fe | smGenerateRandBuf | FUNC | 0x58 | + | 0x00006256 | gapL2capConnParamUpdateReq | FUNC | 0x30 | + | 0x00006286 | gapFindADType | FUNC | 0x64 | + | 0x000062ea | GAP_SecParamsInit | FUNC | 0x86 | + | 0x00006370 | GAP_ParamsInit | FUNC | 0x4e | + | 0x000063be | gapAddAddrAdj | FUNC | 0x2a | + | 0x000063e8 | gapDetermineAddrType | FUNC | 0x26 | + | 0x0000640e | gapFreeAuthLink | FUNC | 0x4a | + | 0x00006458 | gapGetDevAddress | FUNC | 0x24 | + | 0x0000647c | gapGetDevAddressMode | FUNC | 0xa | + | 0x00006486 | gapGetIRK | FUNC | 0xa | + | 0x00006490 | gapGetSRK | FUNC | 0xa | + | 0x0000649a | gapGetSignCounter | FUNC | 0xc | + | 0x000064a6 | gapIncSignCounter | FUNC | 0x22 | + | 0x000064c8 | gapProcessConnEvt | FUNC | 0x34 | + | 0x000064fc | gapProcessDisconnectCompleteEvt | FUNC | 0x9c | + | 0x00006598 | gapProcessRandomAddrComplete | FUNC | 0x6a | + | 0x00006602 | sendAuthEvent | FUNC | 0x122 | + | 0x00006724 | gapSendBondCompleteEvent | FUNC | 0x70 | + | 0x00006794 | gapSendPairingReqEvent | FUNC | 0xaa | + | 0x0000683e | gapSendDeviceInitDoneEvent | FUNC | 0x70 | + | 0x000068ae | gapSendLinkUpdateEvent | FUNC | 0x9c | + | 0x0000694a | gapSendPhyUpdateEvent | FUNC | 0x48 | + | 0x00006992 | gapSendEstLinkEvent | FUNC | 0xc0 | + | 0x00006a52 | GAP_Authenticate | FUNC | 0xa8 | + | 0x00006afa | GAP_Bond | FUNC | 0x58 | + | 0x00006b52 | GAP_GetParamValue | FUNC | 0x1c | + | 0x00006b6e | GAP_PasscodeUpdate | FUNC | 0x50 | + | 0x00006bbe | GAP_RegisterForMsgs | FUNC | 0x6 | + | 0x00006bc4 | GAP_ResolvePrivateAddr | FUNC | 0x4 | + | 0x00006bc8 | gapPairingCompleteCB | FUNC | 0x1c6 | + | 0x00006d8e | gapPasskeyNeededCB | FUNC | 0x86 | + | 0x00006e14 | gapFreeEstLink | FUNC | 0x1e | + | 0x00006e32 | gapUpdateConnSignCounter | FUNC | 0x72 | + | 0x00006ea4 | GAP_L2capConnParamUpdateReq | FUNC | 0x16 | + | 0x00006eba | GAP_SendSlaveSecurityRequest | FUNC | 0x46 | + | 0x00006f00 | GAP_Signable | FUNC | 0x4c | + | 0x00006f4c | GAP_TerminateAuth | FUNC | 0x2a | + | 0x00006f76 | GAP_NumActiveConnections | FUNC | 0x4 | + | 0x00006f7a | GAP_TerminateLinkReq | FUNC | 0x5a | + | 0x00006fd4 | GAP_SetParamValue | FUNC | 0x28 | + | 0x00006ffc | GAP_DeviceInit | FUNC | 0x42 | + | 0x0000703e | GAP_Init | FUNC | 0x4c | + | 0x0000708a | GAP_ProcessEvent | FUNC | 0x394 | + | 0x0000741e | gapSetAdvParams | FUNC | 0xa0 | + | 0x000074be | gapFreeAdvertState | FUNC | 0x1e | + | 0x000074dc | gapPeriProcessConnEvt | FUNC | 0xaa | + | 0x00007586 | gapWriteAdvDataStatus | FUNC | 0x84 | + | 0x0000760a | GAP_MakeDiscoverable | FUNC | 0x8c | + | 0x00007696 | GAP_EndDiscoverable | FUNC | 0x5c | + | 0x000076f2 | gapProcessAdvertisingEvt | FUNC | 0xae | + | 0x000077a0 | GAP_SetAdvertisingAdvData | FUNC | 0xbc | + | 0x0000785c | GAP_SetAdvertisingRspData | FUNC | 0xbc | + | 0x00007918 | GAP_GetAdvertisingAdvData | FUNC | 0x22 | + | 0x0000793a | GAP_GetAdvertisingRspData | FUNC | 0x2e | + | 0x00007968 | GAP_PeriConnRegister | FUNC | 0x2a | + | 0x00007992 | GAP_PeripheralParamInit | FUNC | 0x48 | + | 0x000079da | gapSendMakeDiscEvent | FUNC | 0x48 | + | 0x00007a22 | gapPeriProcessHCICmdCompleteEvt | FUNC | 0x144 | + | 0x00007b66 | GAP_PeriDevMgrInit | FUNC | 0x2e | + | 0x00007b94 | gattGetPayload | FUNC | 0x4e | + | 0x00007be2 | gattNotifyEvent | FUNC | 0x82 | + | 0x00007c64 | gattSendFlowCtrlEvt | FUNC | 0x2c | + | 0x00007c90 | gattStartTimer | FUNC | 0xc | + | 0x00007c9c | gattStopTimer | FUNC | 0x26 | + | 0x00007cc2 | GATT_AppCompletedMsg | FUNC | 0x28 | + | 0x00007cea | GATT_ExchangeMTU | FUNC | 0x48 | + | 0x00007d32 | GATT_NotifyEvent | FUNC | 0x40 | + | 0x00007d72 | gattRegisterClient | FUNC | 0x6 | + | 0x00007d78 | gattRegisterServer | FUNC | 0x6 | + | 0x00007d7e | GATT_UpdateMTU | FUNC | 0x40 | + | 0x00007dbe | GATT_bm_alloc | FUNC | 0xf0 | + | 0x00007eae | GATT_ServiceChangedInd | FUNC | 0x86 | + | 0x00007f34 | GATT_bm_free | FUNC | 0x1c | + | 0x00007f50 | GATT_Init | FUNC | 0x26 | + | 0x00007f76 | GATT_ProcessEvent | FUNC | 0x152 | + | 0x000080c8 | gattFindClientInfo | FUNC | 0x2a | + | 0x000080f2 | gattClientNotifyTxCB | FUNC | 0x26 | + | 0x00008118 | gattGetClientStatus | FUNC | 0x36 | + | 0x0000814e | gattResetClientInfo | FUNC | 0x80 | + | 0x000081ce | gattClientHandleConnStatusCB | FUNC | 0x8e | + | 0x0000825c | gattClientHandleTimerCB | FUNC | 0x3c | + | 0x00008298 | gattClientProcessMsgCB | FUNC | 0xfe | + | 0x00008396 | gattStoreClientInfo | FUNC | 0x72 | + | 0x00008408 | GATT_InitClient | FUNC | 0xc2 | + | 0x000084ca | gattProcessExchangeMTUReq | FUNC | 0x4 | + | 0x000084ce | gattServApp_FindCharCfgItem | FUNC | 0x22 | + | 0x000084f0 | gattServerHandleTimerCB | FUNC | 0x30 | + | 0x00008520 | GATTServApp_InitCharCfg.part.0 | FUNC | 0x1a | + | 0x0000853a | gattProcessExecuteWriteReq | FUNC | 0x4 | + | 0x0000853e | GATTServApp_ParamInit | FUNC | 0xb4 | + | 0x000085f2 | GATTServApp_ReadCharCfg | FUNC | 0x16 | + | 0x00008608 | GATTServApp_WriteCharCfg | FUNC | 0x3a | + | 0x00008642 | GATTServApp_ProcessCCCWriteReq | FUNC | 0x54 | + | 0x00008696 | gattServApp_WriteAttrCB | FUNC | 0x2c | + | 0x000086c2 | GATTServApp_SendCCCUpdatedEvent | FUNC | 0x60 | + | 0x00008722 | GATTServApp_SendServiceChangedInd | FUNC | 0x34 | + | 0x00008756 | gattServApp_ClearPrepareWriteQ | FUNC | 0x4c | + | 0x000087a2 | gattServApp_FindPrepareWriteQ | FUNC | 0x2a | + | 0x000087cc | gattServApp_FindServiceCBs | FUNC | 0x18 | + | 0x000087e4 | gattServApp_FindAuthorizeAttrCB | FUNC | 0x16 | + | 0x000087fa | gattServApp_IsWriteLong | FUNC | 0xf4 | + | 0x000088ee | gattFindService | FUNC | 0x1a | + | 0x00008908 | GATT_ServiceNumAttrs | FUNC | 0x16 | + | 0x0000891e | GATT_ServiceEncKeySize | FUNC | 0x16 | + | 0x00008934 | gattResetServerInfo | FUNC | 0x1a | + | 0x0000894e | gattFindServerInfo | FUNC | 0x20 | + | 0x0000896e | gattServerHandleConnStatusCB | FUNC | 0x8e | + | 0x000089fc | gattServerProcessMsgCB | FUNC | 0x184 | + | 0x00008b80 | gattServerNotifyTxCB | FUNC | 0x26 | + | 0x00008ba6 | GATT_FindHandle | FUNC | 0x46 | + | 0x00008bec | GATTServApp_WriteAttr | FUNC | 0xa4 | + | 0x00008c90 | gattServApp_ProcessExecuteWriteReq | FUNC | 0x10c | + | 0x00008d9c | GATTServApp_UpdateCharCfg | FUNC | 0x1c | + | 0x00008db8 | gattServApp_ProcessPrepareWriteReq | FUNC | 0xee | + | 0x00008ea6 | gattServApp_ProcessWriteReq | FUNC | 0x96 | + | 0x00008f3c | GATT_Indication | FUNC | 0xa4 | + | 0x00008fe0 | GATT_FindHandleUUID | FUNC | 0x88 | + | 0x00009068 | gattProcessReadByGrpTypeReq | FUNC | 0x4c | + | 0x000090b4 | gattProcessReadByTypeReq | FUNC | 0x2e | + | 0x000090e2 | gattProcessFindByTypeValueReq | FUNC | 0x2e | + | 0x00009110 | gattProcessFindInfoReq | FUNC | 0x16e | + | 0x0000927e | GATT_Notification | FUNC | 0x74 | + | 0x000092f2 | GATT_VerifyWritePermissions | FUNC | 0x76 | + | 0x00009368 | gattProcessWriteReq | FUNC | 0x34 | + | 0x0000939c | GATT_VerifyPrepareWritePermissions | FUNC | 0x6c | + | 0x00009408 | gattProcessPrepareWriteReq | FUNC | 0x34 | + | 0x0000943c | GATT_FindNextAttr | FUNC | 0xa8 | + | 0x000094e4 | GATTServApp_ReadAttr | FUNC | 0x2b2 | + | 0x00009796 | gattServApp_ProcessReadMultiReq | FUNC | 0x152 | + | 0x000098e8 | gattServApp_ProcessFindByTypeValueReq | FUNC | 0x184 | + | 0x00009a6c | GATT_VerifyReadPermissions | FUNC | 0x68 | + | 0x00009ad4 | gattProcessReadMultiReq | FUNC | 0x9a | + | 0x00009b6e | gattProcessReadReq | FUNC | 0x30 | + | 0x00009b9e | gattServApp_ProcessReadByGrpTypeReq | FUNC | 0x1ce | + | 0x00009d6c | gattServApp_ProcessReadByTypeReq | FUNC | 0x172 | + | 0x00009ede | GATT_RegisterService | FUNC | 0xe0 | + | 0x00009fbe | GATTServApp_RegisterService | FUNC | 0x6a | + | 0x0000a028 | GATTServApp_AddService | FUNC | 0x2c | + | 0x0000a054 | GATTServApp_RegisterForMsg | FUNC | 0x6 | + | 0x0000a05a | GATTServApp_InitCharCfg | FUNC | 0x26 | + | 0x0000a080 | gattServApp_HandleConnStatusCB | FUNC | 0x6e | + | 0x0000a0ee | GATT_InitServer | FUNC | 0xe8 | + | 0x0000a1d6 | GATTServApp_Init | FUNC | 0x32 | + | 0x0000a208 | GATTServApp_ProcessEvent | FUNC | 0x2e4 | + | 0x0000a4ec | l2capHandleConnStatusCB | FUNC | 0x2 | + | 0x0000a4ee | l2capFreeChannel | FUNC | 0x4c | + | 0x0000a53a | l2capHandleTimerCB | FUNC | 0x28 | + | 0x0000a562 | l2capFreePendingPkt | FUNC | 0x52 | + | 0x0000a5b4 | l2capHandleRxError | FUNC | 0x2 | + | 0x0000a5b6 | l2capStartTimer | FUNC | 0x1a | + | 0x0000a5d0 | l2capStopTimer | FUNC | 0x1a | + | 0x0000a5ea | L2CAP_GetMTU | FUNC | 0x6 | + | 0x0000a5f0 | L2CAP_HostNumCompletedPkts | FUNC | 0x2 | + | 0x0000a5f2 | L2CAP_RegisterApp | FUNC | 0x2a | + | 0x0000a61c | L2CAP_SetBufSize | FUNC | 0x18 | + | 0x0000a634 | L2CAP_bm_alloc | FUNC | 0x26 | + | 0x0000a65a | L2CAP_Init | FUNC | 0x7c | + | 0x0000a6d6 | L2CAP_ProcessEvent | FUNC | 0xb6 | + | 0x0000a78c | l2capParseCmdReject | FUNC | 0x42 | + | 0x0000a7ce | L2CAP_ParseParamUpdateReq | FUNC | 0x36 | + | 0x0000a804 | l2capParseSignalHdr | FUNC | 0x14 | + | 0x0000a818 | l2capParsePacket | FUNC | 0x60 | + | 0x0000a878 | l2capProcessReq | FUNC | 0x5a | + | 0x0000a8d2 | l2capProcessRsp | FUNC | 0x9e | + | 0x0000a970 | l2capProcessRxData | FUNC | 0xda | + | 0x0000aa4a | l2capNotifyData | FUNC | 0x5e | + | 0x0000aaa8 | l2capNotifySignal | FUNC | 0x8a | + | 0x0000ab32 | l2capNotifyEvent | FUNC | 0x32 | + | 0x0000ab64 | l2capStoreFCPkt | FUNC | 0x2a | + | 0x0000ab8e | l2capEncapSendData | FUNC | 0x8e | + | 0x0000ac1c | l2capSendFCPkt.part.0 | FUNC | 0x62 | + | 0x0000ac7e | L2CAP_SendData | FUNC | 0x80 | + | 0x0000acfe | l2capSendCmd | FUNC | 0x8a | + | 0x0000ad88 | l2capSendReq | FUNC | 0x66 | + | 0x0000adee | l2capSendPkt | FUNC | 0x30 | + | 0x0000ae1e | l2capBuildParamUpdateReq | FUNC | 0x2c | + | 0x0000ae4a | l2capBuildCmdReject | FUNC | 0x40 | + | 0x0000ae8a | L2CAP_CmdReject | FUNC | 0x12 | + | 0x0000ae9c | L2CAP_ConnParamUpdateReq | FUNC | 0x16 | + | 0x0000aeb2 | reportStatusChange | FUNC | 0x3e | + | 0x0000aef0 | linkDB_Init | FUNC | 0x72 | + | 0x0000af62 | linkDB_Find | FUNC | 0x2a | + | 0x0000af8c | linkDB_Authen | FUNC | 0x60 | + | 0x0000afec | linkDB_FindByAddr | FUNC | 0x7e | + | 0x0000b06a | linkDB_FindFirst | FUNC | 0x36 | + | 0x0000b0a0 | linkDB_MTU | FUNC | 0x16 | + | 0x0000b0b6 | linkDB_NumActive | FUNC | 0x2a | + | 0x0000b0e0 | linkDB_NumConns | FUNC | 0x6 | + | 0x0000b0e6 | linkDB_Register | FUNC | 0x20 | + | 0x0000b106 | linkDB_Remove | FUNC | 0x48 | + | 0x0000b14e | linkDB_Role | FUNC | 0x16 | + | 0x0000b164 | linkDB_State | FUNC | 0x2e | + | 0x0000b192 | linkDB_UpdateMTU | FUNC | 0x28 | + | 0x0000b1ba | linkDB_PerformFunc | FUNC | 0x58 | + | 0x0000b212 | linkDB_PeripheralLinkNum | FUNC | 0x38 | + | 0x0000b24a | linkDB_GetSMEvtID | FUNC | 0x50 | + | 0x0000b29a | linkDB_Add | FUNC | 0xaa | + | 0x0000b344 | linkDB_GetHandleFromSMEvtID | FUNC | 0x2c | + | 0x0000b370 | linkDB_GetPairingParam | FUNC | 0x3e | + | 0x0000b3ae | linkDB_NeedSendKey | FUNC | 0x3e | + | 0x0000b3ec | smStartRspTimer | FUNC | 0x34 | + | 0x0000b420 | smFreePairingParams | FUNC | 0x6a | + | 0x0000b48a | smEndPairing | FUNC | 0x64 | + | 0x0000b4ee | smLinkCheck | FUNC | 0x36 | + | 0x0000b524 | smNextPairingState | FUNC | 0x3e | + | 0x0000b562 | smProcessEncryptChange | FUNC | 0x8c | + | 0x0000b5ee | smSendSMMsg | FUNC | 0x5a | + | 0x0000b648 | smSendFailAndEnd | FUNC | 0x36 | + | 0x0000b67e | smProcessPairingReq | FUNC | 0x2c | + | 0x0000b6aa | smSetPairingReqRsp | FUNC | 0x2c | + | 0x0000b6d6 | sm_c1 | FUNC | 0x76 | + | 0x0000b74c | smDetermineKeySize | FUNC | 0x1e | + | 0x0000b76a | smpParsePairingReq | FUNC | 0xee | + | 0x0000b858 | smpParseIdentityAddrInfo | FUNC | 0x32 | + | 0x0000b88a | smpParseMasterID | FUNC | 0x38 | + | 0x0000b8c2 | smpParsePairingConfirm | FUNC | 0x2c | + | 0x0000b8ee | smpParsePairingFailed | FUNC | 0x1a | + | 0x0000b908 | smProcessDataMsg | FUNC | 0xa4 | + | 0x0000b9ac | smProcessTMOSMsg | FUNC | 0x12e | + | 0x0000bada | SM_GenerateAuthenSig | FUNC | 0xd2 | + | 0x0000bbac | SM_PasskeyUpdate | FUNC | 0xb2 | + | 0x0000bc5e | SM_ResolveRandomAddrs | FUNC | 0x5a | + | 0x0000bcb8 | SM_StartPairing | FUNC | 0xa0 | + | 0x0000bd58 | SM_VerifyAuthenSig | FUNC | 0x132 | + | 0x0000be8a | SM_ProcessEvent | FUNC | 0xa2 | + | 0x0000bf2c | SM_Init | FUNC | 0x22 | + | 0x0000bf4e | smpBuildPairingReqRsp | FUNC | 0x8e | + | 0x0000bfdc | smpBuildPairingRsp | FUNC | 0xa | + | 0x0000bfe6 | smpBuildPairingConfirm | FUNC | 0x30 | + | 0x0000c016 | smpBuildPairingRandom | FUNC | 0x30 | + | 0x0000c046 | smpBuildEncInfo | FUNC | 0x30 | + | 0x0000c076 | smpBuildMasterID | FUNC | 0x3c | + | 0x0000c0b2 | smpBuildIdentityInfo | FUNC | 0x30 | + | 0x0000c0e2 | smpBuildIdentityAddrInfo | FUNC | 0x36 | + | 0x0000c118 | smpBuildSigningInfo | FUNC | 0x30 | + | 0x0000c148 | smpBuildPairingReq | FUNC | 0xa | + | 0x0000c152 | smpBuildPairingFailed | FUNC | 0x16 | + | 0x0000c168 | smpBuildSecurityReq | FUNC | 0x16 | + | 0x0000c17e | smGeneratePairingRsp | FUNC | 0x2e | + | 0x0000c1ac | smGenerateConfirm | FUNC | 0x32 | + | 0x0000c1de | smGenerateRandMsg | FUNC | 0x32 | + | 0x0000c210 | smPairingSendEncInfo | FUNC | 0x10 | + | 0x0000c220 | smPairingSendIdentityAddrInfo | FUNC | 0x36 | + | 0x0000c256 | smPairingSendIdentityInfo | FUNC | 0x10 | + | 0x0000c266 | smPairingSendMasterID | FUNC | 0x36 | + | 0x0000c29c | smPairingSendSingingInfo | FUNC | 0x10 | + | 0x0000c2ac | smResponderSendNextKeyInfo | FUNC | 0x212 | + | 0x0000c4be | smResponderProcessLTKReq | FUNC | 0x130 | + | 0x0000c5ee | smpResponderProcessIncoming | FUNC | 0x402 | + | 0x0000c9f0 | xor_128 | FUNC | 0x26 | + | 0x0000ca16 | leftshift_onebit | FUNC | 0x24 | + | 0x0000ca3a | padding | FUNC | 0x2c | + | 0x0000ca66 | generate_subkey | FUNC | 0xd8 | + | 0x0000cb3e | sm_xor | FUNC | 0x20 | + | 0x0000cb5e | sm_ah | FUNC | 0x80 | + | 0x0000cbde | sm_c1new | FUNC | 0x122 | + | 0x0000cd00 | sm_s1 | FUNC | 0x82 | + | 0x0000cd82 | sm_CMAC | FUNC | 0x182 | + | 0x0000cf04 | HOST_LE_ConnectionCompleteEvent | FUNC | 0x5c | + | 0x0000cf60 | HOST_LE_ConnectionUpdateCompleteEvent | FUNC | 0x42 | + | 0x0000cfa2 | HOST_LE_ReadRemoteUsedFeaturesCompleteEvent | FUNC | 0x62 | + | 0x0000d004 | HOST_LE_LongTermKeyRequestEvent | FUNC | 0x5a | + | 0x0000d05e | HOST_LE_RemoteConnectionParameterRequestEvent | FUNC | 0x42 | + | 0x0000d0a0 | HOST_RemoteConnectionParameterRequestEvent | FUNC | 0x48 | + | 0x0000d0e8 | HOST_LE_DataLengthChangeEvent | FUNC | 0x42 | + | 0x0000d12a | HOST_LE_PHYUpdateCompleteReportEvent | FUNC | 0x58 | + | 0x0000d182 | HOST_LE_ScanRequestReceivedEvent | FUNC | 0x66 | + | 0x0000d1e8 | HOST_DisconnectionCompleteEvent | FUNC | 0x46 | + | 0x0000d22e | HOST_EncryptionChangeEvent | FUNC | 0x4c | + | 0x0000d27a | HOST_ReadRemoteVersionInfoEvent | FUNC | 0x3e | + | 0x0000d2b8 | HOST_CommandCompleteEvent | FUNC | 0x5a | + | 0x0000d312 | HOST_CommandStatusEvent | FUNC | 0x40 | + | 0x0000d352 | HOST_EncryptionKeyRefreshCompleteEvent | FUNC | 0x42 | + | 0x0000d394 | HOST_NumberOfCompletedPacketsEvent | FUNC | 0x40 | + | 0x0000d3d4 | HOST_RecvDataPackets | FUNC | 0x206 | + | 0x0000d5da | AES_DevAESEnc | FUNC | 0x178 | + | 0x0000d752 | LL_Encrypt | FUNC | 0x32 | + | 0x0000d784 | AES_DevPktEnc | FUNC | 0x62 | + | 0x0000d7e6 | AES_DevPktDec | FUNC | 0x62 | + | 0x0000d848 | GetTxPower | FUNC | 0x66 | + | 0x0000d8ae | SetTxPower | FUNC | 0x5a | + | 0x0000d908 | ble_ll_set_timeout | FUNC | 0x22 | + | 0x0000d92a | BLE_RegInit | FUNC | 0x66 | + | 0x0000d990 | BLE_IPCoreInit | FUNC | 0x78 | + | 0x0000da08 | RFEND_DevInit | FUNC | 0x7a | + | 0x0000da82 | RFEND_RXFilter | FUNC | 0x8c | + | 0x0000db0e | RFEND_RXAdc | FUNC | 0x36 | + | 0x0000db44 | RFEND_TXCtune | FUNC | 0xc50 | + | 0x0000e794 | RFEND_TXFtune | FUNC | 0xe | + | 0x0000e7a2 | API_DisconnectCmd | FUNC | 0x16 | + | 0x0000e7b8 | API_MD_DisconnectCmd | FUNC | 0x2 | + | 0x0000e7ba | API_ReadBDADDRCmd | FUNC | 0x20 | + | 0x0000e7da | API_ReadRssiCmd | FUNC | 0x2e | + | 0x0000e808 | API_LE_ReadBufSizeCmd | FUNC | 0x20 | + | 0x0000e828 | API_LE_ClearWhiteListCmd | FUNC | 0x1e | + | 0x0000e846 | API_LE_AddWhiteListCmd | FUNC | 0x1e | + | 0x0000e864 | API_LE_RandCmd | FUNC | 0x20 | + | 0x0000e884 | API_LE_LtkReqReplyCmd | FUNC | 0x28 | + | 0x0000e8ac | API_LE_LtkReqNegReplyCmd | FUNC | 0x28 | + | 0x0000e8d4 | API_LE_RemoteConnParamReqReplyCmd | FUNC | 0x2a | + | 0x0000e8fe | API_LE_RemoteConnParamReqNegReplyCmd | FUNC | 0x2a | + | 0x0000e928 | API_LE_SetDataLengthCmd | FUNC | 0x2a | + | 0x0000e952 | API_LE_SetDefaultPHYCmd | FUNC | 0x20 | + | 0x0000e972 | API_LE_SetPHYCmd | FUNC | 0x1e | + | 0x0000e990 | API_LE_SetExtendedAdvertisingParametersCmd | FUNC | 0x52 | + | 0x0000e9e2 | API_LE_SetExtendedAdvertisingDataCmd | FUNC | 0x20 | + | 0x0000ea02 | API_LE_SetExtendedScanResponseDataCmd | FUNC | 0x20 | + | 0x0000ea22 | API_LE_SetExtendedAdvertisingEnableCmd | FUNC | 0x20 | + | 0x0000ea42 | LL_Disconnect | FUNC | 0x2e | + | 0x0000ea70 | LL_MD_Disconnect | FUNC | 0x28 | + | 0x0000ea98 | LL_ReadBDAddr | FUNC | 0x22 | + | 0x0000eaba | LL_ReadRssi | FUNC | 0x26 | + | 0x0000eae0 | LL_LE_ReadBufSize | FUNC | 0x1a | + | 0x0000eafa | LL_RemoteConnParamReqReply | FUNC | 0x98 | + | 0x0000eb92 | LL_RemoteConnParamReqNegReply | FUNC | 0x3a | + | 0x0000ebcc | LL_SetDataLength | FUNC | 0x7e | + | 0x0000ec4a | LL_AddWhiteListDevice | FUNC | 0x54 | + | 0x0000ec9e | LL_ClearWhiteList | FUNC | 0x26 | + | 0x0000ecc4 | LL_Rand | FUNC | 0x34 | + | 0x0000ecf8 | LL_LtkReqReply | FUNC | 0xd8 | + | 0x0000edd0 | LL_LtkReqNegReply | FUNC | 0x3e | + | 0x0000ee0e | LL_SetDefaultPHY | FUNC | 0x24 | + | 0x0000ee32 | LL_SetPHY | FUNC | 0x58 | + | 0x0000ee8a | LL_SetExtendedAdvertisingParameters | FUNC | 0x1d2 | + | 0x0000f05c | LL_SetExtendedAdvertisingData | FUNC | 0x96 | + | 0x0000f0f2 | LL_SetExtendedScanResponseData | FUNC | 0x96 | + | 0x0000f188 | LL_SetExtendedAdvertisingEnable | FUNC | 0x8e | + | 0x0000f216 | LL_SendDataPkt | FUNC | 0xcc | + | 0x0000f2e2 | gapBondMgrInvertCharCfgItem | FUNC | 0x22 | + | 0x0000f304 | mainRecordNvID_Erase | FUNC | 0x3c | + | 0x0000f340 | gapBondMgrBondTotal | FUNC | 0x5a | + | 0x0000f39a | gapBondMgrFindEmpty | FUNC | 0x4e | + | 0x0000f3e8 | gapBondFreeAuthEvt | FUNC | 0x2a | + | 0x0000f412 | gapBondMgrEraseBonding | FUNC | 0x126 | + | 0x0000f538 | gapBondMgr_SyncWhiteList | FUNC | 0x58 | + | 0x0000f590 | gapBondSetupPrivFlag | FUNC | 0x26 | + | 0x0000f5b6 | gapBondMgrReadBonds | FUNC | 0x96 | + | 0x0000f64c | gapBondMgrSendServiceChange | FUNC | 0xa | + | 0x0000f656 | gapBondMgrFindAddr | FUNC | 0x58 | + | 0x0000f6ae | gapBondMgrAddBond | FUNC | 0x250 | + | 0x0000f8fe | gapBondPairStateCB | FUNC | 0x32 | + | 0x0000f930 | gapBondMgrChangeState.constprop.0 | FUNC | 0x6a | + | 0x0000f99a | gapBondMgrEraseAllBondings.isra.0 | FUNC | 0x30 | + | 0x0000f9ca | gapBondMgrGetPublicAddr.isra.0 | FUNC | 0x42 | + | 0x0000fa0c | gapBondMgrUpdateCharCfg | FUNC | 0xec | + | 0x0000faf8 | GAPBondMgr_ParamInit | FUNC | 0x128 | + | 0x0000fc20 | GAPBondMgr_Erase | FUNC | 0x10c | + | 0x0000fd2c | GAPBondMgr_LinkTerm | FUNC | 0xa8 | + | 0x0000fdd4 | GAPBondMgr_ResolveAddr | FUNC | 0x116 | + | 0x0000feea | GAPBondMgr_SetParameter | FUNC | 0x286 | + | 0x00010170 | GAPBondMgr_ServiceChangeInd | FUNC | 0x8a | + | 0x000101fa | GAPBondMgr_UpdateCharCfg | FUNC | 0x7c | + | 0x00010276 | GAPBondMgr_PeripheralRegister | FUNC | 0x22 | + | 0x00010298 | GAPBondMgr_PeriSecurityReq | FUNC | 0x14 | + | 0x000102ac | GAPBondMgr_LinkEst | FUNC | 0x150 | + | 0x000103fc | GAPBondMgr_ProcessGAPMsg | FUNC | 0x394 | + | 0x00010790 | GAPBondMgr_Init | FUNC | 0x1a | + | 0x000107aa | GAPBondMgr_ProcessEvent | FUNC | 0x17c | + | 0x00010926 | ggs_SetAttrWPermit | FUNC | 0x6a | + | 0x00010990 | ggs_ReadAttrCB | FUNC | 0x108 | + | 0x00010a98 | ggs_WriteAttrCB | FUNC | 0x146 | + | 0x00010bde | GGS_ParamInit | FUNC | 0x138 | + | 0x00010d16 | GGS_SetParameter | FUNC | 0x108 | + | 0x00010e1e | GGS_AddService | FUNC | 0x2c | + | 0x00010e4a | gapRole_PeripheralProcessGAPMsg | FUNC | 0x1b8 | + | 0x00011002 | gapRole_PeripheralProcessTMOSMsg | FUNC | 0x50 | + | 0x00011052 | GAPRole_PeripheralProcessEvent | FUNC | 0xc6 | + | 0x00011118 | GAPRole_PeripheralConnParamUpdateReq | FUNC | 0x4a | + | 0x00011162 | GAPRole_PeripheralStartDevice | FUNC | 0x52 | + | 0x000111b4 | GAPRole_PeripheralEnable | FUNC | 0xf6 | + | 0x000112aa | GAPRole_ParamInit | FUNC | 0x42 | + | 0x000112ec | GAPRole_GetParameter | FUNC | 0xbe | + | 0x000113aa | GAPRole_SetParameter | FUNC | 0x1bc | + | 0x00011566 | GAPRole_BroadcasterSetCB | FUNC | 0x6 | + | 0x0001156c | GAPRole_ReadRssiCmd | FUNC | 0x4 | + | 0x00011570 | GAPRole_TerminateLink | FUNC | 0x22 | + | 0x00011592 | GAPRole_UpdatePHY | FUNC | 0x4 | + | 0x00011596 | GAPRole_PeripheralInit | FUNC | 0x70 | + | 0x00011606 | tmos_memory_getlen | FUNC | 0x1c | + | 0x00011622 | tmos_memory_init | FUNC | 0x62 | + | 0x00011684 | tmos_bm_adjust_header | FUNC | 0x30 | + | 0x000116b4 | ATT_BuildErrorRsp | FUNC | 0x16 | + | 0x000116ca | ATT_ParamInit | FUNC | 0xa | + | 0x000116d4 | ATT_ConvertUUIDto128 | FUNC | 0x3e | + | 0x00011712 | ATT_CompareUUID | FUNC | 0x78 | + | 0x0001178a | ATT_RegisterClient | FUNC | 0x6 | + | 0x00011790 | ATT_RegisterServer | FUNC | 0x6 | + | 0x00011796 | ATT_ParsePacket | FUNC | 0x88 | + | 0x0001181e | ATT_UpdateMTU | FUNC | 0x3c | + | 0x0001185a | ATT_GetMTU | FUNC | 0x1e | + | 0x00011878 | ATT_ParseErrorRsp | FUNC | 0x20 | + | 0x00011898 | attSendMsg | FUNC | 0xb4 | + | 0x0001194c | attSendRspMsg | FUNC | 0x46 | + | 0x00011992 | ATT_ErrorRsp | FUNC | 0x12 | + | 0x000119a4 | ATT_BuildExchangeMTUReq | FUNC | 0xe | + | 0x000119b2 | ATT_ParseExchangeMTURsp | FUNC | 0x18 | + | 0x000119ca | ATT_ExchangeMTUReq | FUNC | 0x40 | + | 0x00011a0a | ATT_BuildExchangeMTURsp | FUNC | 0xe | + | 0x00011a18 | ATT_BuildFindInfoRsp | FUNC | 0x1e | + | 0x00011a36 | ATT_BuildFindByTypeValueRsp | FUNC | 0xa | + | 0x00011a40 | ATT_BuildReadByTypeRsp | FUNC | 0x14 | + | 0x00011a54 | ATT_BuildReadRsp | FUNC | 0x4 | + | 0x00011a58 | ATT_BuildReadBlobRsp | FUNC | 0x4 | + | 0x00011a5c | ATT_BuildReadMultiRsp | FUNC | 0x4 | + | 0x00011a60 | ATT_BuildReadByGrpTypeRsp | FUNC | 0x14 | + | 0x00011a74 | ATT_BuildPrepareWriteRsp | FUNC | 0x1e | + | 0x00011a92 | ATT_BuildHandleValueInd | FUNC | 0x14 | + | 0x00011aa6 | ATT_ParseExchangeMTUReq | FUNC | 0x16 | + | 0x00011abc | ATT_ExchangeMTURsp | FUNC | 0x1e | + | 0x00011ada | ATT_ParseFindInfoReq | FUNC | 0x1e | + | 0x00011af8 | ATT_FindInfoRsp | FUNC | 0x4e | + | 0x00011b46 | ATT_ParseFindByTypeValueReq | FUNC | 0x66 | + | 0x00011bac | ATT_FindByTypeValueRsp | FUNC | 0x40 | + | 0x00011bec | ATT_ParseReadByTypeReq | FUNC | 0x46 | + | 0x00011c32 | ATT_ReadByTypeRsp | FUNC | 0x40 | + | 0x00011c72 | ATT_ParseReadReq | FUNC | 0x16 | + | 0x00011c88 | ATT_ReadRsp | FUNC | 0x30 | + | 0x00011cb8 | ATT_ParseReadBlobReq | FUNC | 0x4 | + | 0x00011cbc | ATT_ReadBlobRsp | FUNC | 0x30 | + | 0x00011cec | ATT_ParseReadMultiReq | FUNC | 0x18 | + | 0x00011d04 | ATT_ReadMultiRsp | FUNC | 0x38 | + | 0x00011d3c | ATT_ReadByGrpTypeRsp | FUNC | 0x40 | + | 0x00011d7c | ATT_ParseWriteReq | FUNC | 0x2e | + | 0x00011daa | ATT_WriteRsp | FUNC | 0xc | + | 0x00011db6 | ATT_ParsePrepareWriteReq | FUNC | 0x30 | + | 0x00011de6 | ATT_PrepareWriteRsp | FUNC | 0x30 | + | 0x00011e16 | ATT_ParseExecuteWriteReq | FUNC | 0x10 | + | 0x00011e26 | ATT_ExecuteWriteRsp | FUNC | 0xc | + | 0x00011e32 | ATT_HandleValueNoti | FUNC | 0x30 | + | 0x00011e62 | ATT_HandleValueInd | FUNC | 0x30 | + | 0x00011e92 | LL_ProcessEvent | FUNC | 0x42 | + | 0x00011ed4 | LL_Init | FUNC | 0xc0 | + | 0x00011f94 | LL_AddrInit | FUNC | 0x9c | + | 0x00012030 | llAdvertiseCreateCore | FUNC | 0x60 | + | 0x00012090 | ll_advertise_generated_pdu | FUNC | 0xaa | + | 0x0001213a | ll_advertise_to_connection_state | FUNC | 0x14a | + | 0x00012284 | ll_advertise_filter | FUNC | 0x68 | + | 0x000122ec | ll_advertise_event_closed | FUNC | 0x60 | + | 0x0001234c | ll_adv_legacy_rsp_tx_process | FUNC | 0x92 | + | 0x000123de | LL_AdvGetCore | FUNC | 0x18 | + | 0x000123f6 | llAdvertiseSet | FUNC | 0xc6 | + | 0x000124bc | LL_AdvertiseToStandby | FUNC | 0x48 | + | 0x00012504 | llAdvertiseTimeout | FUNC | 0x3e | + | 0x00012542 | LL_AdvertiseEventRegister | FUNC | 0x6 | + | 0x00012548 | LL_AdvertiseEnalbe | FUNC | 0x5e | + | 0x000125a6 | LL_ConnectEventRegister | FUNC | 0x6 | + | 0x000125ac | ll_connect_set_windowWidening | FUNC | 0x24 | + | 0x000125d0 | ll_connect_set_procedure_timeout | FUNC | 0x38 | + | 0x00012608 | ll_connect_set_connect_timeout | FUNC | 0x38 | + | 0x00012640 | ll_connect_init_dataLen | FUNC | 0x60 | + | 0x000126a0 | ll_connect_update_effective_Len | FUNC | 0x32 | + | 0x000126d2 | ll_connect_update_dataLen | FUNC | 0xa4 | + | 0x00012776 | ll_connect_phy_update_dataLen | FUNC | 0x7c | + | 0x000127f2 | ll_connect_parse_datapdu_head | FUNC | 0x22 | + | 0x00012814 | ll_connect_flowcontrol_init | FUNC | 0x8 | + | 0x0001281c | LL_ConnectFlowcontrolTx | FUNC | 0x20 | + | 0x0001283c | LL_ConnectFlowcontrolRx | FUNC | 0x20 | + | 0x0001285c | LL_ConnectTxPktnumIncrease | FUNC | 0x2a | + | 0x00012886 | LL_ConnectRxPktnumIncrease | FUNC | 0x2a | + | 0x000128b0 | ll_connect_event_continue | FUNC | 0xa2 | + | 0x00012952 | ll_set_connect_event | FUNC | 0x5a | + | 0x000129ac | LL_ConnectFreeTmosPrioritID | FUNC | 0xc2 | + | 0x00012a6e | LL_ConnectToStandby | FUNC | 0x64 | + | 0x00012ad2 | ll_connect_action_in_connintervaltimeout | FUNC | 0x21c | + | 0x00012cee | ll_connect_procedure_timeout | FUNC | 0x28 | + | 0x00012d16 | ll_connect_supervision_timeout | FUNC | 0x30 | + | 0x00012d46 | ll_process_after_connect_event | FUNC | 0x2c4 | + | 0x0001300a | LL_ConnectShut | FUNC | 0xba | + | 0x000130c4 | LL_CoreGetCore | FUNC | 0x16 | + | 0x000130da | LL_CoreGetRxDataList | FUNC | 0x18 | + | 0x000130f2 | LL_CoreGetTxDataList | FUNC | 0x34 | + | 0x00013126 | LL_CoreDataListInit | FUNC | 0x78 | + | 0x0001319e | LL_CoreOpen | FUNC | 0x5a | + | 0x000131f8 | LL_CoreDataListFree | FUNC | 0x2e | + | 0x00013226 | LL_CoreClose | FUNC | 0x30 | + | 0x00013256 | LL_CoreInit | FUNC | 0x14 | + | 0x0001326a | LL_HopGetChannels | FUNC | 0x4c | + | 0x000132b6 | LL_HopInit | FUNC | 0x54 | + | 0x0001330a | llAdvertisingReportReport | FUNC | 0x4 | + | 0x0001330e | llRemoteConnectionParamRequestReport | FUNC | 0x2c | + | 0x0001333a | llDirectedAdvertisingConnectionCompleteReport | FUNC | 0x50 | + | 0x0001338a | llConnectCompleteReport | FUNC | 0x6e | + | 0x000133f8 | llPHYUpdateCompleteReport | FUNC | 0x3e | + | 0x00013436 | llDataLengthChangeReport | FUNC | 0x38 | + | 0x0001346e | llRemoteConnectParamRequestReport | FUNC | 0x46 | + | 0x000134b4 | llLTKRequestedReport | FUNC | 0x24 | + | 0x000134d8 | llReadRemoteFeatureCompleteReport | FUNC | 0x2e | + | 0x00013506 | llConnectUpdateCompleteReport | FUNC | 0x3c | + | 0x00013542 | llDirectAdvertisingReportReport | FUNC | 0x4 | + | 0x00013546 | llCancelConnectionCompleteReport | FUNC | 0x4 | + | 0x0001354a | llReadLocalP256PublicKeyCompleteReport | FUNC | 0x4 | + | 0x0001354e | llGenerateDHKEYCompleteReport | FUNC | 0x4 | + | 0x00013552 | llEnhancedConnectCompleteReport | FUNC | 0x4 | + | 0x00013556 | LL_ProcessTMOSReportMsg | FUNC | 0x13a | + | 0x00013690 | LL_ReportGenerateEvent | FUNC | 0x46 | + | 0x000136d6 | llDataPackageReport | FUNC | 0x72 | + | 0x00013748 | ll_slave_tx_process | FUNC | 0xe4 | + | 0x0001382c | ll_slave_listern | FUNC | 0x744 | + | 0x00013f70 | llSlaveCreateCore | FUNC | 0xc4 | + | 0x00014034 | llSlaveSetFirstTimer | FUNC | 0x116 | + | 0x0001414a | llSlaveStartEvent | FUNC | 0x114 | + | 0x0001425e | LL_SlaveEnalbe | FUNC | 0x38 | + | 0x00014296 | LL_WhitelistAdd | FUNC | 0xa8 | + | 0x0001433e | LL_WhitelistClearAll | FUNC | 0x48 | + | 0x00014386 | LL_WhitelistInit | FUNC | 0x12 | + | 0x00014398 | llEncRsp | FUNC | 0x4 | + | 0x0001439c | llRejectInd | FUNC | 0x6e | + | 0x0001440a | llRejectIndExt | FUNC | 0x6e | + | 0x00014478 | LL_RxLenUpdate | FUNC | 0x7c | + | 0x000144f4 | llConnectionUpdateInd | FUNC | 0x9a | + | 0x0001458e | llTerminateInd | FUNC | 0x1c | + | 0x000145aa | llStartEncRsp | FUNC | 0x3a | + | 0x000145e4 | llUnknowRsp | FUNC | 0x7a | + | 0x0001465e | llPauseEncReq | FUNC | 0x1e | + | 0x0001467c | llPauseEncRsp | FUNC | 0x3a | + | 0x000146b6 | llVersionInd | FUNC | 0x84 | + | 0x0001473a | llPHYReq | FUNC | 0x5a | + | 0x00014794 | llPHYUpdateIND | FUNC | 0x6c | + | 0x00014800 | llConnectionParamReq | FUNC | 0x128 | + | 0x00014928 | llFeatureReq | FUNC | 0x66 | + | 0x0001498e | llChannelMapReq | FUNC | 0x62 | + | 0x000149f0 | llLengthRsp | FUNC | 0x56 | + | 0x00014a46 | llLengthReq | FUNC | 0x4c | + | 0x00014a92 | llEncReq | FUNC | 0x130 | + | 0x00014bc2 | llPingRsp | FUNC | 0x4 | + | 0x00014bc6 | llPHYRsp | FUNC | 0x4 | + | 0x00014bca | llStartEncReq | FUNC | 0x4 | + | 0x00014bce | llFeatureRsp | FUNC | 0x4 | + | 0x00014bd2 | llSlaveFeatureReq | FUNC | 0x4 | + | 0x00014bd6 | llConnectionParamRsp | FUNC | 0x4 | + | 0x00014bda | llPingReq | FUNC | 0x4 | + | 0x00014bde | LL_SendAck | FUNC | 0x16 | + | 0x00014bf4 | LL_TerminateInd | FUNC | 0x24 | + | 0x00014c18 | LL_EncRsp | FUNC | 0x50 | + | 0x00014c68 | LL_StartEncReq | FUNC | 0x1a | + | 0x00014c82 | LL_StartEncRsp | FUNC | 0x1a | + | 0x00014c9c | LL_UnknowRsp | FUNC | 0x1c | + | 0x00014cb8 | LL_FeatureRsp | FUNC | 0x52 | + | 0x00014d0a | LL_PauseEncRsp | FUNC | 0x1a | + | 0x00014d24 | LL_VersionInd | FUNC | 0x5a | + | 0x00014d7e | LL_RejectInd | FUNC | 0x1c | + | 0x00014d9a | LL_ConnectionParamReq | FUNC | 0x9e | + | 0x00014e38 | LL_ConnectionParamRsp | FUNC | 0x96 | + | 0x00014ece | LL_RejectIndExt | FUNC | 0x20 | + | 0x00014eee | LL_LengthReq | FUNC | 0x6c | + | 0x00014f5a | LL_LengthRsp | FUNC | 0x84 | + | 0x00014fde | LL_PHYReq | FUNC | 0x52 | + | 0x00015030 | LL_PHYRsp | FUNC | 0x58 | + | 0x00015088 | printchar | FUNC | 0x4a | + | 0x000150d2 | prints | FUNC | 0xea | + | 0x000151bc | printInt | FUNC | 0xf4 | + | 0x000152b0 | printLongLongInt | FUNC | 0x4 | + | 0x000152b4 | printDouble | FUNC | 0x4 | + | 0x000152b8 | print | FUNC | 0x362 | + | 0x0001561a | printf | FUNC | 0x24 | + | 0x0001563e | sprintf | FUNC | 0x28 | + | 0x00015666 | puts | FUNC | 0x48 | + | 0x000156ae | __lshrdi3 | FUNC | 0x26 | HIDEEN + | 0x000156d4 | __udivdi3 | FUNC | 0x39a | HIDEEN + | 0x00015a6e | __adddf3 | FUNC | 0x706 | HIDEEN + | 0x00016174 | __divdf3 | FUNC | 0x56e | HIDEEN + | 0x000166e2 | __muldf3 | FUNC | 0x508 | HIDEEN + | 0x00016bea | __fixunsdfsi | FUNC | 0x56 | HIDEEN + | 0x00016c40 | __floatsidf | FUNC | 0x70 | HIDEEN + | 0x00016cb0 | __floatunsidf | FUNC | 0x52 | HIDEEN + | 0x00016d02 | __divsf3 | FUNC | 0x2be | HIDEEN + | 0x00016fc0 | __gesf2 | FUNC | 0x96 | HIDEEN + | 0x00016fc0 | __gtsf2 | FUNC | 0x96 | HIDEEN + | 0x00017056 | __lesf2 | FUNC | 0x98 | HIDEEN + | 0x00017056 | __ltsf2 | FUNC | 0x98 | HIDEEN + | 0x000170ee | __mulsf3 | FUNC | 0x2c6 | HIDEEN + | 0x000173b4 | __fixunssfsi | FUNC | 0x4e | HIDEEN + | 0x00017402 | __floatsisf | FUNC | 0xc0 | HIDEEN + | 0x000174c2 | __floatunsisf | FUNC | 0xa8 | HIDEEN + | 0x0001756a | memcmp | FUNC | 0x24 | + | 0x0001758e | strlen | FUNC | 0x10 | + | 0x0001759e | viprintf | FUNC | 0x2e | + | 0x0001759e | vprintf | FUNC | 0x2e | + | 0x000175cc | _vsniprintf_r | FUNC | 0x60 | + | 0x000175cc | _vsnprintf_r | FUNC | 0x60 | + | 0x0001762c | vsniprintf | FUNC | 0x10 | + | 0x0001762c | vsnprintf | FUNC | 0x10 | + | 0x0001763c | std | FUNC | 0x66 | + | 0x000176a2 | _cleanup_r | FUNC | 0xa | + | 0x000176ac | __sfmoreglue | FUNC | 0x46 | + | 0x000176f2 | __sfp_lock_acquire | FUNC | 0x6 | + | 0x000176f8 | __sfp_lock_release | FUNC | 0x6 | + | 0x000176fe | __sinit_lock_acquire | FUNC | 0x6 | + | 0x00017704 | __sinit_lock_release | FUNC | 0x6 | + | 0x0001770a | __sinit | FUNC | 0x72 | + | 0x0001777c | __sfp | FUNC | 0xb0 | + | 0x0001782c | _fwalk_reent | FUNC | 0x68 | + | 0x00017894 | __retarget_lock_init_recursive | FUNC | 0x2 | + | 0x00017896 | __retarget_lock_acquire_recursive | FUNC | 0x2 | + | 0x00017898 | __retarget_lock_release_recursive | FUNC | 0x2 | + | 0x0001789a | sbrk_aligned | FUNC | 0x5a | + | 0x000178f4 | _malloc_r | FUNC | 0x10e | + | 0x00017a02 | __ssputs_r | FUNC | 0xde | + | 0x00017ae0 | _svfiprintf_r | FUNC | 0x258 | + | 0x00017ae0 | _svfprintf_r | FUNC | 0x258 | + | 0x00017d38 | _printf_common | FUNC | 0x10a | + | 0x00017e42 | _printf_i | FUNC | 0x27c | + | 0x000180be | __sfputc_r | FUNC | 0x26 | + | 0x000180e4 | __sfputs_r | FUNC | 0x42 | + | 0x00018126 | _vfiprintf_r | FUNC | 0x2ba | + | 0x00018126 | _vfprintf_r | FUNC | 0x2ba | + | 0x000183e0 | _sbrk_r | FUNC | 0x28 | + | 0x00018408 | __sread | FUNC | 0x2a | + | 0x00018432 | __swrite | FUNC | 0x46 | + | 0x00018478 | __sseek | FUNC | 0x2e | + | 0x000184a6 | __sclose | FUNC | 0x6 | + | 0x000184ac | __swbuf_r | FUNC | 0xbe | + | 0x0001856a | _write_r | FUNC | 0x2c | + | 0x00018596 | __swsetup_r | FUNC | 0xf0 | + | 0x00018686 | _close_r | FUNC | 0x26 | + | 0x000186ac | __sflush_r | FUNC | 0x132 | + | 0x000187de | _fflush_r | FUNC | 0x8e | + | 0x0001886c | _lseek_r | FUNC | 0x2a | + | 0x00018896 | __swhatbuf_r | FUNC | 0x58 | + | 0x000188ee | __smakebuf_r | FUNC | 0x96 | + | 0x00018984 | memchr | FUNC | 0x18 | + | 0x0001899c | __malloc_lock | FUNC | 0x8 | + | 0x000189a4 | __malloc_unlock | FUNC | 0x8 | + | 0x000189ac | _free_r | FUNC | 0xa2 | + | 0x00018a4e | _realloc_r | FUNC | 0x76 | + | 0x00018ac4 | _read_r | FUNC | 0x2a | + | 0x00018aee | _fstat_r | FUNC | 0x28 | + | 0x00018b16 | _isatty_r | FUNC | 0x26 | + | 0x00018b3c | _malloc_usable_size_r | FUNC | 0x14 | + | 0x00018b50 | _close | FUNC | 0xc | + | 0x00018b5c | _fstat | FUNC | 0xc | + | 0x00018b68 | _isatty | FUNC | 0xc | + | 0x00018b74 | _lseek | FUNC | 0xc | + | 0x00018b80 | _read | FUNC | 0xc | + | 0x00018d24 | DefaultGroupInfo | OBJECT | 0x87 | + | 0x00019438 | serverReqTbl | OBJECT | 0x60 | + | 0x000194c4 | IOCapMatrix | OBJECT | 0x19 | + | 0x00019508 | const_Rb | OBJECT | 0x10 | + | 0x00019518 | VER_LIB | OBJECT | 0x1a | + | 0x000196d0 | btBaseUUID | OBJECT | 0x10 | + | 0x000196e0 | funcArr | OBJECT | 0x40 | + | 0x00019804 | funcRxPDUArr | OBJECT | 0x64 | + | 0x000199b0 | __clz_tab | OBJECT | 0x100 | HIDEEN + | 0x00019ab0 | __sf_fake_stderr | OBJECT | 0x20 | + | 0x00019ad0 | __sf_fake_stdout | OBJECT | 0x20 | + | 0x00019af0 | __sf_fake_stdin | OBJECT | 0x20 | + +.vector_handler + +.highcode_fast + | 0x00019ba6 | tmosFindTask | FUNC | 0x1a | + | 0x00019bc0 | TMOS_CB_PeriodicProcessEvent | FUNC | 0x92 | + | 0x00019c52 | tmos_strlen | FUNC | 0x2e | + | 0x00019c80 | tmos_revmemcpy | FUNC | 0x36 | + | 0x00019cb6 | tmos_isbufset | FUNC | 0x40 | + | 0x00019cf6 | tmos_start_periodic_callback_task | FUNC | 0xfe | + | 0x00019df4 | tmos_set_event | FUNC | 0x46 | + | 0x00019e3a | tmos_update_periodic_callback_timer | FUNC | 0x76 | + | 0x00019eb0 | BLE_SetPHYTxMode | FUNC | 0x6a | + | 0x00019f1a | BLE_SetPHYRxMode | FUNC | 0xe4 | + | 0x00019ffe | ble_ll_hw_api_shut | FUNC | 0x46 | + | 0x0001a044 | phy_status_clear | FUNC | 0x58 | + | 0x0001a09c | tmos_memory_allocate | FUNC | 0xc6 | + | 0x0001a162 | ll_connect_send_data | FUNC | 0xf4 | + | 0x0001a256 | ll_connect_recv_data | FUNC | 0x7c | + | 0x0001a2d2 | llProcessConnectEvent | FUNC | 0x418 | + | 0x0001a6ea | LL_HopGetChannel | FUNC | 0x9a | + | 0x0001a784 | LL_HopGetChannel2 | FUNC | 0x264 | + +.highcode_lp + | 0x0001a9e8 | TMOS_ProcessRegister | FUNC | 0x8 | + | 0x0001a9f0 | BB_DevInit | FUNC | 0x4c | + | 0x0001aa3c | LLE_DevSetMode | FUNC | 0x4a | + | 0x0001aa86 | LLE_DevInit | FUNC | 0x62 | + | 0x0001aae8 | RFEND_WaitTune | FUNC | 0x2a | + | 0x0001ab12 | ll_advertise_tx | FUNC | 0xd8 | + | 0x0001abea | llAdvertiseStart | FUNC | 0x196 | + | 0x0001ad80 | ll_advertise_status_closed | FUNC | 0x36 | + | 0x0001adb6 | ll_adv_legacy_ind_tx_process | FUNC | 0x5e | + | 0x0001ae14 | ll_adv_legacy_rx_process | FUNC | 0x158 | + +.fini + +.dlalign + +.data + | 0x20001040 | simpleProfileCBs | OBJECT | 0xc | + | 0x2000104c | simpleProfileAttrTbl | OBJECT | 0xb0 | + | 0x200010fc | simpleProfileChar5UserDesp | OBJECT | 0x12 | + | 0x20001110 | simpleProfileChar4UserDesp | OBJECT | 0x12 | + | 0x20001124 | simpleProfileChar1UserDesp | OBJECT | 0x12 | + | 0x20001138 | Peripheral_PeripheralCBs | OBJECT | 0xc | + | 0x20001144 | attDeviceName | OBJECT | 0x15 | + | 0x2000115c | scanRspData | OBJECT | 0x17 | + | 0x20001174 | gapServiceCBs | OBJECT | 0xc | + | 0x20001180 | impure_data | OBJECT | 0x60 | + | 0x200011e0 | Dbg_Switch | OBJECT | 0x4 | + | 0x200011e4 | VC_ConSToNSubset | OBJECT | 0x1 | + | 0x200011e5 | VC_ConSToNGruop | OBJECT | 0x1 | + | 0x200011e6 | VC_ConNToSSubset | OBJECT | 0x1 | + | 0x200011e7 | VC_ConNToSGruop | OBJECT | 0x1 | + | 0x200011e8 | curbrk.0 | OBJECT | 0x4 | + | 0x200011ec | simpleProfileChar5Props | OBJECT | 0x1 | + | 0x200011ed | simpleProfileChar4Props | OBJECT | 0x1 | + | 0x200011ee | simpleProfileChar1Props | OBJECT | 0x1 | + | 0x200011f0 | Peripheral_SimpleProfileCBs | OBJECT | 0x4 | + | 0x200011f4 | peripheralMTU | OBJECT | 0x2 | + | 0x200011f8 | advertData | OBJECT | 0x7 | + | 0x200011ff | Peripheral_TaskID | OBJECT | 0x1 | + | 0x20001200 | holdrand.0 | OBJECT | 0x4 | + | 0x20001204 | nextHandle | OBJECT | 0x2 | + | 0x20001206 | GATTServApp_TaskID | OBJECT | 0x1 | + | 0x20001207 | appTaskID | OBJECT | 0x1 | + | 0x20001208 | reqTaskId | OBJECT | 0x1 | + | 0x20001209 | serviceChangedCharProps | OBJECT | 0x1 | + | 0x2000120c | gattService | OBJECT | 0x8 | + | 0x20001214 | gapBond_Erase | OBJECT | 0x1 | + | 0x20001215 | gapBond_Valid | OBJECT | 0x1 | + | 0x20001216 | gapBond_Auto | OBJECT | 0x1 | + | 0x20001217 | gapBond_KeySize | OBJECT | 0x1 | + | 0x20001218 | gapBond_AutoFailReason | OBJECT | 0x1 | + | 0x20001219 | centAddrRes | OBJECT | 0x1 | + | 0x2000121a | centAddrResCharProps | OBJECT | 0x1 | + | 0x2000121b | periConnParamCharProps | OBJECT | 0x1 | + | 0x2000121c | appearanceCharProps | OBJECT | 0x1 | + | 0x2000121d | deviceNameCharProps | OBJECT | 0x1 | + | 0x20001220 | _impure_ptr | OBJECT | 0x4 | + | 0x2000124c | simpleProfileService | OBJECT | 0x8 | + | 0x20001254 | simpleProfilechar5UUID | OBJECT | 0x2 | + | 0x20001258 | simpleProfilechar4UUID | OBJECT | 0x2 | + | 0x2000125c | simpleProfilechar1UUID | OBJECT | 0x2 | + | 0x20001260 | simpleProfileServUUID | OBJECT | 0x2 | + | 0x20001264 | serviceChangedUUID | OBJECT | 0x2 | + | 0x20001268 | centAddrResUUID | OBJECT | 0x2 | + | 0x2000126c | periConnParamUUID | OBJECT | 0x2 | + | 0x20001270 | appearanceUUID | OBJECT | 0x2 | + | 0x20001274 | deviceNameUUID | OBJECT | 0x2 | + | 0x20001278 | clientCharCfgUUID | OBJECT | 0x2 | + | 0x2000127c | charUserDescUUID | OBJECT | 0x2 | + | 0x20001280 | characterUUID | OBJECT | 0x2 | + | 0x20001284 | secondaryServiceUUID | OBJECT | 0x2 | + | 0x20001288 | primaryServiceUUID | OBJECT | 0x2 | + | 0x2000128c | gattServiceUUID | OBJECT | 0x2 | + | 0x20001290 | gapServiceUUID | OBJECT | 0x2 | + | 0x20001294 | CSWTCH.135 | OBJECT | 0x7 | + | 0x2000129c | gapService | OBJECT | 0x8 | + | 0x200012a4 | _global_impure_ptr | OBJECT | 0x4 | + +.bss + | 0x200012a8 | NUM_s.0 | OBJECT | 0x2 | + | 0x200012aa | NUM.1 | OBJECT | 0x1 | + | 0x200012ac | SysTick_Diff | OBJECT | 0x4 | + | 0x200012b0 | SysTick_Last | OBJECT | 0x4 | + | 0x200012b4 | SysTick_Now | OBJECT | 0x4 | + | 0x200012b8 | SysTick_1s | OBJECT | 0x4 | + | 0x200012bc | SysTick_1ms | OBJECT | 0x4 | + | 0x200012c0 | SysTick_100us | OBJECT | 0x4 | + | 0x200012c4 | rev.0 | OBJECT | 0x1 | + | 0x200012c8 | scan_tisk.1 | OBJECT | 0x4 | + | 0x200012cc | portstate | OBJECT | 0x1 | + | 0x200012d0 | sensor_info | OBJECT | 0x6 | + | 0x200012d8 | UART0_RecvEndPtr | OBJECT | 0x4 | + | 0x200012dc | UART0_RecvOutPtr | OBJECT | 0x4 | + | 0x200012e0 | UART0_RecvInPtr | OBJECT | 0x4 | + | 0x200012e4 | Freq_LSI | OBJECT | 0x4 | + | 0x200012e8 | simpleProfileChar5 | OBJECT | 0x5 | + | 0x200012f0 | simpleProfileChar4Config | OBJECT | 0x4 | + | 0x200012f4 | simpleProfileChar4 | OBJECT | 0x1 | + | 0x200012f8 | simpleProfile_AppCBs | OBJECT | 0x4 | + | 0x200012fc | g_LLE_IRQLibHandlerLocation | OBJECT | 0x4 | + | 0x20001300 | halTaskID | OBJECT | 0x1 | + | 0x20001304 | lsiFrq | OBJECT | 0x4 | + | 0x20001308 | RTCTigFlag | OBJECT | 0x4 | + | 0x2000130c | LSIWakeup_MaxTime | OBJECT | 0x2 | + | 0x20001310 | Broadcaster_BroadcasterCBs | OBJECT | 0x8 | + | 0x20001318 | peripheralConnList | OBJECT | 0x8 | + | 0x20001320 | BLE_OTA_flag | OBJECT | 0x1 | + | 0x20001324 | msg_qHead | OBJECT | 0x4 | + | 0x20001328 | taskHead | OBJECT | 0x4 | + | 0x2000132c | pfnProcessCBs | OBJECT | 0x4 | + | 0x20001330 | pfnTimerCBs | OBJECT | 0x4 | + | 0x20001334 | fnGetClockCBs | OBJECT | 0x4 | + | 0x20001338 | tasksArr | OBJECT | 0x4 | + | 0x2000133c | EventsArr | OBJECT | 0x4 | + | 0x20001340 | cbTimersHead | OBJECT | 0x4 | + | 0x20001344 | pEstLink | OBJECT | 0x4 | + | 0x20001348 | pGapAdvertState | OBJECT | 0x4 | + | 0x2000134c | slaveUpdateReq | OBJECT | 0x8 | + | 0x20001354 | gapCurrentRandomAddr | OBJECT | 0x6 | + | 0x2000135c | pfnPeripheralConnCBs | OBJECT | 0x4 | + | 0x20001360 | pfnPeripheralCBs | OBJECT | 0x4 | + | 0x20001364 | terminateAllTaskID | OBJECT | 0x1 | + | 0x20001365 | terminateReason | OBJECT | 0x1 | + | 0x20001368 | gapPeripheralConnCBs | OBJECT | 0x4 | + | 0x2000136c | pGapScanRspData | OBJECT | 0x4 | + | 0x20001370 | pGapAdData | OBJECT | 0x4 | + | 0x20001374 | gapAdvTaskID | OBJECT | 0x1 | + | 0x20001375 | gapAdvAppTaskID | OBJECT | 0x1 | + | 0x20001378 | pfnServerProcessMsgCB | OBJECT | 0x4 | + | 0x2000137c | pfnClientProcessMsgCB | OBJECT | 0x4 | + | 0x20001380 | clientInfoTbl | OBJECT | 0x4 | + | 0x20001384 | pAttrValue | OBJECT | 0x4 | + | 0x20001388 | attrLen | OBJECT | 0x2 | + | 0x2000138c | indCharCfg | OBJECT | 0x4 | + | 0x20001390 | serverInfoTbl | OBJECT | 0x4 | + | 0x20001394 | prepareWritesTbl | OBJECT | 0x4 | + | 0x20001398 | pServiceList | OBJECT | 0x4 | + | 0x2000139c | serviceCBsList | OBJECT | 0x4 | + | 0x200013a0 | gattAddService | OBJECT | 0x1 | + | 0x200013a4 | pL2capData | OBJECT | 0x4 | + | 0x200013a8 | l2capMtuSize | OBJECT | 0x2 | + | 0x200013aa | l2capId | OBJECT | 0x1 | + | 0x200013ab | l2capNumRecvDataPkts | OBJECT | 0x1 | + | 0x200013ac | l2capNumDataPkts | OBJECT | 0x1 | + | 0x200013ad | l2capTaskID | OBJECT | 0x1 | + | 0x200013b0 | linkDB | OBJECT | 0x4 | + | 0x200013b4 | pSmGenKey | OBJECT | 0x4 | + | 0x200013b8 | gBleHostPara | OBJECT | 0x8 | + | 0x200013c0 | gptrAESReg | OBJECT | 0x4 | + | 0x200013c4 | gptrBBReg | OBJECT | 0x4 | + | 0x200013c8 | rfStatusCBs | OBJECT | 0x4 | + | 0x200013cc | gRfTaskId | OBJECT | 0x1 | + | 0x200013d0 | gPaControl | OBJECT | 0x4 | + | 0x200013d4 | pfnHandle | OBJECT | 0x4 | + | 0x200013d8 | tmosSign | OBJECT | 0x1 | + | 0x200013dc | gptrLLEReg | OBJECT | 0x4 | + | 0x200013e0 | gTuneFilter2M | OBJECT | 0x1 | + | 0x200013e1 | gTuneFilter | OBJECT | 0x1 | + | 0x200013e2 | ftuneFlag | OBJECT | 0x2 | + | 0x200013e4 | nGA2480 | OBJECT | 0x1 | + | 0x200013e5 | nCO2480 | OBJECT | 0x1 | + | 0x200013e6 | nGA2440 | OBJECT | 0x1 | + | 0x200013e7 | nCO2440 | OBJECT | 0x1 | + | 0x200013e8 | nGA2401 | OBJECT | 0x1 | + | 0x200013e9 | nCO2401 | OBJECT | 0x1 | + | 0x200013ec | gptrRFENDReg | OBJECT | 0x4 | + | 0x200013f0 | fragment.0 | OBJECT | 0x1 | + | 0x200013f2 | service.0 | OBJECT | 0x2 | + | 0x200013f4 | pAttr.1 | OBJECT | 0x4 | + | 0x200013f8 | gapBond_Invalid | OBJECT | 0x1 | + | 0x200013fc | pAuthEvt | OBJECT | 0x4 | + | 0x20001400 | bondIdx | OBJECT | 0x1 | + | 0x20001401 | gapBondMax | OBJECT | 0x1 | + | 0x20001402 | eraseAllBonds | OBJECT | 0x1 | + | 0x20001403 | autoSyncWhiteList | OBJECT | 0x1 | + | 0x20001404 | bonds | OBJECT | 0x4 | + | 0x20001408 | pGapPeriBondCB | OBJECT | 0x4 | + | 0x2000140c | gattCCFlag | OBJECT | 0x1 | + | 0x2000140d | gapBond_AutoFail | OBJECT | 0x1 | + | 0x20001410 | gapBond_Peri_Passcode | OBJECT | 0x4 | + | 0x20001414 | gapBond_Peri_KeyDistList | OBJECT | 0x1 | + | 0x20001415 | gapBond_Peri_AuthReq | OBJECT | 0x1 | + | 0x20001416 | gapBond_Peri_OOBDataFlag | OBJECT | 0x1 | + | 0x20001417 | gapBond_Peri_IOCap | OBJECT | 0x1 | + | 0x20001418 | gapBond_Peri_PairingMode | OBJECT | 0x1 | + | 0x20001419 | gapBondMgr_TaskID | OBJECT | 0x1 | + | 0x2000141a | ggsAddService | OBJECT | 0x1 | + | 0x2000141c | periConnParameters | OBJECT | 0x8 | + | 0x20001424 | appearance | OBJECT | 0x2 | + | 0x20001426 | deviceNameLength | OBJECT | 0x1 | + | 0x20001428 | ggs_AppCBs | OBJECT | 0x4 | + | 0x2000142c | pGapRolesPeri_AppCGs | OBJECT | 0x4 | + | 0x20001430 | pGapRoles_AppCGs | OBJECT | 0x4 | + | 0x20001434 | gapRole_bdAddr | OBJECT | 0x6 | + | 0x2000143c | gapRole_signCounter | OBJECT | 0x4 | + | 0x20001440 | gapRole_MaxConnInterval | OBJECT | 0x2 | + | 0x20001442 | gapRole_MinConnInterval | OBJECT | 0x2 | + | 0x20001444 | gapRole_AdvFilterPolicy | OBJECT | 0x1 | + | 0x20001445 | gapRole_AdvChanMap | OBJECT | 0x1 | + | 0x20001448 | gapRole_AdvDirectAddr | OBJECT | 0x6 | + | 0x2000144e | gapRole_AdvDirectType | OBJECT | 0x1 | + | 0x2000144f | gapRole_AdvEventType | OBJECT | 0x1 | + | 0x20001450 | gapRole_PHYRx | OBJECT | 0x1 | + | 0x20001451 | gapRole_PHYTx | OBJECT | 0x1 | + | 0x20001452 | gapRole_AdvEnabled | OBJECT | 0x1 | + | 0x20001453 | gapRole_profileRole | OBJECT | 0x1 | + | 0x20001454 | gapRole_state | OBJECT | 0x4 | + | 0x20001458 | gapRole_TaskID | OBJECT | 0x1 | + | 0x2000145c | MemCtlEnd | OBJECT | 0x4 | + | 0x20001460 | MemCtlPartition | OBJECT | 0x4 | + | 0x20001464 | MemCtlStart | OBJECT | 0x4 | + | 0x20001468 | attClientNotifyTxCB | OBJECT | 0x4 | + | 0x2000146c | attServerNotifyTxCB | OBJECT | 0x4 | + | 0x20001470 | pfnAdvertiseEventCBs | OBJECT | 0x4 | + | 0x20001474 | pfnConnectEventCBs | OBJECT | 0x4 | + | 0x20001478 | llRecvDataDisable | OBJECT | 0x4 | + | 0x2000147c | __lock___malloc_recursive_mutex | OBJECT | 0x1 | + | 0x20001480 | __lock___sfp_recursive_mutex | OBJECT | 0x1 | + | 0x20001484 | __lock___sinit_recursive_mutex | OBJECT | 0x1 | + | 0x20001488 | __malloc_sbrk_start | OBJECT | 0x4 | + | 0x2000148c | __malloc_free_list | OBJECT | 0x4 | + | 0x20001490 | errno | OBJECT | 0x4 | + | 0x20001494 | Dbg_Buffer | OBJECT | 0x64 | + | 0x200014f8 | PortInfo | OBJECT | 0x37 | + | 0x20001530 | PortGroupInfo | OBJECT | 0x87 | + | 0x200015b8 | portBuff | OBJECT | 0x2d0 | + | 0x20001888 | condata | OBJECT | 0xf | + | 0x20001898 | VCard_Info | OBJECT | 0x9e | + | 0x20001938 | UART0_RecvBuff | OBJECT | 0xa0 | + | 0x200019d8 | g_uart | OBJECT | 0x5f | + | 0x20001a38 | simpleProfileChar3 | OBJECT | 0x14 | + | 0x20001a4c | simpleProfileChar2 | OBJECT | 0x14 | + | 0x20001a60 | simpleProfileChar1 | OBJECT | 0x64 | + | 0x20001ac4 | MEM_BUF | OBJECT | 0xe00 | + | 0x200028c8 | block_buf | OBJECT | 0x10 | + | 0x200028d8 | print_BLE | OBJECT | 0x3c | + | 0x20002914 | Peripheral_BondMgrCBs | OBJECT | 0xc | + | 0x20002920 | gTmosPara | OBJECT | 0x20 | + | 0x20002940 | ble | OBJECT | 0x34 | + | 0x20002974 | bleClock_t | OBJECT | 0x14 | + | 0x20002988 | gapParameters | OBJECT | 0x18 | + | 0x200029a0 | gapParams | OBJECT | 0x1c | + | 0x200029bc | gapPeripheralCBs | OBJECT | 0xc | + | 0x200029c8 | gattAttrTbl | OBJECT | 0x40 | + | 0x20002a08 | gattServiceCBs | OBJECT | 0xc | + | 0x20002a14 | rsp | OBJECT | 0x18 | + | 0x20002a2c | l2capFixedChannels | OBJECT | 0x30 | + | 0x20002a5c | l2capChannels | OBJECT | 0x10 | + | 0x20002a6c | linkCBs | OBJECT | 0x18 | + | 0x20002a84 | gBleIPPara | OBJECT | 0x18 | + | 0x20002a9c | gDtm_t | OBJECT | 0xc | + | 0x20002aa8 | gapBond_Peri_OOBData | OBJECT | 0x10 | + | 0x20002ab8 | gapAttrTbl | OBJECT | 0x90 | + | 0x20002b48 | gapRole_OldSRK | OBJECT | 0x10 | + | 0x20002b58 | gapRole_OldIRK | OBJECT | 0x10 | + | 0x20002b68 | gapRole_SRK | OBJECT | 0x10 | + | 0x20002b78 | gapRole_IRK | OBJECT | 0x10 | + | 0x20002b88 | gBleLlPara | OBJECT | 0x58 | + +.stack + diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem_bak b/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem_bak new file mode 100644 index 0000000..7a18a1a --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13.mem_bak @@ -0,0 +1,1088 @@ +.init + +.highcode_initlalign + +.highcodelalign + +.highcode + | 0x20000090 | SysTick_Handler | FUNC | 0x60 | + | 0x200000f0 | UART_IRQHandler | FUNC | 0xb4 | + | 0x200001a4 | SetSysClock | FUNC | 0x240 | + | 0x200003e4 | SYS_ResetExecute | FUNC | 0x5e | + | 0x20000442 | HardFault_Handler | FUNC | 0x84 | + | 0x200004c6 | SYS_GetClockValue | FUNC | 0x18 | + | 0x200004de | SYS_SetPendingIRQ | FUNC | 0xe | + | 0x200004ec | RTC_IRQHandler | FUNC | 0x16 | + | 0x20000502 | Main_Circulation | FUNC | 0x28 | + | 0x2000052a | FLASH_ROM_BEG_FF | FUNC | 0x34 | + | 0x2000055e | FLASH_ROM_BEG | FUNC | 0x14 | + | 0x20000572 | FLASH_ROM_END | FUNC | 0xe | + | 0x20000580 | FLASH_ROM_IN | FUNC | 0xe | + | 0x2000058e | FLASH_ROM_OUT | FUNC | 0xe | + | 0x2000059c | FLASH_ROM_ADDR | FUNC | 0x48 | + | 0x200005e4 | FLASH_ROM_WAIT | FUNC | 0x38 | + | 0x2000061c | FLASH_START | FUNC | 0x36 | + | 0x20000652 | FLASH_CMD_ROM_WRITE | FUNC | 0x60 | + | 0x200006b2 | FLASH_CMD_ROM_ERASE | FUNC | 0x72 | + | 0x20000724 | FLASH_CMD_ROM_VERIFY | FUNC | 0x50 | + | 0x20000774 | FLASH_CMD_ROM_PWR | FUNC | 0x12 | + | 0x20000786 | FLASH_CMD_GET_ROM_INFO | FUNC | 0x60 | + | 0x200007e6 | FLASH_CMD_GET_UNIQUE_ID | FUNC | 0x3e | + | 0x20000824 | FLASH_CMD_ROM_SW_RESET | FUNC | 0x1a | + | 0x2000083e | tmos_rand | FUNC | 0x46 | + | 0x20000884 | tmos_memcpy | FUNC | 0x3e | + | 0x200008c2 | tmos_memset | FUNC | 0x40 | + | 0x20000902 | tmos_memcmp | FUNC | 0x4c | + | 0x2000094e | TMOS_SystemProcess | FUNC | 0x1c4 | + | 0x20000b12 | clockGetHSEValue | FUNC | 0x30 | + | 0x20000b42 | BB_IRQLibHandler | FUNC | 0x88 | + | 0x20000bca | BB_IRQLibFunction | FUNC | 0x6 | + | 0x20000bd0 | ll_rx_wait_finish | FUNC | 0x1e | + | 0x20000bee | ll_rx_start | FUNC | 0x72 | + | 0x20000c60 | ble_ll_chkcrc | FUNC | 0x64 | + | 0x20000cc4 | ll_tx_wait_finish | FUNC | 0xf6 | + | 0x20000dba | LLE_IRQLibHandler | FUNC | 0x128 | + | 0x20000ee2 | LLE_IRQFIOFHandler | FUNC | 0x6 | + | 0x20000ee8 | tmos_memory_free | FUNC | 0xc0 | + | 0x20000fa8 | process_recv_data | FUNC | 0x3e | + | 0x20000fe6 | ll_wait_connect_event | FUNC | 0xe | + | 0x20000ff4 | LL_WhitelistLookup | FUNC | 0x46 | + +.text + | 0x000020fa | memcpy | FUNC | 0x16 | + | 0x00002110 | memset | FUNC | 0x10 | + | 0x00002120 | memmove | FUNC | 0x26 | + | 0x00002146 | WDT_Init | FUNC | 0x1c | + | 0x00002162 | WDT_Feed | FUNC | 0x1a | + | 0x0000217c | _write | FUNC | 0x26 | + | 0x000021a2 | Dbg_Println | FUNC | 0x7a | + | 0x0000221c | EEPROM_CheckSum | FUNC | 0x26 | + | 0x00002242 | EEPROM_Read_PortInfo | FUNC | 0x86 | + | 0x000022c8 | EEPROM_Default_PortInfo | FUNC | 0x5e | + | 0x00002326 | EEPROM_Write_PortInfo | FUNC | 0xa0 | + | 0x000023c6 | EEPROM_Read_PortGroupData | FUNC | 0xcc | + | 0x00002492 | EEPROM_Default_PortGroupData | FUNC | 0x42 | + | 0x000024d4 | EEPROM_Write_PortGroupData | FUNC | 0x120 | + | 0x000025f4 | EEPROM_Init | FUNC | 0x44 | + | 0x00002638 | Sensor_Init | FUNC | 0xc8 | + | 0x00002700 | Get_DETCH_State | FUNC | 0x58 | + | 0x00002758 | FZL_CtrlOut | FUNC | 0x9c | + | 0x000027f4 | DetWin_WriteData | FUNC | 0x4a | + | 0x0000283e | Blv_CardlessPower_Tack | FUNC | 0xc6a | + | 0x000034a8 | Dev_VirtualCard_InType_Get | FUNC | 0x66 | + | 0x0000350e | Action_Task | FUNC | 0x90 | + | 0x0000359e | NetCRC16_Data | FUNC | 0x4a | + | 0x000035e8 | NoCard_Set_PortInfo_Processing | FUNC | 0x9e | + | 0x00003686 | BLV_DETInfo_Recv_Processing | FUNC | 0x102 | + | 0x00003788 | Set_Uart_recvTimeout | FUNC | 0x36 | + | 0x000037be | UARTx_Init | FUNC | 0xc8 | + | 0x00003886 | UART_RECEIVE | FUNC | 0x114 | + | 0x0000399a | HSECFG_Capacitance | FUNC | 0x50 | + | 0x000039ea | RTC_InitClock | FUNC | 0xea | + | 0x00003ad4 | RTC_InitTime | FUNC | 0x1f8 | + | 0x00003ccc | FLASH_ROM_READ | FUNC | 0x1c | + | 0x00003ce8 | GPIOA_ModeCfg | FUNC | 0x82 | + | 0x00003d6a | GetSysClock | FUNC | 0x5a | + | 0x00003dc4 | SYS_GetSysTickCnt | FUNC | 0x8 | + | 0x00003dcc | WWDG_ResetCfg | FUNC | 0x58 | + | 0x00003e24 | WWDG_ClearFlag | FUNC | 0x4a | + | 0x00003e6e | _sbrk | FUNC | 0x2c | + | 0x00003e9a | UART_BaudRateCfg | FUNC | 0x30 | + | 0x00003eca | UART_ByteTrigCfg | FUNC | 0x1a | + | 0x00003ee4 | UART_INTCfg | FUNC | 0x28 | + | 0x00003f0c | UART_RecvString | FUNC | 0x20 | + | 0x00003f2c | UART_Remap | FUNC | 0x28 | + | 0x00003f54 | simpleProfile_ReadAttrCB | FUNC | 0x6e | + | 0x00003fc2 | simpleProfile_WriteAttrCB | FUNC | 0xaa | + | 0x0000406c | simpleProfile_HandleConnStatusCB | FUNC | 0x3e | + | 0x000040aa | SimpleProfile_AddService | FUNC | 0x4c | + | 0x000040f6 | SimpleProfile_RegisterAppCBs | FUNC | 0xe | + | 0x00004104 | SimpleProfile_SetParameter | FUNC | 0x8a | + | 0x0000418e | simpleProfile_Notify | FUNC | 0x40 | + | 0x000041ce | Lib_Read_Flash | FUNC | 0x16 | + | 0x000041e4 | Lib_Write_Flash | FUNC | 0x34 | + | 0x00004218 | HAL_ProcessEvent | FUNC | 0x9e | + | 0x000042b6 | CH57x_BLEInit | FUNC | 0x15a | + | 0x00004410 | HAL_Init | FUNC | 0x2c | + | 0x0000443c | BLE_ClockConfig | FUNC | 0x26 | + | 0x00004462 | HAL_TimeInit | FUNC | 0x102 | + | 0x00004564 | GET_WakeUpLSIMaxTime | FUNC | 0xca | + | 0x0000462e | main | FUNC | 0x62 | + | 0x00004690 | peripheralRssiCB | FUNC | 0x2 | + | 0x00004692 | simpleProfileChangeCB | FUNC | 0x76 | + | 0x00004708 | peripheralParamUpdateCB | FUNC | 0x2c | + | 0x00004734 | Peripheral_LinkTerminated | FUNC | 0x56 | + | 0x0000478a | peripheralStateNotificationCB | FUNC | 0x164 | + | 0x000048ee | Peripheral_Init | FUNC | 0x17c | + | 0x00004a6a | performPeriodicTask_2 | FUNC | 0xaa | + | 0x00004b14 | Jump_OTA | FUNC | 0x44 | + | 0x00004b58 | Peripheral_ProcessEvent | FUNC | 0x166 | + | 0x00004cbe | FLASH_EEPROM_CMD | FUNC | 0x136 | + | 0x00004df4 | tmos_msg_enqueue | FUNC | 0x1e | + | 0x00004e12 | tmos_msg_deallocate | FUNC | 0x52 | + | 0x00004e64 | tmos_msg_allocate | FUNC | 0x62 | + | 0x00004ec6 | tmos_msg_receive | FUNC | 0x98 | + | 0x00004f5e | tmos_msg_send | FUNC | 0x90 | + | 0x00004fee | tmos_msg_init | FUNC | 0x6 | + | 0x00004ff4 | TMOS_CB_ProcessEvent | FUNC | 0x6a | + | 0x0000505e | tmos_memdup | FUNC | 0x56 | + | 0x000050b4 | tmos_get_periodic_task_time | FUNC | 0x24 | + | 0x000050d8 | tmos_clear_event | FUNC | 0x40 | + | 0x00005118 | tmos_update_callback_timer | FUNC | 0xce | + | 0x000051e6 | tmos_start_task | FUNC | 0x140 | + | 0x00005326 | tmos_start_callback_task | FUNC | 0xb6 | + | 0x000053dc | tmos_stop_task | FUNC | 0x92 | + | 0x0000546e | tmos_stop_callback_task | FUNC | 0x7a | + | 0x000054e8 | tmos_idle | FUNC | 0xea | + | 0x000055d2 | TMOS_TimerRegister | FUNC | 0x1a | + | 0x000055ec | TMOS_ClockRegister | FUNC | 0x8 | + | 0x000055f4 | TMOS_Init | FUNC | 0xc4 | + | 0x000056b8 | TMOS_ProcessEventRegister | FUNC | 0x2a | + | 0x000056e2 | BLE_LibInit | FUNC | 0xd4 | + | 0x000057b6 | clockGetTickValve | FUNC | 0x80 | + | 0x00005836 | ll_get_sca_divisor | FUNC | 0x40 | + | 0x00005876 | ll_get_sca_own | FUNC | 0x46 | + | 0x000058bc | ble_ll_common_rand8 | FUNC | 0x2c | + | 0x000058e8 | ble_ll_common_rand16 | FUNC | 0x2c | + | 0x00005914 | ble_ll_common_rand32 | FUNC | 0x26 | + | 0x0000593a | TMOS_TimerSet | FUNC | 0x32 | + | 0x0000596c | TMOS_TimerInit | FUNC | 0xcc | + | 0x00005a38 | tmos_snv_init | FUNC | 0xa2 | + | 0x00005ada | tmos_snv_read | FUNC | 0x23c | + | 0x00005d16 | tmos_snv_notify | FUNC | 0x54 | + | 0x00005d6a | tmos_snv_write | FUNC | 0x23e | + | 0x00005fa8 | tmos_snv_compact | FUNC | 0x4 | + | 0x00005fac | disconnectNext | FUNC | 0x20 | + | 0x00005fcc | GAP_ParamInit | FUNC | 0x52 | + | 0x0000601e | sendTerminateEvent | FUNC | 0x5e | + | 0x0000607c | gapRegisterPeripheral | FUNC | 0x6 | + | 0x00006082 | gapRegisterPeripheralConn | FUNC | 0x6 | + | 0x00006088 | smGenerateRandBuf | FUNC | 0x58 | + | 0x000060e0 | gapL2capConnParamUpdateReq | FUNC | 0x30 | + | 0x00006110 | gapFindADType | FUNC | 0x64 | + | 0x00006174 | GAP_SecParamsInit | FUNC | 0x86 | + | 0x000061fa | GAP_ParamsInit | FUNC | 0x4e | + | 0x00006248 | gapAddAddrAdj | FUNC | 0x2a | + | 0x00006272 | gapDetermineAddrType | FUNC | 0x26 | + | 0x00006298 | gapFreeAuthLink | FUNC | 0x4a | + | 0x000062e2 | gapGetDevAddress | FUNC | 0x24 | + | 0x00006306 | gapGetDevAddressMode | FUNC | 0xa | + | 0x00006310 | gapGetIRK | FUNC | 0xa | + | 0x0000631a | gapGetSRK | FUNC | 0xa | + | 0x00006324 | gapGetSignCounter | FUNC | 0xc | + | 0x00006330 | gapIncSignCounter | FUNC | 0x22 | + | 0x00006352 | gapProcessConnEvt | FUNC | 0x34 | + | 0x00006386 | gapProcessDisconnectCompleteEvt | FUNC | 0x9c | + | 0x00006422 | gapProcessRandomAddrComplete | FUNC | 0x6a | + | 0x0000648c | sendAuthEvent | FUNC | 0x122 | + | 0x000065ae | gapSendBondCompleteEvent | FUNC | 0x70 | + | 0x0000661e | gapSendPairingReqEvent | FUNC | 0xaa | + | 0x000066c8 | gapSendDeviceInitDoneEvent | FUNC | 0x70 | + | 0x00006738 | gapSendLinkUpdateEvent | FUNC | 0x9c | + | 0x000067d4 | gapSendPhyUpdateEvent | FUNC | 0x48 | + | 0x0000681c | gapSendEstLinkEvent | FUNC | 0xc0 | + | 0x000068dc | GAP_Authenticate | FUNC | 0xa8 | + | 0x00006984 | GAP_Bond | FUNC | 0x58 | + | 0x000069dc | GAP_GetParamValue | FUNC | 0x1c | + | 0x000069f8 | GAP_PasscodeUpdate | FUNC | 0x50 | + | 0x00006a48 | GAP_RegisterForMsgs | FUNC | 0x6 | + | 0x00006a4e | GAP_ResolvePrivateAddr | FUNC | 0x4 | + | 0x00006a52 | gapPairingCompleteCB | FUNC | 0x1c6 | + | 0x00006c18 | gapPasskeyNeededCB | FUNC | 0x86 | + | 0x00006c9e | gapFreeEstLink | FUNC | 0x1e | + | 0x00006cbc | gapUpdateConnSignCounter | FUNC | 0x72 | + | 0x00006d2e | GAP_L2capConnParamUpdateReq | FUNC | 0x16 | + | 0x00006d44 | GAP_SendSlaveSecurityRequest | FUNC | 0x46 | + | 0x00006d8a | GAP_Signable | FUNC | 0x4c | + | 0x00006dd6 | GAP_TerminateAuth | FUNC | 0x2a | + | 0x00006e00 | GAP_NumActiveConnections | FUNC | 0x4 | + | 0x00006e04 | GAP_TerminateLinkReq | FUNC | 0x5a | + | 0x00006e5e | GAP_SetParamValue | FUNC | 0x28 | + | 0x00006e86 | GAP_DeviceInit | FUNC | 0x42 | + | 0x00006ec8 | GAP_Init | FUNC | 0x4c | + | 0x00006f14 | GAP_ProcessEvent | FUNC | 0x394 | + | 0x000072a8 | gapSetAdvParams | FUNC | 0xa0 | + | 0x00007348 | gapFreeAdvertState | FUNC | 0x1e | + | 0x00007366 | gapPeriProcessConnEvt | FUNC | 0xaa | + | 0x00007410 | gapWriteAdvDataStatus | FUNC | 0x84 | + | 0x00007494 | GAP_MakeDiscoverable | FUNC | 0x8c | + | 0x00007520 | GAP_EndDiscoverable | FUNC | 0x5c | + | 0x0000757c | gapProcessAdvertisingEvt | FUNC | 0xac | + | 0x00007628 | GAP_SetAdvertisingAdvData | FUNC | 0xbc | + | 0x000076e4 | GAP_SetAdvertisingRspData | FUNC | 0xbc | + | 0x000077a0 | GAP_GetAdvertisingAdvData | FUNC | 0x22 | + | 0x000077c2 | GAP_GetAdvertisingRspData | FUNC | 0x2e | + | 0x000077f0 | GAP_PeriConnRegister | FUNC | 0x2a | + | 0x0000781a | GAP_PeripheralParamInit | FUNC | 0x48 | + | 0x00007862 | gapSendMakeDiscEvent | FUNC | 0x48 | + | 0x000078aa | gapPeriProcessHCICmdCompleteEvt | FUNC | 0x144 | + | 0x000079ee | GAP_PeriDevMgrInit | FUNC | 0x2e | + | 0x00007a1c | gattGetPayload | FUNC | 0x4e | + | 0x00007a6a | gattNotifyEvent | FUNC | 0x82 | + | 0x00007aec | gattSendFlowCtrlEvt | FUNC | 0x2c | + | 0x00007b18 | gattStartTimer | FUNC | 0xc | + | 0x00007b24 | gattStopTimer | FUNC | 0x26 | + | 0x00007b4a | GATT_AppCompletedMsg | FUNC | 0x28 | + | 0x00007b72 | GATT_ExchangeMTU | FUNC | 0x48 | + | 0x00007bba | GATT_NotifyEvent | FUNC | 0x40 | + | 0x00007bfa | gattRegisterClient | FUNC | 0x6 | + | 0x00007c00 | gattRegisterServer | FUNC | 0x6 | + | 0x00007c06 | GATT_UpdateMTU | FUNC | 0x40 | + | 0x00007c46 | GATT_bm_alloc | FUNC | 0xf0 | + | 0x00007d36 | GATT_ServiceChangedInd | FUNC | 0x86 | + | 0x00007dbc | GATT_bm_free | FUNC | 0x1c | + | 0x00007dd8 | GATT_Init | FUNC | 0x26 | + | 0x00007dfe | GATT_ProcessEvent | FUNC | 0x152 | + | 0x00007f50 | gattFindClientInfo | FUNC | 0x2a | + | 0x00007f7a | gattClientNotifyTxCB | FUNC | 0x26 | + | 0x00007fa0 | gattGetClientStatus | FUNC | 0x36 | + | 0x00007fd6 | gattResetClientInfo | FUNC | 0x80 | + | 0x00008056 | gattClientHandleConnStatusCB | FUNC | 0x8e | + | 0x000080e4 | gattClientHandleTimerCB | FUNC | 0x3c | + | 0x00008120 | gattClientProcessMsgCB | FUNC | 0xfe | + | 0x0000821e | gattStoreClientInfo | FUNC | 0x72 | + | 0x00008290 | GATT_InitClient | FUNC | 0xc2 | + | 0x00008352 | gattProcessExchangeMTUReq | FUNC | 0x4 | + | 0x00008356 | gattServApp_FindCharCfgItem | FUNC | 0x22 | + | 0x00008378 | gattServerHandleTimerCB | FUNC | 0x30 | + | 0x000083a8 | GATTServApp_InitCharCfg.part.0 | FUNC | 0x1a | + | 0x000083c2 | gattProcessExecuteWriteReq | FUNC | 0x4 | + | 0x000083c6 | GATTServApp_ParamInit | FUNC | 0xb4 | + | 0x0000847a | GATTServApp_ReadCharCfg | FUNC | 0x16 | + | 0x00008490 | GATTServApp_WriteCharCfg | FUNC | 0x3a | + | 0x000084ca | GATTServApp_ProcessCCCWriteReq | FUNC | 0x54 | + | 0x0000851e | gattServApp_WriteAttrCB | FUNC | 0x2c | + | 0x0000854a | GATTServApp_SendCCCUpdatedEvent | FUNC | 0x60 | + | 0x000085aa | GATTServApp_SendServiceChangedInd | FUNC | 0x34 | + | 0x000085de | gattServApp_ClearPrepareWriteQ | FUNC | 0x4c | + | 0x0000862a | gattServApp_FindPrepareWriteQ | FUNC | 0x2a | + | 0x00008654 | gattServApp_FindServiceCBs | FUNC | 0x18 | + | 0x0000866c | gattServApp_FindAuthorizeAttrCB | FUNC | 0x16 | + | 0x00008682 | gattServApp_IsWriteLong | FUNC | 0xf4 | + | 0x00008776 | gattFindService | FUNC | 0x1a | + | 0x00008790 | GATT_ServiceNumAttrs | FUNC | 0x16 | + | 0x000087a6 | GATT_ServiceEncKeySize | FUNC | 0x16 | + | 0x000087bc | gattResetServerInfo | FUNC | 0x1a | + | 0x000087d6 | gattFindServerInfo | FUNC | 0x20 | + | 0x000087f6 | gattServerHandleConnStatusCB | FUNC | 0x8e | + | 0x00008884 | gattServerProcessMsgCB | FUNC | 0x184 | + | 0x00008a08 | gattServerNotifyTxCB | FUNC | 0x26 | + | 0x00008a2e | GATT_FindHandle | FUNC | 0x46 | + | 0x00008a74 | GATTServApp_WriteAttr | FUNC | 0xa4 | + | 0x00008b18 | gattServApp_ProcessExecuteWriteReq | FUNC | 0x10c | + | 0x00008c24 | GATTServApp_UpdateCharCfg | FUNC | 0x1c | + | 0x00008c40 | gattServApp_ProcessPrepareWriteReq | FUNC | 0xee | + | 0x00008d2e | gattServApp_ProcessWriteReq | FUNC | 0x96 | + | 0x00008dc4 | GATT_Indication | FUNC | 0xa4 | + | 0x00008e68 | GATT_FindHandleUUID | FUNC | 0x88 | + | 0x00008ef0 | gattProcessReadByGrpTypeReq | FUNC | 0x4c | + | 0x00008f3c | gattProcessReadByTypeReq | FUNC | 0x2e | + | 0x00008f6a | gattProcessFindByTypeValueReq | FUNC | 0x2e | + | 0x00008f98 | gattProcessFindInfoReq | FUNC | 0x16e | + | 0x00009106 | GATT_Notification | FUNC | 0x74 | + | 0x0000917a | GATT_VerifyWritePermissions | FUNC | 0x76 | + | 0x000091f0 | gattProcessWriteReq | FUNC | 0x34 | + | 0x00009224 | GATT_VerifyPrepareWritePermissions | FUNC | 0x6c | + | 0x00009290 | gattProcessPrepareWriteReq | FUNC | 0x34 | + | 0x000092c4 | GATT_FindNextAttr | FUNC | 0xa8 | + | 0x0000936c | GATTServApp_ReadAttr | FUNC | 0x2b2 | + | 0x0000961e | gattServApp_ProcessReadMultiReq | FUNC | 0x152 | + | 0x00009770 | gattServApp_ProcessFindByTypeValueReq | FUNC | 0x184 | + | 0x000098f4 | GATT_VerifyReadPermissions | FUNC | 0x68 | + | 0x0000995c | gattProcessReadMultiReq | FUNC | 0x9a | + | 0x000099f6 | gattProcessReadReq | FUNC | 0x30 | + | 0x00009a26 | gattServApp_ProcessReadByGrpTypeReq | FUNC | 0x1ce | + | 0x00009bf4 | gattServApp_ProcessReadByTypeReq | FUNC | 0x172 | + | 0x00009d66 | GATT_RegisterService | FUNC | 0xe0 | + | 0x00009e46 | GATTServApp_RegisterService | FUNC | 0x6a | + | 0x00009eb0 | GATTServApp_AddService | FUNC | 0x2c | + | 0x00009edc | GATTServApp_RegisterForMsg | FUNC | 0x6 | + | 0x00009ee2 | GATTServApp_InitCharCfg | FUNC | 0x26 | + | 0x00009f08 | gattServApp_HandleConnStatusCB | FUNC | 0x6e | + | 0x00009f76 | GATT_InitServer | FUNC | 0xe8 | + | 0x0000a05e | GATTServApp_Init | FUNC | 0x32 | + | 0x0000a090 | GATTServApp_ProcessEvent | FUNC | 0x2e4 | + | 0x0000a374 | l2capHandleConnStatusCB | FUNC | 0x2 | + | 0x0000a376 | l2capFreeChannel | FUNC | 0x4c | + | 0x0000a3c2 | l2capHandleTimerCB | FUNC | 0x28 | + | 0x0000a3ea | l2capFreePendingPkt | FUNC | 0x52 | + | 0x0000a43c | l2capHandleRxError | FUNC | 0x2 | + | 0x0000a43e | l2capStartTimer | FUNC | 0x1a | + | 0x0000a458 | l2capStopTimer | FUNC | 0x1a | + | 0x0000a472 | L2CAP_GetMTU | FUNC | 0x6 | + | 0x0000a478 | L2CAP_HostNumCompletedPkts | FUNC | 0x2 | + | 0x0000a47a | L2CAP_RegisterApp | FUNC | 0x2a | + | 0x0000a4a4 | L2CAP_SetBufSize | FUNC | 0x18 | + | 0x0000a4bc | L2CAP_bm_alloc | FUNC | 0x26 | + | 0x0000a4e2 | L2CAP_Init | FUNC | 0x7c | + | 0x0000a55e | L2CAP_ProcessEvent | FUNC | 0xb6 | + | 0x0000a614 | l2capParseCmdReject | FUNC | 0x42 | + | 0x0000a656 | L2CAP_ParseParamUpdateReq | FUNC | 0x36 | + | 0x0000a68c | l2capParseSignalHdr | FUNC | 0x14 | + | 0x0000a6a0 | l2capParsePacket | FUNC | 0x60 | + | 0x0000a700 | l2capProcessReq | FUNC | 0x5a | + | 0x0000a75a | l2capProcessRsp | FUNC | 0x9e | + | 0x0000a7f8 | l2capProcessRxData | FUNC | 0xda | + | 0x0000a8d2 | l2capNotifyData | FUNC | 0x5e | + | 0x0000a930 | l2capNotifySignal | FUNC | 0x8a | + | 0x0000a9ba | l2capNotifyEvent | FUNC | 0x32 | + | 0x0000a9ec | l2capStoreFCPkt | FUNC | 0x2a | + | 0x0000aa16 | l2capEncapSendData | FUNC | 0x8e | + | 0x0000aaa4 | l2capSendFCPkt.part.0 | FUNC | 0x62 | + | 0x0000ab06 | L2CAP_SendData | FUNC | 0x80 | + | 0x0000ab86 | l2capSendCmd | FUNC | 0x8a | + | 0x0000ac10 | l2capSendReq | FUNC | 0x66 | + | 0x0000ac76 | l2capSendPkt | FUNC | 0x30 | + | 0x0000aca6 | l2capBuildParamUpdateReq | FUNC | 0x2c | + | 0x0000acd2 | l2capBuildCmdReject | FUNC | 0x40 | + | 0x0000ad12 | L2CAP_CmdReject | FUNC | 0x12 | + | 0x0000ad24 | L2CAP_ConnParamUpdateReq | FUNC | 0x16 | + | 0x0000ad3a | reportStatusChange | FUNC | 0x3e | + | 0x0000ad78 | linkDB_Init | FUNC | 0x72 | + | 0x0000adea | linkDB_Find | FUNC | 0x2a | + | 0x0000ae14 | linkDB_Authen | FUNC | 0x60 | + | 0x0000ae74 | linkDB_FindByAddr | FUNC | 0x7e | + | 0x0000aef2 | linkDB_FindFirst | FUNC | 0x36 | + | 0x0000af28 | linkDB_MTU | FUNC | 0x16 | + | 0x0000af3e | linkDB_NumActive | FUNC | 0x2a | + | 0x0000af68 | linkDB_NumConns | FUNC | 0x6 | + | 0x0000af6e | linkDB_Register | FUNC | 0x20 | + | 0x0000af8e | linkDB_Remove | FUNC | 0x48 | + | 0x0000afd6 | linkDB_Role | FUNC | 0x16 | + | 0x0000afec | linkDB_State | FUNC | 0x2e | + | 0x0000b01a | linkDB_UpdateMTU | FUNC | 0x28 | + | 0x0000b042 | linkDB_PerformFunc | FUNC | 0x58 | + | 0x0000b09a | linkDB_PeripheralLinkNum | FUNC | 0x38 | + | 0x0000b0d2 | linkDB_GetSMEvtID | FUNC | 0x50 | + | 0x0000b122 | linkDB_Add | FUNC | 0xaa | + | 0x0000b1cc | linkDB_GetHandleFromSMEvtID | FUNC | 0x2c | + | 0x0000b1f8 | linkDB_GetPairingParam | FUNC | 0x3e | + | 0x0000b236 | linkDB_NeedSendKey | FUNC | 0x3e | + | 0x0000b274 | smStartRspTimer | FUNC | 0x34 | + | 0x0000b2a8 | smFreePairingParams | FUNC | 0x6a | + | 0x0000b312 | smEndPairing | FUNC | 0x64 | + | 0x0000b376 | smLinkCheck | FUNC | 0x36 | + | 0x0000b3ac | smNextPairingState | FUNC | 0x3e | + | 0x0000b3ea | smProcessEncryptChange | FUNC | 0x8c | + | 0x0000b476 | smSendSMMsg | FUNC | 0x5a | + | 0x0000b4d0 | smSendFailAndEnd | FUNC | 0x36 | + | 0x0000b506 | smProcessPairingReq | FUNC | 0x2c | + | 0x0000b532 | smSetPairingReqRsp | FUNC | 0x2c | + | 0x0000b55e | sm_c1 | FUNC | 0x76 | + | 0x0000b5d4 | smDetermineKeySize | FUNC | 0x1e | + | 0x0000b5f2 | smpParsePairingReq | FUNC | 0xee | + | 0x0000b6e0 | smpParseIdentityAddrInfo | FUNC | 0x32 | + | 0x0000b712 | smpParseMasterID | FUNC | 0x38 | + | 0x0000b74a | smpParsePairingConfirm | FUNC | 0x2c | + | 0x0000b776 | smpParsePairingFailed | FUNC | 0x1a | + | 0x0000b790 | smProcessDataMsg | FUNC | 0xa4 | + | 0x0000b834 | smProcessTMOSMsg | FUNC | 0x12e | + | 0x0000b962 | SM_GenerateAuthenSig | FUNC | 0xd2 | + | 0x0000ba34 | SM_PasskeyUpdate | FUNC | 0xb2 | + | 0x0000bae6 | SM_ResolveRandomAddrs | FUNC | 0x5a | + | 0x0000bb40 | SM_StartPairing | FUNC | 0xa0 | + | 0x0000bbe0 | SM_VerifyAuthenSig | FUNC | 0x132 | + | 0x0000bd12 | SM_ProcessEvent | FUNC | 0xa2 | + | 0x0000bdb4 | SM_Init | FUNC | 0x22 | + | 0x0000bdd6 | smpBuildPairingReqRsp | FUNC | 0x8e | + | 0x0000be64 | smpBuildPairingRsp | FUNC | 0xa | + | 0x0000be6e | smpBuildPairingConfirm | FUNC | 0x30 | + | 0x0000be9e | smpBuildPairingRandom | FUNC | 0x30 | + | 0x0000bece | smpBuildEncInfo | FUNC | 0x30 | + | 0x0000befe | smpBuildMasterID | FUNC | 0x3c | + | 0x0000bf3a | smpBuildIdentityInfo | FUNC | 0x30 | + | 0x0000bf6a | smpBuildIdentityAddrInfo | FUNC | 0x36 | + | 0x0000bfa0 | smpBuildSigningInfo | FUNC | 0x30 | + | 0x0000bfd0 | smpBuildPairingReq | FUNC | 0xa | + | 0x0000bfda | smpBuildPairingFailed | FUNC | 0x16 | + | 0x0000bff0 | smpBuildSecurityReq | FUNC | 0x16 | + | 0x0000c006 | smGeneratePairingRsp | FUNC | 0x2e | + | 0x0000c034 | smGenerateConfirm | FUNC | 0x32 | + | 0x0000c066 | smGenerateRandMsg | FUNC | 0x32 | + | 0x0000c098 | smPairingSendEncInfo | FUNC | 0x10 | + | 0x0000c0a8 | smPairingSendIdentityAddrInfo | FUNC | 0x36 | + | 0x0000c0de | smPairingSendIdentityInfo | FUNC | 0x10 | + | 0x0000c0ee | smPairingSendMasterID | FUNC | 0x36 | + | 0x0000c124 | smPairingSendSingingInfo | FUNC | 0x10 | + | 0x0000c134 | smResponderSendNextKeyInfo | FUNC | 0x212 | + | 0x0000c346 | smResponderProcessLTKReq | FUNC | 0x130 | + | 0x0000c476 | smpResponderProcessIncoming | FUNC | 0x402 | + | 0x0000c878 | xor_128 | FUNC | 0x26 | + | 0x0000c89e | leftshift_onebit | FUNC | 0x24 | + | 0x0000c8c2 | padding | FUNC | 0x2c | + | 0x0000c8ee | generate_subkey | FUNC | 0xd8 | + | 0x0000c9c6 | sm_xor | FUNC | 0x20 | + | 0x0000c9e6 | sm_ah | FUNC | 0x80 | + | 0x0000ca66 | sm_c1new | FUNC | 0x122 | + | 0x0000cb88 | sm_s1 | FUNC | 0x82 | + | 0x0000cc0a | sm_CMAC | FUNC | 0x182 | + | 0x0000cd8c | HOST_LE_ConnectionCompleteEvent | FUNC | 0x5c | + | 0x0000cde8 | HOST_LE_ConnectionUpdateCompleteEvent | FUNC | 0x42 | + | 0x0000ce2a | HOST_LE_ReadRemoteUsedFeaturesCompleteEvent | FUNC | 0x62 | + | 0x0000ce8c | HOST_LE_LongTermKeyRequestEvent | FUNC | 0x5a | + | 0x0000cee6 | HOST_LE_RemoteConnectionParameterRequestEvent | FUNC | 0x42 | + | 0x0000cf28 | HOST_RemoteConnectionParameterRequestEvent | FUNC | 0x48 | + | 0x0000cf70 | HOST_LE_DataLengthChangeEvent | FUNC | 0x42 | + | 0x0000cfb2 | HOST_LE_PHYUpdateCompleteReportEvent | FUNC | 0x58 | + | 0x0000d00a | HOST_LE_ScanRequestReceivedEvent | FUNC | 0x66 | + | 0x0000d070 | HOST_DisconnectionCompleteEvent | FUNC | 0x46 | + | 0x0000d0b6 | HOST_EncryptionChangeEvent | FUNC | 0x4c | + | 0x0000d102 | HOST_ReadRemoteVersionInfoEvent | FUNC | 0x3e | + | 0x0000d140 | HOST_CommandCompleteEvent | FUNC | 0x5a | + | 0x0000d19a | HOST_CommandStatusEvent | FUNC | 0x40 | + | 0x0000d1da | HOST_EncryptionKeyRefreshCompleteEvent | FUNC | 0x42 | + | 0x0000d21c | HOST_NumberOfCompletedPacketsEvent | FUNC | 0x40 | + | 0x0000d25c | HOST_RecvDataPackets | FUNC | 0x206 | + | 0x0000d462 | AES_DevAESEnc | FUNC | 0x178 | + | 0x0000d5da | LL_Encrypt | FUNC | 0x32 | + | 0x0000d60c | AES_DevPktEnc | FUNC | 0x62 | + | 0x0000d66e | AES_DevPktDec | FUNC | 0x62 | + | 0x0000d6d0 | GetTxPower | FUNC | 0x66 | + | 0x0000d736 | SetTxPower | FUNC | 0x5a | + | 0x0000d790 | ble_ll_set_timeout | FUNC | 0x22 | + | 0x0000d7b2 | BLE_RegInit | FUNC | 0x66 | + | 0x0000d818 | BLE_IPCoreInit | FUNC | 0x78 | + | 0x0000d890 | RFEND_DevInit | FUNC | 0x7a | + | 0x0000d90a | RFEND_RXFilter | FUNC | 0x8c | + | 0x0000d996 | RFEND_RXAdc | FUNC | 0x36 | + | 0x0000d9cc | RFEND_TXCtune | FUNC | 0xc50 | + | 0x0000e61c | RFEND_TXFtune | FUNC | 0xe | + | 0x0000e62a | API_DisconnectCmd | FUNC | 0x16 | + | 0x0000e640 | API_MD_DisconnectCmd | FUNC | 0x2 | + | 0x0000e642 | API_ReadBDADDRCmd | FUNC | 0x20 | + | 0x0000e662 | API_ReadRssiCmd | FUNC | 0x2e | + | 0x0000e690 | API_LE_ReadBufSizeCmd | FUNC | 0x20 | + | 0x0000e6b0 | API_LE_ClearWhiteListCmd | FUNC | 0x1e | + | 0x0000e6ce | API_LE_AddWhiteListCmd | FUNC | 0x1e | + | 0x0000e6ec | API_LE_RandCmd | FUNC | 0x20 | + | 0x0000e70c | API_LE_LtkReqReplyCmd | FUNC | 0x28 | + | 0x0000e734 | API_LE_LtkReqNegReplyCmd | FUNC | 0x28 | + | 0x0000e75c | API_LE_RemoteConnParamReqReplyCmd | FUNC | 0x2a | + | 0x0000e786 | API_LE_RemoteConnParamReqNegReplyCmd | FUNC | 0x2a | + | 0x0000e7b0 | API_LE_SetDataLengthCmd | FUNC | 0x2a | + | 0x0000e7da | API_LE_SetDefaultPHYCmd | FUNC | 0x20 | + | 0x0000e7fa | API_LE_SetPHYCmd | FUNC | 0x1e | + | 0x0000e818 | API_LE_SetExtendedAdvertisingParametersCmd | FUNC | 0x52 | + | 0x0000e86a | API_LE_SetExtendedAdvertisingDataCmd | FUNC | 0x20 | + | 0x0000e88a | API_LE_SetExtendedScanResponseDataCmd | FUNC | 0x20 | + | 0x0000e8aa | API_LE_SetExtendedAdvertisingEnableCmd | FUNC | 0x20 | + | 0x0000e8ca | LL_Disconnect | FUNC | 0x2e | + | 0x0000e8f8 | LL_MD_Disconnect | FUNC | 0x28 | + | 0x0000e920 | LL_ReadBDAddr | FUNC | 0x22 | + | 0x0000e942 | LL_ReadRssi | FUNC | 0x26 | + | 0x0000e968 | LL_LE_ReadBufSize | FUNC | 0x1a | + | 0x0000e982 | LL_RemoteConnParamReqReply | FUNC | 0x98 | + | 0x0000ea1a | LL_RemoteConnParamReqNegReply | FUNC | 0x3a | + | 0x0000ea54 | LL_SetDataLength | FUNC | 0x7e | + | 0x0000ead2 | LL_AddWhiteListDevice | FUNC | 0x54 | + | 0x0000eb26 | LL_ClearWhiteList | FUNC | 0x26 | + | 0x0000eb4c | LL_Rand | FUNC | 0x34 | + | 0x0000eb80 | LL_LtkReqReply | FUNC | 0xd8 | + | 0x0000ec58 | LL_LtkReqNegReply | FUNC | 0x3e | + | 0x0000ec96 | LL_SetDefaultPHY | FUNC | 0x24 | + | 0x0000ecba | LL_SetPHY | FUNC | 0x58 | + | 0x0000ed12 | LL_SetExtendedAdvertisingParameters | FUNC | 0x1d2 | + | 0x0000eee4 | LL_SetExtendedAdvertisingData | FUNC | 0x96 | + | 0x0000ef7a | LL_SetExtendedScanResponseData | FUNC | 0x96 | + | 0x0000f010 | LL_SetExtendedAdvertisingEnable | FUNC | 0x8e | + | 0x0000f09e | LL_SendDataPkt | FUNC | 0xcc | + | 0x0000f16a | gapBondMgrInvertCharCfgItem | FUNC | 0x22 | + | 0x0000f18c | mainRecordNvID_Erase | FUNC | 0x3c | + | 0x0000f1c8 | gapBondMgrBondTotal | FUNC | 0x5a | + | 0x0000f222 | gapBondMgrFindEmpty | FUNC | 0x4e | + | 0x0000f270 | gapBondFreeAuthEvt | FUNC | 0x2a | + | 0x0000f29a | gapBondMgrEraseBonding | FUNC | 0x126 | + | 0x0000f3c0 | gapBondMgr_SyncWhiteList | FUNC | 0x58 | + | 0x0000f418 | gapBondSetupPrivFlag | FUNC | 0x26 | + | 0x0000f43e | gapBondMgrReadBonds | FUNC | 0x96 | + | 0x0000f4d4 | gapBondMgrSendServiceChange | FUNC | 0xa | + | 0x0000f4de | gapBondMgrFindAddr | FUNC | 0x58 | + | 0x0000f536 | gapBondMgrAddBond | FUNC | 0x250 | + | 0x0000f786 | gapBondPairStateCB | FUNC | 0x32 | + | 0x0000f7b8 | gapBondMgrChangeState.constprop.0 | FUNC | 0x6a | + | 0x0000f822 | gapBondMgrEraseAllBondings.isra.0 | FUNC | 0x30 | + | 0x0000f852 | gapBondMgrGetPublicAddr.isra.0 | FUNC | 0x42 | + | 0x0000f894 | gapBondMgrUpdateCharCfg | FUNC | 0xec | + | 0x0000f980 | GAPBondMgr_ParamInit | FUNC | 0x128 | + | 0x0000faa8 | GAPBondMgr_Erase | FUNC | 0x10c | + | 0x0000fbb4 | GAPBondMgr_LinkTerm | FUNC | 0xa8 | + | 0x0000fc5c | GAPBondMgr_ResolveAddr | FUNC | 0x116 | + | 0x0000fd72 | GAPBondMgr_SetParameter | FUNC | 0x286 | + | 0x0000fff8 | GAPBondMgr_ServiceChangeInd | FUNC | 0x8a | + | 0x00010082 | GAPBondMgr_UpdateCharCfg | FUNC | 0x7c | + | 0x000100fe | GAPBondMgr_PeripheralRegister | FUNC | 0x22 | + | 0x00010120 | GAPBondMgr_PeriSecurityReq | FUNC | 0x14 | + | 0x00010134 | GAPBondMgr_LinkEst | FUNC | 0x150 | + | 0x00010284 | GAPBondMgr_ProcessGAPMsg | FUNC | 0x394 | + | 0x00010618 | GAPBondMgr_Init | FUNC | 0x1a | + | 0x00010632 | GAPBondMgr_ProcessEvent | FUNC | 0x17c | + | 0x000107ae | ggs_SetAttrWPermit | FUNC | 0x6a | + | 0x00010818 | ggs_ReadAttrCB | FUNC | 0x108 | + | 0x00010920 | ggs_WriteAttrCB | FUNC | 0x146 | + | 0x00010a66 | GGS_ParamInit | FUNC | 0x138 | + | 0x00010b9e | GGS_SetParameter | FUNC | 0x108 | + | 0x00010ca6 | GGS_AddService | FUNC | 0x2c | + | 0x00010cd2 | gapRole_PeripheralProcessGAPMsg | FUNC | 0x1b8 | + | 0x00010e8a | gapRole_PeripheralProcessTMOSMsg | FUNC | 0x50 | + | 0x00010eda | GAPRole_PeripheralProcessEvent | FUNC | 0xc6 | + | 0x00010fa0 | GAPRole_PeripheralConnParamUpdateReq | FUNC | 0x4a | + | 0x00010fea | GAPRole_PeripheralStartDevice | FUNC | 0x52 | + | 0x0001103c | GAPRole_PeripheralEnable | FUNC | 0xf6 | + | 0x00011132 | GAPRole_ParamInit | FUNC | 0x42 | + | 0x00011174 | GAPRole_GetParameter | FUNC | 0xbe | + | 0x00011232 | GAPRole_SetParameter | FUNC | 0x1bc | + | 0x000113ee | GAPRole_BroadcasterSetCB | FUNC | 0x6 | + | 0x000113f4 | GAPRole_ReadRssiCmd | FUNC | 0x4 | + | 0x000113f8 | GAPRole_TerminateLink | FUNC | 0x22 | + | 0x0001141a | GAPRole_UpdatePHY | FUNC | 0x4 | + | 0x0001141e | GAPRole_PeripheralInit | FUNC | 0x70 | + | 0x0001148e | tmos_memory_getlen | FUNC | 0x1c | + | 0x000114aa | tmos_memory_init | FUNC | 0x62 | + | 0x0001150c | tmos_bm_adjust_header | FUNC | 0x30 | + | 0x0001153c | ATT_BuildErrorRsp | FUNC | 0x16 | + | 0x00011552 | ATT_ParamInit | FUNC | 0xa | + | 0x0001155c | ATT_ConvertUUIDto128 | FUNC | 0x3e | + | 0x0001159a | ATT_CompareUUID | FUNC | 0x78 | + | 0x00011612 | ATT_RegisterClient | FUNC | 0x6 | + | 0x00011618 | ATT_RegisterServer | FUNC | 0x6 | + | 0x0001161e | ATT_ParsePacket | FUNC | 0x88 | + | 0x000116a6 | ATT_UpdateMTU | FUNC | 0x3c | + | 0x000116e2 | ATT_GetMTU | FUNC | 0x1e | + | 0x00011700 | ATT_ParseErrorRsp | FUNC | 0x20 | + | 0x00011720 | attSendMsg | FUNC | 0xb4 | + | 0x000117d4 | attSendRspMsg | FUNC | 0x46 | + | 0x0001181a | ATT_ErrorRsp | FUNC | 0x12 | + | 0x0001182c | ATT_BuildExchangeMTUReq | FUNC | 0xe | + | 0x0001183a | ATT_ParseExchangeMTURsp | FUNC | 0x18 | + | 0x00011852 | ATT_ExchangeMTUReq | FUNC | 0x40 | + | 0x00011892 | ATT_BuildExchangeMTURsp | FUNC | 0xe | + | 0x000118a0 | ATT_BuildFindInfoRsp | FUNC | 0x1e | + | 0x000118be | ATT_BuildFindByTypeValueRsp | FUNC | 0xa | + | 0x000118c8 | ATT_BuildReadByTypeRsp | FUNC | 0x14 | + | 0x000118dc | ATT_BuildReadRsp | FUNC | 0x4 | + | 0x000118e0 | ATT_BuildReadBlobRsp | FUNC | 0x4 | + | 0x000118e4 | ATT_BuildReadMultiRsp | FUNC | 0x4 | + | 0x000118e8 | ATT_BuildReadByGrpTypeRsp | FUNC | 0x14 | + | 0x000118fc | ATT_BuildPrepareWriteRsp | FUNC | 0x1e | + | 0x0001191a | ATT_BuildHandleValueInd | FUNC | 0x14 | + | 0x0001192e | ATT_ParseExchangeMTUReq | FUNC | 0x16 | + | 0x00011944 | ATT_ExchangeMTURsp | FUNC | 0x1e | + | 0x00011962 | ATT_ParseFindInfoReq | FUNC | 0x1e | + | 0x00011980 | ATT_FindInfoRsp | FUNC | 0x4e | + | 0x000119ce | ATT_ParseFindByTypeValueReq | FUNC | 0x66 | + | 0x00011a34 | ATT_FindByTypeValueRsp | FUNC | 0x40 | + | 0x00011a74 | ATT_ParseReadByTypeReq | FUNC | 0x46 | + | 0x00011aba | ATT_ReadByTypeRsp | FUNC | 0x40 | + | 0x00011afa | ATT_ParseReadReq | FUNC | 0x16 | + | 0x00011b10 | ATT_ReadRsp | FUNC | 0x30 | + | 0x00011b40 | ATT_ParseReadBlobReq | FUNC | 0x4 | + | 0x00011b44 | ATT_ReadBlobRsp | FUNC | 0x30 | + | 0x00011b74 | ATT_ParseReadMultiReq | FUNC | 0x18 | + | 0x00011b8c | ATT_ReadMultiRsp | FUNC | 0x38 | + | 0x00011bc4 | ATT_ReadByGrpTypeRsp | FUNC | 0x40 | + | 0x00011c04 | ATT_ParseWriteReq | FUNC | 0x2e | + | 0x00011c32 | ATT_WriteRsp | FUNC | 0xc | + | 0x00011c3e | ATT_ParsePrepareWriteReq | FUNC | 0x30 | + | 0x00011c6e | ATT_PrepareWriteRsp | FUNC | 0x30 | + | 0x00011c9e | ATT_ParseExecuteWriteReq | FUNC | 0x10 | + | 0x00011cae | ATT_ExecuteWriteRsp | FUNC | 0xc | + | 0x00011cba | ATT_HandleValueNoti | FUNC | 0x30 | + | 0x00011cea | ATT_HandleValueInd | FUNC | 0x30 | + | 0x00011d1a | LL_ProcessEvent | FUNC | 0x42 | + | 0x00011d5c | LL_Init | FUNC | 0xc0 | + | 0x00011e1c | LL_AddrInit | FUNC | 0x9c | + | 0x00011eb8 | llAdvertiseCreateCore | FUNC | 0x60 | + | 0x00011f18 | ll_advertise_generated_pdu | FUNC | 0xaa | + | 0x00011fc2 | ll_advertise_to_connection_state | FUNC | 0x14a | + | 0x0001210c | ll_advertise_filter | FUNC | 0x68 | + | 0x00012174 | ll_advertise_event_closed | FUNC | 0x60 | + | 0x000121d4 | ll_adv_legacy_rsp_tx_process | FUNC | 0x92 | + | 0x00012266 | LL_AdvGetCore | FUNC | 0x18 | + | 0x0001227e | llAdvertiseSet | FUNC | 0xc6 | + | 0x00012344 | LL_AdvertiseToStandby | FUNC | 0x48 | + | 0x0001238c | llAdvertiseTimeout | FUNC | 0x3e | + | 0x000123ca | LL_AdvertiseEventRegister | FUNC | 0x6 | + | 0x000123d0 | LL_AdvertiseEnalbe | FUNC | 0x5e | + | 0x0001242e | LL_ConnectEventRegister | FUNC | 0x6 | + | 0x00012434 | ll_connect_set_windowWidening | FUNC | 0x24 | + | 0x00012458 | ll_connect_set_procedure_timeout | FUNC | 0x38 | + | 0x00012490 | ll_connect_set_connect_timeout | FUNC | 0x38 | + | 0x000124c8 | ll_connect_init_dataLen | FUNC | 0x60 | + | 0x00012528 | ll_connect_update_effective_Len | FUNC | 0x32 | + | 0x0001255a | ll_connect_update_dataLen | FUNC | 0xa4 | + | 0x000125fe | ll_connect_phy_update_dataLen | FUNC | 0x7c | + | 0x0001267a | ll_connect_parse_datapdu_head | FUNC | 0x22 | + | 0x0001269c | ll_connect_flowcontrol_init | FUNC | 0x8 | + | 0x000126a4 | LL_ConnectFlowcontrolTx | FUNC | 0x20 | + | 0x000126c4 | LL_ConnectFlowcontrolRx | FUNC | 0x20 | + | 0x000126e4 | LL_ConnectTxPktnumIncrease | FUNC | 0x2a | + | 0x0001270e | LL_ConnectRxPktnumIncrease | FUNC | 0x2a | + | 0x00012738 | ll_connect_event_continue | FUNC | 0xa2 | + | 0x000127da | ll_set_connect_event | FUNC | 0x5a | + | 0x00012834 | LL_ConnectFreeTmosPrioritID | FUNC | 0xc2 | + | 0x000128f6 | LL_ConnectToStandby | FUNC | 0x64 | + | 0x0001295a | ll_connect_action_in_connintervaltimeout | FUNC | 0x21c | + | 0x00012b76 | ll_connect_procedure_timeout | FUNC | 0x28 | + | 0x00012b9e | ll_connect_supervision_timeout | FUNC | 0x30 | + | 0x00012bce | ll_process_after_connect_event | FUNC | 0x2c4 | + | 0x00012e92 | LL_ConnectShut | FUNC | 0xba | + | 0x00012f4c | LL_CoreGetCore | FUNC | 0x16 | + | 0x00012f62 | LL_CoreGetRxDataList | FUNC | 0x18 | + | 0x00012f7a | LL_CoreGetTxDataList | FUNC | 0x34 | + | 0x00012fae | LL_CoreDataListInit | FUNC | 0x78 | + | 0x00013026 | LL_CoreOpen | FUNC | 0x5a | + | 0x00013080 | LL_CoreDataListFree | FUNC | 0x2e | + | 0x000130ae | LL_CoreClose | FUNC | 0x30 | + | 0x000130de | LL_CoreInit | FUNC | 0x14 | + | 0x000130f2 | LL_HopGetChannels | FUNC | 0x4c | + | 0x0001313e | LL_HopInit | FUNC | 0x54 | + | 0x00013192 | llAdvertisingReportReport | FUNC | 0x4 | + | 0x00013196 | llRemoteConnectionParamRequestReport | FUNC | 0x2c | + | 0x000131c2 | llDirectedAdvertisingConnectionCompleteReport | FUNC | 0x50 | + | 0x00013212 | llConnectCompleteReport | FUNC | 0x6e | + | 0x00013280 | llPHYUpdateCompleteReport | FUNC | 0x3e | + | 0x000132be | llDataLengthChangeReport | FUNC | 0x38 | + | 0x000132f6 | llRemoteConnectParamRequestReport | FUNC | 0x46 | + | 0x0001333c | llLTKRequestedReport | FUNC | 0x24 | + | 0x00013360 | llReadRemoteFeatureCompleteReport | FUNC | 0x2e | + | 0x0001338e | llConnectUpdateCompleteReport | FUNC | 0x3c | + | 0x000133ca | llDirectAdvertisingReportReport | FUNC | 0x4 | + | 0x000133ce | llCancelConnectionCompleteReport | FUNC | 0x4 | + | 0x000133d2 | llReadLocalP256PublicKeyCompleteReport | FUNC | 0x4 | + | 0x000133d6 | llGenerateDHKEYCompleteReport | FUNC | 0x4 | + | 0x000133da | llEnhancedConnectCompleteReport | FUNC | 0x4 | + | 0x000133de | LL_ProcessTMOSReportMsg | FUNC | 0x13a | + | 0x00013518 | LL_ReportGenerateEvent | FUNC | 0x46 | + | 0x0001355e | llDataPackageReport | FUNC | 0x72 | + | 0x000135d0 | ll_slave_tx_process | FUNC | 0xe4 | + | 0x000136b4 | ll_slave_listern | FUNC | 0x744 | + | 0x00013df8 | llSlaveCreateCore | FUNC | 0xc4 | + | 0x00013ebc | llSlaveSetFirstTimer | FUNC | 0x116 | + | 0x00013fd2 | llSlaveStartEvent | FUNC | 0x114 | + | 0x000140e6 | LL_SlaveEnalbe | FUNC | 0x38 | + | 0x0001411e | LL_WhitelistAdd | FUNC | 0xa8 | + | 0x000141c6 | LL_WhitelistClearAll | FUNC | 0x48 | + | 0x0001420e | LL_WhitelistInit | FUNC | 0x12 | + | 0x00014220 | llEncRsp | FUNC | 0x4 | + | 0x00014224 | llRejectInd | FUNC | 0x6e | + | 0x00014292 | llRejectIndExt | FUNC | 0x6e | + | 0x00014300 | LL_RxLenUpdate | FUNC | 0x7c | + | 0x0001437c | llConnectionUpdateInd | FUNC | 0x9a | + | 0x00014416 | llTerminateInd | FUNC | 0x1c | + | 0x00014432 | llStartEncRsp | FUNC | 0x3a | + | 0x0001446c | llUnknowRsp | FUNC | 0x7a | + | 0x000144e6 | llPauseEncReq | FUNC | 0x1e | + | 0x00014504 | llPauseEncRsp | FUNC | 0x3a | + | 0x0001453e | llVersionInd | FUNC | 0x84 | + | 0x000145c2 | llPHYReq | FUNC | 0x5a | + | 0x0001461c | llPHYUpdateIND | FUNC | 0x6c | + | 0x00014688 | llConnectionParamReq | FUNC | 0x128 | + | 0x000147b0 | llFeatureReq | FUNC | 0x66 | + | 0x00014816 | llChannelMapReq | FUNC | 0x62 | + | 0x00014878 | llLengthRsp | FUNC | 0x56 | + | 0x000148ce | llLengthReq | FUNC | 0x4c | + | 0x0001491a | llEncReq | FUNC | 0x130 | + | 0x00014a4a | llPingRsp | FUNC | 0x4 | + | 0x00014a4e | llPHYRsp | FUNC | 0x4 | + | 0x00014a52 | llStartEncReq | FUNC | 0x4 | + | 0x00014a56 | llFeatureRsp | FUNC | 0x4 | + | 0x00014a5a | llSlaveFeatureReq | FUNC | 0x4 | + | 0x00014a5e | llConnectionParamRsp | FUNC | 0x4 | + | 0x00014a62 | llPingReq | FUNC | 0x4 | + | 0x00014a66 | LL_SendAck | FUNC | 0x16 | + | 0x00014a7c | LL_TerminateInd | FUNC | 0x24 | + | 0x00014aa0 | LL_EncRsp | FUNC | 0x50 | + | 0x00014af0 | LL_StartEncReq | FUNC | 0x1a | + | 0x00014b0a | LL_StartEncRsp | FUNC | 0x1a | + | 0x00014b24 | LL_UnknowRsp | FUNC | 0x1c | + | 0x00014b40 | LL_FeatureRsp | FUNC | 0x52 | + | 0x00014b92 | LL_PauseEncRsp | FUNC | 0x1a | + | 0x00014bac | LL_VersionInd | FUNC | 0x5a | + | 0x00014c06 | LL_RejectInd | FUNC | 0x1c | + | 0x00014c22 | LL_ConnectionParamReq | FUNC | 0x9e | + | 0x00014cc0 | LL_ConnectionParamRsp | FUNC | 0x96 | + | 0x00014d56 | LL_RejectIndExt | FUNC | 0x20 | + | 0x00014d76 | LL_LengthReq | FUNC | 0x6c | + | 0x00014de2 | LL_LengthRsp | FUNC | 0x84 | + | 0x00014e66 | LL_PHYReq | FUNC | 0x52 | + | 0x00014eb8 | LL_PHYRsp | FUNC | 0x58 | + | 0x00014f10 | printchar | FUNC | 0x4a | + | 0x00014f5a | prints | FUNC | 0xea | + | 0x00015044 | printInt | FUNC | 0xf4 | + | 0x00015138 | printLongLongInt | FUNC | 0x4 | + | 0x0001513c | printDouble | FUNC | 0x4 | + | 0x00015140 | print | FUNC | 0x362 | + | 0x000154a2 | printf | FUNC | 0x24 | + | 0x000154c6 | sprintf | FUNC | 0x28 | + | 0x000154ee | puts | FUNC | 0x48 | + | 0x00015536 | __lshrdi3 | FUNC | 0x26 | HIDEEN + | 0x0001555c | __udivdi3 | FUNC | 0x39a | HIDEEN + | 0x000158f6 | __adddf3 | FUNC | 0x706 | HIDEEN + | 0x00015ffc | __divdf3 | FUNC | 0x56e | HIDEEN + | 0x0001656a | __muldf3 | FUNC | 0x508 | HIDEEN + | 0x00016a72 | __fixunsdfsi | FUNC | 0x56 | HIDEEN + | 0x00016ac8 | __floatsidf | FUNC | 0x70 | HIDEEN + | 0x00016b38 | __floatunsidf | FUNC | 0x52 | HIDEEN + | 0x00016b8a | __gesf2 | FUNC | 0x96 | HIDEEN + | 0x00016b8a | __gtsf2 | FUNC | 0x96 | HIDEEN + | 0x00016c20 | __lesf2 | FUNC | 0x98 | HIDEEN + | 0x00016c20 | __ltsf2 | FUNC | 0x98 | HIDEEN + | 0x00016cb8 | __fixunssfsi | FUNC | 0x4e | HIDEEN + | 0x00016d06 | __floatsisf | FUNC | 0xc0 | HIDEEN + | 0x00016dc6 | memcmp | FUNC | 0x24 | + | 0x00016dea | strlen | FUNC | 0x10 | + | 0x00016dfa | viprintf | FUNC | 0x2e | + | 0x00016dfa | vprintf | FUNC | 0x2e | + | 0x00016e28 | _vsniprintf_r | FUNC | 0x60 | + | 0x00016e28 | _vsnprintf_r | FUNC | 0x60 | + | 0x00016e88 | vsniprintf | FUNC | 0x10 | + | 0x00016e88 | vsnprintf | FUNC | 0x10 | + | 0x00016e98 | std | FUNC | 0x66 | + | 0x00016efe | _cleanup_r | FUNC | 0xa | + | 0x00016f08 | __sfmoreglue | FUNC | 0x46 | + | 0x00016f4e | __sfp_lock_acquire | FUNC | 0x6 | + | 0x00016f54 | __sfp_lock_release | FUNC | 0x6 | + | 0x00016f5a | __sinit_lock_acquire | FUNC | 0x6 | + | 0x00016f60 | __sinit_lock_release | FUNC | 0x6 | + | 0x00016f66 | __sinit | FUNC | 0x72 | + | 0x00016fd8 | __sfp | FUNC | 0xb0 | + | 0x00017088 | _fwalk_reent | FUNC | 0x68 | + | 0x000170f0 | __retarget_lock_init_recursive | FUNC | 0x2 | + | 0x000170f2 | __retarget_lock_acquire_recursive | FUNC | 0x2 | + | 0x000170f4 | __retarget_lock_release_recursive | FUNC | 0x2 | + | 0x000170f6 | sbrk_aligned | FUNC | 0x5a | + | 0x00017150 | _malloc_r | FUNC | 0x10e | + | 0x0001725e | __ssputs_r | FUNC | 0xde | + | 0x0001733c | _svfiprintf_r | FUNC | 0x258 | + | 0x0001733c | _svfprintf_r | FUNC | 0x258 | + | 0x00017594 | _printf_common | FUNC | 0x10a | + | 0x0001769e | _printf_i | FUNC | 0x27c | + | 0x0001791a | __sfputc_r | FUNC | 0x26 | + | 0x00017940 | __sfputs_r | FUNC | 0x42 | + | 0x00017982 | _vfiprintf_r | FUNC | 0x2ba | + | 0x00017982 | _vfprintf_r | FUNC | 0x2ba | + | 0x00017c3c | _sbrk_r | FUNC | 0x28 | + | 0x00017c64 | __sread | FUNC | 0x2a | + | 0x00017c8e | __swrite | FUNC | 0x46 | + | 0x00017cd4 | __sseek | FUNC | 0x2e | + | 0x00017d02 | __sclose | FUNC | 0x6 | + | 0x00017d08 | __swbuf_r | FUNC | 0xbe | + | 0x00017dc6 | _write_r | FUNC | 0x2c | + | 0x00017df2 | __swsetup_r | FUNC | 0xf0 | + | 0x00017ee2 | _close_r | FUNC | 0x26 | + | 0x00017f08 | __sflush_r | FUNC | 0x132 | + | 0x0001803a | _fflush_r | FUNC | 0x8e | + | 0x000180c8 | _lseek_r | FUNC | 0x2a | + | 0x000180f2 | __swhatbuf_r | FUNC | 0x58 | + | 0x0001814a | __smakebuf_r | FUNC | 0x96 | + | 0x000181e0 | memchr | FUNC | 0x18 | + | 0x000181f8 | __malloc_lock | FUNC | 0x8 | + | 0x00018200 | __malloc_unlock | FUNC | 0x8 | + | 0x00018208 | _free_r | FUNC | 0xa2 | + | 0x000182aa | _realloc_r | FUNC | 0x76 | + | 0x00018320 | _read_r | FUNC | 0x2a | + | 0x0001834a | _fstat_r | FUNC | 0x28 | + | 0x00018372 | _isatty_r | FUNC | 0x26 | + | 0x00018398 | _malloc_usable_size_r | FUNC | 0x14 | + | 0x000183ac | _close | FUNC | 0xc | + | 0x000183b8 | _fstat | FUNC | 0xc | + | 0x000183c4 | _isatty | FUNC | 0xc | + | 0x000183d0 | _lseek | FUNC | 0xc | + | 0x000183dc | _read | FUNC | 0xc | + | 0x00018580 | DefaultGroupInfo | OBJECT | 0x87 | + | 0x00018c30 | serverReqTbl | OBJECT | 0x60 | + | 0x00018cbc | IOCapMatrix | OBJECT | 0x19 | + | 0x00018d00 | const_Rb | OBJECT | 0x10 | + | 0x00018d10 | VER_LIB | OBJECT | 0x1a | + | 0x00018ec8 | btBaseUUID | OBJECT | 0x10 | + | 0x00018ed8 | funcArr | OBJECT | 0x40 | + | 0x00018ffc | funcRxPDUArr | OBJECT | 0x64 | + | 0x00019100 | __clz_tab | OBJECT | 0x100 | HIDEEN + | 0x00019200 | __sf_fake_stderr | OBJECT | 0x20 | + | 0x00019220 | __sf_fake_stdout | OBJECT | 0x20 | + | 0x00019240 | __sf_fake_stdin | OBJECT | 0x20 | + +.vector_handler + +.highcode_fast + | 0x000192f6 | tmosFindTask | FUNC | 0x1a | + | 0x00019310 | TMOS_CB_PeriodicProcessEvent | FUNC | 0x92 | + | 0x000193a2 | tmos_strlen | FUNC | 0x2e | + | 0x000193d0 | tmos_revmemcpy | FUNC | 0x36 | + | 0x00019406 | tmos_isbufset | FUNC | 0x40 | + | 0x00019446 | tmos_start_periodic_callback_task | FUNC | 0xfe | + | 0x00019544 | tmos_set_event | FUNC | 0x46 | + | 0x0001958a | tmos_update_periodic_callback_timer | FUNC | 0x76 | + | 0x00019600 | BLE_SetPHYTxMode | FUNC | 0x6a | + | 0x0001966a | BLE_SetPHYRxMode | FUNC | 0xe4 | + | 0x0001974e | ble_ll_hw_api_shut | FUNC | 0x46 | + | 0x00019794 | phy_status_clear | FUNC | 0x58 | + | 0x000197ec | tmos_memory_allocate | FUNC | 0xc6 | + | 0x000198b2 | ll_connect_send_data | FUNC | 0xf4 | + | 0x000199a6 | ll_connect_recv_data | FUNC | 0x7c | + | 0x00019a22 | llProcessConnectEvent | FUNC | 0x418 | + | 0x00019e3a | LL_HopGetChannel | FUNC | 0x9a | + | 0x00019ed4 | LL_HopGetChannel2 | FUNC | 0x264 | + +.highcode_lp + | 0x0001a138 | TMOS_ProcessRegister | FUNC | 0x8 | + | 0x0001a140 | BB_DevInit | FUNC | 0x4c | + | 0x0001a18c | LLE_DevSetMode | FUNC | 0x4a | + | 0x0001a1d6 | LLE_DevInit | FUNC | 0x62 | + | 0x0001a238 | RFEND_WaitTune | FUNC | 0x2a | + | 0x0001a262 | ll_advertise_tx | FUNC | 0xd8 | + | 0x0001a33a | llAdvertiseStart | FUNC | 0x196 | + | 0x0001a4d0 | ll_advertise_status_closed | FUNC | 0x36 | + | 0x0001a506 | ll_adv_legacy_ind_tx_process | FUNC | 0x5e | + | 0x0001a564 | ll_adv_legacy_rx_process | FUNC | 0x158 | + +.fini + +.dlalign + +.data + | 0x20001040 | simpleProfileCBs | OBJECT | 0xc | + | 0x2000104c | simpleProfileAttrTbl | OBJECT | 0xb0 | + | 0x200010fc | simpleProfileChar5UserDesp | OBJECT | 0x12 | + | 0x20001110 | simpleProfileChar4UserDesp | OBJECT | 0x12 | + | 0x20001124 | simpleProfileChar1UserDesp | OBJECT | 0x12 | + | 0x20001138 | Peripheral_PeripheralCBs | OBJECT | 0xc | + | 0x20001144 | attDeviceName | OBJECT | 0x15 | + | 0x2000115c | scanRspData | OBJECT | 0x17 | + | 0x20001174 | gapServiceCBs | OBJECT | 0xc | + | 0x20001180 | impure_data | OBJECT | 0x60 | + | 0x200011e0 | Dbg_Switch | OBJECT | 0x4 | + | 0x200011e4 | VC_ConSToNSubset | OBJECT | 0x1 | + | 0x200011e5 | VC_ConSToNGruop | OBJECT | 0x1 | + | 0x200011e6 | VC_ConNToSSubset | OBJECT | 0x1 | + | 0x200011e7 | VC_ConNToSGruop | OBJECT | 0x1 | + | 0x200011e8 | curbrk.0 | OBJECT | 0x4 | + | 0x200011ec | simpleProfileChar5Props | OBJECT | 0x1 | + | 0x200011ed | simpleProfileChar4Props | OBJECT | 0x1 | + | 0x200011ee | simpleProfileChar1Props | OBJECT | 0x1 | + | 0x200011f0 | Peripheral_SimpleProfileCBs | OBJECT | 0x4 | + | 0x200011f4 | peripheralMTU | OBJECT | 0x2 | + | 0x200011f8 | advertData | OBJECT | 0x7 | + | 0x200011ff | Peripheral_TaskID | OBJECT | 0x1 | + | 0x20001200 | holdrand.0 | OBJECT | 0x4 | + | 0x20001204 | nextHandle | OBJECT | 0x2 | + | 0x20001206 | GATTServApp_TaskID | OBJECT | 0x1 | + | 0x20001207 | appTaskID | OBJECT | 0x1 | + | 0x20001208 | reqTaskId | OBJECT | 0x1 | + | 0x20001209 | serviceChangedCharProps | OBJECT | 0x1 | + | 0x2000120c | gattService | OBJECT | 0x8 | + | 0x20001214 | gapBond_Erase | OBJECT | 0x1 | + | 0x20001215 | gapBond_Valid | OBJECT | 0x1 | + | 0x20001216 | gapBond_Auto | OBJECT | 0x1 | + | 0x20001217 | gapBond_KeySize | OBJECT | 0x1 | + | 0x20001218 | gapBond_AutoFailReason | OBJECT | 0x1 | + | 0x20001219 | centAddrRes | OBJECT | 0x1 | + | 0x2000121a | centAddrResCharProps | OBJECT | 0x1 | + | 0x2000121b | periConnParamCharProps | OBJECT | 0x1 | + | 0x2000121c | appearanceCharProps | OBJECT | 0x1 | + | 0x2000121d | deviceNameCharProps | OBJECT | 0x1 | + | 0x20001220 | _impure_ptr | OBJECT | 0x4 | + | 0x20001248 | simpleProfileService | OBJECT | 0x8 | + | 0x20001250 | simpleProfilechar5UUID | OBJECT | 0x2 | + | 0x20001254 | simpleProfilechar4UUID | OBJECT | 0x2 | + | 0x20001258 | simpleProfilechar1UUID | OBJECT | 0x2 | + | 0x2000125c | simpleProfileServUUID | OBJECT | 0x2 | + | 0x20001260 | serviceChangedUUID | OBJECT | 0x2 | + | 0x20001264 | centAddrResUUID | OBJECT | 0x2 | + | 0x20001268 | periConnParamUUID | OBJECT | 0x2 | + | 0x2000126c | appearanceUUID | OBJECT | 0x2 | + | 0x20001270 | deviceNameUUID | OBJECT | 0x2 | + | 0x20001274 | clientCharCfgUUID | OBJECT | 0x2 | + | 0x20001278 | charUserDescUUID | OBJECT | 0x2 | + | 0x2000127c | characterUUID | OBJECT | 0x2 | + | 0x20001280 | secondaryServiceUUID | OBJECT | 0x2 | + | 0x20001284 | primaryServiceUUID | OBJECT | 0x2 | + | 0x20001288 | gattServiceUUID | OBJECT | 0x2 | + | 0x2000128c | gapServiceUUID | OBJECT | 0x2 | + | 0x20001290 | CSWTCH.135 | OBJECT | 0x7 | + | 0x20001298 | gapService | OBJECT | 0x8 | + | 0x200012a0 | _global_impure_ptr | OBJECT | 0x4 | + +.bss + | 0x200012a8 | NUM_s.0 | OBJECT | 0x2 | + | 0x200012aa | NUM.1 | OBJECT | 0x1 | + | 0x200012ac | SysTick_Diff | OBJECT | 0x4 | + | 0x200012b0 | SysTick_Last | OBJECT | 0x4 | + | 0x200012b4 | SysTick_Now | OBJECT | 0x4 | + | 0x200012b8 | SysTick_1s | OBJECT | 0x4 | + | 0x200012bc | SysTick_1ms | OBJECT | 0x4 | + | 0x200012c0 | SysTick_100us | OBJECT | 0x4 | + | 0x200012c4 | rev.0 | OBJECT | 0x1 | + | 0x200012c8 | scan_tisk.1 | OBJECT | 0x4 | + | 0x200012cc | portstate | OBJECT | 0x1 | + | 0x200012d0 | sensor_info | OBJECT | 0x6 | + | 0x200012d8 | UART0_RecvEndPtr | OBJECT | 0x4 | + | 0x200012dc | UART0_RecvOutPtr | OBJECT | 0x4 | + | 0x200012e0 | UART0_RecvInPtr | OBJECT | 0x4 | + | 0x200012e4 | Freq_LSI | OBJECT | 0x4 | + | 0x200012e8 | simpleProfileChar5 | OBJECT | 0x5 | + | 0x200012f0 | simpleProfileChar4Config | OBJECT | 0x4 | + | 0x200012f4 | simpleProfileChar4 | OBJECT | 0x1 | + | 0x200012f8 | simpleProfile_AppCBs | OBJECT | 0x4 | + | 0x200012fc | g_LLE_IRQLibHandlerLocation | OBJECT | 0x4 | + | 0x20001300 | halTaskID | OBJECT | 0x1 | + | 0x20001304 | lsiFrq | OBJECT | 0x4 | + | 0x20001308 | RTCTigFlag | OBJECT | 0x4 | + | 0x2000130c | LSIWakeup_MaxTime | OBJECT | 0x2 | + | 0x20001310 | Broadcaster_BroadcasterCBs | OBJECT | 0x8 | + | 0x20001318 | peripheralConnList | OBJECT | 0x8 | + | 0x20001320 | BLE_OTA_flag | OBJECT | 0x1 | + | 0x20001324 | msg_qHead | OBJECT | 0x4 | + | 0x20001328 | taskHead | OBJECT | 0x4 | + | 0x2000132c | pfnProcessCBs | OBJECT | 0x4 | + | 0x20001330 | pfnTimerCBs | OBJECT | 0x4 | + | 0x20001334 | fnGetClockCBs | OBJECT | 0x4 | + | 0x20001338 | tasksArr | OBJECT | 0x4 | + | 0x2000133c | EventsArr | OBJECT | 0x4 | + | 0x20001340 | cbTimersHead | OBJECT | 0x4 | + | 0x20001344 | pEstLink | OBJECT | 0x4 | + | 0x20001348 | pGapAdvertState | OBJECT | 0x4 | + | 0x2000134c | slaveUpdateReq | OBJECT | 0x8 | + | 0x20001354 | gapCurrentRandomAddr | OBJECT | 0x6 | + | 0x2000135c | pfnPeripheralConnCBs | OBJECT | 0x4 | + | 0x20001360 | pfnPeripheralCBs | OBJECT | 0x4 | + | 0x20001364 | terminateAllTaskID | OBJECT | 0x1 | + | 0x20001365 | terminateReason | OBJECT | 0x1 | + | 0x20001368 | gapPeripheralConnCBs | OBJECT | 0x4 | + | 0x2000136c | pGapScanRspData | OBJECT | 0x4 | + | 0x20001370 | pGapAdData | OBJECT | 0x4 | + | 0x20001374 | gapAdvTaskID | OBJECT | 0x1 | + | 0x20001375 | gapAdvAppTaskID | OBJECT | 0x1 | + | 0x20001378 | pfnServerProcessMsgCB | OBJECT | 0x4 | + | 0x2000137c | pfnClientProcessMsgCB | OBJECT | 0x4 | + | 0x20001380 | clientInfoTbl | OBJECT | 0x4 | + | 0x20001384 | pAttrValue | OBJECT | 0x4 | + | 0x20001388 | attrLen | OBJECT | 0x2 | + | 0x2000138c | indCharCfg | OBJECT | 0x4 | + | 0x20001390 | serverInfoTbl | OBJECT | 0x4 | + | 0x20001394 | prepareWritesTbl | OBJECT | 0x4 | + | 0x20001398 | pServiceList | OBJECT | 0x4 | + | 0x2000139c | serviceCBsList | OBJECT | 0x4 | + | 0x200013a0 | gattAddService | OBJECT | 0x1 | + | 0x200013a4 | pL2capData | OBJECT | 0x4 | + | 0x200013a8 | l2capMtuSize | OBJECT | 0x2 | + | 0x200013aa | l2capId | OBJECT | 0x1 | + | 0x200013ab | l2capNumRecvDataPkts | OBJECT | 0x1 | + | 0x200013ac | l2capNumDataPkts | OBJECT | 0x1 | + | 0x200013ad | l2capTaskID | OBJECT | 0x1 | + | 0x200013b0 | linkDB | OBJECT | 0x4 | + | 0x200013b4 | pSmGenKey | OBJECT | 0x4 | + | 0x200013b8 | gBleHostPara | OBJECT | 0x8 | + | 0x200013c0 | gptrAESReg | OBJECT | 0x4 | + | 0x200013c4 | gptrBBReg | OBJECT | 0x4 | + | 0x200013c8 | rfStatusCBs | OBJECT | 0x4 | + | 0x200013cc | gRfTaskId | OBJECT | 0x1 | + | 0x200013d0 | gPaControl | OBJECT | 0x4 | + | 0x200013d4 | pfnHandle | OBJECT | 0x4 | + | 0x200013d8 | tmosSign | OBJECT | 0x1 | + | 0x200013dc | gptrLLEReg | OBJECT | 0x4 | + | 0x200013e0 | gTuneFilter2M | OBJECT | 0x1 | + | 0x200013e1 | gTuneFilter | OBJECT | 0x1 | + | 0x200013e2 | ftuneFlag | OBJECT | 0x2 | + | 0x200013e4 | nGA2480 | OBJECT | 0x1 | + | 0x200013e5 | nCO2480 | OBJECT | 0x1 | + | 0x200013e6 | nGA2440 | OBJECT | 0x1 | + | 0x200013e7 | nCO2440 | OBJECT | 0x1 | + | 0x200013e8 | nGA2401 | OBJECT | 0x1 | + | 0x200013e9 | nCO2401 | OBJECT | 0x1 | + | 0x200013ec | gptrRFENDReg | OBJECT | 0x4 | + | 0x200013f0 | fragment.0 | OBJECT | 0x1 | + | 0x200013f2 | service.0 | OBJECT | 0x2 | + | 0x200013f4 | pAttr.1 | OBJECT | 0x4 | + | 0x200013f8 | gapBond_Invalid | OBJECT | 0x1 | + | 0x200013fc | pAuthEvt | OBJECT | 0x4 | + | 0x20001400 | bondIdx | OBJECT | 0x1 | + | 0x20001401 | gapBondMax | OBJECT | 0x1 | + | 0x20001402 | eraseAllBonds | OBJECT | 0x1 | + | 0x20001403 | autoSyncWhiteList | OBJECT | 0x1 | + | 0x20001404 | bonds | OBJECT | 0x4 | + | 0x20001408 | pGapPeriBondCB | OBJECT | 0x4 | + | 0x2000140c | gattCCFlag | OBJECT | 0x1 | + | 0x2000140d | gapBond_AutoFail | OBJECT | 0x1 | + | 0x20001410 | gapBond_Peri_Passcode | OBJECT | 0x4 | + | 0x20001414 | gapBond_Peri_KeyDistList | OBJECT | 0x1 | + | 0x20001415 | gapBond_Peri_AuthReq | OBJECT | 0x1 | + | 0x20001416 | gapBond_Peri_OOBDataFlag | OBJECT | 0x1 | + | 0x20001417 | gapBond_Peri_IOCap | OBJECT | 0x1 | + | 0x20001418 | gapBond_Peri_PairingMode | OBJECT | 0x1 | + | 0x20001419 | gapBondMgr_TaskID | OBJECT | 0x1 | + | 0x2000141a | ggsAddService | OBJECT | 0x1 | + | 0x2000141c | periConnParameters | OBJECT | 0x8 | + | 0x20001424 | appearance | OBJECT | 0x2 | + | 0x20001426 | deviceNameLength | OBJECT | 0x1 | + | 0x20001428 | ggs_AppCBs | OBJECT | 0x4 | + | 0x2000142c | pGapRolesPeri_AppCGs | OBJECT | 0x4 | + | 0x20001430 | pGapRoles_AppCGs | OBJECT | 0x4 | + | 0x20001434 | gapRole_bdAddr | OBJECT | 0x6 | + | 0x2000143c | gapRole_signCounter | OBJECT | 0x4 | + | 0x20001440 | gapRole_MaxConnInterval | OBJECT | 0x2 | + | 0x20001442 | gapRole_MinConnInterval | OBJECT | 0x2 | + | 0x20001444 | gapRole_AdvFilterPolicy | OBJECT | 0x1 | + | 0x20001445 | gapRole_AdvChanMap | OBJECT | 0x1 | + | 0x20001448 | gapRole_AdvDirectAddr | OBJECT | 0x6 | + | 0x2000144e | gapRole_AdvDirectType | OBJECT | 0x1 | + | 0x2000144f | gapRole_AdvEventType | OBJECT | 0x1 | + | 0x20001450 | gapRole_PHYRx | OBJECT | 0x1 | + | 0x20001451 | gapRole_PHYTx | OBJECT | 0x1 | + | 0x20001452 | gapRole_AdvEnabled | OBJECT | 0x1 | + | 0x20001453 | gapRole_profileRole | OBJECT | 0x1 | + | 0x20001454 | gapRole_state | OBJECT | 0x4 | + | 0x20001458 | gapRole_TaskID | OBJECT | 0x1 | + | 0x2000145c | MemCtlEnd | OBJECT | 0x4 | + | 0x20001460 | MemCtlPartition | OBJECT | 0x4 | + | 0x20001464 | MemCtlStart | OBJECT | 0x4 | + | 0x20001468 | attClientNotifyTxCB | OBJECT | 0x4 | + | 0x2000146c | attServerNotifyTxCB | OBJECT | 0x4 | + | 0x20001470 | pfnAdvertiseEventCBs | OBJECT | 0x4 | + | 0x20001474 | pfnConnectEventCBs | OBJECT | 0x4 | + | 0x20001478 | llRecvDataDisable | OBJECT | 0x4 | + | 0x2000147c | __lock___malloc_recursive_mutex | OBJECT | 0x1 | + | 0x20001480 | __lock___sfp_recursive_mutex | OBJECT | 0x1 | + | 0x20001484 | __lock___sinit_recursive_mutex | OBJECT | 0x1 | + | 0x20001488 | __malloc_sbrk_start | OBJECT | 0x4 | + | 0x2000148c | __malloc_free_list | OBJECT | 0x4 | + | 0x20001490 | errno | OBJECT | 0x4 | + | 0x20001494 | Dbg_Buffer | OBJECT | 0x64 | + | 0x200014f8 | PortInfo | OBJECT | 0x37 | + | 0x20001530 | PortGroupInfo | OBJECT | 0x87 | + | 0x200015b8 | portBuff | OBJECT | 0x2d0 | + | 0x20001888 | condata | OBJECT | 0xf | + | 0x20001898 | VCard_Info | OBJECT | 0x9d | + | 0x20001938 | UART0_RecvBuff | OBJECT | 0xa0 | + | 0x200019d8 | g_uart | OBJECT | 0x5f | + | 0x20001a38 | simpleProfileChar3 | OBJECT | 0x14 | + | 0x20001a4c | simpleProfileChar2 | OBJECT | 0x14 | + | 0x20001a60 | simpleProfileChar1 | OBJECT | 0x64 | + | 0x20001ac4 | MEM_BUF | OBJECT | 0xe00 | + | 0x200028c8 | block_buf | OBJECT | 0x10 | + | 0x200028d8 | print_BLE | OBJECT | 0x3c | + | 0x20002914 | Peripheral_BondMgrCBs | OBJECT | 0xc | + | 0x20002920 | gTmosPara | OBJECT | 0x20 | + | 0x20002940 | ble | OBJECT | 0x34 | + | 0x20002974 | bleClock_t | OBJECT | 0x14 | + | 0x20002988 | gapParameters | OBJECT | 0x18 | + | 0x200029a0 | gapParams | OBJECT | 0x1c | + | 0x200029bc | gapPeripheralCBs | OBJECT | 0xc | + | 0x200029c8 | gattAttrTbl | OBJECT | 0x40 | + | 0x20002a08 | gattServiceCBs | OBJECT | 0xc | + | 0x20002a14 | rsp | OBJECT | 0x18 | + | 0x20002a2c | l2capFixedChannels | OBJECT | 0x30 | + | 0x20002a5c | l2capChannels | OBJECT | 0x10 | + | 0x20002a6c | linkCBs | OBJECT | 0x18 | + | 0x20002a84 | gBleIPPara | OBJECT | 0x18 | + | 0x20002a9c | gDtm_t | OBJECT | 0xc | + | 0x20002aa8 | gapBond_Peri_OOBData | OBJECT | 0x10 | + | 0x20002ab8 | gapAttrTbl | OBJECT | 0x90 | + | 0x20002b48 | gapRole_OldSRK | OBJECT | 0x10 | + | 0x20002b58 | gapRole_OldIRK | OBJECT | 0x10 | + | 0x20002b68 | gapRole_SRK | OBJECT | 0x10 | + | 0x20002b78 | gapRole_IRK | OBJECT | 0x10 | + | 0x20002b88 | gBleLlPara | OBJECT | 0x58 | + +.stack + diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13_V02.BIN b/BLV_RF_W13_V04_20260114/obj/BLV_RF_C13_V02.BIN new file mode 100644 index 0000000000000000000000000000000000000000..95a56672a545bf550b8f3c6a2406875494415257 GIT binary patch literal 112360 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 z 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
O%>cDw!)`{C@Ov)mJq=;VKGhZzSVy-YeM{FZ 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 z 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

2DyAd*Ax?U@bM$l(NrD$-nU>u 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 KpWaBX`1pTStuc52 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.hex b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.hex new file mode 100644 index 0000000..86e765d --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.hex @@ -0,0 +1,6794 @@ +:041000006F108001EC +:101004000000000000000000F4A1010042040020E0 +:10101400A9BDF9F3F4A101000000000000000000E4 +:10102400F4A10100F4A10100000000000000000090 +:101034009000002000000000F4A101000000000066 +:1010440000000000F4A1010000000000F4A1010070 +:10105400F4A10100F4A10100F4A1010000000000CA +:10106400F4A101000000000000000000F0000020D6 +:10107400EC040020F4A10100F4A10100F4A101009A +:1010840000000000F4A1010000000000F4A1010030 +:10109400B7F700E023A207001387C18D1C43A546C0 +:1010A40085071CC31387218C1C23850793F7F70F2F +:1010B40063E5F6001CA3730020301387818D238120 +:1010C400018C1C439306803E85071CC31387018C47 +:1010D4001E238507B3C707086384D7001EA3E1BF97 +:1010E4001387418D2390018C1C4385071CC3E1B7F2 +:1010F400011122CE3737004083474740194693F603 +:10110400F70FBD8B6387C70893F776009146639703 +:10111400D7088347A7401384010993F7F70FDC87A7 +:101124003C489887A183B3C70708BA971307F0040C +:101134006356F700A380010E2381010E2848218104 +:10114400334505082295975000E0E7802041137548 +:10115400F50FC88738489C872183BA9733C7070897 +:10116400A308F404935787002309F40483A7818D0B +:1011740013D78700A30BF404230CE40413D707014B +:10118400E183230DF4048547A30CE4042308F40449 +:1011940031A08347574093F7F70FDC87724405610A +:1011A400730020309307000C01116314F5049307B6 +:1011B4008008F3B7078093F787083EC00F1000003C +:1011C400B7170040130770052380E704130780FA5C +:1011D4002380E7040F10000098271367070C98A7D3 +:1011E400238007048247F3A707800F1000000561DE +:1011F4008280B7170040B827118B69EB83C6E704D8 +:101204001307800893F6F60F733607801376860863 +:1012140032C20F10000013087005238007059305E0 +:1012240080FA2380B7040F10000003C6E704136696 +:1012340036002387C704B02713664600B0A723806F +:1012440007041246732606800F10000090271376B9 +:10125400F60F73370780137787083AC40F1000001E +:10126400238007052380B7040F1000009827136715 +:10127400070C98A723800704A247F3A707800F1041 +:101284000000A5470100FD1793F7F70FE5FF93074B +:101294008008F3B7078093F787083EC60F10000055 +:1012A400B7170040130770052380E704130780FA7B +:1012B4002380E7040F10000090A72387D70423801E +:1012C4000704B247F3A707800F1000009377050CBB +:1012D400130700046399E70893078008F3B70780AE +:1012E40093F787083EC80F100000B7170040130794 +:1012F40070052380E704130780FA2380E7040F10A6 +:101304000000B827854613670701B8A737270040B0 +:10131400A303D7808346578093E60601A302D780B0 +:1013240023800704C247F3A707800F100000930728 +:101334008008F3B7078093F787083ECE0F100000AC +:10134400B7170040130770052380E704130780FADA +:101354002380E7040F1000001375F50F88A723807E +:101364000704F24749B59377F5019DCF93078008A9 +:10137400F3B7078093F787083ECA0F100000B7172A +:101384000040130770052380E704130780FA2380C5 +:10139400E7040F100000372700408946A303D780D5 +:1013A40023800704D24741B793078008F3B7078027 +:1013B40093F787083ECC0F100000B71700401307BF +:1013C40070052380E704130780FA2380E7040F10D5 +:1013D4000000372700409D46A303D78023800704DD +:1013E400E24791B70111814601468145114506CE78 +:1013F400975000E0E780606093078008F3B70780A8 +:1014040093F787083EC60F100000B7170040130774 +:1014140070052380E704130780FA2380E7040F1084 +:10142400000003C76704136717002383E7042380BE +:101434000704B247F3A707800F100000F2400561CC +:10144400828041118146014681451145975000E053 +:10145400E780A05A13078008F337078093F78708BB +:101464003EC40F100000B717004013067005238018 +:10147400C704930680FA2380D7040F100000FD559B +:10148400CEB723800704A245F3A505800F10000002 +:1014940073370780137787083AC60F10000023803C +:1014A400C7042380D7040F10000003C76704136721 +:1014B40017002383E70423800704B247F3A70780B8 +:1014C4000F10000001A04111B7170040985F3AC601 +:1014D400945F3247E39CE6FE324541018280B7E7E0 +:1014E40000E03707001023A0E7208280B7170040F0 +:1014F400130700032388E702854723A8F1927300AA +:101504002030230304801547A2872303E4800100CD +:1015140001002302A48003C7678062076187E34C4C +:1015240007FE2382A780228783476780E207E1873B +:10153400E3CC07FE82802303048015472303E48061 +:10154400010001002302A480828083076480E3CE2B +:1015540007FE23030480828083076480E3CE07FEB2 +:1015640003454480828083076480E3CE07FE230220 +:10157400A4808280411126C44AC24EC006C6137795 +:10158400F50BAD47AA892E8995446306F7001945E2 +:101594005D37653F8D444E85793FFD59FD14639851 +:1015A4003401B240A2441249824941018280135558 +:1015B40009011375F50F453F2209CDB7011126CC5A +:1015C40006CEB704080051371545B537713769376A +:1015D4002AC6A53F32459377150089EB136515009C +:1015E4001375F50FF240E24405618280FD14E9FCB5 +:1015F4000145CDBF411106C6B7170040130770055A +:101604002380E704130780FA2380E70403C7470411 +:101614001305F00F1367070E2382E7049147230392 +:10162400F480C535B24041010DB7011126CC4ACA38 +:101634004EC852C606CE2A89AE89B284554A5D3F49 +:1016440091E82137F24026855249E244C249324AA0 +:1016540005618280CA850945313F910903A7C9FF05 +:1016640091472320E48003076480E34E07FE2303AD +:101674004481FD17EDFBFD14110981C49377F90F23 +:10168400E9FF2D3F55FDFD5475BF011126CC4ACA13 +:101694004EC852C656C45AC206CE2A89328A8D49C9 +:1016A400913FC164C16A056B9387F4FFB3F72701C7 +:1016B40099E363719A02FD199180E39709FE7135EC +:1016C4000145F240E2445249C249324AA24A124B0D +:1016D400056182801305800D63885401130500029F +:1016E4006384640113051008CA856935C13D09C5C1 +:1016F4002699330A9A4075BF7D55E1B7011106CE8C +:1017040026CC4ACAB2844EC82AC62E89E53532454B +:10171400FD14FD59AA852D45B13D639A3401353533 +:10172400F24026855249E244C249056182802D3542 +:1017340093F7340091EB8326048003270900930771 +:101744004900E39EE6FC3E89FD14C1BF011106CEAB +:101754002AC64D353245C533F2400561FDB301114A +:1017640006CE26CC4ACA4EC852C6AA8956C42E8969 +:101774005135B7050400B3E5B9002D45E53B814477 +:101784008D4A214AD13B6396540183270480232048 +:10179400F9008504E39844FF832704801397290103 +:1017A400635C07002312F900F240E2445249C24943 +:1017B400324AA24A056151BB2322F900F5B741110F +:1017C40006C626C44AC24EC0AE892D3581451305CE +:1017D400B0044D33BD447D59413393F77400CE9723 +:1017E40003C70700FD14398D2380A700E39624FF67 +:1017F400B240A24412498249410181BB411106C64B +:10180400D53B13056006053B893313059009253341 +:10181400B24041011DBB411122C406C697270000F6 +:1018240083A7C70C1384818191C782971C40AA9710 +:101834001CC021A083A78194EDFB0840B747030097 +:101844009387D73F3305F502B7A72600938737EC74 +:10185400B2403E9508C0224441018280B7E700E0CF +:101864009843B706200023A0D718758F0F100000E7 +:1018740001C599C1814711E6B7E700E023A0E7104D +:101884008280B386F50003C80600B306F500850719 +:1018940023800601E317F6FEC5B7411126C2B7E45B +:1018A40000E022C48040B706200006C6758C23A041 +:1018B400D4180F10000011C111EAB7E700E023A00B +:1018C4008710B2402244924441018280972000E074 +:1018D400E780C08123A08410EDB737E700E01C4304 +:1018E400B70620002320D718F58F0F10000001C57C +:1018F40099C1014711EA37E700E02320F7100545B5 +:1019040082800507E309E6FE3308E500B386E500B7 +:10191400034808009422E306D8FE37E700E02320BA +:10192400F71001458280797122D406D626D24AD096 +:101934004ECE52CC56CA5AC85EC662C413840194B1 +:101944001C40D5E797240000938444F6138901953D +:10195400032709009C2094300146B3A5E7208E217B +:10196400C9C911C29CA08820636CD50897270000C0 +:10197400238E07F21C40F1E79389819483A7090021 +:10198400E9C3138AC19303240A0045CC972B0000B2 +:10199400938B0BF783A74B0037C9C901014B9CC438 +:1019A4001309F937972A0000938A4AF23E20CDEBB7 +:1019B4005C4463140B0A2320FA00032CC400228520 +:1019C4000123628465F49727000083A767F2B5CBEF +:1019D4002254B25092540259F249624AD24A424BBA +:1019E400B24B224C4561176300E06700E3838297A2 +:1019F40081BF850793F7F70F0546E3E0D7F69DB758 +:101A04003327E5200E232310070097270000239295 +:101A140007EA83A7C194B347F5209C4382979C208F +:101A240083260900FA20B3A6D72092223377E54013 +:101A3400518F9AA299C385079CA098209C30E37784 +:101A4400F7F2B250225492540259F249624AD24AED +:101A5400424BB24B224C456182802326FB00B1BF2E +:101A640083A7090082971C443307F5406376F50089 +:101A740003A74B001D8F2A976369E9022E200820D3 +:101A840097A001E0E780409C5C409DD3104483A66E +:101A94004B00B2973E8763E4C70063E4D700338703 +:101AA400D74018C4228B404431BF03A74A027DDBD0 +:101AB40063E9A7023385A7401C2099EF03C76A0195 +:101AC40083A64B005117B307A7003E8563E4E700E4 +:101AD40063E4D7003385D7409C44E375F5FC88C4A0 +:101AE400D1B703A74B00BA97F1B7B7C70040138724 +:101AF400C72014431396264910C30F100000938780 +:101B04008726172500000325A5DB9C436A0514C31B +:101B140093C7F7FF99835D8D8280411126C2938418 +:101B2400819D984006C622C43C4393D76748B1C3FD +:101B3400930700063CC39727000083C767ED93F71C +:101B44000704172400001304A4EC99CB9727000082 +:101B540083A707DB829748C41C2093F7F70B1CA0CC +:101B64001E2481CB03A7019F7CD3972700002395D4 +:101B740007EA98403C4393D7474899C7C1473CC3B9 +:101B840083A7019F23A2070603A7419D5C4393D724 +:101B9400174899C323220700B240224492444101CA +:101BA4008280A53F7300203083A6019F1727000081 +:101BB400130707E61C23858B91E71C33858B99E378 +:101BC400FC52EDFB828097260000938626D0DC52DF +:101BD40085C7B7E700E03707200023A0E728B7F759 +:101BE40000E0938707D0984B6D9B98CB984B136775 +:101BF400870398CB7300501097270000A38A07E04F +:101C04001387019F1C43054690C3DC5299CBB7F65A +:101C140000E083A706D193E7870023A8F6D07300DA +:101C24005010184397260000938686DE9C22858BED +:101C340099E37C53E5FF82801431AA871387260039 +:101C440089CA03A6019F304A1356564819C21387FE +:101C5400660093063700BE96902205480545137624 +:101C6400F607631C060381C53E97382398A1883381 +:101C74000DC583A7019FBC4B014593D7574891CF0E +:101C84009C22054793F6F7066398E600939747600E +:101C940063D5070039458280194582800111972751 +:101CA4000000238807D64AC897270000A38307D6D5 +:101CB40017290000130989C18327490222CC06CEC3 +:101CC40026CA4EC62A842E85B28585C7B7E700E0AA +:101CD4003707200023A0E728B7F700E0938707D051 +:101CE400984B6D9B98CB984B1367870398CB7300E5 +:101CF400501085479389819D9384019F6315F40651 +:101D0400014697A001E0E780808683A709009840F8 +:101D14009C43A1838D8BA9E7930760197CD3832708 +:101D2400490299CB37F700E0832707D193E787006F +:101D34002328F7D07300501094401727000013078E +:101D440027CD3C23858B91E73C33858B99E3FC526B +:101D5400EDFBF2406244D2444249B24905618280BB +:101D64009307E01B65BF979001E0E780A07983A704 +:101D7400090098431317872998C3D85B719BD8DB54 +:101D840059FC97270000A38507C89C40094798C3BE +:101D940079B783A7019F9847D447758FB706040086 +:101DA40098C7F98E91CAFD56B4D7172600001306BA +:101DB400E6AF544A850654CA9376870095C297269F +:101DC400000083C606C593E616001726000023020A +:101DD400D6C403A6819D545AF19A93E6160054DAA8 +:101DE4009376170095C29726000083C676C293E6C1 +:101DF400160017260000A30DD6C003A6819D545AD1 +:101E0400F19A93E6160054DA9376670085CE118B27 +:101E140003A6819D97260000938686BF59C3184266 +:101E240021830D8B25EFD84A183321E3130770065D +:101E3400D8CF9C2293E717009CA25C5AF19B93E7AE +:101E440017005CDA83C7C19EA5CB2386019E83A7B6 +:101E5400819EA9CF411106C6829783C7C19E99E38B +:101E640023A4019EB24041018280AC4B93F505024C +:101E740081C5130750076DBF85456315B700130768 +:101E8400B0067DB789456315B7001307F0064DB753 +:101E94008D45E310B7FE1307300759BF13076007DA +:101EA40041BFBC3293E71700BCB241BF83C7C19E98 +:101EB40081E723A4019E82808280E13D730020306B +:101EC400B7E700E003A807003707200023A0E718BE +:101ED4003378E8000F10000003AE81A703A301A725 +:101EE400F287814663F6670883A807006367F508ED +:101EF40063E5A80813878700636CE506F22321676E +:101F040005076317E6001386F19B1822050718A23C +:101F14009725000093858599D223DA21239307001E +:101F2400329733470708DAA16381C70303A541A7A2 +:101F3400630DF500EA2211E9DE2223A01601210730 +:101F44003E962106D2A2DAA1B687984363026702BD +:101F540083A641A7630ED700762399EAD62352239A +:101F64001843A106B296D6A398C3DE21A107DEA129 +:101F7400B7E700E023A007118280BE86C6879DB71D +:101F8400938515029727000083A7C7A995859843D1 +:101F9400FD1518C1D84358C1984718C5D84758C526 +:101FA400984B18C9D84B58C9984F18CDD84F58CD0D +:101FB40091C51305050293870702D1BF828003A749 +:101FC400019F3C5BFDFF010001008280011122CCD6 +:101FD40026CA06CE2AC42EC617240000032444B7FA +:101FE400854419E001450DA09C841830858B630459 +:101FF400F7000044FDB719469305A100130524001A +:10200400EFF0BF8DE31795FEF2406244D2440561C0 +:0420140082800000C6 +:10201800970100209381019A17110020130101FEF6 +:1020280017F5FFFF1305C5FD97E5FF1F938505FD10 +:1020380017F6FF1F1306C6FD63FAC50083220500C5 +:1020480023A0550011059105E3EAC5FE1795010087 +:102058001305855697F5FF1F9385C5FB1386C18B1E +:1020680063FAC5008322050023A0550011059105D8 +:10207800E3EAC5FE1385018C97150020938585AE8C +:102088006377B500232005001105E36DB5FE9302C3 +:102098005002739002BC8D427390428085427390C7 +:1020A80012BC930280087390023097E2FF1F93825C +:1020B800E2F493E232007390523097320000938238 +:1020C800A2E773901234730020302A8309CA8383ED +:1020D8000500230073007D16050385056DFA8280CF +:1020E8002A8311C62300B3007D16050365FE82808E +:1020F80015C22A8385466367B500FD561307F6FFA8 +:102108003A93BA9583830500230073007D163693AE +:10211800B6956DFA82804111054506C6EF30402D0F +:10212800B7170040130760F9A381E704B2404101E3 +:102138008280411106C6EF302031B71700401307DF +:1021480060F9A381E704B24041018280328581476A +:1021580037370040A14663C3A70082800346B740D3 +:10216800E30ED6FE3386F500102285072304C74008 +:10217800DDB739713EDA83A7418C3315A02806CE26 +:1021880022CC32D436D63AD842DC46DEE98FA9CB07 +:1021980003A6818D23A8C18C9387C18C94432E8478 +:1021A800138581AAB306D64097750100938545F932 +:1021B80023A4D18C90C3EF40E104938581AA1775BD +:1021C80001001305A5F8EF40A1012C1022852EC6A9 +:1021D800EF50911617750100130545F6EF400105FC +:1021E800F24062442161828001478147B346070873 +:1021F80063E7B60013C5F7FF1375F50F8280B306C2 +:10220800E50094220507B69793F7F70FC5B75D71F8 +:10221800130670038145280086C6A2C402C2C935C8 +:1022280011464C0037750300EF30800C108293077D +:10223800A005631AF60400839C8222045D8C8567DE +:10224800F11763F787000545B6402644616182802F +:1022580037750300130670032C001105EF30400991 +:10226800A285280051379C83E39FA7FC22862C0077 +:102278001385C1B0993D054597750100938545EDD6 +:10228800CD3D0145D1B7977501009385A5ED05456D +:10229800CD3555BF81470946930520030547854637 +:1022A80029452D489388C1B00943514E954E054F95 +:1022B800B3870703C69788A394B3B8A3A38107007D +:1022C800CCA3D8B323830700A38367002384070024 +:1022D80090B72385C7016305D7036317E70109464C +:1022E80093052003894601A89306170093F6F60F75 +:1022F8000D4693050005BA870945368781464DBFC7 +:1023080082805D719307A005130670035C82938534 +:10231800C1B0930770032800DC8286C6A2C42313C9 +:10232800010065339305700328007D3DC8838566E9 +:102338000146B77503000545EF30606B9377F50FDD +:1023480085EF977501009385A5E305451D3593062F +:10235800C0035000B77503000945EF304069137496 +:10236800F50F0DC81376F50F97750100938505E4F1 +:1023780005450135094411A81376F50F9775010035 +:102388009385C5E00545F5330544B64022852644C6 +:102398006161828097750100938545E00545D13BD1 +:1023A800EDB7357122CD1306B00881452A8448005F +:1023B80006CF26CB02C02D3311468A853785030008 +:1023C800EF20107310809307A005631EF6040481A4 +:1023D8009C80A204DD8C8567F11763F8970005459A +:1023E800FA406A44DA440D61828037850300268604 +:1023F8004C001105EF20D06FA6854800F5339C816D +:10240800E39FA7FC1306B0084C0022857D393C30B9 +:10241800382014301020054597750100938545DA5A +:10242800893B014575BF97750100938565DA0545B8 +:10243800893375B7B70706044111938727401306F8 +:10244800700897750100938565EE138581B506C6FA +:1024580023AAF1B49D39B24041018280357122CD61 +:102468001306B0082A8497750100938525D8054579 +:1024780006CF01331306E0088145130521008D318D +:102488009307A0051306B0085C80A2859307B0F8EF +:102498004800DC801D399305B0084800B133C88175 +:1024A80085660146B78503000545EF3040549377AC +:1024B800F50F85EF97750100938505D505455539C5 +:1024C800930600090A86B78503000945EF302052B4 +:1024D8001374F50F0DC81376F50F977501009385E2 +:1024E80065D505457931094411A81376F50F977517 +:1024F8000100938525D20545AD390544FA4022856A +:102508006A440D618280977501009385A5D10545C0 +:102518008D31EDB7797122D411462A846C00379534 +:10252800030006D626D24AD002C602C802CA02CC86 +:1025380002CEEF20F05B10869307A003631FF60618 +:1025480004879C860569A204DD8C9307C9FF63ECA8 +:1025580097063795030026860C081105EF20505979 +:10256800A685080851319C87639FA70441460C083B +:102578002285A13E5C4418445440104097750100E0 +:10258800938585CC0545F53658409307793863E639 +:10259800E7001309893823222401544485671387E7 +:1025A80077386365D700938787385CC40145B25094 +:1025B800225492540259456182809775010093858F +:1025C80025CA05457D360545DDB741111146938578 +:1025D800018E37A5030006C6EF2090518566014697 +:1025E800B7A503000545EF3080409387018E9423FB +:1025F800A380018E05476383E60098A3914613865E +:10260800018EB7A503000945EF30603E1306B008F8 +:102618008145138541B5E93423A201B423A401B44B +:1026280023A601B423A801B4DD3601C997750100BA +:10263800938585C50545353EB139138541B5953333 +:1026480001C9977501009385A5C505451D36DD337C +:10265800138541B4C13515C5977501009385C5C566 +:102668000545013E23A201B49D679387075313874D +:1026780041B45CC323A601B4B7C72D009387076C88 +:102688005CC7B24041018280797122D441462A84D4 +:10269800977501009385C5C3054506D6D93C5946AB +:1026A80081451305A1002D3C85679387A703414603 +:1026B800A28568007C84113CC14568003536C88510 +:1026C80085660146B79503000545EF30403293779C +:1026D800F50F9DEB97750100938545C10545513C64 +:1026E800E1463000B79503000945EF3040301374D8 +:1026F800F50F0DC81376F50F977501009385C5C1C1 +:102708000545853C094411A81376F50F9775010016 +:10271800938585BE0545B13C0544B25022852254B7 +:102728004561828097750100938505BE0545913402 +:10273800EDB732852D463DE390210947631DE60438 +:10274800D841411106C6102318332207518F41661C +:10275800130826FE63080703130836FE63070703FA +:1027680005166316C70213070005CC4533D6E70ADA +:1027780092A297E0FF1FE780200E0146B240328503 +:10278800410182801307C003CDB71547F9BF2390D5 +:1027980006002946E5B72390060005463285828063 +:1027A800411106C622C426C24AC0802513740402F9 +:1027B80059E003C305000948AE876310030903A85D +:1027C80045000343080003481800220833686800DE +:1027D8000D631303239063016804BA8841670517E2 +:1027E800631FE804639F0804130700053689636CB8 +:1027F800D704C847B284A6851306000597E0FF1FD3 +:10280800E780800583A7418F85E3B2402285224473 +:1028180092440249410182802244B24092440249D2 +:10282800854741016F60501E9C43E5D34A86A685C3 +:1028380001458297D9BF2144C9BF0544F9B7294446 +:10284800E9B72D44D9B73544C9B7C167F917630C3F +:10285800F502411122C406C685472A84639AF50009 +:1028680022852244B2409385C18E41016F80403B4E +:1028780089476396F5008545EF90204B75D1B240A6 +:102888002244410182808280411122C42A84416508 +:102898009385C18E7D1506C6EF8080381705000028 +:1028A8001305E5FA0588EF90604005C02244B24060 +:1028B80097E6FF1F938606764146AD4517E5FF1F4D +:1028C8001305057641016F80E02BB2402244014593 +:1028D8004101828009C523AAA18E01458280454510 +:1028E800828011476362A70897760100938686ACB9 +:1028F8003345D52018414111AE87369706C6B285B3 +:102908000287130700056145639BE700130600056E +:10291800138581BF97E0FF1FE78000F40145B240AF +:102928004101828029476145E39BE7FE29461385DB +:10293800C1BECDB729476145E393E7FE2946138514 +:1029480001BEC9BF1307C0036145E39AE7FC13063C +:10295800C0031385018F7DBF15476145E391E7FCEF +:1029680015461385418E7DB709458280411122C4E1 +:102978002E849385C18E26C206C6AA84EF60D00332 +:10298800058919CD97E7FF1F83D7276F1EA0A2855A +:102998002244B24026859244014641016F70804A24 +:1029A800B24022449244494541018280828001110B +:1029B80026CA9384019022CC2A848A20C16706CE35 +:1029C800F917630AF50497E7FF1F83D7277FF917DD +:1029D8002E8663CCF5006244F240D244177501009C +:1029E8001305859E05616F3071046C85014781462A +:1029F800ED45EF5030792AC619CD3085A28597E08C +:102A0800FF1FE78060E58A202C008D3709C5ED455A +:102A18002800EF60800EF2406244D2440561828053 +:102A28001D7186CEA2CCA6CA09C989476309F504D7 +:102A3800F6406644D644256182800A85AE84328495 +:102A480097E0FF1FE78040E122868145268597E0D1 +:102A5800FF1FE78040E4A2850A85EF20E01503C741 +:102A6800C1908547E316F7FC13060032930500046E +:102A780003C5318123860190EF30004A55BF0A858E +:102A880097E0FF1FE78040DD177501001305C59427 +:102A9800EF30C17971BF13870190AE870E23639C15 +:102AA800A50052A3177501001305C5943E863EA3E1 +:102AB80076A36F30E17217750100130565956F30C5 +:102AC800E1761387019056211E236396F6060111BD +:102AD80006CE22CC138431810820C167F9178945B5 +:102AE8001CC323A20190EF30A06208209145EF306B +:102AF800206208208945EF30A06108209145EF3019 +:102B080020610820A145EF30A0600820930500024D +:102B1800EF3000600820C145EF30805F854713061D +:102B2800F100854513055030DC87EFF06044F24032 +:102B3800624405618280177501001305658D6F3049 +:102B4800E16E3D8923A4A19095477D1563E0A71602 +:102B5800177701001307C7973345E5201C4141113A +:102B680022C4BA9706C626C22E848287177501002A +:102B78001305858A2244B240924441016F30016BAB +:102B8800BC2119476390E7022E85253F6C201775F5 +:102B9800010013056589EF30A1641775010013055D +:102BA800658AC9BF0D47E38AE7FEB24022449244D2 +:102BB80041018280B8219547E319F7FE9387019078 +:102BC800962341677917AA25638FE600EFF0A05690 +:102BD8001775010013050588EF3041651775010069 +:102BE8001305C58941BFFA25938431818AA3BAA305 +:102BF8009A29882013060064DAA3BA298945FAA31A +:102C0800DD4717E7FF1F231BF75AEF30E030882016 +:102C1800096613060690A145EF3000308820056646 +:102C2800130606C89145EF30202F88201306007D33 +:102C380093050002EF30402E72242E2417750100F0 +:102C480013058582EF30C15951BFB8218D471775DB +:102C5800010013056583E31AF7F429BFAC219147F6 +:102C68006397F500177501001305858321B7994708 +:102C7800639FF5002285B1356C20176501001305A7 +:102C8800A57A2244B240924441016F30615595477C +:102C98006399F5001C30F9F71775010013050582D3 +:102CA800D1BD177501001305E581E1BF82807171FF +:102CB800170500001305A52006D722D526D3EF3027 +:102CC800E07293843181A147054488A0FC8270009A +:102CD800930780028545130550302318F104408678 +:102CE800EFF0002917E6FF1F13068644DD4513059C +:102CF8007030EFF0E02717E6FF1F1306664C9D457E +:102D080013056030EFF0C0265008894513051031CF +:102D1800EFF000269008894513052031EFF0402593 +:102D28009305000A0945EF405067930500140D45C7 +:102D3800EF40B06685452945EF403066F9679387CF +:102D480007249008914513057040BEC84085C0858A +:102D58004086230A0100EFD0B0551306A10085452F +:102D680013050040EFD0D0541306B1008545130574 +:102D78001040EFD0F0535008854513052040EFD0A0 +:102D880030537000854513055040EFD070527D5583 +:102D9800EFE050457D55EF7090657D55F53417E6A9 +:102DA800FF1F13066637D5450145EFE0303313069C +:102DB800C0048145C808A2C8EFF08FB2130680038B +:102DC8008145280802CAEFF0AFB1B707030493871B +:102DD80017203EC69008954793050005014523082E +:102DE800F100013650089305C0030D45DD3C700025 +:102DF80095451145FD34C16713870190F91717E50B +:102E0800FF1F1305653B1CC323220700E13413850C +:102E1800818FEFF0A031EF60801B2A548820BA50D0 +:102E28009A5485454D616F70616139713EDA83A7A7 +:102E3800418C3315A02806CE32D436D63AD842DC97 +:102E480046DE7D8D0DC534102E86138581C593050C +:102E5800C00336C6EF403157635BA0009307B00349 +:102E68003345F50AB3450508138581C58936F2400F +:102E78002161828091C125BE8280411111469385CE +:102E880081C437A5030006C6EF2080468566014643 +:102E9800B7A503000545EF209035138681C48D47FB +:102EA8009146B7A5030009451CA2EF205034B24053 +:102EB800410117D3FF1F6700A352011122CC06CE90 +:102EC80026CA2E849397556063D8070603C53181B7 +:102ED800EF207052AA840DC91C211307000B638CC4 +:102EE800E7021307000D639EE7003821C547631A00 +:102EF800F70070216C31176501001305E55EEF30AE +:102F0800212E2685EF20F0431315F468F240624421 +:102F1800D2440561828058219307F007E313F7FE36 +:102F28000E25176501001305E55D97E7FF1F239739 +:102F3800B728EF30E12AF1B793F705029DCFC167B3 +:102F480003D50190F9176307F502930780076C0012 +:102F580003C631817C86EF50B015AA85176501003C +:102F68001305055E91E52C86176501001305455B81 +:102F7800EF3001271345040251BF93F7150091CF95 +:102F880017E6FF1F13068618938541C903C53181CB +:102F9800EFE090591345140095BF93F7250013C52A +:102FA8002500ADF793F7850085C383C731811307E3 +:102FB800803E814613068002A14503D50190EFE0CB +:102FC80010521345840099B793F705019DC3014733 +:102FD80089460946814503D50190EFF0E017AA8597 +:102FE800176501001305C557EF30811F134504010C +:102FF80031BF93F7450085C303D50190EFF0601307 +:103008000566130606C8914503C53181EF20D070C7 +:1030180013454400E5BD13F50504E30905EEB13D8C +:1030280013450404E5B503A58190828041116146EA +:103038008145138501F806C6EFF08F8A1306500AFA +:103048008145138581F9EFF0AF89938701F78545AD +:10305800114523A0070023A2070023A407002396F5 +:10306800070023870700EF20602A85452145EF20C8 +:10307800E02985454145EF20602985451305000273 +:10308800EF20C0288D4513050004EF2020288D452A +:1030980013050008EF2080278D4513050010EF2049 +:1030A800E0268D4513050020EF2040268D451305A9 +:1030B8000040EF20A0258D451315B028EF200025EE +:1030C800B71700409387870B1307000498C31307AB +:1030D800000898C31307001098C31307002098C36B +:1030E800B2401307004098C31317B02898C3410192 +:1030F8008280C16769782A8681461385F7FF0508AB +:10310800B3C7060863E3B7008280B307D6009C23E1 +:1031180021473D8D93771500058189C7B347050180 +:1031280033C507087D17334707086DF78506C9BFFC +:103138008D476305F50463EAA70085476301F50237 +:1031480089476306F502094582809147E31DF5FE2C +:10315800B717004003A5470A1355454835A0B717C8 +:10316800004083A7470A93F70702F1FF8280B71749 +:10317800004083A7470A918B91CB8280B717004004 +:1031880003A5470A13553548050582800545F9BF4B +:103198009386818D1387819110439C42918F51466C +:1031A800637AF60C9C42011122CC26CA4AC84EC644 +:1031B80052C456C206CE938481F91CC301492684A1 +:1031C800854A9149154A1375F90F9D3763115507BB +:1031D80083C71409238B040863E2F9028507A388CF +:1031E800F40805098504E31049FFF2406244D2441B +:1031F8004249B249224A924A056182800327C4099A +:103208008347040A2183E207D98FB397272913D765 +:103218008700A30EF408230FE40813D70701E183FE +:10322800A30FE4082300F40AA38804085DBF83C73A +:103238006409A388040863E6F9008507238BF4086A +:103248004DB70327C4098347040A2183E207D98FAE +:10325800B397274913D78700A30EF408230FE40870 +:1032680013D70701E183A30FE4082300F40A238B93 +:10327800040885BF8280914763E2A702938781F99A +:1032880003A7C70983C7070A3315A0282183E207C4 +:10329800D98F7D8D133515000505828009458280FB +:1032A800994763E9A706176701001307A72C334559 +:1032B800E5201C41BA978287B71700409387870B90 +:1032C8001307000498C31307000898C313070010D6 +:1032D80098C31307002098C31307004098C3131717 +:1032E800B02898C3238001F88280B71700401307DD +:1032F800000423A6E70A138701F885471CA383A7C0 +:10330800818D93D687001CB334A393D60701E1833C +:1033180034B35CA38280B717004013070008D1BFFD +:10332800B717004013070010E9B7B7170040130795 +:103338000020C1B7B7170040130700405DBFB7179B +:1033480000401317B02875B79307000F3305F5022F +:103358003356F60A938701CA3E956FE07FD88947AE +:1033680063E4A7049307F07763E0B7049DCD93F770 +:1033780075008D8193F5F50F1307000F3305E502EE +:10338800138701CA0548B317F028AA95B3C50508DD +:10339800B306B700942233F5F64063150601DD8EB7 +:1033A80013F5F60F2E9708A3828081478145E9B768 +:1033B8000947AA87636DA7021307F0770145636978 +:1033C800B7029DC193F675008D8193F5F50F13072C +:1033D800000FB387E702138701CA2E97BA9788238D +:1033E8003355D5400589828081468145CDB7014551 +:1033F80082801971EEC686DEA2DCA6DACAD8CED6DD +:10340800D2D4D6D2DAD0DECEE2CCE6CAEAC8938DE0 +:1034180081F903CC4D00631C0C18A30D0102230E87 +:103428000102A30E0102230F0102938BC1B09389FD +:1034380031B4914A1944854409490D4B176A010072 +:10344800130A0A152D46DE850818EFE01FC8034742 +:1034580051037D171377F70F63E8EA0CB307870268 +:1034680083460103EE97D4B383461103F4A383562E +:103478002103FD16F4B333C606089356860094A7B5 +:1034880083466103B4A76397960083C75D088507E1 +:10349800A382FD080346810383457103B387ED00CA +:1034A8002206A381270393060702B367B600218289 +:1034B800B3A6B621F0A603469103CCB66300261B3B +:1034C800630C661B631D96001D661306F60763787A +:1034D800F600930700F8DCB693070007FCA68347BD +:1034E8004103B386ED00238F0602A381F6048347C8 +:1034F800A1033A8C2384F60493078702B3A7B72164 +:10350800A388070023890700A383070023840700F3 +:1035180093078701B3C7B721A38507002386070050 +:10352800A386070023870700EFE0BFC0B3068C021D +:1035380093070C02B3A7B721CA27FC2733868D014E +:103548002181A207C98FAD0BEE96EE2298263EC0C8 +:1035580083C8A6000348860483473604D432A18171 +:1035680022074D8F6286D2850545EFE09FC0E39B19 +:103578003BED239501FC854709471306002D81453E +:10358800138501CA2382FD00A380FD082384FD085A +:10359800A38FED06238D0100EFE09FB4938741B51B +:1035A8001387B1BD23890700BD07E31DF7FE138C00 +:1035B800818D03A70D0083270C00998F1307100333 +:1035C800637EF73603C74D0085476319F7368327AF +:1035D8000C00138981F9CA8B23A0FD0083D72D0322 +:1035E800CA89014D85072399FD02054489449377CB +:1035F800FD0F3E853ECE4131130B1900938A2900F9 +:10360800138A6B00631A851AA301890283D74903B9 +:103618008507239AF90283478902638187182384DF +:103628008D086391971463108D068D47A384AD03AD +:103638002387FD020546976501009385E5F9EFE0CC +:103648005FB383C7FD076396972283C71D086394FA +:10365800A723050D5A89D689D28B51BF1306001EA0 +:10366800B3D7C70A1306C003B387C702DCB633C68D +:103678000708935786009DB52146B3D7C70A056644 +:10368800130606E1D5B7631F9D0C83260C009387AC +:1036980001F8E0A3D4C78D4723858D02A387FD02D7 +:1036A800094697650100938525F3EFE09FAC83C732 +:1036B800FD076390A71D83C71D08639E871A83C7EC +:1036C800AB0085466399D71A03D62D03238E019044 +:1036D8009306C012938CC191631FD61803D6490371 +:1036E8009306500963F6C600239A09022380FC005A +:1036F800F24793098D020348E903F91793F7F70F87 +:103708003ECEB3A7B921962BAC2B03C60C00A182E1 +:10371800A205D58D8546930B0D026318D8247245F2 +:1037280032D242D63ED42ED061311256630BC52612 +:10373800A25732588255F6239C27A182A207D58F1B +:1037480063100623B3A6BB21CA26F426BD07218130 +:10375800A206C98E63D4D700B3C60708B3A7B92198 +:10376800F4B31DAC854C8D4723049903A306F902D5 +:103778006A8697650100938525E60545EFE07F9FFA +:1037880063100D0283C7FD07A3819D0989466397CE +:10379800D70C5A89D689D28B054D91BDA3068902CB +:1037A80083C7FD076397970C83C71D086395870C2C +:1037B8008547E3E6A7F171BDE31495FE83478902C7 +:1037C800A30199026389970823848D08639B870462 +:1037D80063158D0283260C00938701F8A382A70145 +:1037E80094C79147A3849D022387FD0205469765E8 +:1037F80001009385A5DF054599B563149D028326CD +:103808000C00938701F8E0B3D4CB91472385AD032F +:10381800A387FD02094697650100938525DD0545C7 +:1038280069B5894C914723049903A306F9026A866E +:1038380097650100938585DB0545EFE09F93E311CC +:103848000DF683C7FD07A3819D09E38497F5854697 +:10385800E391D7F431A0A306990299B7E39B97F3B4 +:10386800938741B59C2383C61D0885076395F60099 +:1038780081B7E38787FE050D95475A89D689D28B8C +:10388800E317FDD603D72D039307C01203C6FD0720 +:103898006316F70A93848101DC4498281384418DC8 +:1038A80014400C4013D587006207498F3387E540E1 +:1038B8003AC49844E20797650100938565D7218348 +:1038C800D98FB387F6403EC283C71D030D453EC05E +:1038D80083C80D0303C8FD0283C7ED0203C7DD02D9 +:1038E80083C61D08EFE0FF88DC4498281440104088 +:1038F80093D5870062074D8F3307E6403AC4984452 +:10390800E207976501009385E5D52183D98FB387B1 +:10391800F6403EC283C71D0309453EC083C7ED027A +:1039280083C80D0303C8FD0203C7DD0283C61D0853 +:1039380003C6FD07EFF06FCF239501FC03CBFD070E +:1039480089476314FB4C856A8144938941B5138484 +:1039580001F73D4B0549138A418D938A0AE1C1AEAF +:10396800BD46B3F7D70AC517C5BB6319D602F623F8 +:103978008827A1822205558DB3A6BB2103D8C6008E +:10398800F4263D0513588800A206B3E60601E3595C +:10399800D5DCE8B3B3460508A18294A77245EFF0D9 +:1039A8001F9C33A6B9211E2A342AB3ABBB21A1839D +:1039B800A206DD8E83D5CB0083C7EB00A181A207C9 +:1039C800CD8FBD45B385B60263DCF50613871600B7 +:1039D80018BAB346070813D7860038AAB3A9B9217D +:1039E80083D6690003C7890013054006A182220710 +:1039F800558F3305A7023AD03ECE3345F502EF4046 +:103A080061049355850013068D013346B6219356FC +:103A180085014CA6935505014CB674A628B6EF301F +:103A2800917DF247025783C60C002A8813061D00B1 +:103A3800976501009385C5BC0D45EFE08FF325BD63 +:103A4800A3080600230906008546230FD90279B783 +:103A5800B38564033D46138501F7CE959105EFE0E4 +:103A6800CFE610306306260183C71D08639EC72A68 +:103A78005C2038308D46A207D98F58306314D71C84 +:103A8800B3875703582434348D452207558F54344F +:103A98006392B61C33075703742089C683C5DD02B9 +:103AA800639ED526743089C683C5ED026398D526F2 +:103AB800142489C683C5FD026392D526143489C6A9 +:103AC80083C50D03639CD524342489C683C51D038F +:103AD8006396D524742405459385418D6394A6186F +:103AE80001486314D61A944103C7CD0883A58D08ED +:103AF8006207A1814D8F3387E6406367F722238FE2 +:103B080001F6938B418D83A70B0083C61D0813D73D +:103B18008700A384FD082385ED0813D70701E183F7 +:103B2800A385ED082386FD08631DD62AB28697650E +:103B38000100938565B80D45EFE0AFE383C61D0826 +:103B4800103097650100938525B70945EFF0EFAD73 +:103B580083A70B00103013D78700A386FD0823879F +:103B6800ED0813D70701E1832388FD08238F01009F +:103B7800A387ED0883C70900130716001377F70F0B +:103B8800A380ED0863F3E7183420850797650100E3 +:103B9800938545B60D45A380FD08EFE08FDD854789 +:103BA80097650100938585B60D45A38FFD0623848F +:103BB800FD08EFE00FDC83C72D08138C81F9E28C38 +:103BC80093E717002381FD08814B0D4D83471C01A6 +:103BD800A5C793872B02B3A7B721D627F8279387C2 +:103BE800AB02A18222073366D7002183B3A7B7218E +:103BF800F4B398A7930680FC1387AB013347B7212A +:103C080054B793062004A388070023890700A30557 +:103C1800070085472306070074A72380FC04930741 +:103C280080073356F6029305F00F13F5FB0F0506D0 +:103C380033460608EFF04FF1850B190C850CE39716 +:103C4800ABF9E1A08946E31FD7E21307C003B387A6 +:103C5800E7020DBD8945E391B6E49306C003330737 +:103C6800D7021DBD944168A413D8860023850D0989 +:103C780013D80601A3850D0913D88601A384DD088E +:103C880023860D09630FA606054883A6CD0883C5BC +:103C98000D0903250A0093D88600E205B3E515014E +:103CA800B305B54063EFE51083270A003420976514 +:103CB80001009385259E13D78700A386FD082387D7 +:103CC800ED0813D70701E1832388FD08238F01F648 +:103CD80083270A00A387ED080D4513D78700A3841F +:103CE800FD082385ED0813D70701E183A385ED08B7 +:103CF8002386FD0805478547A380FD08EFE06FC7C9 +:103D080029A09841158FE37CF7DE338564033D468F +:103D1800A2854E951105EFE04FBB39A00348E4009A +:103D2800631C0808E31326F7850493F4F40F83C78C +:103D38001900E3EFF4D083C7FD070947639CE758F0 +:103D480003C71D0885476301F74683C53D0203C5C0 +:103D5800DD0203C64D0283C65D0203C76D0283C739 +:103D68007D026312B50203C5ED02631EC50003C5DB +:103D7800FD02631AD50003C50D036316E50003C5EC +:103D88001D03630CF500A386BD022387CD02A3871C +:103D9800DD022388ED02A388FD02F6506654D6544E +:103DA8004659B659265A965A065BF64B664CD64C77 +:103DB800464DB64D09618280238F01F6E31626ED44 +:103DC800A9B77824631C270183A58D0803270A0057 +:103DD800E206A181CD8E158FE373F7D2E31628F59D +:103DE8002DB72687976501009385C58E0D45EFE0B1 +:103DF8004FB883C61D081030268797650100938544 +:103E0800658D0945EFF06F82A1B38547E315FBF295 +:103E1800856A8144138941B5138401F7BD4B8D49E7 +:103E2800138A418D938A0AE101A289456391B614E8 +:103E38009306C003B387D7021DAA09456392A51448 +:103E48009305C003B386B60225AA11456399A51444 +:103E580008206314B514A1A26CA40C4113D88500E2 +:103E680023850D0913D80501A3850D0913D88501EC +:103E7800A384BD0823860D09630FE606DA8883A5A7 +:103E8800CD0803C50D0903280A0013DE8500620565 +:103E98003365C5013305A8406362D52C83270A0022 +:103EA800A380ED08975501009385C57E93D68700BA +:103EB800A386FD082387DD0893D60701E1832388BD +:103EC800FD0885477CA483270A00A387DD081377AC +:103ED800F70F93D687002385DD0893D60701A385BE +:103EE800DD083420A384FD080D45E1832386FD0801 +:103EF800EFE02FA829A018410D8F6376F71003452E +:103F080019003D46A2852695330575034A95110586 +:103F1800EFE0AF9B39A08348E400639C0822E310DC +:103F2800E6F6850493F4F40F83473900E3F5F4E0EB +:103F3800834519003D46138501F7A695B38575039A +:103F4800CA959105EFE06F980347090010300507FF +:103F58006306E60083C71D08E395C7FC5C20343080 +:103F6800A207D58F5430E39236EDB3875703542414 +:103F78002C34A206CD8E4C34E39135EDB38656032E +:103F8800630FE60083C51D08639BC50083C56D08E4 +:103F9800E39D35EB0C2063843501238F01006C20F1 +:103FA80089C503C5DD02E318B5F66C3089C503C5BC +:103FB800ED02E312B5F60C2489C503C5FD02E31C26 +:103FC800B5F40C3489C503C50D03E316B5F42C24E8 +:103FD80089C503C51D03E310B5F40348E40085450E +:103FE8001385418DE31AB8E68148E31AE6E883A50C +:103FF8008D0803C7CD081441A18162074D8F33870F +:10400800E640E360F7F2138C418D83270C0083C6EA +:104018001D0813D78700A384FD082385ED0813D74F +:104028000701E1832386FD08A385ED08238F01F6A8 +:104038006318D614975501009385856E0D45EFE0FA +:104048004F931030975501009385856D0945EFE032 +:10405800DFDD1C2010302383FD0883270C0013D7D5 +:104068008700A386FD082387ED0813D70701E1839E +:10407800A387ED082388FD08034729009307160046 +:1040880093F7F70FA380FD08E37BF7E63420894711 +:10409800054C975501009385656C0D45A38FFD066A +:1040A80023848D09A3808D09EFE0AF8C83C73D0879 +:1040B800638F8701975501009385C56B0D45EFE028 +:1040C8004F8B83C72D0893E727002381FD08938C26 +:1040D80081F9668D014C8546130880078D4883C792 +:1040E8001C01B5C39307AC021307AC01B3A7B721F2 +:1040F8003347B721A3830700A3050700230607005A +:10410800A30607002307070023840700A3880700E6 +:10411800238907002300DD0493072C02B3A7B721E6 +:10412800DA27F027814521832206598E3356060364 +:104138001375FC0F050633460608EFF0EFA08D480F +:10414800854613088007050C990C050DE3191CF921 +:104158007DB3238F01F6E313E6D255B374240547E4 +:10416800639CE60083A68D0803270A00E205A18266 +:10417800D58D0D8FE379F7E88547E394F8DA41B3F5 +:104188002687975501009385655B0D45EFD07FFE27 +:1041980083C61D0810302687975501009385055A58 +:1041A8000945EFE09FC875B5938481F92689A689EA +:1041B800854B054C954C83C7090163978711034BC1 +:1041C800490463030B1013848B013344B4215C440A +:1041D800370A000138347D1AB3F74701A2075A8518 +:1041E800B3EAE700EF301106AA855685EF30C16DB6 +:1041F800634C050C238F010083C741B58507A38055 +:10420800FD08A38F8D075685EF30E17E2A87DA8671 +:104218005E8697550100938525570D45EFD07FF5AC +:104228005C442834138981F9B3F74701A2075D8DEF +:10423800EF30617CB3877D0183C637042A875E86A9 +:1042480097550100938545540945EFE01FBE014489 +:104258008D499C38A5C793072402B3A7B721D62751 +:10426800F8279307A402A18222073366D700218387 +:10427800B3A7B721F4B398A7930680FC1307A4014A +:104288003347B72154B793062004A388070023892E +:104298000700A305070085472306070074A7230026 +:1042A800F904930780073356F6029305F00F137548 +:1042B800F40F050633460608EFF00F890504990444 +:1042C8000509E31834F951B4850B99090509E394F4 +:1042D8009BEFA5BC0547E39AE7A603C71D0883C75C +:1042E80041B58507E313F7A6938481F92689A68942 +:1042F800854A054C130D3006954C83C70901639018 +:104308008711834B9904636C7D0F13848A013344AE +:10431800B4215C44370B000138347D1BB3F76701C7 +:10432800A2075E8533EAE700EF30C171AA8552859E +:10433800EF30E1626345A00C8947A38FFD06A38097 +:104348008D095285EF30216B2A87DE865686975570 +:1043580001009385E5450D45EFD0BFE15C44283465 +:10436800138981F9B3F76701A2075D8DEF30A16862 +:10437800B3875D0183C687042A875686975501004F +:10438800938505430945EFE05FAA01448D499C38B0 +:10439800ADC39307A402B3A7B7211307A4013347FA +:1043A800B721A3830700A305070023060700A30678 +:1043B80007002307070023840700A3880700238931 +:1043C800070085472300F90493072402B3A7B72100 +:1043D800DA27F0279307800721832206598E335660 +:1043E800F60281451375F40F050633460608EFE01B +:1043F800BFF5050499040509E31B34F9B9B2850A28 +:1044080099090509E39B9AEF89B2138681F98347D5 +:10441800260813F5F7031DC913F5170005C501454F +:10442800814609A8BA8633D8D7480507630E08001D +:1044380013F5F60F0505B397D7481375F50F230144 +:10444800F60882800547A145E31EB7FC828001116A +:1044580022CC26CA06CE4AC8138401F85C30054728 +:104468009384818D6392E71218449C40998F03A727 +:1044780041B463EEE702975501009385E5350D4594 +:10448800EFD03FCF97550100938505350945EFE0FB +:10449800DF999C40138781F91CC49C401CC889473C +:1044A8005CB08347270893E747002301F7087C207F +:1044B8000547639EE7109840544458C89840158FA4 +:1044C80083A6C1B46360D704138981F90347F90748 +:1044D800631AF7029C4097550100938565320D4594 +:1044E8005CC489477CA0EFD0DFC89755010093854D +:1044F80025310945EFE07F938347290893E70701B2 +:104508002301F9081387419114439C40958F930622 +:10451800301F63F1F6029C401CC3C53D01CD2AC67D +:10452800EFE01FD8324697550100938565300D4559 +:10453800EFD03FC41C20B9C314405C209840A1822E +:10454800E207D58FB307F7401307700C6378F702BB +:104558009C40975501009385A52E0D4513D78700DC +:104568001CB038A013D70701E1835CA038B0EFD0A6 +:104578005FC00145EFE0DFD2238001F8F2406244DA +:10458800D2444249056182800947E392E7F218481C +:104598009C40998F03A781B4E3EBE7F0975501009E +:1045A8009385C5240D45EFD0DFBC97550100938551 +:1045B800E5230945EFE07F879C40138781F91CC8F4 +:1045C800A38201F88347270893E78700F9BD138979 +:1045D80081F9834659020946E396C6F2E394D7F275 +:1045E8007C30E391E7F258489C40998F03A701B5C6 +:1045F800E3EAE7F09C40975501009385E5210D45D6 +:104608005CC8239301F8EFD0DFB697550100938576 +:10461800A5200945EFE07F818347290893E7070232 +:10462800C5B5C167E9782A8801471385F7FF1303E1 +:1046380016008508B347070863E3B700828063085C +:10464800F6006306E300B307E8009C233D8DA1460E +:1046580093771500058189C7B347150133C5070846 +:10466800FD16B3C60608EDF60507E9B7A94763F7CF +:10467800B704011106CE1C21B145D0855C801C31E0 +:1046880023120100DC807C215C837C31DC831C25C7 +:104698005C841C35DC843C250A855C85B1477C81BB +:1046A800EFE03FA56882B1450A85EF0030680A85CA +:1046B800B145EFE02FFCF240056182808280D5474A +:1046C80063F3B70C797122D426D24AD006D64ECEDF +:1046D80083490501AA842E892D469305B500480013 +:1046E800EFD0BF9E1384F9FF1377F40F914763E06F +:1046F800E70818849307400663F3E7005C8418878B +:104708009307400663F3E7005C87AD473304F40280 +:104718009387C1B02D464C003E942285EF30813EF0 +:104728001DCD2D464C002285EFD03F9A4E869755D9 +:1047380001009385A5110D45238E01F8EFD07FA3C5 +:1047480097550100938505120945EFE00FEEEFD06C +:104758005FBB26850546CA85113F014531A8975597 +:1047680001009385E5100D45EFD0BFA0DDB7268584 +:104778000946CA85E53D0945B2502254925402596A +:10478800F2494561828005458280011106CE1C21CF +:1047980023110100231201005C801C31DC807C2184 +:1047A8005C837C31DC831C255C841C35DC849307AA +:1047B80010407C8591475C86EFE0FF86B947C88644 +:1047C800B9450A857C81EFE0DF926882B9450A85A0 +:1047D800EF00D0550A85B945EFE0CFE9F240014531 +:1047E80005618280E14763F8B70C011122CC26CA23 +:1047F80039462A84AE849305B5000A8506CE4AC890 +:10480800EFD0BF8C9480154709469387F6FF93F73E +:10481800F70F636AF7060C810880138741B5814753 +:104828003A892546034847006311A80803485700FA +:10483800631DD806034867006319B8063D47B38768 +:10484800E70239468A8591073E994A85EF30812BE0 +:1048580029C539468A854A85EFD03F879755010093 +:10486800938505020D45238E01F8EFD09F900945E9 +:1048780097550100938505FFEFE02FDB138541B5C0 +:10488800EFD0DFBD05462285A685CD33F2406244D0 +:10489800D2444249014505618280975501009385BC +:1048A80025FF0D45EFD0FF8CF1BF85073D07E39B42 +:1048B800C7F60946C9BF05458280411106C63C3581 +:1048C8001387418C1443FD8B6383D7001CC30546B3 +:1048D800713BB240014541018280411122C426C288 +:1048E80006C63C3505472A84AE846395E7041387DA +:1048F800418C1C4393F6470091C693F7B70393E79F +:1049080007021CC397550100938545F90D45EFD063 +:104918005F86938781F905472384E708A383E7081F +:104928000546A68522859933B24022449244014522 +:10493800410182800947E399E7FE1387418C1C43B4 +:1049480097550100938585F60D4593F7F7FD1CC330 +:10495800EFD03F82A38F0100E1B7CD4763F2B712D2 +:10496800011122CC06CE34352A8413F71600898A21 +:1049780011EBC9EE22850546D539F240624401455E +:10498800056182805C25483509466319C5063D6680 +:10499800130606A6B387C70237761B0013060674EC +:1049A8000145B3D7C70A138641B4032806006384B8 +:1049B80007011CC23A858348F40009487C246392A5 +:1049C80008053D68130808A6B38707030568130898 +:1049D8008838B3F7070B37781B0013080874B3D768 +:1049E800070B03284600638107035CC285E2138531 +:1049F80041B42EC6EFD05FC9B245ADBF1306803EA5 +:104A080051BF1308803EC9B72A87A5CA10388946FE +:104A18001C28631ED604BD66938606A6B387D702F4 +:104A2800B7761B0093860674B3D7D70A938641B42A +:104A380090466384C7009CC60547283809463C2829 +:104A4800631AC5023D66130606A6B387C702056644 +:104A580013068638B3F7C70A37761B0013060674A1 +:104A6800B3D7C70AD046638AC700DCC649B79306DE +:104A7800803E6DB71306803EC9BFE30D07EE85BFC4 +:104A880005458280F17701119387C70C06CE1387FD +:104A980081F97C80B70711043EC48347F707834632 +:104AA800F702A30101005C868347E70202C293F67E +:104AB800D60F93F7D70FFD17054693B717006394E2 +:104AC800C60093E7270083460703054693F6D60FEB +:104AD8006394C60093E74700034717038546137797 +:104AE800D70F6314D70093E78700DC86B945B94729 +:104AF8000A855C81EFE0EFDF6882B9450A85EFE05F +:104B08006FB7F24005618280411122C406C6138442 +:104B180081F90347740885476310F7028947A3039F +:104B2800F40897550100938525D983A7818D0D45F4 +:104B380023A8F190EFD0EFE38347740885CBEFE02B +:104B48008FCE91476304F502EFE0EFCD9547630FF1 +:104B5800F50097550100938565D70D45EFD06FE1B6 +:104B6800A38F010083A7818D23A8F1908347840830 +:104B7800A1C31386818D938601918C4218420D8FB3 +:104B88009305700C63F6E502184298C28D460147FA +:104B980063E5F600850713F7F70F2304E4080347D6 +:104BA800740889476316F7002244B2404101D9BD11 +:104BB800B240224441018280011106CE22CC26CA8D +:104BC8004AC84EC6A94763E8B702975501009385BE +:104BD80025D10D45EFD0EFD90945975501009385AB +:104BE800E5D0EFE08FA40545F2406244D244424943 +:104BF800B24905618280834935003C212A84A20993 +:104C0800B3E9F900AE846387B9009755010093852D +:104C1800A5CEC1B718219307C00C6317F700183148 +:104C28009307000C6302F70297550100938505CEA0 +:104C38000D45EFD00FD4094597550100938545CE12 +:104C4800EFE0AF9E09454DB7034955005C21114679 +:104C580022093369F900EFF0DF9CAA86630A25036D +:104C68004A8697550100938565CC0D45EFD06FD0E6 +:104C78001146CE852285EFF0DF9AAA864A86094535 +:104C880097550100938545CCEFE02F9A0D45A9BFB4 +:104C9800302497550100938565CC0D45EFD06FCD35 +:104CA8003C245547FD1793F7F70F636FF700175725 +:104CB80001001307E7CCB3C7E7209C43BA97828764 +:104CC800A6852285EFF07FAC014539BFA6852285F0 +:104CD800EFF05FB1D5BFA6852285EFF05F9EEDB7F7 +:104CE80020348547E312F4FE17550100130545C823 +:104CF800EF10C15323868190C1BFA6852285EFF0AE +:104D0800DFBBD9B7A6852285EFF03FBD75BF383424 +:104D18008547E31BF7FA5C2481CB138781F9834627 +:104D28002708D58F2301F7080546A6852285EFF0C9 +:104D3800FF9359BFA6852285EFF03FC271B771670F +:104D4800130707208D47638EE50009671307075887 +:104D58006389E500056713070796D1476393E50064 +:104D68008D47A309F504230A0504A30A0504230BA8 +:104D78000504828045E9B71700409A2FF176411162 +:104D8800FD1606C622C426C24AC0758F9AAF9387FD +:104D9800870B094798C32E89054585453284BD236D +:104DA8008D450945A523094689450545EF00407C01 +:104DB8004A852127B737004005472381E7408D46BC +:104DC800A381D74093060004A380D7402387E740F8 +:104DD8000D45212F95450545EF00C07293840109C3 +:104DE800B7E700E03707000823A0E7101306C0055F +:104DF80081452685EFD0CFAECA852685893793575A +:104E08008400A38D8404238EF404935704016180E5 +:104E1800238F8404B2402244A38EF40402499244AE +:104E2800410182808280011122CC06CE26CA4AC85E +:104E38004EC613840109034704058547631DF70817 +:104E4800384C7C48370900017D191386818D14423E +:104E580024483377270193D5870122074D8FB3F76D +:104E680027013387E640A20793D68401D58F63F4E0 +:104E7800E7061C42A180B3C4040813D78700A30B1C +:104E8800F404230CE40413D70701E183A30CE4041E +:104E9800230DF4043737004083475740858BB9C347 +:104EA8008347A740BE949307F00463D69700A38076 +:104EB800010E2381010E28482181334505082295DA +:104EC800412D3C48A1833E95B3470508A183A3081B +:104ED800A4042309F404F2406244D2444249B2498A +:104EE800056182802686A285138501049389E19154 +:104EF8002380010EEFD06F9D239099007C4C0347CF +:104F0800B405B3F72701A207D98F89C7A6851385EA +:104F18000104829703D60900814513850104A38003 +:104F2800010E2381010E2380010EEFD06F9B239F7A +:104F3800019055B74111194506C651201305600463 +:104F480097B0FF1FE780C025EFD0EF9CF1651706EB +:104F580000001306A6C6938505200145213D312F83 +:104F6800EF003007EFD0801FEFD02FE6EFD03FD40F +:104F7800EFE0CF8B97550100938505A60545175699 +:104F880001001306A6C8EFD0CF9EB717004083C50F +:104F9800470417550100130525A5EF106124EFD02C +:104FA8004F995135EFE0CF9E97C0FF1FE78060977C +:104FB800EFE02FC4EFF05FB5EFF06FC9CDB737174B +:104FC80000408347E70412054111BD8BC98F93F751 +:104FD800F70F93068008F3B6068093F6860836C660 +:104FE8000F100000930670052300D704930680FA7B +:104FF8002300D7040F1000002307F7042300070439 +:10500800B247F3A707800F10000041018280011109 +:1050180026CA06CE22CC8947B314A02863F9A70074 +:10502800954763EAA70A93042500B3149028B71795 +:10503800004003D70705B166558F2398E704130787 +:10504800800873370780137787083AC60F10000067 +:10505800130770052380E704130780FA2380E70409 +:105068000F10000003C737051375F50F13670708FE +:10507800A389E704A389A70403C7370513670702B1 +:10508800A389E70423800704B247F3A707800F101A +:10509800000081470146B716004003D706051317DD +:1050A80057606352070403D7060583C62605139481 +:1050B8008700931727013694C9833A043E94C12C7C +:1050C80033549402F240D24433558502624423A0FB +:1050D800A19205618280994793040040E309F5F4A1 +:1050E8009304F07FA9B703C726059375F70F637379 +:1050F800C70085072E8655B741113A8E2A83814805 +:10510800930E407E130F0019930F400663EF6E1441 +:10511800130700193377E502854E0D4F994FFD426D +:1051280063E1BE1861477D1603A501924696AA85DC +:10513800B3F6E602130780703387E602F946330EAA +:10514800DE0293D61700858B7297369791E38145D7 +:10515800B307A602A166FD161306302A13D8F70076 +:10516800F58FB387C7021166B385A5023307A70277 +:10517800B29513F6F71F1E06BD81A583F98EB3A657 +:10518800C6203D83AE96BA9713D70601BA972D6706 +:105198001307078C33D6E702B3C6060833F7E702CE +:1051A80042964207558FB716004083C7F60293F719 +:1051B8000708DC838C8383C7F60293F70708E39616 +:1051C800F5FE9C83B7160040638107129307800899 +:1051D800F3B7078093F787083EC40F100000B7178E +:1051E8000040930670052380D704930680FA238035 +:1051F800D7040F100000D0DB83C6170393E6060818 +:10520800A388D70223800704A247F3A707800F10BB +:1052180000001166B71700407D16D45BCC5FAD8ED9 +:10522800F18EE5FE93068008F3B6068093F68608AD +:1052380036C60F100000930670052380D704930626 +:1052480080FA2380D7040F100000D8DB03C71703A8 +:1052580013670704A388E70223800704B247F3A76C +:1052680007800F100000410182807D133377E3032C +:105278001308E01601CF3377F3031308D01619C7C4 +:1052880013783300133818001308D816C298BDBD18 +:1052980013F81500F91563FBBF029305E801AE98F2 +:1052A8009A851383F5FFE395E5FF854501CF13083C +:1052B8004006337805038145630608009375350079 +:1052C80093B51500F105AE989A8599BDB38502414D +:1052D800DDBF83C7F60293F70708DC838C8383C797 +:1052E800F60293F70708E396F5FE9C83FDD3F9BD14 +:1052F8000D06719A81473307F5006393C7008280D2 +:1053080014433387F500910714C3F5B7914763EC4D +:10531800B704974701009387276EB3C5F5209841D6 +:105328003E97B71700409387470B02879443371778 +:105338000040B3F6A64094C39306070B9C42B3F70C +:10534800A74019A8944337170040B3F6A64094C362 +:105358009306070B9C42C98F9CC29307070A984380 +:105368003377A74098C38280944337170040C98E8B +:10537800D9B798433377A74098C3B71700409387A6 +:10538800070A9843498FF9BF9843498FF5B7B7176C +:10539800004098279306000C1377070C6315D70075 +:1053A80003A5019282809827930600041377070CBF +:1053B8006310D702942713070002FD8A99C2982721 +:1053C8007D8B3745C323130505603345E50282808D +:1053D800942713070002FD8A99C298277D8B3755B9 +:1053E800E80113050580D5B7B7F700E08847828044 +:1053F800B717004083C76704411193F7F70F13F7F6 +:10540800D70F19C113E7270093078008F3B7078060 +:1054180093F787083EC60F100000B71700409306A1 +:1054280070052380D704930680FA2380D7040F10D1 +:1054380000002383E70423800704B247F3A707800B +:105448000F10000041018280411193078008F3B7D3 +:10545800078093F787083EC60F100000B717004073 +:10546800130770052380E704130780FA2380E704F5 +:105478000F10000003C76704136707012383E704BD +:1054880023800704B247F3A707800F1000004101EB +:10549800828093864181AA87884217D7FF1F130706 +:1054A800676CAA9763E9E7000A87130707FC636438 +:1054B800F7009CC282807D558280411122C406C6B5 +:1054C8002A84F1352947B307E502B2408D83B3D763 +:1054D800870222449507B3D7E70237370040B3C79E +:1054E80007082316F7404101828037370040834779 +:1054F80027401A0593F7F703C98F93F7F70F23018E +:10550800F7408280B737004003C7174019C94D8F4D +:10551800A380E74003C70740136787002380E7405D +:105528008280B375B740A380B7408280AA95B73709 +:1055380000402147B73600406313B500828003C698 +:10554800B740E30BE6FE102105052384C640EDB7FE +:105558008147373700408346A74081E633C50708AF +:10556800828003468740B306F500850790A2E5B719 +:10557800371700403E2FB3C7070893F707FCB3C798 +:1055880007083EAF09C93E2F8E055D8ED18DB3C584 +:1055980005082EAF82808280B287411113962500BC +:1055A800BE8506C6EFF0DFD4B240014541018280D6 +:1055B800011122CC26CA939625002A84B284AA8592 +:1055C8000146054506CE36C61D21B2462686A28569 +:1055D80009453129F2406244D2440145056182807F +:1055E8005D71A2C486C62E849397556063DB07005D +:1055F800192511C1B9231315F468B6402644616111 +:10560800828093F7150013C51500E5FB8967ED8FB8 +:10561800B1C3EF80F06D1945EFF07F9FAA8523A6EF +:10562800A1920A85E12A51468A856810EFC0FFA930 +:105638006810EF10E003FD2437F60200239AA192C8 +:10564800130606E0896503C58192EF00F00C131577 +:10565800D46865B711656D8D4DD1174501001305E7 +:10566800E53AEF00B13C13060064916503C58192E9 +:10567800EF00900A1315E46849B75D715D469745D8 +:1056880001009385E538174501001305255886C69E +:10569800A2C497B0FF1FE780002401E91745010065 +:1056A80013058538EF00913801A0896737F700E0C6 +:1056B8009387F7701CCB37E600E00564232086103B +:1056C8009307F0021CC393078008F3B7078093F78A +:1056D80087083EC00F100000B71700401307700579 +:1056E8002380E704130780FA2380E7040F100000E3 +:1056F800B847B70600C1FD16758FB706000E558F5F +:10570800B8C7238007048247F3A707800F1000005B +:1057180097B7FF1F9387A76723A2F192930700F813 +:10572800A30AF640814513064003680097B0FF1F9F +:10573800E780601697C7FF1F9387C7363EC6930753 +:1057480004E0FC80E17793C727812310F102B7B703 +:1057580003003ECAB7070103938707103ECC93079F +:105768000008FC868547230FF10097070000938700 +:10577800E7E23EDCB7F5030097070000938787E36D +:105788003EDE814697070000938747C65000E10533 +:1057980019453ED6A92C19464C0013053102EFC015 +:1057A800DF92B24791C7BC801304F4BF6363F4006F +:1057B80001A06800EF003046AA8501C9174501001D +:1057C8001305C527EF00D12101A0B6402644616129 +:1057D80082804111170500001305C5E006C622C4E2 +:1057E800EF00D0401384819208A025280820224485 +:1057F800B240130600328965410139AF17B7FF1F60 +:10580800130727CC18C13707C0A858C10567130765 +:10581800479C3AA517B7FF1F130727CC0EA518C931 +:105828008280397126DA06DE22DC4AD84ED652D476 +:1058380093048008F3B7048093F787083EC20F10DB +:10584800000037140040930970052300340513093C +:1058580080FA230024050F1000008347F40293E721 +:105868001700A307F402230004049247F3A7078054 +:105878000F1000001945EFF08FF9138AC192AA851D +:105888002320AA00174501001305451DEF005115F7 +:10589800814671468545814701471305507EEFF0E3 +:1058A800BF8583570A0017B7FF1F130787C13AC67A +:1058B800FC8285679387479C3707C0A8FC836800EC +:1058C80097B7FF1F938767C13AC83ECEEF00705D58 +:1058D800F3B4048093F4840826C40F100000230056 +:1058E8003405230024050F10000001000100834740 +:1058F800140393E70702A308F40223000404A24751 +:10590800F3A707800F100000F2506254B7E700E0D9 +:105918003707001023A0E710D2544259B259225A2F +:1059280021618280411103A5019206C622C426C2C4 +:105938004AC0EF10517417C9FF1F1309A98B2A8693 +:10594800AE86032509008325490017C4FF1F1304E9 +:10595800E48AEF10813E10405440EF10F1141040DB +:105968005440EF1071142A86AE860325090083255A +:105978004900EF10813CAA842E842A86AE8603252E +:1059880009008325490017C9FF1F13092988EF104B +:10599800C13A97C7FF1F9387E7869043D443EF1018 +:1059A800B1100326090083264900EF00B148EF1023 +:1059B80031609307850CB3C707081305006433F5F6 +:1059C800A70AEF1051642686A286EF10F10D032670 +:1059D800090083264900EF00F145EF10715DB240E0 +:1059E800224433450508924402494101828001114D +:1059F8002A8706CE2E8526CCB2854ACA368622C686 +:105A080037240040B7E700E0FD5603A90700C44368 +:105A180023A0D71823A2D7189307F7FF93F7F70FF8 +:105A2800894663E0F60AB717004083C75704B706EC +:105A3800040093F7070299E3B7C60300F9576375A3 +:105A4800D5043308C50063E1060589476314F704E4 +:105A5800098297B0FF1FE78000BDAA87371700406B +:105A6800930670052300D704930680FA2300D70411 +:105A780083464704C18A2302D70437E700E023207E +:105A88002711232297103244F240E24452493E85BE +:105A9800056182808547631FF7008567FD173E967D +:105AA800E98F3E96FD777D8E7D8D97B0FF1FE7804D +:105AB80080BD65B797B0FF1FE78000C49307150046 +:105AC80071BFB547631AF7001305900B97B0FF1F16 +:105AD800E78080C7814759B7B1476315F7001305B9 +:105AE800B00AEDB799476317F70097B0FF1FE78033 +:105AF800C0C6CDB79D47631BF70023A0050023A2AE +:105B0800050097B0FF1FE78040CBE9B791476317BF +:105B1800F70097B0FF1FE78020CE6DBF81471DDFDC +:105B2800F1572DBF23AC05FE1C4189E70100010098 +:105B38000CC182803E8783A787FFEDFF232CB7FE29 +:105B48008280411122C437E400E026C204403707AE +:105B5800200006C6F98C2320E4180F10000009E97C +:105B6800232094101545B24022449244410182807A +:105B78000347E5FF9307F00F6306F700232094100F +:105B88001145D5B797B0FF1FE78040330145232063 +:105B98009410D1BF411126C2B7E400E04AC003A95E +:105BA8000400B707200006C622C43379F90023A0F1 +:105BB800F4180F10000009E523A02411014535A0B1 +:105BC8009565938505D0C98D2A842105B3C5050837 +:105BD80033450508EF40113165D1FD5723200500F5 +:105BE80042A17CA123A024112105B2402244924461 +:105BF8000249410182804111B7E700E026C284438F +:105C08003707200006C622C4F98C23A0E7180F1016 +:105C1800000093868193904201440147B28799EF2F +:105C280019C8832784FF6311C4069CC2FD57232C1F +:105C380004FE230FF4FEA165E1291DA083C5E7FF3B +:105C4800639DA50221C0832784FF6315C4029CC2FB +:105C5800FD57232C04FE230FF4FEA165EF40017EBF +:105C6800B24022852244B7E700E023A0971092446F +:105C780041018280232CF7FEE1BF11E03E8783A714 +:105C880087FF71BF3E84E5BF232CF7FE45B741115E +:105C98004AC037E900E022C403240900B7072000FE +:105CA80006C626C27D8C2320F9180F10000089E54E +:105CB80023208910154515A0AA8497D7FF1F83C7ED +:105CC80077BE2E8563F5F400854763EE9700953D12 +:105CD800B7E700E023A087100D45B2402244924464 +:105CE80002494101828083A785FF99E703C7E5FF41 +:105CF8009307F00F6308F700A935B7E700E023A082 +:105D080087104DBF238F95FE13858193EFF09FE198 +:105D1800A1652685EF40817201452320891075BF52 +:105D280023AC019282802A8713F5F50F2DC141110A +:105D380022C426C206C64AC013F41500AE8419C090 +:105D4800814709A88147A1468507638AD70233D6C8 +:105D5800F4487DDAB1463367F7203307D70203A941 +:105D68004195B317F02833C407083A9983270900E7 +:105D7800032549008297232009002322090033457F +:105D88009400B240224492440249410182808280B8 +:105D98000111B7E700E026CA84434AC83707200044 +:105DA80006CE22CC2A892E86F98C23A0E7180F105C +:105DB80000009305F00432C633450608EF409112FF +:105DC8002A8419C53246CA8597B0FF1FE780C0A844 +:105DD800F24022856244B7E700E023A097104249C9 +:105DE800D24405618280411193757500014506C64C +:105DF800B315B028B3C50508EF40613F09C508458C +:105E0800B240410182800145E5BFB7E700E0984311 +:105E1800B706200023A0D718758F0F10000097D65B +:105E2800FF1F83C636A8637ED50083A60195332558 +:105E3800D5201621B3F5B6400EA123A0E7100145E1 +:105E4800828023A0E7100D4582807971B7E700E0D2 +:105E580026D284433707200006D622D44AD04ECE15 +:105E680052CCF98C23A0E7180F100000930785FF88 +:105E780093F7F70F1D47636BF70831473307E502C0 +:105E880083A74195BA979C43D1C31D893315A02890 +:105E9800AE89B345050805452EC6EF4041352A8928 +:105EA80029C9B245054517DAFF1F130AEAA4B13F0D +:105EB80083A78194829783578A002A8481463387EF +:105EC800370313060064B3B7370313050732B33536 +:105ED800E500BE95EF00613CB307850083264A00C4 +:105EE8003E8763E4A70063E4D7003387D7402324C1 +:105EF800E900B7E700E023A097100145B25022540B +:105F080092540259F249624A45618280B7E700E03B +:105F180023A097100945DDB7797122D437E400E052 +:105F28004AD003290400B707200006D626D24ECE51 +:105F380052CC56CA5AC85EC63379F9002320F418E1 +:105F48000F10000097D7FF1F83C7D7956376F5001A +:105F580083AB819463970B00B7E700E023A0271178 +:105F680099A097DAFF1F938A2A9903AB4A00B7478B +:105F780036FE938707C83E9B83D78A002E8AAA8459 +:105F8800B385C702B2898146B3B7C7021385053204 +:105F9800B335B50013060064BE95EF000130637099 +:105FA800AB02232024110145B250225492540259C5 +:105FB800F249624AD24A424BB24B45618280829B87 +:105FC80083D78A002A8413060064B3853703814681 +:105FD800B3B7370313850532B335B500BE95EF0067 +:105FE800C12BB307850003A74A003E8463E4A700DA +:105FF80063E4E7003384E740D2852685EF40211F1C +:1060080001C900C5B7E700E023A02711054569BF0E +:1060180093E504F04145B3C50508EF40A16C11E9CB +:1060280097D7FF1F83A7878C85DBA68511458297A5 +:1060380025B71387C1931C4399EB08C32326050092 +:1060480000C52311450104A12322050065BF3E8731 +:10605800DC47F5FF48C7DDB77971B7E700E026D21E +:1060680084433707200006D622D44AD04ECE52CCDD +:1060780056CA5AC85EC662C466C2F98C23A0E7181D +:106088000F10000029CD2A892E8AB28AB6892144A8 +:10609800B14C138B4195414CB30B940383270B00F0 +:1060A800DE979C43A9EF9375740056860545B31592 +:1060B800B028B3C50508EFF03FE631C183270B00D0 +:1060C800DE9723A0270123A24701638409002380C8 +:1060D8008900B7E700E023A09710014521A023A07D +:1060E80097100945B250225492540259F249624A13 +:1060F800D24A424BB24B224C924C456182800504F5 +:10610800E31C84F9B7E700E023A097102145D9BF25 +:10611800011126CAB7E400E04EC683A9040022CCC8 +:1061280052C4B707200006CE4AC82A8A2E84B3F97B +:10613800F90023A0F4180F100000EF40410B17C915 +:10614800FF1F1309297605E5A2855285EFF0FFCBDD +:10615800834709006381470523A034111945F2409C +:106168006244D2444249B249224A056182802311DD +:106178000500A2855285EFF05FC983470900638651 +:10618800470123A034110145D9BF83576900C18F46 +:106198002313F900FDB7835769005D8C2313890029 +:1061A80065BF01114AC837E900E022CC0324090081 +:1061B800B707200006CE26CA4EC67D8C2320F918C4 +:1061C8000F100000BD4763E5A704B144B30495026E +:1061D8009389419583A70900A6979C4395CB93750E +:1061E80075000D81B315B028B3C50508153783A709 +:1061F80009000145A69723A0070023A20700232032 +:106208008910F2406244D2444249B2490561828011 +:10621800B7E700E023A087100945E5B741114AC058 +:1062280017C9FF1F130909680327890006C622C476 +:1062380026C245C38346190003A60195814763C05A +:10624800D70A97C6FF1F83C6767C954797C4FF1F5A +:106258009384847B63EFD70683C7C19EBDEB17C4C5 +:10626800FF1F13046469544083A78194631FD706F2 +:1062780082975440374736FE130707C83697B30747 +:10628800A7003E8563E4E70063E4D7003385D74081 +:10629800DC4889CB83A601A09C463707CDFF7D1734 +:1062A800F98F9CC611E1484097C7FF1F83A7C763B2 +:1062B800829719E5DC4891CFEF407161EF40D157E3 +:1062C800DC4881CB03A701A01C47B7063300D58F54 +:1062D8001CC7B24022449244024941018280B3A5BE +:1062E800C7208E21FDF5850799BF829783268900EF +:1062F8005840B387A6003E8563E4D700E3EAE7F891 +:106308003385E74071B7411106C623A2A1940295CF +:10631800B24097C7FF1F23AFA758014541018280AC +:1063280023A4A1940145828041111146814513851A +:10633800019406C622C426C223AE019223A2019468 +:1063480023A4019497A0FF1FE780E05413060002DE +:10635800814517C5FF1F1305E55497A0FF1FE78068 +:106368008053EFB07068C14717C4FF1F13048453EC +:106378008545130500123CA093844195EF40813672 +:1063880088C025C13020994781453306F602130697 +:10639800060C97A0FF1FE78000509C40382093848C +:1063A800C1949387070C9CC0B347F72023A8F194A6 +:1063B800EFF01F976D2E1C3098401746010013060A +:1063C800E6E4B3C6E72090C293862700850793F7D3 +:1063D800F70FB3C7E72014B0170700001307E794B7 +:1063E80098C3B240224492444101828097C6FF1F5D +:1063F8009386464B2A87BC228832637BF5001306B6 +:10640800150083A7C19490B2B347F52098C3828042 +:106418001305F00F82801C41F9C7370700F07D8F04 +:10642800B706002089476311D70C5A21411122C4AD +:1064380006C62A8445C719469305F00F5D05EF3057 +:10644800116C05478D47630BE5081C4491C75854E8 +:10645800994749C7185859C313064003814517C5BA +:10646800FF1F1305254697A0FF1FE780C0421306AC +:106478004003A28517C5FF1F1305C54497A0FF1F3A +:10648800E780803D97C7FF1F9387C743DA2701E757 +:1064980013070010DAA7F82719E30547F8A79A2B7E +:1064A80019E36D479AABF83719E30D47F8B7B82BDE +:1064B80019E30547B8ABB83B19E3F837B8BBD82B95 +:1064C80019E34947D8AB583801E713074006D8BB4A +:1064D800FD572386F1A6EFF03FE58147B2402244FD +:1064E8003E854101828089473E85828079714ECE02 +:1064F80097C9FF1F9389494083A7090006D622D46C +:1065080026D24AD052CC829713090064B3352503AA +:1065180003D68900814617CAFF1F130AAA3832C654 +:1065280033052503EFF0705783240A012A840145B7 +:106538006386840232463305944063EF840003A5E2 +:1065480049008146B335A9023305A902EFF0F0549A +:10655800B30795403385870023288A00B250225418 +:1065680092540259F249624A45618280011122CC53 +:106578000A852E84414697350100938525BB06CEB2 +:10658800EFB0BFB418083324E420035704FFF240E7 +:10659800624497C7FF1F83D7C73637450F00BA979E +:1065A800130505243355F5020561828097C7FF1F3F +:1065B80083D7273551471D45637CF702794719452D +:1065C8006378F7021307200315456373F70213076F +:1065D800B0041145637EF700130740060D45637943 +:1065E800F7001307600909456374F70013B5B70F7F +:1065F8008280411122C426C22E84AA8406C6058C34 +:1066080097A0FF1FE780E020B327A402B2402244EE +:10661800338597001375F50F92444101828041112B +:1066280022C426C22E84AA8406C6058C97A0FF1F02 +:10663800E780201EB327A402B24022443385970086 +:1066480033450508924441018280411122C426C283 +:106658002E84AA8406C6058C97A0FF1FE780601BBE +:106668003335A402B24022442695924441018280E7 +:10667800AA8517C5FF1F13052528184197A7FF1FCF +:1066880093876746630DF7004111514606C697A0E8 +:10669800FF1FE780601CB24001454101828005452B +:1066A8008280411106C622C426C249C51C41AA855A +:1066B8000545A5CFDC41B5CB9E25A5CBBE25B5C7E5 +:1066C800514617C5FF1F1305252397A0FF1FE78015 +:1066D800A01897C7FF1F2387072297C4FF1F93841B +:1066E800A421884017C4FF1F1304C41DEFF05FC323 +:1066F8007C2899EF8A249307807037460F0033056A +:10670800F5021306062481468145EFF0103968A882 +:106718007828AD4763E4E700B1477CA81705000077 +:10672800130505DDEFF03FBE0145B2402244924417 +:106738004101828097C7FF1F23A0071897C7FF1F33 +:106748009387871B17A7FF1F1307E73998C3378756 +:106758003200FD56130727A1D4C398C797C7FF1F58 +:106768002382071AB7C7004023A4D726BDB7011153 +:1067780022CC17C4FF1F1304E414084406CE26CA0B +:106788004AC801E90545F2406244D24442490561DC +:1067980082805C54E5DB185875D770008545829770 +:1067A8001844B247E300F7FE4A249305E00417C9EA +:1067B800FF1F1309290FEF30F172232CA90079D19B +:1067C80052249305F00F814497A0FF1FE780A00C87 +:1067D8007C240326890163C1F402328597A0FF1F38 +:1067E800E780C06D014597C7FF1F23A9070C97C70E +:1067F800FF1F23A7070C41BF4E241844B3879502F7 +:10680800898185043385E7001C5808C28297C9B777 +:1068180001114EC697C9FF1F9389C90A83A789002A +:1068280022CC4AC852C406CE26CA56C25AC02A8AA0 +:106838002E843289638F071C03A7C902630E0710D1 +:106848001307F01F636CA71097C4FF1F9384840578 +:1068580083AA840163970A0803D5C90095659385BF +:1068680015E0EF30316888CC2A867DC583D5C9000C +:1068780083A7C90203A589008981829783A7890014 +:1068880083AA8401DCCC89476313FA08C1476315DE +:10689800F40C83D7C9001147938707FCB3C7E702F5 +:1068A800B3C75721B4231307A0056393E60A9A23B5 +:1068B8006310470B938547004A85228697A0FF1FE0 +:1068C800E78080F99C4C5685639D57110145F2403D +:1068D8006244D2444249B249224A924A024B056173 +:1068E8008280D84CE381E7FA03D5C9009565938582 +:1068F80025E0EF30315FAA8A25C183D5C9002A86F1 +:1069080083A7C90203A5890089818297ADBF8D47F6 +:10691800631CFA00C1476311F40483D7C900938745 +:1069280047FDF19BD697BDBF91476318FA006315E1 +:10693800440383D7C900A117EDB793070010631D5F +:10694800FA00A14763EA870083D7C900C117D1BFFE +:106958009C4C5685639A570B294595BF1D676377ED +:10696800E508130705E099463347D70283D6C900DF +:1069780017CBFF1F130B0BF33307D702B30AF7002C +:106988008327CB016395570183248B018DE003D5C1 +:10699800C9009305E004EF30F154AA8455DD83D58E +:1069A800C90083A7C9022A8689815685829791459D +:1069B8001307A00593F5C50FB387B400B4236390FC +:1069C800E6049623639B460391052286A6954A858D +:1069D80097A0FF1FE78040E883278B01E38897EEA5 +:1069E800268597A0FF1FE780604DCDB5A166F916F3 +:1069F800E3E4A6F63307E54095BFAC3365BF8327CC +:106A08008B01E38B97F4268597A0FF1FE780004B47 +:106A1800A1B797C5FF1F83A565EA9DDD914793063A +:106A2800A00593F7C70F3387F5003023E316D6F296 +:106A38001223631B460191072286BE954A8597A0BB +:106A4800FF1FE78060E159B53C33E1BF97C7FF1FDF +:106A5800938747E7984721C7985B31C385466310FA +:106A6800D504411122C417C4FF1F1304A4E3104C1A +:106A780006C615C2CE27484C89810297084C97A0B4 +:106A8800FF1FE780A04397C7FF1F23A907E297C707 +:106A9800FF1F23A707E2B24022444101828082807F +:106AA800011122CC17C4FF1F1304C4E14EC6832969 +:106AB800840026CA4AC852C406CE56C22A89AE8461 +:106AC800328A6385091A1C5899EB2945F2406244B9 +:106AD800D2444249B249224A924A056182805C54B2 +:106AE800EDD79307F01F63E0A70C97C9FF1F9389A1 +:106AF80069DB83A78901A9C7084483A7C901639AE9 +:106B0800A70489476311F906C147E390F4FC5E24A2 +:106B18001147938707FCB3C7E70203A78901B3C7E7 +:106B2800E7201307A005B8A3239027012686D2855E +:106B38001385470097A0FF1FE78000D2014579B76A +:106B48004A249305E004EF30F13923ACA9004DF550 +:106B5800ADBF4E245C5403A68901898182971C44E9 +:106B680023AEF90079BF8D47631DF900C147E39E45 +:106B7800F4F45A24130747FD83A78901719BBA9738 +:106B88004DB791476317F900E39124F55A2421176B +:106B9800E5B793070010E31AF9F2A147E3E797F284 +:106BA8005A244117D1BF9D676372F506930705E024 +:106BB8001947B3C7E7025A2497CAFF1F938A8ACE98 +:106BC800B387E702BE9983A78A01A1CB83A7CA012D +:106BD800639E370503A58A0191471308A00593050D +:106BE800F00F13F7C70FB306E500B022631D0605C3 +:106BF80083D80600B03263962805B307F64063C110 +:106C0800970411072686D2853A952DB721677917FB +:106C1800E36DA7EAB307F54079BF4A249305E0047A +:106C2800EF30512C23ACAA0055F145B54E245C54E5 +:106C380003A68A0189814E85829723AE3A0159BFFE +:106C48008EA2B28779BF5224B385970091051306A7 +:106C580006FCE36CB6E613863400719A1106B29707 +:106C68002381060123902601BCB261BF97C9FF1F8B +:106C7800938949C383A789019DCB03A589019147BE +:106C88001308A0059305F00F13F7C70FB306E50027 +:106C9800B022631C060383D80600B032639728012C +:106CA800B307F640E3DF97F48EA2B287F1BF7C24E6 +:106CB8004A249305E0043305F50233450508EF300F +:106CC800712223ACA90055F909B552246C24B38567 +:106CD800C502338697001106E3E9C5DEADBF01455D +:106CE8008280011106CE2EC6EF40907419C5B245B8 +:106CF800F2402A2105616F802067F240494505610D +:106D08008280A38C0196238C019623AA019623A83E +:106D1800019623AE019423AC019497C7FF1F938774 +:106D2800E7BE3707B40098C33707A0001307070A60 +:106D3800D8C337C70700130707B898C74167410783 +:106D4800D8C737077F0098CB370781FFD8CB7D5747 +:106D58009AAF8280011152C42A8A214522CC26CAC0 +:106D68004AC84EC606CE2E84B2893689BA84EFE068 +:106D78007FE205C9930700FD1CA19947A3004501BF +:106D88003CA12303250164B123123501AA8522857C +:106D98006244F240D2444249B249224A05616FE056 +:106DA8001FEFF2406244D2444249B249224A056187 +:106DB800828023AAA196828023A8A19682800111AD +:106DC80022CC26CA4AC806CE4EC62A89AE840144B9 +:106DD800B309890063699400F2406244D24442498D +:106DE800B2490561828097A0FF1FE78080A2B34760 +:106DF8000508A1832380F9009307140093F7F70F80 +:106E0800850963F89700CA97090488A31374F40FD7 +:106E1800C1B73E84C1B7411122C417C4FF1F130470 +:106E280064B00A28C16706C6FD17630AF50003C6E1 +:106E3800C19C93850196EF40D042FD571EA8B240F1 +:106E480022444101828023900500B1CE8147130E70 +:106E5800000C63FAC7043387F6000348070013875A +:106E680017003347070863000804B308E800634CB9 +:106E78001603B388E60083C80800638608021383F4 +:106E880028FC1373F30F63706E021303F8FF23904B +:106E980065006396A80005073385E6008280C297DF +:106EA800B3C707087DB701458280011122CC26CAE5 +:106EB8004AC84EC606CE97C4FF1F9384A4A62E893F +:106EC80090C4CCC088C02A8441469305F00F4A85F7 +:106ED800EF30E142854963193503C840C145EFF0F9 +:106EE8001FEE41469305F00F2285EF3041410549D9 +:106EF8006314250362448840F240D2444249B249AF +:106F0800C14505616FF0BFEB414681454A85EF30C9 +:106F1800013FE31835FDD1B7414681452285EF3061 +:106F2800013EE30925FDF2406244D2444249B24998 +:106F380005618280411122C426C22E84AA8471462A +:106F4800814517C5FF1F1305E59D06C64AC097A0D2 +:106F5800FF1FE780409417C9FF1F1309A99C2388C6 +:106F6800819CA3079900EF80A041854719C18147FB +:106F780049452306F900B24022449244024941019E +:106F880082809DC11DC185476317F500DC3193E7F9 +:106F980007FCDCB121A089476304F5000545828020 +:106FA800DC3193F7F703F5B7014582808DC10DC138 +:106FB800DC311307000C054593F7070C638AE700DB +:106FC8001307000409456395E7000D4582800145D4 +:106FD8008280411122C4005D06C626C21DC8AA844B +:106FE800085009C597A0FF1FE78040ED485009C524 +:106FF80097A0FF1FE78080EC085409C597A0FF1FE2 +:10700800E780C0EB228597A0FF1FE78020EB23AC29 +:107018000402B240224492444101828009ED97C79C +:10702800FF1F83C7079117C5FF1F1305E59081CB85 +:1070380013858196828017C5FF1F1305E58F82800F +:1070480017C5FF1F0345E58E828017C5FF1F03255F +:10705800658D828017C5FF1F0325058D828097C720 +:10706800FF1F83A7A78C8843828017C7FF1F1307BA +:10707800678B14479C4285079CC268379307F00FBB +:107088006305F50091656F30613B8280011122CC68 +:1070980006CE2E8432C6EF40F0479147B245631CB6 +:1070A800F50083A7019781CB9C4391C72285624451 +:1070B800F24005618287F24062440545056182809D +:1070C800797122D42A844A214ECE06D626D24AD0B5 +:1070D800EF4090259389819731E583C40900930790 +:1070E800F00F639AF40083C591972685EFF07FBF70 +:1070F80019E1238C01964A20EF40D0419147631C47 +:10710800F50097C7FF1F9387E78156209A2B639452 +:10711800E6007D579AABB250225492540259F24974 +:1071280045618280582504212A893AC6EFF07FEA12 +:107138004A85EF40506B4A20EF40503983C7090019 +:10714800324799C3E38197FA9307F00F5220E384FB +:10715800F4FA74202820A685EFF0DFBF69BF41113B +:1071680026C206C622C44AC097B4FF1F9384847BF4 +:10717800F8349307F00F6303F7042A892945EFE0F1 +:107188007FA12A8405CD930700FD1CA1A147A30078 +:1071980025013CA1FC24938581961105A30FF5FEDA +:1071A80019469790FF1FE780206BA2852244E83498 +:1071B800B2409244024941016FE07FADB24022449F +:1071C800924402494101828079715AC82A8B2E85DE +:1071D8004ECE52CC56CA06D622D426D24AD05EC645 +:1071E8002E8AB28AB689EF4030146DC5045D2A89AB +:1071F800F5C09C501305400391E361459C5489C731 +:107208009307450133C50708638609009307C5013D +:1072180033C50708DC5089C79307750133C50708CC +:10722800EFE05F972A845DC5614681459790FF1F0F +:10723800E780606697BBFF1F83CB4B6E63940B00A0 +:10724800834B0900930700FD1CA0A947A300640114 +:107258003CA0230354018C502312440113058401DC +:1072680091C908C47146130A44039790FF1FE78029 +:10727800A05E52858C5491C948C45146130A4501F1 +:107288009790FF1FE780405D5285638C090008C80E +:107298007146CE85130AC5019790FF1FE780C05B32 +:1072A8005285CC5099C548C85D469790FF1FE78026 +:1072B800A05AA2855E85EFE09F9D2254B250925459 +:1072C800F249624AD24A424BB24B4A850259456159 +:1072D8006FF03FD0B250225492540259F249624A98 +:1072E800D24A424BB24B4561828001114EC6AA89EF +:1072F8002E8526CA06CE22CC4AC8AE84EF40D002DC +:1073080031C517B9FF1F03496961631409000349AF +:1073180005001945EFE01F882A840DC981451946E3 +:107328009790FF1FE7802057930700FD1CA0B947DF +:10733800A30034013CA046A0A2856244F240D24496 +:10734800B2494A85424905616FE07F94F240624440 +:10735800D2444249B24905618280797162C42A8C5B +:107368002E8526D24ECE52CC56CA5AC85EC606D6EE +:1073780022D44AD0AE84B28B368BBA8A3E8AC2896E +:10738800EF40807A25C52A894145EFE0BF802A84ED +:1073980031CD414681459790FF1FE780C04F17B513 +:1073A800FF1F0345A55719E103450900930700FD91 +:1073B8001CA0BD47A30084013CA023047401A304BE +:1073C800640123055401A305440146A02326340182 +:1073D800A2852254B25092540259F249624AD24AC2 +:1073E800424BB24B224C45616FE07F8AB250225427 +:1073F80092540259F249624AD24A424BB24B224C49 +:1074080045618280411126C206C622C44AC097B48B +:10741800FF1F93842451F8349307F00F6306F70491 +:107428002A893945EFE00FF72A841DCD930700FD1F +:107438001CA1A30025012301050097B5FF1F938513 +:10744800A54F0D0519469790FF1FE780E040BE281D +:10745800A2853EA4DC345CA42244E834B2409244C1 +:10746800024941016FE0BF82B2402244924402497E +:1074780041018280011156C2AA8A314526CA4AC8EA +:107488004EC652C406CE22CC5AC0AE84328AB689C1 +:107498003A89EFE02FF03DC12A842685EF40C06885 +:1074A80029C903CB119D639B0A0083A701A49C47AC +:1074B80091C7CA864E86D28526858297930700FD96 +:1074C8001CA09D47A30054013CA046A023134401DF +:1074D8002314340123152401A2856244F240D244C6 +:1074E8004249B249224A924A5A85024B05616FE0E5 +:1074F8000FFA17BBFF1F034BDB43C9B7F2406244C7 +:10750800D2444249B249224A924A024B05618280DA +:10751800411126C2AA84214522C406C62E84EFE062 +:107528006FE715C5930700FD1CA1C5473CA13C307A +:10753800AA853CB15E205EA17C207CA17C307CB118 +:107548002244B2402685924441016FE04FF4B24094 +:107558002244924441018280797162C42A8C59453F +:1075680026D24AD04ECE52CC56CA5AC85EC666C239 +:107578006AC006D622D4035D0103834C41032E89D9 +:10758800B28BB6843A8BBE8A428AC689EFE08FE016 +:1075980035C5930700FD1CA19547A30085013CA1B3 +:1075A800A30175012A8419461105B9C0A6859790CB +:1075B800FF1FE780602A23065401230A940123153C +:1075C800640123174401231834012319A401A28557 +:1075D8002254B2509254F249624AD24A424BB24BB8 +:1075E800224C924C024D4A85025945616FE02FEAC0 +:1075F80081459790FF1FE780002A75BFB25022543B +:1076080092540259F249624AD24A424BB24B224C36 +:10761800924C024D45618280797122D406D626D2D9 +:107628004AD04ECE52CC094459C12A890A212E8A01 +:107638005144EF40604FAA843DC91C5D4544A5EB09 +:107648009165938545711305C002EF30A10988DC67 +:10765800AA894D4429CD1306C00281459790FF1F82 +:10766800E780602383570900938649003685239174 +:10767800F90071469305490036C69790FF1FE780C9 +:10768800A01D89472380F900B2460356090083C527 +:10769800C19C0145EF50A01E2A8463060A00D285CA +:1076A8002685EF40303A01C42685EFF09F92B2500C +:1076B8002285225492540259F249624A45618280D5 +:1076C80031CA411122C426C24AC006C62E89B284D4 +:1076D800EF4080452A84514505C8485409C597900C +:1076E800FF1FE780A07DF1452685EFE06FEAAA87B6 +:1076F80048D44D4591CB582093674700630409004F +:10770800936767005CA00145B24022449244024955 +:107718004101828009458280AD4763EAA70097B797 +:10772800FF1F9387A71E3325F5200A218280416514 +:107738007D158280011122CC2A842E8526CA06CE88 +:10774800AE84EF40603E0DCDB7470F009387F72317 +:10775800094563E2870281450A8541469790FF1FE4 +:10776800E7806013A68560800A8541804081A30177 +:107778000100EF500000F2406244D244056182806B +:107788004945D5BF2387A19C82806F50A009797194 +:1077980052CC2A8A328526D24AD04ECE56CA5AC8E8 +:1077A8005EC662C406D622D42E8CB28A368BBA8BB9 +:1077B8003E89C289C684EF40203705C92A846310F0 +:1077C8000A1893774B000343450085CF13632301C1 +:1077D800639A0B1463180912639B090885E81C5CFB +:1077E8001373B3FF23026400C5E7B25022549254C6 +:1077F8000259F249624AD24A424BB24B224C456185 +:1078080082801373D3FF13630301D9B71363430053 +:10781800230264009C484146A6851CD413058401B4 +:107828009790FF1FE780400363190C1063860B0ACB +:10783800485409C59790FF1FE7804068F1455E8569 +:10784800EFE00FD548D4005C4DD01C5081EB91651A +:10785800938535717145EF20F16808D008500DC146 +:107868007146DE859790FF1FE78000FF11A813631C +:10787800430023026400D9FC005C630C0C0235D47D +:10788800639A0902B1EC29A0005C25D0639409022F +:107898002254B2509254F249B24B224CCA865A86AC +:1078A8000259424BD6855285D24A624A45616FF0E9 +:1078B800BF9105DC5C5081EB9165938525715D4531 +:1078C800EF20516248D0485055DD5D46CE859790EF +:1078D800FF1FE78060F87DB7005C01D8E39C09FCD6 +:1078E8001C5481EB9165938515715145EF20915F8B +:1078F80008D4085451DD5146A6859790FF1FE780AC +:10790800A0F579B71363430023026400E39404F0FD +:10791800E30C0CF6485415E9F1454A85EFE04FC7EA +:1079280048D431A81363430023026400E39404EEAF +:10793800E3000CF0E31009FE39B7E31D09FC005C15 +:10794800E30504EAE3930BF025BF9790FF1FE78058 +:10795800E056D9B7011126CA52C406CE22CC4AC86D +:107968004EC62A8AAE84EF40201C25C12A89394593 +:10797800EFE04FA22A8431C997B9FF1F83C909FADA +:1079880063940900834909009307000D1EA0AD47C1 +:107998003CA0930569001305340019469790FF1F12 +:1079A800E78080EB93F714005CA493D4144844B4A4 +:1079B80023154401A2856244F240D2444249224A36 +:1079C8004E85B24905616FE08FACF2406244D24403 +:1079D8004249B249224A0561828003A5819501CDB9 +:1079E800411106C69790FF1FE780404DB24023AC77 +:1079F8000194410182808280411122C406C626C2B8 +:107A08004AC02E84EF40401239C900D517B9FF1F6C +:107A18000349C9F0AA8463140900034905004145D4 +:107A2800EFE04F972A8405CD9307000D1EA1A547C7 +:107A38003CA1DC30938564001105A30FF5FE1946BF +:107A48009790FF1FE78040E19C54A285B2405CC438 +:107A5800224492444A85024941016FE04FA3B24053 +:107A680022449244024941018280938701968EA361 +:107A7800B2A3BE8503C6C19CD6A3FAA36F30707E9D +:107A8800011122CC26CA06CEAA842E84EF40C00952 +:107A98000DC954251147AA874945639FE6009C5F95 +:107AA80091C3E02B975600009386A6280A8689453D +:107AB80026854080EF400070F2406244D244056160 +:107AC80082805145D5BF21C6411122C426C24AC071 +:107AD80006C62E89B284EF4020052A84514515C078 +:107AE800630609005C2093E727005CA01305840166 +:107AF8004146A6859790FF1FE78000D69C48014520 +:107B08001CD4B24022449244024941018280094572 +:107B18008280011122CC26CA06CE2A84AE84EF4088 +:107B2800A00019C96C0022854486EF40406EF240DF +:107B38006244D244056182805145D5BF6F4000142C +:107B48004111C16726C24AC006C622C4FD172A8948 +:107B5800B2846390F502B285EFF0AF9809E5238C03 +:107B68002197A38C9196B240224492440249410144 +:107B780082802E852E84EF30307B11CD1C210D455F +:107B8800E39327FF22852244B2400249A685924406 +:107B980041016F70607D4945F9B72D47AA87636039 +:107BA800A70241677D170945638CE50017B7FF1FDA +:107BB8001307C7D5B3A7E72001458EA382800945DF +:107BC8008280011122CC3E8606CE26CA4AC8914739 +:107BD80009446392F50232C6B6843A89EFF08FB54C +:107BE80032462A8409E9CA852685EFF00FACEF00F2 +:107BF800F033EF00D013F24022856244D244424968 +:107C080005618280411106C622C42A84EFF06F8F75 +:107C1800EF009014EFA0C025814517B5FF1F13058D +:107C280065D071469790FF1FE780E0C6930700F084 +:107C380017B7FF1F231FF7CE7D579387C19CB8A3A3 +:107C480080A322852244B240954541016F30C05639 +:107C58001D71A6CA86CEA2CCCAC8CEC6D2C4D6C208 +:107C6800DAC05EDE62DC66DA6AD86ED6AE849397D6 +:107C7800556063DA07341389C19C03450900C1695B +:107C8800930A200AEFD03FF72A84130BF00F930BC7 +:107C98001009154CB94C17BDFF1F130DADC8FD19C0 +:107CA80015E01395F468F6406644D6444649B6494B +:107CB800264A964A064BF25B625CD25C425DB25D34 +:107CC800256182801C20639A5701034AFD002A20FF +:107CD8002286CE85EFF08FBBF1A8034A2900639A6C +:107CE80077091C30639E87012285EFF06FBD2285DE +:107CF800EFD03FE503450900EFD0FFEF2A844DB7E9 +:107D0800639B97115E2005672507639AE7040C4477 +:107D180097BDFF1F938D0DC1882115E5194685056F +:107D280017B5FF1F130545C19790FF1FE780C0B225 +:107D380003C7CD008547631EF70289472386FD00E8 +:107D4800EF70E0686DB703C7CD0085476313F7028E +:107D580097B7FF1F238E07BCEFF0CFEA49BF09672B +:107D6800930657006384D70A63ECF6000907638516 +:107D7800E704E30E6AF7A2855285EFD05FF19DBF55 +:107D880029076372F70279771307A7FCBA97714737 +:107D9800B3C70708E36FF7FC370700181307F77036 +:107DA800B357F748F9D783A74197B1D39C43A1D3D9 +:107DB800228582970DFD75BF832D8400E38B0DFA14 +:107DC80003C70D0097B7FF1F9387C7B519EB03C704 +:107DD8002D0083C61D002207558FBAAB03C73D008F +:107DE800D8B7D4270947E396E6F803C70D0001CBB7 +:107DF80097B7FF1F238E07B203C50D00B1BFCC375D +:107E0800AA2B0D47D8A7EF30C03DFDB71C448823E7 +:107E1800EFF0EFB4E9BD3D476393E7045A20896763 +:107E28009386D700E305D7EC93869701E301D7EC57 +:107E3800CD07E310F7F4C16717B7FF1F035787AFE4 +:107E4800FD17E306F7EA83A70197E38207EA9C4355 +:107E5800E38F07E80965A2854D058297A1BF13073F +:107E6800E003E398E7F03C2005476399E70A83A716 +:107E7800419797BDFF1F83CDDDAB91C7DC4381C719 +:107E88008145014582976830130A8400D285EFF056 +:107E9800EF915C2868B0835804010358E4005A2025 +:107EA8002A8628303EC23E28D286EE853EC09147BB +:107EB800EFF08FEA3C3095E3DD478358040103581F +:107EC800E40074304E203EC23E28528705463EC02C +:107ED8006E859147EF30D07828B083A7819581C708 +:107EE8001145EFF09FAF138A819703450A00E3001D +:107EF80005E083C59197EFE0DFDEE30A05DE343065 +:107F0800930710036389F600522083450A0011473E +:107F18003685EFE03FE4238C0196D1BB3147638679 +:107F2800E7086361F7040D47638EE7041947E39296 +:107F3800E7E46C0813051031EF90B0779305E10181 +:107F480013052031EF90F0767220BC874A2063E653 +:107F5800C7001624B88663FBE60293050002EF709B +:107F6800605671B349476385E7044D47E393E7E0FB +:107F780083A74197E38F07DEDC43E38C07DEA28506 +:107F8800094581A022868D454A20A9B36373E6007E +:107F98007AA063F3D7001EA45A24362412246E2034 +:107FA80001488147EF70604F99B32286B145E9BF18 +:107FB80083A74197E38F07DADC43E38C07DA81452F +:107FC800054582977DB313F52500E30E05CC83A7FD +:107FD800419791C7DC4381C781450545829713C501 +:107FE8002400D1B11D71A6CA9384C1959840A2CC32 +:107FF80086CECAC8CEC6054435CF283397B7FF1FEB +:1080080083C72793B337F000930547003EDEEFE0C0 +:108018005FF798402ADC09452C232EDAEFF0CFEFE2 +:108028002AD80D45EFF04FEF03A904002AD62545BD +:108038000347A9008349B9003AD4EFF0EFEDAA84C9 +:108048002945EFF06FED6258F2572257B256425663 +:10805800D2551375F50F2ACC22C402CA02C802C62B +:108068004EC09308490005459394446026C2EF70BA +:10807800804E2A84F64022856644D6444649B6494D +:108088002561828003A5C19501CD411106C697904F +:10809800FF1FE780A0E2B24023AE01944101828035 +:1080A8008280011122CC06CE26CA8D472E84631306 +:1080B800F504B831E947CA2197B4FF1F9384848631 +:1080C8006315F7009E286382A704EF30F02572201D +:1080D80016243A2401C572A516A93AA94E202830BB +:1080E800EFF04FB95A209E286314F700FD579EA859 +:1080F800054525A88967CD07631CF500BC213147D4 +:108108006385E7004547E395E7FEEFE0DFD0CDB7AD +:10811800B1476317F50003C5119DEFF06FBFC9BFE5 +:10812800C167FD176308F5000145F2406244D24477 +:1081380005618280D831C947E318F7FECC212A208F +:10814800300023140100EF30B0105DB7411122C494 +:108158004AC006C626C213899198834709001307A7 +:10816800E00F2E846380E7041307F00F6383E702B0 +:108178001145EFD03FA2AA8509CD930700FD1CA1A8 +:1081880089473CA1854700B13CB103450900EFD0C0 +:108198001FB0F9572300F900B24022449244024923 +:1081A80041018280AA841145EFD0DF9EAA856DD552 +:1081B800930700FD1CA1894700B13CA124B12244CA +:1081C800B2409244024903C5819841016FD03FAC47 +:1081D800011126CA9384C1959C4006CE22CC4AC878 +:1081E800A5EF2E8991652384A1982A8493857571BA +:1081F8003145EF20214FAA8788C04D45A1CB80A3E8 +:10820800A3800700138527002946CA859780FF1F8A +:10821800E780806494409147B82263E2E702CD4743 +:1082280011CF0546F547630BC7000946C9476307E1 +:10823800C7000D46C1476303C700D547BCA2EFF08E +:108248007FDA09C52AC6EFF0FFE33245F2406244FF +:10825800D2444249056182804545CDBF011126CAF5 +:108268009384C1959C4022CC06CE4AC8494495CFF8 +:108278009C230D44639BA7021389C19C03450900F5 +:108288008945EFD0FFE8034509009145EFD05FE845 +:108298009C400147814680B31306F1008547854518 +:1082A8000145DC87EF7040342A84F240228562441D +:1082B800D24442490561828041114AC006C61389E9 +:1082C800C19522C426C2054783270900631BE50020 +:1082D800C9C72244B24092440249882341016FF041 +:1082E800FFF7A5CF8947631EF5042D45AE84EFD06F +:1082F8007F8A2A843DC1930700FD1CA1E547A3009E +:1083080005003CA1BC3015051946230FF5FEDC20FD +:1083180093855400A30FF5FE9780FF1FE780C05395 +:1083280003C5119D9307F00F6315F5008327090016 +:108338008823A2852244B2409244024941016FD069 +:108348001F95894503C5C19CEFD09FDC2244B240EC +:108358009244024941016FF0FFD2B2402244924454 +:10836800024941018280FD4763FCA70009458280DC +:108378000945F2406244D2444249B24905618280CB +:10838800011122CC06CE26CA4AC84EC62A8421CD5F +:10839800AE89916521059385657133450508EF2000 +:1083A8006134AA8471D5138941980325090009C548 +:1083B8009790FF1FE78080B01385840088C02286CD +:1083C8008145232099009780FF1FE780C04C8327B1 +:1083D80009002286CE8588439780FF1FE780C04723 +:1083E80083270900C2A383A7C19585CB83C7019DB5 +:1083F800918B95C783A7419891CF9843D623624420 +:10840800F240D2444249B24905468D4505450561C9 +:108418006F70801901478146DDB7014599BF49450D +:1084280089BFFD4763FCA700094582800945F240E2 +:108438006244D2444249B24905618280011122CC8A +:1084480006CE26CA4AC84EC62A8421CDAE89916571 +:1084580021059385557133450508EF20A128AA8485 +:1084680071D5138901980325090009C59790FF1F45 +:10847800E780C0A41385840088C022868145232014 +:1084880099009780FF1FE780004183270900228613 +:10849800CE8588439780FF1FE780003C832709002B +:1084A800C2A383A7C19585CB83C7019D918B95C72F +:1084B80083A7019891CF9843D6236244F240D244CF +:1084C8004249B24905468D45054505616F70C00FA3 +:1084D80001478146DDB7014599BF494589BF83A753 +:1084E800419889CFD2238C43411106C69780FF1F3C +:1084F800E7808036B240014541018280094582808B +:1085080083A7419895C303A70198894719CF522398 +:108518000C43411106C69780FF1FE780E033B24045 +:1085280081473E854101828089473E85828083C795 +:10853800019D918B99CF41111385C19706C6EFE034 +:10854800BF87B240FD5717A7FF1F2315F73E41010C +:10855800828001456FE05F86FD572384F198F957C3 +:10856800A384F19823A2019823A0019897A7FF1F3D +:108578009387073D170700001307470798C3170796 +:1085880000001307A7D3D8C3170700001307C7A510 +:1085980098C797070000938707B123AEF1968280AA +:1085A800411126C29384C1959C4006C622C485CB3E +:1085B8002A840D45EFD00FDEAA8519C9930700FD5F +:1085C8001CA18D4700B13CA19C408823EFD02FEC23 +:1085D80019C42244B240924441016FF0BFAAB2408C +:1085E800224492444101828056210111096706CE36 +:1085F80022CC26CA13066703AA87639DC6001C45BA +:1086080001458C23EFF09FB40545F2406244D24403 +:1086180005618280130677036396C6001C450545ED +:108628008C23CDB713068703639CC6061C45938429 +:1086380091981307E00F80239C206389E7021307B2 +:10864800F00F6382E7021145EFD0CFD4AA8501CDA0 +:10865800930700FD1CA1894700B13CA1A3010500B7 +:108668008820EFD0CFE2F9579CA079BF83A7C195A6 +:108678000145C1DF15E0054723170100588698B367 +:108688009306E1001307D100700085450545A30650 +:108698000100EF6070758DBF2285EFF07FF0ADB7F8 +:1086A800130797030145E392E6F61384C195184032 +:1086B80029DF9C471833842385476304F7020D4557 +:1086C800EFD04FCDAA8519C9930700FD1CA191478A +:1086D80004B13CA11C408823EFD06FDBEFF09F9AD8 +:1086E80025B783A7419889CB9443D2239305E1000A +:1086F8000545EFE04FF505E10145EFF0EF812A86EA +:1087080011C6894503C5C19CEFD01F811C4009478C +:10871800268598B359B71C21858BF9DF0545EFE00D +:10872800BFFF930700643306F502D9BF411122C485 +:1087380003C4019D06C6118809CC17A5FF1F1305A0 +:108748002520EFE00FE74D44B24022852244410145 +:1087580082800145EFE0EFE5C5BF7547AA876365ED +:10876800B702114701456378B702ED1593F5F50F88 +:1087780061476361B702971601009386262FB3C538 +:10878800D52098413697028793F5F50713072005FA +:10879800638AE50001458280C847828088438280D9 +:1087A80088478280C84382809307F00F630DF506DF +:1087B800011126CAAA841305000222CC4AC84EC653 +:1087C80052C456C206CE2E8AB28AB6893A89EFD0EA +:1087D8006FBC2A844D450DC8930700FB1CA0A3005D +:1087E8005401231144012302340113058400614616 +:1087F80063050902CA859780FF1FE780E005A28507 +:108808002685EFD0CFC80145F2406244D2444249A0 +:10881800B249224A924A0561828081459780FF1FAA +:10882800E7806007E9BF09458280011122CC06CEA6 +:108838002A844C86D086EF30202F11C97800930601 +:10884800E0070146A28503C5119DEFF0FFF5F24050 +:10885800624405618280930700643306F6026FD094 +:10886800AFFF15C1411122C406C62A840821930707 +:10887800D00F63E6A700EFD0DF92FD571CA0B240EF +:1088880022444101828082801A219307000B6310E1 +:10889800F7025C214947639AE700183985476398CE +:1088A800E7002A2185456F2010116D47CDBF8280D2 +:1088B800797126D2AE846C0022D44AD04ECE06D628 +:1088C800AA89328929292A8405E1A6854E85EF904F +:1088D800304C2A8411E932454A8797A600009386CE +:1088E800E6C90D46A6859D2DB25022852254925484 +:1088F8000259F24945618280011122CC26CA4AC830 +:1089080006CE2A84AE84328936C6EF30E02132475B +:1089180009CDA2856244F240CA8626864249D244DD +:1089280003C5119D05616FF03FE8F2406244D244EF +:10893800424905450561828023A8A198828023A623 +:10894800A1988280011122CC26CA06CE2A84AE8440 +:10895800EF30801DA6852285EF90D02819ED22855D +:108968006486EF30601C11C978009306F007014651 +:10897800A28503C5119DEFF03FE3F2406244D24463 +:1089880005618280797122D44AD0AE8706D6BA852D +:1089980026D24ECE7547328436896364F704214760 +:1089A800636CF70015476388E7021947638BE7088C +:1089B800C167FD1785441DA037061400DD1713068F +:1089C8000620B317F0287D8E59EA19677D8F35E7A1 +:1089D80093F71710F1DFC167FD1789446316F40296 +:1089E80021A813F7F70793062005E313D7FC41677F +:1089F8007D17631CE6048D442EC6EF907022B245A5 +:108A0800330495403344040833858400334505080E +:108A1800EF20A07EAA87B3C9040831C56304090002 +:108A2800231089002254B25092540259B3053041A0 +:108A3800F2493E8545616F905001C167FD17954425 +:108A480071BFC167FD179D4451BF1307200D8D44A9 +:108A5800E39CE7FA1304C6003344040875B7C167FA +:108A6800FD178D44A5BFB250225492540259F249C1 +:108A78004561828079714ECEAE89C16526D20147A3 +:108A8800AA84894613868187FD15054522D406D612 +:108A98004AD0EF104011054429C92A89130730022A +:108AA80081461146F5452685EFF0DFED2AC6554487 +:108AB8000DCD0357A900CE860146788411477885E5 +:108AC800054718A1B2472C002685A3800700324726 +:108AD800FD573CA332473CB3EF10A0022A8411C5CE +:108AE80032459780FF1FE780603DB25022852254AF +:108AF80092540259F24945618280411106C6EFF04D +:108B0800DFC519C5B24041011783FF1F6700033B4A +:108B1800B24041018280011106CE2AC6EF9040770B +:108B28003245914523A8019823A60198A386A19CC4 +:108B3800EF208068F24005616F20C0179397556059 +:108B480063D50714797103C5D19C22D426D206D6E1 +:108B58004AD0AE84EFD02F8A2A8459C918219307A6 +:108B6800000A6314F70885474C08DC85EF90007FFE +:108B780011CD9C8599C7084409C59780FF1FE780D8 +:108B8800E0332A208545EF20006385A083476101F3 +:108B980091CF71476366F7064D47637BF706938667 +:108BA800C7FE130730143357D7483DC303A7C198EE +:108BB80001C7034751012DCF9C8599C7084409C5B2 +:108BC8009780FF1FE780802F5247B70700019387E0 +:108BD80007F07D8FB7071200938707106307F70028 +:108BE80003476101ED47E30EF7F82285EFC07FF5F3 +:108BF800B250225402591395F46892544561828008 +:108C0800138717FE1377F70F93060002E3F0E6FACF +:108C1800858B95CB83A70199A9DF2A201306B1007C +:108C28004C0882979C852A89B1EBE30F09F891BF1C +:108C38005C8699472308F1002A206C00231701005D +:108C4800EF90901195BF83A7C1989DC72A2013065E +:108C5800B1004C0882972DD183475101E39B07F05F +:108C68002308A100834761012A206C005C86231732 +:108C78000100EF90700EF5BD1945F9BF084455D5B0 +:108C88009780FF1FE78080234DB70145828083C608 +:108C9800219D83A7419901476394E600014582809D +:108CA8008E23138687026394A5003E85828005077C +:108CB8001377F70FB287CDB7411122C406C62E84A9 +:108CC800EFF0FFFC09C93C25138717006315E40082 +:108CD80093F707F83CA5B240224441018280411134 +:108CE80022C406C62E84EFF09FFA1DC111C008C029 +:108CF8001C251307E00F5D456388E7001307F00F95 +:108D080059456393E7000145B240224441018280FE +:108D18000945DDBF411122C42A84210526C206C6A1 +:108D28004AC0EFF01FB42420A51493F4D40F81E8AF +:108D380058248547631DF7041C483149A1E3FD57B2 +:108D4800230104001CB4230204021305C4002244B6 +:108D5800B240924402496146814541011783FF1F91 +:108D6800670063B3B38724033E95084509C5978018 +:108D7800FF1FE780A014850493F4F40F5C280848CB +:108D8800E3E2F4FE9780FF1FE78040134DBF084CD5 +:108D980075F975B7411122C4416406C626C2930706 +:108DA800E4FF630DF500AA8499EDEFF05FEE19E595 +:108DB8001305F4FFEFF0BFED11C106A1B240224444 +:108DC80092444101828085476390F504EFF03FECBF +:108DD8002A846DD5FD571EA11C241307F00F63824A +:108DE800E7021307E00F6389E700342008340147DE +:108DF8005146A685EFF05F9B2285EFF0BFF1FD5746 +:108E08001CA4230504005DBF8947E399F5FA85454D +:108E1800EF20B07145F52685EFF07FE72A844DFDF8 +:108E280071BF0DCD411122C406C618259307F00F56 +:108E38002A846301F70234210E21083501475D4673 +:108E4800EFF09F96F9571CA422852244B2404101B5 +:108E58006FF05FECB24022444101828082809E2103 +:108E6800639C070E397126DA4AD84ED652D406DEEC +:108E780022DCAA892E89328AEFF07FE1AA84014593 +:108E8800D9CC8347290005476393E70A83554900EE +:108E9800032589003000EF90805A51E1883483C758 +:108EA800D19C6383A7028346290038000146CE85FA +:108EB800EFF09F8F2A8411E9834529002800EFF0FD +:108EC800DF8919C123000A000144B8208D476314C3 +:108ED800F7043C84DA2463F3E700DEA4CE244E854D +:108EE800EFF05FA617A7FF1F0357C79EED4763F470 +:108EF800E702DE24DD4663F0F6029386370063D589 +:108F0800E60411669385470013060629B3C50508CC +:108F18004E85EF60C05D2685EFF0DFDF2285F250D9 +:108F28006254D2544259B259225A21618280B820DF +:108F38001145E316F7FEDC40FDD3835549000325B0 +:108F480089003000829791BF11669305B00F130610 +:108F58000629B355B70A6DBF194582809307F00FEC +:108F68006306F706011122CC26CA2A844AC84EC6CF +:108F780052C4B689328A3A8993068500AE84794606 +:108F8800AA8517050000130505EA06CEEFF0BF8C89 +:108F9800A3042401230144012322340185C01305BD +:108FA800C4006244F2404249B249224AA685D244EA +:108FB800614605611783FF1F6700038AF240624418 +:108FC800D2444249B249224A056182808280011115 +:108FD80006CE26CA4AC822CC4EC652C49384C19C27 +:108FE800E8209307800291653305F5029385657043 +:108FF8001389419933450508EF10C16EF020930796 +:10900800800281453306F6022320A9009780FF1FBE +:10901800E7806088832709004D459DCB0144130AEA +:109028008002FD59FC20634DF4021705000013056A +:1090380045E3EFF07F9017050000130525C8EF9072 +:10904800203117050000130525D5EF2030460145CE +:10905800F2406244D2444249B249224A05618280C0 +:10906800B3074403032509006146814505043E957D +:1090780023103501230105002314350123050500BC +:109088002302050231059780FF1FE780C08059BF82 +:109098000145828003C7319D814763E4E7000145AC +:1090A80082809221938645006314A6002E858280D3 +:1090B8008507B685DDB71DC5411122C406C638210E +:1090C8009307D00F2A8463EBE7000E21283101476C +:1090D800F9465D46EFF04FEDF9573EA0B240224405 +:1090E80041018280828003C7319D8147FD5663C359 +:1090F800E700828016A12301050085071105C5BF79 +:1091080001458280938511829307000285469CA1C0 +:10911800FD572380F182A38FF180238FF180239E56 +:10912800D180239E019823AC019823A8019A23A6F5 +:10913800019A138641829387018A5CC2238A019A25 +:1091480097A7FF1F93878780094718A298A398AB12 +:109158002380E7022388E7021387C18894A7D0C732 +:1091680094AFD8DB1385C1890D471386418993864F +:109178008187238CE702C8C323950700D0CB239DA2 +:109188000700CCCFD4D3238407022395070223A654 +:109198000702239D070203A7019AD8DF9797FF1FAD +:1091A8009387C77E170700001307870B23A00700C4 +:1091B800D8C323A407008280411106C6EFF09FEDB3 +:1091C80009C52821B240410182800145E5BF41110E +:1091D80022C426C24AC006C6AA842E893284EFF069 +:1091E8007FEBAA8711E94165CA857D15EFF09FEAF3 +:1091F800AA87454581C786A3A0A30145B24022445A +:10920800924402494101828021E309483547639E1F +:109218000603011106CE22CC182210322206598EDE +:1092280032C6B377F64085E7CC452A842EC4EFF0E2 +:10923800BFF832460147630EC50022856244A24545 +:10924800F24005616FF0BFF82D473A858280130719 +:109258000008F24062443A850561828083C80500AF +:10926800094863910803DC4103C807009C33A2073F +:10927800B3E707010D68130828906395070189472C +:109288006FF09FF80545828001114EC606CE22CCAC +:1092980026CA4AC89389F18103C709009307F00FCA +:1092A800630DF7022A892945AE843284EFC09F8E68 +:1092B800AA8505C59307100B1EA12302050002A568 +:1092C80062442311250166A1F24003C50900D24476 +:1092D8004249B24905616FC09F9BF2406244D24443 +:1092E8004249B24905618280411126C2AE8483A5F4 +:1092F800019A22C406C62A84EFF01FEC098909C91D +:1093080022852244B240A685924441016FF08FF62F +:10931800B24022449244054541018280411122C451 +:1093280026C24AC006C6AA84130445001309450686 +:109338001E209DC3084409C59780FF1FE78000B819 +:109348002285314681459770FF1FE780C05431045C +:10935800231A04FEE31E24FDB2402244FD579EA0BA +:10936800024992444101828083C6319D83A7819A34 +:1093780001476394E600014582808E2313864706E1 +:109388006394A5003E85828005071377F70FB2879F +:10939800CDB7AA8703A5019B01C95A216314F70019 +:1093A800084582800841CDBF8280411106C6EFF092 +:1093B8005FFE09C50845B240410182800145E5BF0D +:1093C800797122D41384450026D24AD052CC5AC887 +:1093D8002E8A06D64ECE56CA5EC622892287014BF1 +:1093E800814481468147A145122355C6A5EE4623EF +:1093F8003E23B286A697B3C70708050B3107E315C6 +:10940800BBFEBDC09165938545702685EF10812D03 +:10941800AA8B39C90C44D1C9814A81495220338564 +:109428003B019770FF1FE78020435E200844BE99E8 +:10943800B3C909089780FF1FE78040A863980A000E +:109448003109854A832589004A84E9F931468145ED +:109458002285850A9770FF1FE780E04363826A05CB +:109468003109CDB7630ED6000145B250225492544B +:109478000259F249624AD24A424BB24B4561828054 +:109488003223E313F6FE5223B294B297B3C404080E +:10949800B3C707089DB78547E3E567F70545F1B703 +:1094A80023267A0123149A00D5BF1309C400854ADC +:1094B800814949BFAA8703A5C19A11E1828018454D +:1094C8003A276314F700110582800841FDB741115E +:1094D80006C6EFF03FFE09C50A21B240410182806D +:1094E8000145E5BF411106C6EFF0DFFC09C528219B +:1094F800B240410182804145E5BF411122C42A841E +:10950800090506C6EFF0EFB5FD573CB0B24022445E +:109518004101828083C7319DAA86850703A5419AA8 +:10952800014712216307D60005071905E36BF7FE0B +:1095380001458280411122C4416406C626C29307B0 +:10954800E4FF630DF500AA8499EDEFF0BFFC19E57F +:109558001305F4FFEFF01FFC11C106A1B24022442D +:1095680092444101828085476390F504EFF09FFAA9 +:109578002A846DD5FD571EA13C201307F00F638286 +:10958800E7021307E00F6389E70028300147F9462F +:109598005146A685EFF04FA12285EFF01FF6FD5743 +:1095A8003CA0230204005DBF8947E399F5FA85458D +:1095B800EF20A07745F52685EFF0DFF52A844DFDED +:1095C80071BF5D71A2C4CAC086C6A6C24EDE52DC97 +:1095D80056DA5AD82E84AC21F9472A896390F504C3 +:1095E800EFF05FF32A8405C138219307D00F63ECAD +:1095F800E70028310147F9460146CA85EFF0CF9ABE +:109608002285EFF09FEF0145B6402644964406496F +:10961800F259625AD25A425B61618280832A0400FD +:10962800B7070001938707F037071200B3F7FA006E +:1096380013070710B28981446386E7022EC6EFF04C +:109648007FEDB245AA8419CD502109CE9317466003 +:10965800E3CB07FA4A85EFF04F9DDC2093E707F844 +:10966800DCA055B7138A018203470A009307F00F5D +:109678001945E30BF7F8E147E3E8B7F893D7150086 +:10968800FD17170701001307674AB3E7E72003A888 +:109698000700E30B08F603AB4700E3070BF6B3CA72 +:1096A8000A0863850A00C947E390F5F65620104476 +:1096B8000C3008203808029821F92C084A85029BAA +:1096C8001DCD183031F33820230AA100B9472308EB +:1096D800E1006314F702E24798239C33A207D98F6D +:1096E8000C084A85FC81EF80306711DD14080546B7 +:1096F800D9454A85EFF04FA001BFBC84D5B73420C7 +:109708009147E382F6F003450A0038080146CA8506 +:10971800EFF08F89E31A05EE2C202808EFF0EF838D +:1097280019C1238009001840B7070001938707F083 +:109738007D8FB707120093870710E306F7ECE384E1 +:1097480004EC3C2031BF411122C406C62E84EFF040 +:109758007FDC09C95C21138717006315E40093F7C0 +:1097680007F85CA1B2402244410182802A8703A500 +:10977800C19A11E182801C45B227636BC700035868 +:109788004500B306C8006355D700814663940601B7 +:109798000841C5B703D3A700938807016316E30000 +:1097A80091C192A13E8582808506C687B3C6060808 +:1097B800F1BF397152D42E8A4ED69305E100AA8999 +:1097C800528522DC4AD856D25AD05ECE06DE26DA38 +:1097D8003289368BBA8BBE8AEFF05FF9054425C112 +:1097E800AA8428873944EFF0DFBA31C90328450035 +:1097F80063070804D6875E87DA864A86A6854E857B +:1098080002982A840DED9307E00F638AFA029820E4 +:1098180089476316F702DC4098239C33A207D98F47 +:109828000D6713072790639CE700834719000346D9 +:109838000900D285A2075D8E4E85EFF0FFA4F25095 +:1098480022856254D2544259B259225A925A025B22 +:10985800F24B21618280797122D422214ECEAA89CD +:10986800228556CA06D626D24AD052CC5AC85EC6D7 +:1098780062C4AE8AEFF05FAF05E52285EF9000176E +:10988800594411E10144B25022852254925402599C +:10989800F249624AD24A424BB24B224C456182801D +:1098A80003C7890085476307F700EFF03FA703D593 +:1098B8002900E9B7AA85AA8413858900EFF05FB06B +:1098C8002A8415CDFA209624D044CE2003D5290029 +:1098D800E147EFF01FEED9472A846318F50023A665 +:1098E80004002685EFF09FA371BF19E1268575BF97 +:1098F800DE2026852390FA00EFF05FA269B713896E +:109908004400014A9D4B594C214B8355090085CD94 +:10991800E14763077A010357C900D94711E3E147D3 +:1099280003572900835649000326890003D52900D7 +:10993800EFF03FE82A846310850323240900050A11 +:109948003109E3146AFD2685EFF05F9D2DD0D947D4 +:10995800E31BF4F205BF65D5835709002390FA008D +:10996800F9BF011170879307E00F1306E100014763 +:10997800894606CEEFF0FFE3F240056182807971F7 +:109988004AD00359850022D426D22A84AE844A8537 +:109998009305210106D6EFF07FDD79C51C252AC67F +:1099A80093F707029DC7A881EFF03FA0B245AA87A9 +:1099B80011E9239024013945B25022549254025996 +:1099C800456182802A204946829701C51E249EA0AF +:1099D800E5B7035924004A85EFF01F9901ED416569 +:1099E8007D15EFF07F9809E51E2425459EA0E9B76F +:1099F80023102501130745008147A146122339EE9C +:109A08003147B387E7029305840031462EC6910794 +:109A18003E959770FF1FE78020E4B245314648081D +:109A28009770FF1FE78040E352242A204147814670 +:109A3800DD45EFE03FF52ACE09E51E2445459EA009 +:109A4800A5BF0C4852249770FF1FE780E0E02A204A +:109A58004C08EF80B0752DD15945B9BF850731073E +:109A6800E39ED7F825459DB705458DB7797122D472 +:109A78002A840A254AD02E899305E1004ECE06D6BF +:109A880026D2B289EFF09FCE2DC91C25AA8493F760 +:109A980007028DEF18389307200511E35C20362460 +:109AA80050440E242A200147EFF0BFD021E11C3892 +:109AB800B9E32A20EF80D06BAA8759458DCFB250E1 +:109AC800225492540259F249456182802887EFF066 +:109AD800DF8DAA870DC52A204946A68582975DD9BC +:109AE8001E242310F9001C3899E7D1BFD947E31980 +:109AF800F5FE238009000145D9B70545D5B7394595 +:109B0800C5B7797122D44AD04ECE52CC56CA06D6A1 +:109B180026D2AA892E8AB28A3689EFF0BF9F0944D5 +:109B28000DC53C211307E00FAA845D44638FE7004D +:109B38001307F00F5944639AE70063920A02D2852B +:109B48004E85EF80706E2A8415CDB250228522543E +:109B580092540259F249624AD24A456182800355B9 +:109B68000A009305E10023170100EFF03FC02887A2 +:109B7800EFF05F97AA8505464E85EF10907D2A8401 +:109B88005DDDE1B79307F00FE301F9FC938624004C +:109B98007946A68517F5FFFF13052552EFE0BFCBE1 +:109BA800A38124015DB7797126D24ECE52CC56CA14 +:109BB8005AC85EC606D622D44AD062C466C2AA8AE9 +:109BC8002E8BB28B368ABA8983A4C19AB9C08044D5 +:109BD80083DC44000149035CA400631499018440B8 +:109BE800F5B73E2463F757010509410433490908CD +:109BF800EDB7E36BFBFE63090A000C204840D286F0 +:109C08005E86EF80606D6DD16384090023908901C1 +:109C1800A284B25022540259F249624AD24A424BB3 +:109C2800B24B224C924C26859254456182809A21EF +:109C3800B621854763E1E6041DCFD42101111386BF +:109C4800550022CC1385C1892E84894506CE32C69B +:109C5800EF808068C14719C9542032462E200A2057 +:109C68000147EFF05FF4A94711C18147F240624410 +:109C78003E85056182803E8582802E860A22AE213D +:109C8800854763E1A50219CD542241110147150604 +:109C980006C6EFF05FF1A94711C18147B2403E8582 +:109CA800410182803E8582802E860A22AE21854728 +:109CB80063E1A50219CD542241110147150606C6D4 +:109CC800EFF07FEEA94711C18147B2403E854101BF +:109CD80082803E85828039714ED6BE2183D90500A7 +:109CE80006DE22DC26DA4AD852D456D25AD05ECEC4 +:109CF80062CC66CA63E437152A8A0545638309126C +:109D0800416BAE8A2314010002C6014401497D1B40 +:109D1800894B054CC94C83D52A0001478146014629 +:109D28004E8523130100EFF01FE8AA8471C509ECE2 +:109D380013072002930661005A8695455285EFE085 +:109D48007FC42A84630E050E38849C2025C7188595 +:109D58006301870541476394E70ABE24414613051A +:109D680024001CA0BE24A1831CB0CC409770FF1F08 +:109D7800E78080AE49043C848507B3C707087C8424 +:109D880063FC2707BE24638967078509B3C90908E7 +:109D980059B763967707BE240946130524001CA00B +:109DA800BE24A1831CB0CC409770FF1FE780C0AAD7 +:109DB8001104D1B722C603596100B8241305240041 +:109DC800638F7701335999032305710118A0BE24C5 +:109DD8004146A1831CB0CC401379F90F41BF23053C +:109DE800810118A0BE24135929001379F90FA18302 +:109DF8001CB0CC4009464DBF3C8429459DC32C006E +:109E08005285EF80D00B09CD34001546D9455285CF +:109E1800EFE09FAE11C532459770FF1FE780000A3B +:109E28000145F2506254D2544259B259225A925AB8 +:109E3800025BF24B624CD24C216182800545D5B75A +:109E48004545C5B703C7019C854763F3E70601117C +:109E580022CC26CA4AC806CE2A84AE843289EFF0BC +:109E68006FEB11C538219307E00F6305F704631BF7 +:109E7800090022856244F2404249A685D244056120 +:109E88006F8090378A209305E10023170100EFF0D7 +:109E9800FF8D2887EFF00FE5AA8505462285EF108C +:109EA800504B61D9F2406244D244424905618280F4 +:109EB800594582805D45FDB7411122C406C626C2B8 +:109EC80093F705022A84328585C3EFF0AFE1AA85AE +:109ED80005462285EF10F04795476305F500BD4715 +:109EE8006315F502214515A093F78500B6849DC337 +:109EF800EFF04FDFAA8505462285EF10904509C58A +:109F08009C3481C79C2491C30145B24022449244A9 +:109F1800410182809397456063D70700EFF08FDC9B +:109F2800AA850146D1BF89890D45F9FDF9BF797127 +:109F3800AE8622D42A848A229305E10106D636C643 +:109F4800EFF0DF8211C90C2522852254B246B08772 +:109F5800B25045616FF05FF6B25022540545456135 +:109F68008280411122C406C693F705022A843285ED +:109F78008DC3EFF02FD7AA8505462285EF10703DD7 +:109F88001547AA876305E5003D47631DE502A1471C +:109F980015A893F7850099CBEFF0CFD4AA8505468D +:109FA80022852244B24041016F10B03A13974560B0 +:109FB80063570700EFF00FD3AA850146D5B7898903 +:109FC80091E18D47B24022443E85410182807971FA +:109FD800AE8622D42A848A229305E10136C606D6A3 +:109FE800EFF0CFF8B24609C90C2522852254B08774 +:109FF800B25045616FF0FFF6B250225405454561F5 +:10A0080082803E257971416722D426D24AD04ECE2D +:10A0180006D6231701007D17AA8432843689814920 +:10A02800638DE7009420D040138517001307E100E3 +:10A0380033450508EFF03FB7AA899420D0408945F9 +:10A048001385C189EF80402915C5A2242285EFF028 +:10A058000FC809C57D142A94334404086304090011 +:10A0680023108900B2502254925402594E85F24965 +:10A07800456182809420D040894513858189EF808D +:10A08800A02561F59420D040894513854189EF804A +:10A09800A02411C9E38C09FA3C87E39987FA03D411 +:10A0A800A9007D1455BFA22455BF397122DC26DAD8 +:10A0B8004AD84ED652D456D25AD05ECE06DEBE8B81 +:10A0C8009C252A8AAE84C18BB28A36843A89C28991 +:10A0D800468B9DEF942089476383F6065685EFF0FB +:10A0E8004FAB05CD83280500638908022286625498 +:10A0F800F250925A5A88CE87025BB2595E87CA8656 +:10A10800F24B4259A6855285D254225A216182883F +:10A118003285EFF08FA9AA8709ED3945F2506254CC +:10A12800D2544259B259225A925A025BF24B2161D7 +:10A1380082802946A6855285829749DDC5B7DC40CD +:10A1480003C3170098238D6722033363E300138644 +:10A15800479013175360E343E6F81386F78F634B72 +:10A16800E60293862780630DD70863C8E604F9776B +:10A17800938707803E93854733430308E3E067F6F8 +:10A188002D45E39D0BF8DC449023CC432310C900F4 +:10A19800228529AAF5779387F76F3E938D47334336 +:10A1A800030863EA67101707010013076792334330 +:10A1B800E32083270300BA97828793873780E31FBA +:10A1C800F7F02D45E39C0BF485472310F900DC4498 +:10A1D80081459C231CA0AA24050533450508EFF0FA +:10A1E800EFD8835709004DE591072310F900114670 +:10A1F8008145130514009760FF1FE780C06961A0BF +:10A208002D45E39D0BF0DC446C0083C917009823AF +:10A21800A209B3E9E90011472310E9009C234E8500 +:10A228001CA0DC449C331CB0EFF04FD4AA8431CD81 +:10A238003086C1659306E100FD158329C500EFF05E +:10A248005FDC19E99420D040894513858189EF8026 +:10A25800A00819E1FD577C8703C7090089476310E7 +:10A26800F70283A549000946130544009760FF1FBC +:10A27800E780805E8357090089072310F9003C872F +:10A288003CA0A1833CB0014551BD23173101C5BF96 +:10A2980018218907BA972310F9003E251CB03E25DE +:10A2A800A1833CA010214C41130534009760FF1F87 +:10A2B800E780805AC9BF2D45E3920BE62310D900E9 +:10A2C800DC449C231CA0DC449C331CB06DBFC844F8 +:10A2D800EFF0B07C334705081D45E36177E56380FF +:10A2E800EB02B386790163C6E60033077741B349C9 +:10A2F8000708CC44231039014E86DE9551BD8149AB +:10A30800CDBF2D45E39C0BE0CC445285EFE0DFEA5E +:10A3180089472310F90008A0218108B0ADB72D4561 +:10A32800E39E0BDE89472310F90059BF2D45E397BB +:10A338000BDEDC441D472310E900982318A098334E +:10A3480018B0BA2338A0BA23218338B0D82358A02C +:10A35800FA2358B0FE23A1837CA035B75D71A6C24D +:10A36800AA842A214EDE52DC56DA5AD85ED662D446 +:10A3780066D26AD06ECE86C6A2C4CAC0AE8AC16B87 +:10A38800EF80000A130CF5FF2A8A8149978DFF1F79 +:10A39800938D8D60938C8199138BC199FD1B334DDF +:10A3A8000C08DE2463F6F90083D70D0063CD87011E +:10A3B800AA209785FF1F9385255EEF8000512A8488 +:10A3C8000DCD59441DA89C449305E100B3A7F9207D +:10A3D80003C917009C2322093369F9004A85EFF065 +:10A3E800EFB8AA851DE923902A0103A54D0009C5E8 +:10A3F8009770FF1FE78080AC0544B640228526444D +:10A4080096440649F259625AD25A425BB25B225CC0 +:10A41800925C025DF24D6161828083C8440083A62C +:10A428000C003087AA206A8881475A87EFF0FFC757 +:10A438002A8419C923902A0103A54D005DDD977070 +:10A44800FF1FE780A0A755BF83A74D0099EFAA205B +:10A45800514781465E86BD45EFE0CFD223A2AD00CD +:10A4680009E523902A01454449BF83D70D000357C6 +:10A478000B003E97634747013307FA407D172310C7 +:10A48800EB0003A54D0003560B0083A50C003E9579 +:10A4980085099760FF1FE780203C83D70D0003578D +:10A4A8000B00B3C90908BA972390FD00DDBD3971C7 +:10A4B80026DAAA842A214ED65AD006DE22DC4AD8C9 +:10A4C80052D456D25ECE62CC66CA6AC82E8BEF7062 +:10A4D8003075AA89D424AE248A2478001386D4003F +:10A4E800EFF06FEC05C1938BB9FF2A84E519014998 +:10A4F800138C8199938CC19933CA090863497901EE +:10A50800631B09109E2429452310FB009DA8035DA9 +:10A51800C10083C8440083260C00AA2052888147C2 +:10A5280066876A86A285EFF05FB819C9AE242285CE +:10A538009306E1006A86EFF0DFAC2A8461F0C9B7C0 +:10A5480083D70C009228E313F6FE83250C00C84835 +:10A558009760FF1FE780203871D99789FF1F93897B +:10A56800A94383A7490095EFAA204166454781463C +:10A578007D169D45EFE00FC11DE19E244545231042 +:10A58800FB00F2506254D2544259B259225A925A9C +:10A59800025BF24B624CD24C424D2161828023A275 +:10A5A800A900AE24835AA40022859306E1006A8696 +:10A5B800EFF03FA52A84E3830AF883A7490013072D +:10A5C800190033470708CA972380570183A7490012 +:10A5D80093DA8A0093062900BA9723805701130754 +:10A5E8003900110983A74900B3C60608334707088D +:10A5F8003349090811C93087B69790A383A7490042 +:10A608002182BA9790A3DDBDB697FD5694A383A780 +:10A618004900BA9794A3AA209785FF1F9385C53749 +:10A628001359290023902501EF80A01439D95945E1 +:10A6380089BF411122C406C693F705012A843285D1 +:10A6480085C3EFE03FEAAA8505462285EF106050F2 +:10A6580095476305F500BD47631DF502214515A81B +:10A6680093F7450099CBEFE0FFE7AA8505462285D9 +:10A678002244B24041016F10C04D93F7050491C7C1 +:10A68800EFE05FE6AA850146DDB713C5F5FF05894A +:10A698000605B240224441018280797122D426D233 +:10A6A80052CC06D64AD04ECE56CA5AC82A8AAE844A +:10A6B8000144DE206364F400014535A883AA040040 +:10A6C8009319140013891900B327542103CB0700E9 +:10A6D800B3872A0188239305E100220533656501C4 +:10A6E800EFF0CF881DE123806A019C4005453E9923 +:10A6F8000347090098B3B250225492540259F249C0 +:10A70800624AD24A424B456182800C253087528585 +:10A71800EFF03FF201CD9C40BE9903C7090098A312 +:10A728009C403E990347090098B3F1B705043344A8 +:10A73800040841B70111AE8722CC2A848A239305E5 +:10A74800E10006CEEFF08F8209C90C25228562440C +:10A758003087F24005616FF0DFEDF2406244054555 +:10A7680005618280397126DAAA842A214AD84ED610 +:10A7780006DE22DC52D456D25AD05ECE62CC66CAED +:10A788002E89EF70F049AA89D424AE248A2478004F +:10A798001386D400EFF02FC163050514416B938A2B +:10A7A800A9FFAA8B0144138A8199978CFF1F938C68 +:10A7B800AC1E7D1BED19B3CA0A08035CC10083C532 +:10A7C8008B00AA206286EFF0DFE6631A051483C8BF +:10A7D800440083260A00AA20568881471387C19916 +:10A7E8006286DE85EFF07F8C631B05120DC883D768 +:10A7F8002C0003D7C19911076395E700A29763C19D +:10A8080037079785FF1F93852519BE21AA20335442 +:10A81800F40282A1EF80E00E15C1594505A0AA20D7 +:10A82800494781465A86C545EFE0CF9523A2AC003B +:10A838001DE183D7AB0045452310F900F25062545F +:10A84800D2544259B259225A925A025BF24B624C84 +:10A85800D24C2161828083D7C19991072391FC0052 +:10A8680083A74C0003D7AB006286A29798A383A75F +:10A878004C001307140033470708BA9703D7AB00F7 +:10A888009306E1005E85218398A3AE24138CC199B9 +:10A89800EFF02FF71306240093063400110483A762 +:10A8A8004C00AA8B33460608B3C60608334404088E +:10A8B80015EDB2977D5798A383A74C0083250A000E +:10A8C800B69798A303A54C0003560C0022959760F1 +:10A8D800FF1FE78060F883570C00A29733C407086E +:10A8E8000DF09E2429452310F90089BF3887B297B7 +:10A8F80083250A0098A383A74C002183B69798A3C1 +:10A9080003A54C0003560C0022959760FF1FE780B3 +:10A91800A0F483570C003E943344040879BD83D7D0 +:10A92800AB002310F900E31E04EC9E242310F90069 +:10A9380031B71D71A6CACAC8AA84035985002A213D +:10A94800A2CCCEC6D2C4D6C2DAC05EDE62DC6AD879 +:10A9580086CE66DA6ED6AE8AEF70902C130BD5FFD2 +:10A9680001447115138CD400938B8199138AC19972 +:10A97800178DFF1F130D4D02B3490508635D641160 +:10A98800D424AE241307E10162864A85EFF0AFA113 +:10A99800AA8C630205100359A500B0870C25AA20CC +:10A9A80032C6EFF01FC9631D050E83C8440083A695 +:10A9B8000B003246AA204E8881475287E685EFF081 +:10A9C800CFEE79ED15C483570A0003572D00890788 +:10A9D8006302F7069785FF1F938505FCBE21AA2011 +:10A9E800B357F4029EA1EF7030610DC1594539A8E3 +:10A9F800AA2041664D4781467D16A545EFD09FF8B0 +:10AA08002322AD001DE123902A014545F640664406 +:10AA1800D6444649B649264A964A064BF25B625CDA +:10AA2800D25C425DB25D2561828083570A00890746 +:10AA38002311FD0083570A00A29763DE6705832769 +:10AA48004D0003D7AC00930D2400A29798A3832749 +:10AA58004D0003D7AC000504334404082183A297B2 +:10AA680098A303254D0003560A0083A50B00B3CD18 +:10AA78000D086E959760FF1FE78000DE83570A0078 +:10AA8800BE9DC167FD1733C40D08E309F9EE05093A +:10AA980033490908E5B5294515FC23902A01BDB7B6 +:10AAA8006DDC0DBF1E21411126C206C622C44AC054 +:10AAB800444189EB8947B2402244924402493E8589 +:10AAC800410182809420D0402A8489451385C18918 +:10AAD800EF70900011C93C202547E51793F7F70F51 +:10AAE800637DF700E147C1BF9420D04089451385B5 +:10AAF8008189EF70607E65F175BF1389C1818356C6 +:10AB080009008547CDDA1A203697C166E3C5E6FA0B +:10AB18009165938525703145EFF0D03CAA84CD47E7 +:10AB280059D9314681459760FF1FE780C0D61A2062 +:10AB38008355090001468147B386F500B3C6060868 +:10AB480063E7E70201C62E972310E90023A004005B +:10AB58002146A285138544009760FF1FE780C0CF78 +:10AB68001387C19A1C4381CF3E879C43EDBF504059 +:10AB78001395470085072A9636A6054675BF04C370 +:10AB8800814715BF011106CE22CC26CA4AC809E959 +:10AB98000944F24022856244D244424905618280D8 +:10ABA8002AC6AA84280036896C845085EFF09FEF66 +:10ABB8002A8465F1E30F09FCBE24F9DB91659385CE +:10ABC80055703145EFF01032AA8705C1BA24938633 +:10ABD800019B232005005AA198422324250101C77F +:10ABE800BA861843EDBF9CC26DB74D445DB79387D5 +:10ABF800419B98230DE3054798A3058909CD9786BE +:10AC0800FF1F9386A6D8414691451785FF1F130558 +:10AC1800E5D36FF03FF701458280A38FA180828042 +:10AC280041677D176315E5002E856FE0CFCB411195 +:10AC380006C6EFE02FC609C5FD571EA12301050072 +:10AC4800B24041018280011126CA06CE22CC4AC8F0 +:10AC58008547AA846390F5042685EFE0EFF021E9A3 +:10AC680041699305F9FF1307E10089461386C188F6 +:10AC78000545EFE05FF32A847D1905C44C44268519 +:10AC8800EFF01FFA308722858146CA85EFF06FB74B +:10AC98002A84E5B789476396F5008545EF10E008F3 +:10ACA80045DDF2406244D244424905618280EFE0CA +:10ACB800EFE67DB7411122C406C626C21384C19CA3 +:10ACC800683023A4019A23A2019A23A0019A3DCDBA +:10ACD8009307E0063305F502916593851570938413 +:10ACE800819A190533450508EFF0D01F7030930796 +:10ACF800E00681453306F60288C019069760FF1FF3 +:10AD0800E78060B99C4078308145938647007D553F +:10AD180063C6E50693064006B306D7020146FD550D +:10AD2800B69723A2F19ABE868EA2ACB2ACA22382B9 +:10AD3800060005069906E359C7FEF95696A30507C6 +:10AD480099463307D702BA9723A0F19A17F5FFFF60 +:10AD580013056587EFD0BFBE17F5FFFF1305E59E06 +:10AD6800EF70605F17E5FFFF1305057DEF001074B6 +:10AD7800B24022449244014541018280239EA6FEAE +:10AD8800368613880606231006002324060031069B +:10AD9800E31B06FF8505938646069DBF411106C63F +:10ADA80022C42A84EF601020EFE0CFB503A5019AF2 +:10ADB800238F8180EFE02FB3238081822244B24029 +:10ADC80017050000130565E841016F00306E939781 +:10ADD800556063DE072C797103C5E18122D44AD01E +:10ADE80006D626D24ECE2E89EFA0FFE02A8459C57A +:10ADF80018219307000B6310F708854793848199FE +:10AE0800DC849C402315010089EB5D2691659385C0 +:10AE18003570EFF0300D88C031C96146814517851E +:10AE2800FF1F130565B79760FF1FE780C0A683491A +:10AE3800440089476393F908A52E9784FF1F9384DC +:10AE4800A4B58AA02A20A685EF70B003AA869E2002 +:10AE58002A201A248DEE6363F7001EA40E24EFD077 +:10AE68007FAE2285EFD05FA29C8491C74C2013054A +:10AE78008400EFD09FC82285EFA0BFCCB2502254E7 +:10AE88009254F2491315F968025945618280636347 +:10AE9800F7001EA41E24D9459786FF1F9386C6AFC8 +:10AEA8000D469EA0EFD05FA58D4545DD1785FF1F98 +:10AEB800130585AEEFD07FC46DB79387A9FF93F7CD +:10AEC800F70F4947E36FF7F817F70000130747C173 +:10AED800B3C7E7209C43BA9782879305A1002285D0 +:10AEE800EFF0EFDCAA8435DDD9476392F40A8509CF +:10AEF8002A2093F9F90F9786FF1F9386E6A94E86B5 +:10AF0800D945EFD07F9F31DDCE854DB79305A100A0 +:10AF18002285EFF01FA2F9B7835984006C004E8593 +:10AF2800EFE0DF84AA842DC12A2041669306E10060 +:10AF380055477D16AD45EFD0FFA49789FF1F93892C +:10AF4800A9A523A2A900AA8645CD83484400035891 +:10AF5800E10030862A20A68581474E87EFF0EF94DE +:10AF6800AA846310050E2A20CE85EF70500EE30ADE +:10AF780005EE2A20D945CE862D46EFD0FF97AD4560 +:10AF8800E30105EE4E853DB72315310185441830A0 +:10AF9800D147E308F7EC5C209789FF1F9389C99F85 +:10AFA8002A202380F9003C85CE85238299002391AD +:10AFB800F900EF70605AE30605EA2A20CE860546B6 +:10AFC800D945EFD07F93E30E05E8854565BF8359E2 +:10AFD80084006C004E85EFE06FF9AA8455D52A20CD +:10AFE80041669306E10059477D16B545EFD09F9914 +:10AFF8009789FF1F9389499A23A2A900AA8609E580 +:10B008001E24C5447C8561B7834844000358E10089 +:10B018003E2430862A20A6854E87EFF00F89AA8421 +:10B028000DE12A20CE85EF70D005E30C05E22A2039 +:10B03800D945CE863546EFD03F8CB545E30305E2CA +:10B0480091B7D94703A549006397F4009760FF1F9C +:10B05800E780C0E639B59760FF1FE78020E61E2429 +:10B068007C8535B79305A1002285EFF02FAF9DBDF4 +:10B078009305A1002285EFF0EFEEADB51306910020 +:10B088009305A1002285EFE07F9EA9BD9305A1004D +:10B098002285EFE0DF8EAA84E31805E4A30401000B +:10B0A800C9B39305A1002285EFE0EFFA25BD01455C +:10B0B80082808280411126C2444522C406C62A8461 +:10B0C80095C0C84409C59760FF1FE78020DFC848BE +:10B0D80009C59760FF1FE78060DE26859760FF1F20 +:10B0E800E780C0DD2285414681459750FF1FE780F4 +:10B0F800807AFD571CB4B2402244924441018280B8 +:10B108001DC13E21411122C406C62A8489CBDD45D2 +:10B11800E52322852244B24041016FF0BFF9B240D5 +:10B128002244410182808280411122C4B147130424 +:10B13800C5FFB307F40226C29784FF1F9384448790 +:10B1480006C6A697BA276315B702C84315C1930761 +:10B15800F00F6305F6001C21639CC7009760FF1F72 +:10B16800E780C0D5B1473304F402A29423A20400B7 +:10B17800B2402244924441018280828013060064D6 +:10B188003386C50293069500AA85170500001305A6 +:10B1980065F76FA07FEC411122C406C62A840835E2 +:10B1A800EFB02F80FD571CB4B24022444101828089 +:10B1B80003D5C19B828082809387C5FF0D47B3C6A4 +:10B1C8000708636ED70031473387E7029777FF1F79 +:10B1D8009387077EBA97A8A38EA301458280094565 +:10B1E8008280930740203355F50A7115239EA19A52 +:10B1F8002380B19CA38FB19A82809565411119056E +:10B20800938535C006C633450508EFF0A04D11C536 +:10B21800B240E95541016F704003B240410182805C +:10B228002380019C85474111238FF19A06C622C4C9 +:10B23800239E019A2A84EF00100813060003814513 +:10B248001775FF1F1305C576A380819C9750FF1FB4 +:10B25800E7806064EF003025B1473305F502956556 +:10B26800938565C033450508EFF0C04723ACA19A24 +:10B2780009CD2A84EF00302331463306C5028145C3 +:10B2880022859750FF1FE78000612244B2401705CE +:10B298000000130545E241016F005021411126C20B +:10B2A80006C622C44AC0AE849397556063D3070884 +:10B2B8001389119C03450900EFA0FF932A8421C537 +:10B2C800182193070009631DF7021831CD47631051 +:10B2D800F7069386019C28219C221778FF1F0348B4 +:10B2E800585F13066400814501476316E50291C162 +:10B2F8009CA29C2291C7034509008545EFF00014E4 +:10B308002285EFA01F841395F468B240224492442A +:10B318000249410182800E2205071377F70FAE9785 +:10B3280093F7F70F09068545B3D7070B7DBF21248F +:10B33800C1BF13F5150071D9B52D09C983C7019C83 +:10B3480091C7854503C5119CEFF0400F13C5140044 +:10B358006DBF0547637EC7029C319421A207D58F34 +:10B368001EA16399E700BC31B821A207D98F3EA17D +:10B37800014582800947E39DE7FEBC31B821A20759 +:10B38800D98F3EA1DC31D821A207D98F5EA1CDB7D4 +:10B3980005458280A1476318F6029C319821A207CF +:10B3A800D98F1EA1BC31B821A207D98F3EA1DC31AB +:10B3B800D821A207D98F5EA1FC31F821A207D98F25 +:10B3C8007EA101458280054582809C211CA19C317B +:10B3D8001CB1BC31B821A207D98F3EA1828023229B +:10B3E8000500D8218947631AF704FE21411122C4B8 +:10B3F80006C60D482A840545637DF80294459832AF +:10B4080090222207518F130647006314F602BC32BC +:10B41800B022A207D18F1386C7FF33460608636A96 +:10B42800C8003AA01EA0F1553685EF60106248C0EA +:10B438000145B2402244410182800545828039712C +:10B44800AE8706DE22DC26DAB2859023C946983319 +:10B45800631DD602B223AA8428083AC6EFF09FF3E8 +:10B468002A8411ED1775FF1F130585545E25324791 +:10B4780099C768253C08C9460146A685CD2AF250D9 +:10B4880022856254D254216182803008BA85231CF7 +:10B4980001000144752BE5B7397126DA4AD84ED632 +:10B4A800AE8406DE22DC9777FF1F238D075297773D +:10B4B800FF1F239807529C2005472A89B285977950 +:10B4C800FF1F9389E9516393E704B0202800EFF048 +:10B4D8005FE82A841775FF1F13058550EFF0BFCB6F +:10B4E80003C5890094203C0001472286CA85412271 +:10B4F8001775FF1F1305C54EEFF0DFBBF25022850D +:10B508006254D2544259B259216182804D47014454 +:10B51800E396E7FE03C709009147E311F7FEBA2057 +:10B5280089470544E318F7FA1C3218220144A20798 +:10B53800D98F7C8445B77971AA8522D426D2222155 +:10B54800AA84280806D64AD0EFF07FE9F24599E5A3 +:10B5580035E185452285EFF01FC66DA0BC841547EF +:10B568006394E706B8858D4763F6E7046800EFF053 +:10B57800DFE50359E100DD4763FA27018C86B70749 +:10B5880017008507100822853EC8D921BC851109F6 +:10B59800638527012285EFF05FBE1C8672466C002A +:10B5A800858B1106228591CFEFF01FEF01C522850B +:10B5B800EFF0BFBC884451DD9760FF1FE780009023 +:10B5C80049BFEFF0DFE7DDB711476389E70013876D +:10B5D800A7FF854633470708E3EEE6FC3147F11736 +:10B5E800B387E7021777FF1F1307873CBA979A2399 +:10B5F80071D3A8233008A28521284DFDB88491472E +:10B60800E319F7F4B25022549254025945618280EA +:10B6180001114AC82A89314526CA4EC606CE22CC0F +:10B62800AE89B284EFA00FD729C19307000A23116E +:10B6380035011EA12A842146110595C0A68597507B +:10B64800FF1FE7806021A2854A85EFA04FE40145EE +:10B65800F2406244D2444249B24905618280814540 +:10B668009750FF1FE7802023F9BF0545D5B7011183 +:10B678004AC82A891305000226CA4EC652C456C2B1 +:10B688005AC006CE22CCAE8A328BB6893A8ABE849C +:10B69800EFA04FD021C9930720FA1CA1A300650190 +:10B6A8002311550123024501A30235012A8461466D +:10B6B80021059DC0A6859750FF1FE780E019A28548 +:10B6C8006244F240D244B249224A924A024B4A8525 +:10B6D800424905616FA0AFDB81459750FF1FE780A6 +:10B6E800801BF1BFF2406244D2444249B249224A27 +:10B6F800924A024B05618280182191476316F7022E +:10B70800411122C406C62A842E866E210825814747 +:10B718000147CD46EFF0BFF56E202244B2404946BE +:10B72800154541016FF05FA082809A21B1477117DA +:10B738003307F7029777FF1F93878727BA97D8436E +:10B7480001EBD841AAA70145D8C3BA219AA782809C +:10B7580059458280BE21B5CF411126C206C622C4F2 +:10B7680003D7C19BAA846D45636DF7042E844840B6 +:10B778009145EF60902D3E20AA8681451CA13E2070 +:10B78800A1831CB11E203CA11E20A1833CB1322004 +:10B798002685110633460608EF40406419E51387ED +:10B7A800019C1C2385E7014529A889476305F50203 +:10B7B8009D476304F502C9476303F502FD47E300AB +:10B7C800F5FEB2402244924441018280FD171CA339 +:10B7D800D9BF6D4582805145EDB71145DDB70945A3 +:10B7E800CDB7011122CC4AC831441309C5FF33042F +:10B7F800890226CA9774FF1F9384841B06CE269459 +:10B808005C409DCF03C7019C0DC768843EC62A24AF +:10B818001E242C007C85EFF0FFF311C5484097509B +:10B82800FF1FE780A069B1473309F902CA9423A230 +:10B8380004000545F2406244D244424905618280D1 +:10B848000145CDBF9E210D47F117B3C70708636FA8 +:10B85800F704DC41411122C406C626C22E84A9CBB6 +:10B868008545AA84D92139C92685F52EC167F917D6 +:10B87800638DF40019E93E2089CB1620194763919E +:10B88800E60403D7C19B63FDE70283C7019CA28539 +:10B89800268599C72244B240924441016FF09FEB3C +:10B8A8002244B240924441016FF03FE8094582804A +:10B8B8000945B24022449244410182805145D5BF96 +:10B8C8006D45C5BF797126D252CCAA842E8A5D45B2 +:10B8D80089454AD04ECE56CA06D622D4B289B68AEF +:10B8E8003A89EFF09F9135C12A8401456306090022 +:10B8F800D685130544000299935785003CB09307F9 +:10B908004500230044017C85954728A07C84A3003A +:10B91800340122C683C7019C2C00268585C7EFF019 +:10B928007FE3AA8411C522859750FF1FE78000593D +:10B93800B25022540259F249624AD24A2685925498 +:10B9480045618280EFF07FDEE9BFCD44D5B7411174 +:10B9580006C622C49778FF1F938888082380E800CA +:10B968001387E19B3288102395472391F8009307AA +:10B97800160093F7F70F1CA32382C80099E38547A5 +:10B988001CA33687C286EFF0FFF32A8401CD177512 +:10B99800FF1F1305E504EFF0EFF1B24022852244C2 +:10B9A80041018280F9451775FF1F13056503EFF004 +:10B9B800EFFCE5B74111154506C6EFF09FE209C552 +:10B9C8000545B240410182801945EFF09FE16DF9CC +:10B9D8001145EFF01FE16DF51D45EFF09FE03335A0 +:10B9E800A000C5B79E211CA19E21A1831CB1BE2128 +:10B9F8003CA1BE21A1833CB1DE215CA1DE21A18353 +:10BA08005CB1FE217CA1FE21A1837CB1214582800D +:10BA18009A218546AA8718A19A21218318B19A21CB +:10BA28006319D700BA2138A1BA21218338B1114549 +:10BA380082800945631DA700BA211945B8A3BA2118 +:10BA48002183B8B3DA21D8A3DA212183D8B382803D +:10BA5800B286170700001307E7FB2E8685456FF0AF +:10BA68007FE6B28701482E86114797060000938625 +:10BA7800A6F7C9456FF0BFED011122CC26CA4AC806 +:10BA88004EC606CEAA842E891774FF1F130444F6E7 +:10BA98009779FF1F938949F71C4081C7CA85268576 +:10BAA80082971104E31A34FFF2406244D2444249B7 +:10BAB800B249056182804111A56506C622C426C225 +:10BAC8001384C19C854785051305C0037CB07CA001 +:10BAD800EFE0504170209307C0039384419C3306E4 +:10BAE800F602814588C09750FF1FE780C0DA7420AE +:10BAF8009C4001477D566340D7022244B24092449D +:10BB0800614681451775FF1F130585EE41011753DF +:10BB1800FF1F670043D8B2A32382070023A60702AA +:10BB280005079387C703C1BF83C6219D83A7419C8F +:10BB380001476394E60001458280AE231386C7035C +:10BB48006394A5003E85828005071377F70FB287B7 +:10BB5800CDB7411122C426C24AC006C62A892E84FE +:10BB6800B284EFF07FFC09EDC167F9175145631303 +:10BB7800F9000145B24022449244024941018280C1 +:10BB880054555C2195C213F727014146630BC70042 +:10BB9800C18B3D45E5D3BC2E0145E3FD87FC31450E +:10BBA800D1BF1545F5D4F9B7C18B0145E1F7154566 +:10BBB800D1B779714AD0416922D426D24ECE52CC1F +:10BBC80056CA5AC806D6AA8401449389C19C138AC6 +:10BBD800419C930AC0037D19054B83C769006364C0 +:10BBE800F400014525A83307540383270A00BA97B0 +:10BBF800BA236316270105041374F40FF9BFC83379 +:10BC0800300093856700EF4050591946A6852800F3 +:10BC18009750FF1FE78020CCE31F65FDB2502254E8 +:10BC280092540259F249624AD24A424B4561828093 +:10BC38004166AA8683C5219D03A7419C81477D163D +:10BC48006394F50001458280035827003A8563060E +:10BC5800C80003480700E308D8FE850793F7F70FE5 +:10BC68001307C703F1BF411106C6EFF0FFEB09C583 +:10BC78004A29B240410182800145E5BF03A7419CA2 +:10BC880083C6219D1107814701456393F600828091 +:10BC9800102301C605051375F50F850793F7F70FF0 +:10BCA8001307C703DDB703C5219D82809777FF1F60 +:10BCB800938707D481463E868C433687910785064D +:10BCC800E5FD3347C72008C301458280411106C6F8 +:10BCD80022C4EFF07FE50DCD2A842A218545EFF0B7 +:10BCE800BFD9485409C59750FF1FE780201D2285FA +:10BCF8001306C00381459750FF1FE780C0B9FD5761 +:10BD08003EA0230204000145B24022444101828042 +:10BD18000945DDBF411106C6EFF01FE109C54825F9 +:10BD2800B240410182800145E5BFC167F91763034D +:10BD3800F502411122C406C62E84EFF0FFDEAA8761 +:10BD4800014589C7DC237D8C33358000B24022440D +:10BD58004101828005458280411122C406C62E8495 +:10BD6800EFF09FDC01CD5A29AA87054563048700B7 +:10BD7800C2AB0145B2402244410182800545DDBF86 +:10BD880039C901114AC8416922CC26CA4EC652C4D3 +:10BD980056C206CEAA8401449389C19C138A419C49 +:10BDA800930AC0037D1983C76900634BF400F2400E +:10BDB8006244D2444249B249224A924A0561828089 +:10BDC800B307540303250A003E953E2163832701E8 +:10BDD80082940504C9BF828083A7419CC16603C6BB +:10BDE800219D890701470145FD1691456343C70019 +:10BDF800828003D807006309D80003C8A700631529 +:10BE0800B80005051375F50F05079387C703F9BF34 +:10BE180083A6419C03C6219D910601478147631F64 +:10BE2800E600858393C7F7FF0545B3C70708636135 +:10BE3800E5023315A0283345050882808C2299C174 +:10BE4800CE36CD8F05071377F70F9386C603C1BF8C +:10BE580093F61700F9FE050585831375F50FC1BF25 +:10BE6800797156CAAA8A2E8526D24AD04ECE52CC8D +:10BE78005AC85EC662C406D622D4AE84328B368CCB +:10BE8800BA8B3E8AC2894689EFF01FCA2DED4165FB +:10BE98007D15EFF07FC92A84554531C81946DE85DE +:10BEA80013056400A30284019750FF1FE780C09A1E +:10BEB8008357010326A0230264013EA88357410348 +:10BEC80023005401232604025EA8230644012317F5 +:10BED800340123182401EFF0BFF30AB8232A04021F +:10BEE8002685232C04028145EFF01FB90145B25085 +:10BEF800225492540259F249624AD24A424BB24BF6 +:10BF0800224C456182804545DDB783C6219D03A744 +:10BF1800419C81476395F60041657D1582800E3B03 +:10BF28001306C7036394A5002A238280850793F725 +:10BF3800F70F3287C5B7416683C5219D03A7419C8A +:10BF480081477D1615486394F500014582803623A4 +:10BF58003A85638BC600545B81CAB4329386F6FD7A +:10BF680093F6F60FE374D8FE850793F7F70F1307D8 +:10BF7800C703D1BF416683C5219D03A7419C814763 +:10BF88007D1625486394F5000145828036233A855D +:10BF9800638BC600545B81CAB4329386E6FD93F680 +:10BFA800F60FE374D8FE850793F7F70F1307C70357 +:10BFB800D1BF011122CC2A84114506CEEFB0CFF5AE +:10BFC80019CD2AC62285EFF03FB611C96244324620 +:10BFD8000E39F24003C5F19C05616F90FFF3F24002 +:10BFE800624405618280411122C4405926C206C6B6 +:10BFF800AA8431C4085409C59750FF1FE78000EC94 +:10C00800285809C59750FF1FE78040EB685809C5B5 +:10C018009750FF1FE78080EA285C09C59750FF1FEB +:10C02800E780C0E9685C09C59750FF1FE78000E911 +:10C0380022859750FF1FE78060E823AA0402224464 +:10C048008E38B240924403C5F19C41016FA04F8CD9 +:10C05800411126C206C622C4AE84EFF0FFAC31C53A +:10C06800032345032A84630203048328C3070328A0 +:10C078008307832743070327030783466300035681 +:10C088000300834523002685EFB06FF02285EFF08B +:10C098009FF5EFF03FEE11C92244B240924403C528 +:10C0A800F19C854541016FE06039B24022449244D9 +:10C0B80041018280411122C426C206C6AA842E8468 +:10C0C800EFF09FA65C5989CF9E23639B9700854715 +:10C0D8006318F4002244B240924441016FF0BFF06B +:10C0E800B2402244924441018280411106C622C4D2 +:10C0F80026C2EFF05FE405C544592A848DC0268521 +:10C10800EF003057B8309307F002631AF7002A207F +:10C118002244B2409244814541016FF07FF3B2401E +:10C128002244924441018280011122CC26CA06CEC3 +:10C138004AC84EC6AA842E84EFF01F9F05CD032956 +:10C148004503630B090483590900639799048347DE +:10C158003900130710026397E7024A85EF00705110 +:10C16800034739009307F0026316F70081454E85AF +:10C17800EFF01FEEF2406244D2444249B24905450D +:10C18800056182801307A0026398E70019C01304B1 +:10C198002003A2852685E9BF09E82685EFF0DF9808 +:10C1A80009C55C2193E707015CA1A6852285EFB04C +:10C1B800CF93C9B7011126CA99476C85AA842E85E1 +:10C1C8008D4522CC4AC806CE328936847C84EFF06D +:10C1D800CF822AC61DC9AA854A8502942A8419E5F0 +:10C1E8002C002685EFF00FE62A8411C532459750BA +:10C1F800FF1FE780A0CC2685EFF0BFDBF240228549 +:10C208006244D2444249056182804D44EDB74111F0 +:10C2180022C42E862E8497160000938626B0894560 +:10C2280006C626C24AC02A89EFF0DFF80C20AA8485 +:10C238004A85EFF0FFE1B240224402492685924444 +:10C2480041018280797122D406D69C4110082A8443 +:10C258003EC8DC4185453ECAEF00D07511C5488609 +:10C268002A206C00EFF0BFFAB25022544561828058 +:10C27800AA872E8591CFFC5781CF982398A1983310 +:10C2880098B1B82BB8A1982FDC4BB8B1DCC182802B +:10C29800414681451743FF1F6700E35F35C91D719C +:10C2A800A2CC2A840A21A6CACAC8CEC6D2C486CEBF +:10C2B8002E89B289368AEFF03F87AA8431C10C18DB +:10C2C8002285EFF0FFFAEFA0BFD7D8302ACE01457C +:10C2D8003ACCEFA0BFD42ACA08540C10EF00302380 +:10C2E8002C100818EF00F00BD2487248624752C071 +:10C2F8009387640014103010CE854A85EF10804A69 +:10C30800F6406644D6444649B649264A25618280A5 +:10C318008280AA8701CD1855414511CBFC5781CBA6 +:10C3280028333D476375A700882F82804145828066 +:10C338006DC5411122C406C626C2AA872E840945A6 +:10C34800E1C998337D761306F67F98A1B823154581 +:10C3580098B1B833B8A1D823B8B1D433DA21858AD3 +:10C36800A2061377F7EF558FDAA1D43333470708BE +:10C378001377F7DF93D61648A606558FDAA1D4337C +:10C38800334707081377F7BF93D62648AA06558F71 +:10C39800DAA1D43333470708718F93D63648AE06EF +:10C3A800558FDAA1F42333470708799B858A558F7F +:10C3B800DAA1F42333470708759B898A558FDAA1D8 +:10C3C800F423334707086D9B918A558FDAA1F82328 +:10C3D800DE21218BDD9BD98FDEA1EFB0EFB3AA84DC +:10C3E8001945EFB06FB3383093F4F40FAA87494575 +:10C3F8006360970293F7F70F63ECE7001820914703 +:10C40800614563E7E7001830854763E3E7000145C6 +:10C41800B24022449244410182800945828015C578 +:10C428002A87AE87094585C5411106C61433138589 +:10C438001700194694A1930527009740FF1FE7802E +:10C44800A041B24001454101828009458280828035 +:10C458000DC9AA872E8709459DC5411106C6B42373 +:10C46800903313052700A206D18E96A12146938505 +:10C4780037009740FF1FE780203EB2400145410149 +:10C4880082800945828082801DC12A87AE8709453E +:10C498008DC141113E8541469305170006C6974058 +:10C4A800FF1FE780603BB24001454101828009459A +:10C4B80082808280AA87094591CB89C99C333D47F0 +:10C4C80061456365F7009CA101458280828079718E +:10C4D80022D42A84084506D626D223060100042140 +:10C4E80029479387F4FF93F7F70F6362F70817D785 +:10C4F80000001307A769B3C7E7209C43BA97828750 +:10C508000C08EFF0FFE2C9476310F50499475C8611 +:10C518002A206C00EFF0BFCFB250225492544561EC +:10C5280082800C08EFF01FF91DE12A20EFF0CFDF21 +:10C53800A14711C51008A685EF00D047AA875C86D9 +:10C5480029A00C08EFF0DFF06DD11C86F1F32A204A +:10C55800EFF03FA6D1B70C08EFF07FECF5B70C0869 +:10C56800EFF09FF2D5B71C312308F1007DBF9D473E +:10C5780079BF411122C406C626C24AC018219307B2 +:10C5880020092A84631EF70E1C313947639FE70888 +:10C5980056210967610781476392E6089384819C65 +:10C5A80088402DCD0C4403C90500631D09001C21DA +:10C5B80085052146B9C729059740FF1FE780C0298F +:10C5C8009C40A1CF4945EF90EFDC2A841DC1930719 +:10C5D80010FC1CA1A30025018C40090541468905D2 +:10C5E8009740FF1FE78040279C40A2858833EF9043 +:10C5F8000FEA88409750FF1FE780408C23A4019CD6 +:10C6080029A809059740FF1FE7800025EF20F06162 +:10C6180005495DF59C40238027018547B2402244A7 +:10C62800924402493E85410182801307E0036397E3 +:10C63800E706382195476313F7024A21EFF08FED9B +:10C648009147E31CF5FC72244A20930564002244B8 +:10C65800B2409244024941016F00D022A147631BB6 +:10C66800F7006C204A202244B2409244024941011A +:10C678006FF09FAB930600038147E311D7FAD5B754 +:10C688009306000A8147E31BD7F8EFF05FE40844FC +:10C6980049D59750FF1FE780608241B78147BDBFEA +:10C6A8005D714EDE86C6A2C4A6C2CAC052DC56DA86 +:10C6B8005AD85ED6894955C13289894959CE138BD2 +:10C6C80045002A8AAE8A334B0B08930530055A85F4 +:10C6D800EFE040012A84CD4949C1EFA05F98AA84C0 +:10C6E8005686D28593DA840013DA040193FBF40F9B +:10C6F8001305440093FAFA0F137AFA0FE180EFD08A +:10C70800B03CA301740123015401A300440104A017 +:10C71800EFA05F94AA8541460808EFD0F03A214778 +:10C7280034005A86A2850808EF100022AA890DE174 +:10C7380021462C0023007901A30059012301490156 +:10C74800A301990013054900EFD01038EFA0FF911D +:10C7580022859740FF1FE7806076B64026449644BE +:10C768000649625AD25A425BB25B4E85F259616100 +:10C778008280011126CAAA842E854AC806CE22CCF8 +:10C788002E89EFF06FBA59C9405959C85C3009472A +:10C7980093F6B70F6387E60011471305E00F639917 +:10C7A800E7061E20094563952707130984004146BB +:10C7B800A6854A859740FF1FE780000A4146A6855F +:10C7C800130584019740FF1FE78000093C300547A7 +:10C7D800BD1793F7F70F636CF7021306C40332858E +:10C7E800C14532C6EFA0AFDD32469306C402CA8502 +:10C7F8002285EFF0BFAA3830C9476319F7002285B0 +:10C808006244F240D24442490561A5A33CB00145C7 +:10C81800F2406244D2444249056182800945CDBF55 +:10C828004945FDB739C9011122CC26CA06CEAA84CA +:10C838002E84094595CD0D468D0528009740FF1F8C +:10C84800E78080011C8570002C0093F7F70393E7BD +:10C85800070426855C85EF00F06C19E90D46A28572 +:10C8680068009740FF1FE78000077D153335A0005B +:10C87800F2406244D24405618280094582800111F8 +:10C8880056C2AA8A328526CA4EC652C406CE22CCC1 +:10C898004AC82E8AB289B684EFF00FA901ED8947FC +:10C8A800F2406244D2444249B249224A924A3E8501 +:10C8B8000561828058592A89C5477DF31545EFA03F +:10C8C800BFE51374F50F1945EFA01FE5E9D8982CBB +:10C8D800E36787FC9377F50FE3E3E7FC93053005FF +:10C8E80013050008EFD01060232AA9022A84CD4737 +:10C8F80045D91306000881459740FF1FE780A0F936 +:10C908008147A30104002301540123024401231099 +:10C91800340164D423240402A302040051B73971FA +:10C9280022DC06DE26DA4AD84ED652D456D25AD05F +:10C938005ECE62CC66CA0944630C060EBA8409440A +:10C948006308070EAA8B2E89328B368CEFF0CF9DA9 +:10C95800AA8A514471CD930530054145EFD09058CE +:10C96800AA894D4471C598309C2003CA3400220717 +:10C978005D8FBC20620AC207D98F336AFA0083A789 +:10C988008A0263E647017D570944639EE708630707 +:10C99800090083C74A000544898BD1C721468145D0 +:10C9A8000A859740FF1FE78000EF930C4C00930522 +:10C9B8003005B3CC0C086685EFD0D0522A894D4497 +:10C9C8003DC16286DA851105EFD010101146A685A3 +:10C9D8004A85EFD0700F414693858A014E85EFD086 +:10C9E800B00E21478A866686CA854E85EF00D075C7 +:10C9F8002A840DE521468A852800EFD0F00C2146CF +:10CA08009385440028009740FF1FE780C0EC8547C6 +:10CA1800631EF502D2855E85EFA01FFE4A8597400A +:10CA2800FF1FE780A0494E859740FF1FE780004918 +:10CA3800F25022856254D2544259B259225A925A1B +:10CA4800025BF24B624CD24C216182800544F9B7FB +:10CA5800797122D406D626D24AD04ECE2E84939708 +:10CA6800556063D207049384C19CA830EF90AF98B7 +:10CA78002AC609CDEFF0FFAFB24511E5A82093070C +:10CA8800F00F631FF5002E85EF90AF8B1319F46834 +:10CA9800B25022549254F2494A8502594561828023 +:10CAA800EF90EF9EE5B713F9150063070900EFF063 +:10CAB800CFE313491400E9BFE1DD854421A08504D3 +:10CAC80093F4F40FEFF02F9EE3F4A4FCB31790282F +:10CAD800B3C90708E18FE5D74E85EFF00FC3C167EB +:10CAE800FD176305F500DD45EFF08FD633493401B6 +:10CAF80045B74111994506C623A4019CA387A19C6B +:10CB0800EFE08FEBB24017F5FFFF1305E55A41013F +:10CB18006FF0CF99AA87094541C6D9C11CA29C21AB +:10CB28001CB29C313CA2BC213CB2BC31A302060021 +:10CB38005CA2DE2193D787485CB2DA2113770720FD +:10CB480001C793E727005CB2DE2193F7074089C746 +:10CB58005C3293E747005CB2DE211317B028F98FE7 +:10CB680089C75C3293E787005CB223030600DE21A5 +:10CB7800858B7CA2DA21098B01C793E727007CA269 +:10CB8800DE21918B89C77C2293E747007CA2DE21B6 +:10CB9800A18B89C77C2293E787007CA2014582800C +:10CBA80082802E86AA8509456FF0DFF68DC52A8713 +:10CBB800094505C7411106C6AE878D4694A1138560 +:10CBC80017004146BA859740FF1FE780E0C8B2408A +:10CBD8000145410182800945828082808DC52A876E +:10CBE800094505C7411106C6AE87914694A113852C +:10CBF80017004146BA859740FF1FE780E0C5B2405D +:10CC08000145410182800945828082808DC52A873D +:10CC1800094505C7411106C6AE87994694A11385F3 +:10CC280017004146BA859740FF1FE780E0C2B2402F +:10CC38000145410182800945828082809DC92A87F9 +:10CC4800094515CB411106C69D4694A11623AE870A +:10CC58001385370094B116232146A182B4A1930508 +:10CC680027009740FF1FE78020BFB24001454101E0 +:10CC780082800945828082808DC52A87094505C73B +:10CC8800411106C6AE87A14694A1138517004146F7 +:10CC9800BA859740FF1FE78020BCB240014541019B +:10CCA800828009458280828085C92A8709451DC7F7 +:10CCB800411106C6A54694A11423AE871385270003 +:10CCC80094B11946930517009740FF1FE780C0B835 +:10CCD800B2400145410182800945828082808DC52C +:10CCE8002A87094505C7411106C6AE87A94694A1FA +:10CCF800138517004146BA859740FF1FE780C0B5E6 +:10CD0800B2400145410182800945828082802E8699 +:10CD1800AA8505456FF01FE0AA87094581C999C70B +:10CD2800154798A19C2301459CB182808280AA87DF +:10CD3800094581C999C72D4798A19C2301459CB1F4 +:10CD4800828082800DC501118A8506CE22CC2A8474 +:10CD5800EFF00FD20A200A86970600009386A6E411 +:10CD68009D45EFF02FC5F24062440561828005457C +:10CD78008280011122CC9305C5022A8441460A8586 +:10CD880006CE9740FF1FE78020AD0A200A86970647 +:10CD980000009386E6E1C545EFF0CFC1F24062445A +:10CDA80005618280011122CC9305C5032A8441467E +:10CDB8000A8506CE9740FF1FE78000AA0A200A8648 +:10CDC800970600009386C6E1C545EFF0AFBEF24076 +:10CDD8006244056182802E8697060000938646E3AA +:10CDE800C5456FF02FBD0111B28722CC4C802A8433 +:10CDF800BE8513051100194606CE9740FF1FE78030 +:10CE0800A0A50A86228597060000938626EAA145F2 +:10CE1800EFF04FBAF2406244056182802E86970691 +:10CE280000009386A6E5C5456FF0CFB80111B2871B +:10CE380022CC6C802A84BE8513052100214606CEAB +:10CE48009740FF1FE78040A10A86228597060000C9 +:10CE5800938606DFAD45EFF0EFB5F2406244056119 +:10CE680082802E86970600009386A6E7C5456FF058 +:10CE78006FB4797122D406D626D2383193071002BE +:10CE88002A84631EF7007C55DE2B13F7170045CB69 +:10CE980018555A23058B45C7930720023CB03C30F0 +:10CEA800130720026393E70C3C5899E79305300574 +:10CEB8007145EFD0300328D82458B5CC2285EFF03F +:10CEC8004FC5A8AC2858814541469740FF1FE780C9 +:10CED800809C28583D472C2D9387F5FF93F7F70F33 +:10CEE800636BF70283C7C1A0B5CF414681450808E7 +:10CEF8009740FF1FE780209A19469765FF1F938583 +:10CF0800A5A308089740FF1FE780009530580C0834 +:10CF18002E85EF1060409740FF1FE780808F3C58B8 +:10CF2800A1458AAB13852701EF907FE92C580A2089 +:10CF3800EFF07FEA35E5930730023CB095A013F790 +:10CF4800270001CB18545A23098B01C793074002C5 +:10CF5800B1B7918BA9D71C54DE23918BA9D3930722 +:10CF680060022DBFEF90BFE57DB7130730026390D5 +:10CF7800E7063C5899EF7C54DE2B13F7270029E38A +:10CF8800918BD5C71C54DE23918BD5C393076002C0 +:10CF98006DB78E2B0A2013862701EFF03FE961DD7C +:10CFA8000A20EFE07FB8414611C172252254B250E1 +:10CFB800925403C5F19C0606854545616F80DFF5EF +:10CFC80018545A23098B4DDF93074002BDB7130746 +:10CFD8004002639CE700EFA04F87AA850A20EFF084 +:10CFE800FFE35DFD9307500289BF13075002639565 +:10CFF800E702EFA0EF84AA85054599C1854501455B +:10D008002EC6EFA0AF812A86B2450A20EFF0BFDD19 +:10D0180041F97C54DE2BADB7130760026399E70032 +:10D02800EFA04F83AA850A20EFF0BFE335F97C54BF +:10D03800DE2B13F7071001EF13F7072015C7185455 +:10D048005A23137707200DC39307900201A8185499 +:10D058005A23137707106DD3930770023CB0B25070 +:10D06800225492544561828093F7074089CB1C541F +:10D07800DE2393F7074081C79307B002C5B793072C +:10D08800F002E9BF397122DC26DA4AD84ED606DE2C +:10D0980052D42E89B2892A84EFE01FA94459414607 +:10D0A80081450A859730FF1FE780E07E8DC403DA4B +:10D0B800040063128A02B830930710026316F70659 +:10D0C8009385C4038A861386C40513858400EF00FC +:10D0D800807F8A8525C92285EFE01FA5AA8435C5EA +:10D0E8004C55ADCD9E29639B37072146C9054A8516 +:10D0F8009730FF1FE780207E85476311F50683C7B9 +:10D10800D18289C7CC54BC3D639CA708BD45228504 +:10D11800EF20E0269757FF1F83A7477D81C78945E2 +:10D128001D45829701451DA0AC58D5D59E29E3948D +:10D1380037FB2146C9054A859730FF1FE780A0794C +:10D1480059D9AC585285EF2040300545F250625409 +:10D15800D2544259B259225A2161828003C7C1A0D0 +:10D168009757FF1F83A7877815CF81C78D451D4522 +:10D1780082974146814508089730FF1FE780A071D4 +:10D1880019469755FF1F9385257B08089730FF1F81 +:10D19800E780806C0C082E850A86EF10E0178A85D8 +:10D1A800228555B781C785451D4582972285EF2081 +:10D1B800402C61BF797122D4405926D24AD04ECE34 +:10D1C80006D6AA892E89B2846307043C2A211E2028 +:10D1D800638BA7002149B25022549254F2494A85E0 +:10D1E8000259456182809387F5FF93F7F70F25472A +:10D1F8006361F73C17D700001307C79DB3C7E72043 +:10D208009C43BA9782871C54F1F793053005414532 +:10D21800EFD0404D08D45DDD9820914763F4E700D6 +:10D228000D4955BF98308547E3ECE7FE4146A68592 +:10D238009730FF1FE780406218547C54A302040013 +:10D248005443D04BFD75858A758ED62B9385F57F13 +:10D25800F99AD18ED6AB5443D04B758ED62B098A0A +:10D26800F59AD18ED6AB5443D04B758ED62B118AF6 +:10D27800ED9AD18ED6AB5443D04B758ED62B218ADE +:10D28800DD9AD18ED6AB5443D04B758ED62B137600 +:10D29800061093F6F6EFD18ED6AB5443D04B758E6D +:10D2A800D62B1376062093F6F6DFD18ED6AB5443F1 +:10D2B800D04B758ED62B1376064093F6F6BFD18EDB +:10D2C800D6ABD44B5043F18ED22B93D6B648AE068C +:10D2D8006D8ED18ED6ABB42B13F6860001C63823DB +:10D2E800218B1DFF983319C3983049E7918A81E64D +:10D2F800B820118B11CF9823954794203307F70254 +:10D3080097D700009387478BBA97B69703C907004A +:10D31800A30224012285EFF0FFA26C54BC29858B5F +:10D3280089CB1C54BC238D8B89C77C2093E71700BD +:10D338007CA05C3005476391E704414681451305AD +:10D3480084009730FF1FE78000554146814513054B +:10D3580084019730FF1FE7800054C1451305C403BB +:10D36800EF90FFA50A20C1473CB08145EFA08FDEB2 +:10D37800014995B5614969BF13F7870129C7C18B71 +:10D3880013058400414695CB89059730FF1FE78038 +:10D39800A04C41468145130584019730FF1FE78063 +:10D3A800804F7C20C1451305C40393E747007CA048 +:10D3B800EF90FFA0CD473CB065BF81459730FF1F78 +:10D3C800E780604DF9B7094789456386E70011474B +:10D3D8006397E70085450A20EFA0CFD721A019471A +:10D3E800E38AE7FE7C2093E747007CA0C547E1B7C6 +:10D3F8004146A6851305C4049730FF1FE780C04542 +:10D408003830C5476304F7029306C4021306C40301 +:10D41800930584002285EFE07FE82285EFF07F9571 +:10D428003339A000D1470E093CB075B3C94761B77D +:10D438001305C405A6854146AA849730FF1FE780D7 +:10D44800A0418A862686930584002285EFE01FE5A1 +:10D4580041469305C4040A859730FF1FE780A0471B +:10D468008547E31AF5D62285EFF0DF93930710027C +:10D4780039D18DB3383093077002631CF7127C588A +:10D4880099E7930530057145EFD0C02568D86858ED +:10D4980063010512A68541469730FF1FE780C03B10 +:10D4A80064582285EFE0FFE6A8AC9307800221B715 +:10D4B800383093078002631EF70E1E2268582146F3 +:10D4C800938524001EA949059730FF1FE780C038BF +:10D4D8007C54DE2B13F707203DC318545A231377C7 +:10D4E800072031CF93079002F9B53830930790029F +:10D4F8006311F70C3C5C99E7930530055D45EFD067 +:10D50800601E28DC285C55C54146A6859730FF1F5C +:10D51800E78080349307A00279BD38309307A002D2 +:10D528006319F7081C22285C1946938514007CA906 +:10D5380041059730FF1FE78020327C54DE2B93F79C +:10D548000740B1C31C54DE2393F707408DCF9307E0 +:10D55800B00295B538309307B002631CF7047C5CC1 +:10D5680099E7930530055145EFD0C01768DC685C32 +:10D57800E30205C64146A6859730FF1FE780C02D08 +:10D588007C5C7D5798CB03D529008145EFE05FACE3 +:10D59800C5B30C22E5BF8547E39CF5DC03284600AC +:10D5A8003C32382214322E2110220145EF90FFDA46 +:10D5B800C1B31D490DB18147C1463307F500B38892 +:10D5C800F500182383C808003308F6008507334799 +:10D5D80017012300E800E392D7FE82803D47814788 +:10D5E8007D583306E5001422B388E5007D178606CA +:10D5F800D58F2380F8001C229D83E31407FF8280C7 +:10D608000147C1469377F70F63FDC700B307E500ED +:10D618009C233388E5002300F8000507E314D7FEB0 +:10D628008280918F93B717009E07E5B701114AC80A +:10D638004EC62E89AA8993053005414506CE22CCCF +:10D6480026CA52C4328AEFD0E0092A8493053005ED +:10D658004145EFD02009AA845DC059C141468145A2 +:10D668009730FF1FE78020234E852286A685EF008E +:10D67800B04AAA8929E18307040063D90704A6856B +:10D688002285EFF0BFF54A8697C5000093850557B8 +:10D698002685EFF05FF28307090063DE0702A6859F +:10D6A8004A85EFF0BFF3528697C50000938505556C +:10D6B8002685EFF05FF022859740FF1FE780008006 +:10D6C80026859730FF1FE780607F0DA0CA852285D9 +:10D6D800EFF0DFF0C9B7D2854A85EFF03FF0E1BF40 +:10D6E80022859730FF1FE780607DCD49F240624474 +:10D6F800D2444249224A4E85B2490561828075D595 +:10D70800CD497DBF81474146B306F5003387F50013 +:10D71800182303C8060085073347070198A2E39535 +:10D72800C7FE8280011126CA4EC6AE84AA89930517 +:10D738003005130500034AC806CE22CC3289EFC053 +:10D74800707A39CD1306000381452A849730FF1F6C +:10D75800E78060144146CE852285EFC0F036A68565 +:10D768000D461305D401EFC03036130604029305A5 +:10D7780004012285EF00503AAA840D469305D4028D +:10D788004A85EFC0703422859730FF1FE780007309 +:10D79800F24062444249B2492685D24405618280FA +:10D7A800CD44FDB75D7152DC62D42E8A2A8C930574 +:10D7B800300513050003A6C2CAC04EDE56DA5AD891 +:10D7C8005ED686C6A2C4B28B368BBA84BE8A42891C +:10D7D800C689EFC030716306050E13060003814544 +:10D7E8002A849730FF1FE780000B4146E285228597 +:10D7F800EFC0902D414681450A859730FF1FE7808D +:10D8080080091D46DE850A85EFC0102C1D46DA8585 +:10D8180013057100EFC0502B33392001B334900049 +:10D8280041468145080823072101C4879730FF1F17 +:10D83800E78060061946D6854808EFC0F028CE85EF +:10D8480019461305A101EFC0302813090401414608 +:10D85800D2854A85EFC050278A854A85EFF09FEA2E +:10D86800930904024E86CA852285EF00F02AAA840D +:10D878001DE54146CE854A859730FF1FE780C0FDEC +:10D888000C084A85EFF01FE84E86CA852285EF000E +:10D89800B028AA8446454146CE85EFC0F0222285AD +:10D8A8009730FF1FE7808061B64026440649F25949 +:10D8B800625AD25A425BB25B225C26859644616109 +:10D8C8008280CD44D5B701114EC652C4AE892A8A8A +:10D8D800930530051305000326CA4AC806CE22CC94 +:10D8E800B2843689EFC0106031CD2A84D285414692 +:10D8F800EFC0901D130A0401CE8521465285EFC062 +:10D90800B01CA685214613058401EFC0F01B9309BE +:10D9180004024E86D2852285EF001020AA84414653 +:10D92800CE854A85EFC0501A22859730FF1FE780C1 +:10D93800E058F24062444249B249224A2685D2441C +:10D9480005618280CD44F5B739715ECE62CCAA8B71 +:10D958002E8C41459305300506DE4ED652D45AD05A +:10D9680066CA6AC8B289B68C3A8D22DC26DA4AD8E9 +:10D9780056D2EFC030572A8A930530054145EFC08B +:10D9880070562A8B63000A1415E552859730FF1FDD +:10D99800E780C0524D44F25022856254D254425915 +:10D9A800B259225A925A025BF24B624CD24C424D07 +:10D9B800216182802A86D2855E85EFF03FC72A845E +:10D9C80001CD52859730FF1FE780404F5A85973029 +:10D9D800FF1FE780A04EC1B7930530054145EFC052 +:10D9E8007050AA84930530054145EFC0B04FAA8A0C +:10D9F800F9C409ED26859730FF1FE780204C528532 +:10DA08009730FF1FE780804B4D44C9B71389F90051 +:10DA18001359494013F6F900630509047D19334980 +:10DA2800090829E2131549005686D2856295EFF058 +:10DA38009FB84146814526859730FF1FE780A0E5BE +:10DA48008149B3C7090863F827051DC4268597309F +:10DA5800FF1FE780A04656859730FF1FE7800046E6 +:10DA68008DB70149131549008A856295EFF05FB9B2 +:10DA78005686DA850A8565BF939549000A86E29538 +:10DA88002685EFF05FB326868A855E85EF00D0088D +:10DA98002A8485097DB75DF80A86D6852685EFF044 +:10DAA8009FB126868A855E85EF0010072A846A86DC +:10DAB800A68566859730FF1FE78000DA41BF21D130 +:10DAC8004D4451BFE30805EC81B701112AC65945F9 +:10DAD80006CE22CCEF800F8C39C1B24559462A8434 +:10DAE8009730FF1FE78040D79167938717E91EA0FB +:10DAF80085473CA03C3081CF930710033CB01946C2 +:10DB08008145130584009730FF1FE780C0D8A285A0 +:10DB18006244F24003C5C19C05616F804F97F24093 +:10DB280062440561828001112AC6314506CE22CCA5 +:10DB3800EF804F8615C5B24531462A849730FF1FBE +:10DB4800E78080D19167938717E91EA08D473CA095 +:10DB5800A2856244F24003C5C19C05616F802F9382 +:10DB6800F24062440561828001114EC6AA89394596 +:10DB780026CA4AC806CE22CC2E89B284EF808F816D +:10DB880015CD9167938727E91EA19147A301350118 +:10DB9800231225012A843CA1A68519052146973020 +:10DBA800FF1FE78060CBA2856244F240D24442491D +:10DBB800B24903C5C19C05616F806F8DF240624414 +:10DBC800D2444249B2490561828001114AC82A8972 +:10DBD800414526CA06CE22CC2EC6B284EF709FFBE2 +:10DBE80005CD9167B245938727E91EA195472A84F9 +:10DBF800231225013CA1214619059730FF1FE78014 +:10DC0800A0C5A28566A46244F240D244424903C535 +:10DC1800F19C05616F80AF87F2406244D24442496B +:10DC28000561828001112AC6394506CE22CCEF70E3 +:10DC38007FF615C5B24539462A849730FF1FE7801D +:10DC4800A0C19167938717E91EA099473CA0A285B8 +:10DC58006244F24003C5C19C05616F804F83F24066 +:10DC6800624405618280797122D426D24AD04ECE90 +:10DC780052CC06D62A842E8AB2893689BA84EFD045 +:10DC8800BFEA11CD1306F00F2C00228523144101A1 +:10DC980023153101231621016487EFD09FDCB25090 +:10DCA800225492540259F249624A45618280011114 +:10DCB8002AC6394506CE22CCEF70DFED15C5B24530 +:10DCC80039462A849730FF1FE78000B99167938708 +:10DCD80017E91EA09D473CA0A2856244F24003C5F7 +:10DCE800C19C05616F70BFFAF24062440561828091 +:10DCF80001114EC6AA89214522CC26CA4AC806CE99 +:10DD08002E89B2843684EF70FFE805C9916793873E +:10DD180017E91EA1B1473CA1A301350164A160B177 +:10DD2800624423122501F240D2444249B249AA85ED +:10DD380003C5C19C05616F709FF5F2406244D244EF +:10DD48004249B2490561828001114EC6AA892D4512 +:10DD580026CA4AC806CE22CC2E89B284EF709FE329 +:10DD680021C1930710F91CA19307E0031CB1CD470B +:10DD7800A3013501230225012A843CA1A6851505A6 +:10DD880019469730FF1FE78020ADA2856244F24014 +:10DD9800D2444249B24903C5C19C05616F703FEF47 +:10DDA800F2406244D2444249B2490561828041113D +:10DDB8004AC02A89214522C426C206C6AE843284B6 +:10DDC800EF705FDD15C1930710591EA123012501CE +:10DDD80060A1224446A1B24092440249AA8503C5E3 +:10DDE800C19C41016F70BFEAB2402244924402498B +:10DDF80041018280411126C2AA84214522C44AC019 +:10DE080006C62E893284EF70FFD80DC591679387B7 +:10DE180027E91EA1A1473CA164A160B122442312B5 +:10DE28002501B24092440249AA8503C5F19C4101EB +:10DE38006F70FFE5B240224492440249410182805A +:10DE480001112AC6314506CE22CCEF70BFD405C5D4 +:10DE5800B24531462A849730FF1FE780E09F8567E7 +:10DE6800938717C91EA0A2856244F24003C5C19CCE +:10DE780005616F70DFE1F240624405618280011143 +:10DE88004AC82A891385C50026CA06CE22CCAE8484 +:10DE980032C6EF703FD01DC98567B245938717E931 +:10DEA80024A1231225012A841EA1310508C426862F +:10DEB8009730FF1FE780409AA2856244F240D2441F +:10DEC800424903C5C19C05616F707FDCF240624422 +:10DED800D244424905618280411126C2AA8419456B +:10DEE80022C406C62E84EF70FFCA15C185679387C2 +:10DEF80017F91EA1854724A13CB142A12244B24092 +:10DF08009244AA8503C5C19C41016F705FD8B24095 +:10DF18002244924441018280411122C42A8421452D +:10DF280026C206C6AE84EF70FFC61DC191679387EF +:10DF380027E91EA1930700033CA160A1224446A142 +:10DF4800B2409244AA8503C5F19C41016F703FD449 +:10DF5800B24022449244410182804111214522C4A9 +:10DF680026C206C6AE843284EF70DFC215C185674B +:10DF7800938707391EA185473CA162A1224446A187 +:10DF8800B2409244AA8503C5119C41016F703FD0ED +:10DF9800B2402244924441018280011122CC26CA17 +:10DFA8004EC652C456C25AC01304F5FF06CE4AC81C +:10DFB800094BAA89AE84328AB68A33440408639826 +:10DFC8006511138BF19B83470B00BDCF03C9160066 +:10DFD8009C2222093369F9009757FF1F83D7878F3F +:10DFE800F517635DF91A9307C6FF631AF9063145F9 +:10DFF800EF705FBA2A8439C5930700F9A1651EA19D +:10E008002311350144A12313450185055285EFC02D +:10E01800606D08C41DC183470B00D6855286FD1765 +:10E028002300FB009730FF1FE7800083A28503C50C +:10E03800119CEF70DFC5814401A822859730FF1F2E +:10E04800E780C0E79304F00FF24062444249B249C6 +:10E05800224A924A024B2685D24405618280930760 +:10E06800D6FFE341F9FEB1473304F4029384819B60 +:10E078009C40A297B82719C7884309C59730FF1F46 +:10E08800E780C0E3A16513054900850583A904005D +:10E0980033450508EFC000659C40A29923A0A9005C +:10E0A800A297884345D10547B8A783470B005286F6 +:10E0B800D685FD172300FB009720FF1FE780C07956 +:10E0C8009C40A2972393470123922701ADB7854728 +:10E0D800E39AF5F6B1473304F4021389819B832749 +:10E0E8000900A297FA23884341CBDE23B306C70071 +:10E0F800910763C3D7083A95D6859720FF1FE78015 +:10E10800A07583270900A297FA233306EA0033464D +:10E118000608F2A3DE239107E31FF6F03145EF70FE +:10E128007FA7AA851DC9930700F91EA183270900A7 +:10E138002302650123113501A297FA239C437AA192 +:10E148001CC503C5119CEF709FB483270900A297D3 +:10E158002393070023850700F9BD83270900A297A9 +:10E16800884365D59730FF1FE78040D5832709008E +:10E17800A29723A00700D1BF11C99730FF1FE780DE +:10E18800E0D383270900A29723A00700832709006B +:10E19800A29723930700238507007DB591446DB5A9 +:10E1A8001387419D1C439306001094C3010001008E +:10E1B800010001001C4323A0070014310348050097 +:10E1C800A206B3E606010348250042083368D800D2 +:10E1D8003431E206B3E6060194D7543103484500CA +:10E1E800A206B3E606010348650042083368D80072 +:10E1F8007431E206B3E60601D4D714350348850026 +:10E20800A206B3E606010348A50042083368D80011 +:10E218003435E206B3E6060194DB54350348C500FD +:10E22800A206B3E606010348E50042083368D800B1 +:10E238007435E206B3E60601D4DB94318821A206E0 +:10E24800C98EA8214205558DB431E206C98E94CFF6 +:10E25800D431C821A206C98EE8214205558DF43172 +:10E26800E206C98ED4CF88259435A206C98EA82582 +:10E278004205558DB435E206C98E94D3D435C825E8 +:10E28800A206C98EE8254205558DF435E206C98EE9 +:10E29800D4D3D443F59AD4C3D44393E61600D4C355 +:10E2A800944393E6160094C31443DC42858BBDE384 +:10E2B8009C4E01451CA21C439C4FA1831CB21C43CD +:10E2C8009C4FC1833CA21C439C4FE1833CB21C433E +:10E2D800D84F58A2D84F218358B2D84F418378A23B +:10E2E800D84F618378B2985318A69853218318B6EB +:10E2F8009853418338A69853618338B6D85358A6A3 +:10E30800D853218358B6D853418378A6DC53E18388 +:10E318007CB68280010049BF011122CC2A84354590 +:10E3280006CE2EC632C4EFC0603603A7019F3C4B11 +:10E33800228593E707083CCB2246B245EFF05FE61B +:10E34800F240624401450561828003A7019F3C4B6E +:10E3580093E707083CCB0100010001000100138787 +:10E368000508145B160583A7419D1365050888C336 +:10E3780094CB83C6450B0145D4CB344B94CF744B17 +:10E38800D4CF344F94D3744FD4D3345394D77453D5 +:10E39800D4D7345794DB7457D4DB345B785B94C799 +:10E3A800D8C798431367070498C3828003A7019FBF +:10E3B8003C4B93E707083CCB01000100010001003A +:10E3C80013870508145F160583A7419D1365050883 +:10E3D80088C394CB83C6C50B0145D4CB344B94CFAB +:10E3E800744BD4CF344F94D3744FD4D3345394D77D +:10E3F8007453D4D7345794DB7457D4DB345B785BCD +:10E4080094C7D8C798431367070498C3828079478D +:10E41800AA87636FA70469470D45636CF7045D47D6 +:10E4280009456368F704514705456364F7044547A0 +:10E4380001456360F7043D477D55636CF7022D473E +:10E4480075556368F70225476D556364F7021947E8 +:10E4580061556360F70211475955636CF700094726 +:10E4680045556368F70031556385E7001D5582807F +:10E478001D4582802157AA876349E5043557094518 +:10E4880063C6E70449570D4563C2E7045D57154560 +:10E4980063CEE70265571D4563CAE70271572945F0 +:10E4A80063C6E7027957314563C2E702414563CF46 +:10E4B800070019471305B003634AF7001387818AD9 +:10E4C80093F7F70FBA978823828005458280938750 +:10E4D800019F9443D84613161749D0C60F10000061 +:10E4E8009C43B7060200060594C7E8D3D8C78280C4 +:10E4F8001747FF1F034797519147630DF704B7C7A5 +:10E50800004003A7419D938707306315F704411125 +:10E51800354506C6EFC08017EFC0703B4D28EFC0E9 +:10E52800B03103A7819D1C431305805593F7F7CF9E +:10E538001CC3EFC03035D12AEF0030623122592A8E +:10E548000145EFC03034B2409747FF1FA380074C06 +:10E55800410182808280FD572380F19E23A2019E83 +:10E56800B7C700401387073023AAE19C1387072009 +:10E5780023A8E19E9387071037D70040411123A0B5 +:10E58800E1A023ACF19C06C61747FF1F1307C74736 +:10E5980085475CB39747FF1F83A7C7325CCB938738 +:10E5A800C7101CCBEFF0DFF4B7E700E003C7574113 +:10E5B80013670708A38AE740B2403707100023A073 +:10E5C800E7103707200023A0E7104101828083A7C6 +:10E5D80001A01307004898D7D85FB70600F9FD16C1 +:10E5E800758F13179729D8DFD85FB706FAFFFD167E +:10E5F8000E070D831317E729D8DF985B758F98DB13 +:10E60800985BB7060090FD16758F1317E72998DBFE +:10E61800B847B706F9FFFD16758FB8C7B84BB706E8 +:10E6280007001377F78F13670730B8CBF84F558F6C +:10E63800F8CFF84FB7060007558FF8CF9307400675 +:10E648000100FD17F5FF8280138701A01C43B44B1E +:10E6580093960649B4CB94479396562994C7D447C2 +:10E6680093E60601D4C7D447BD9AD4C70100010078 +:10E67800010001001C43D44793E60601D4C7D443E4 +:10E688009396C628D4C303A6019F9306400674D266 +:10E69800745291C683A6C70993D68648F5DA010055 +:10E6A800010001000100184393070708DC4FFD8BA8 +:10E6B800A38AF19E344B9396062934CB344B819A26 +:10E6C800DD8E34CB1447F5179396564914C7238A21 +:10E6D800F19E828083A701A0B44F41777D17F98E00 +:10E6E800B4CF94479396062994C7D44793F6F6EF88 +:10E6F800D4C7D443758FD8C3D84713670710D8C772 +:10E70800D84313170729D8C382805D71A2C44EDE8F +:10E7180052DC86C6A6C2CAC056DA5AD85ED662D4B9 +:10E7280066D26AD06ECE03A401A05C409389D19FC3 +:10E73800138AB19F93F7F7EF5CC01C549397C748AF +:10E748001CD45C54BD9B5CD41C44939717291CC4EF +:10E758005C4093E707015CC0856703D7619F938797 +:10E768004723E308F73E5C4001791309F90FF99B49 +:10E778005CC01C5C3167130707F0B3F72701D98F1A +:10E788001CDC5C409304040893E717005CC0EFC0EE +:10E79800301A9C4893F7F7032380F900DC48A983D3 +:10E7A80093F7F707238EF19E5C40396713070770CC +:10E7B800F99B5CC01C5CB3F72701D98F1CDC5C405B +:10E7C80093E717005CC0EFC0B0169C4893F7F703B7 +:10E7D800A38CF19EDC48A98393F7F707238CF19E5D +:10E7E8005C40356713070730F99B5CC01C5CB3F7C6 +:10E7F8002701D98F1CDC5C4093E717005CC0EFC091 +:10E8080030139C4893F7F7032300FA00DC48A983E8 +:10E8180093F7F707238DF19E83470A0083C6090003 +:10E828007D7E3EC69D8E93070408985313F6F60026 +:10E83800130EFE0F419B518F98D313076002338745 +:10E84800E602130670028C5313054002457393F5D4 +:10E85800F5F07D1393043002B708F1FFFD18334734 +:10E86800C70213082002930E10027D4FF94FF5429C +:10E87800F1436D4D514CC54B3D49B949B14A2D4BFA +:10E88800354A3D8B12074D8F9305500298D3338735 +:10E89800B6028C53B3F5C5013347C7023D8B220737 +:10E8A8004D8F98D33387A6028C53370500F17D1519 +:10E8B800B3F565003347C7023D8B32074D8F98D3B8 +:10E8C800338796028C53E144B3F515013347C702E9 +:10E8D8003D8B42074D8F98D3338706038C533708F7 +:10E8E80010FF7D18B3F505013347C7023D8B52076A +:10E8F8004D8F98D33387D6038C53B70E0010FD1E67 +:10E90800E98D3347C7023D8B62074D8F93955600BB +:10E91800B3C5C50298D398533377D701F2054D8F05 +:10E92800B385E60398D3D8535D4F419BB3C5C50261 +:10E93800BD894D8FD8D33387F603CC53D94F93F580 +:10E94800F5F03347C7023D8B12074D8FD8D3338775 +:10E958005602CC53D542B3F5C5013347C7023D8BA8 +:10E9680022074D8FD8D333877602CC53CD43B3F5E6 +:10E9780065003347C7023D8B32074D8FD8D33387A5 +:10E98800A603CC53494DB3F515013347C7023D8B58 +:10E9980042074D8FD8D369473387E602CC53B3F586 +:10E9A80005013347C7023D8B52074D8FE545D8D344 +:10E9B8003387B602CC53E98D3347C7023D8B6207D4 +:10E9C8004D8FB3859602D8D3D8538D443377D7016A +:10E9D800B3C5C502F2054D8FB385E603D8D3985762 +:10E9E800254F419BB3C5C502BD894D8F98D7338745 +:10E9F800F6038C579D4F93F5F5F03347C7023D8BCF +:10EA08001207D98D338756028CD78C579942B3F5A4 +:10EA1800C5013347C7023D8B2207D98D338786034B +:10EA28008CD78C57B3F565003347C7023D8B320747 +:10EA3800D98D338776028CD78C579543B3F515015A +:10EA48003347C7023D8B4207D98D3387A6038CD73E +:10EA58008C57294DB3F505013347C7023D8B520743 +:10EA6800D98D338776038CD78C57E98D3347C70206 +:10EA78003D8B6207D98D8CD793954600B3C5C502E7 +:10EA880098573377D701F2054D8FB385260398D76A +:10EA9800D857419BB3C5C502BD894D8FD8D7338799 +:10EAA8003603CC5793F5F5F03347C7023D8B120771 +:10EAB800D98DCCD7B3C59602D8573377C701BD894E +:10EAC800A2054D8FD8D733875603CC57B3F56500C9 +:10EAD8003347C7023D8B3207D98D33876603CCD7BE +:10EAE800CC57B3F515013347C7023D8B4207D98D83 +:10EAF8003387A603CCD7CC57B3F505013347C702F4 +:10EB08003D8B5207D98D3387E603CCD7CC57E98D97 +:10EB18003347C7023D8B6207D98DCCD79395360012 +:10EB2800B3C5C502D8573377D701F2054D8FB385E2 +:10EB3800F603D8D7985B419BB3C5C502BD894D8FF5 +:10EB480098DB338756028C5B93F5F5F03347C702A1 +:10EB58003D8B1207D98D338776028CDB8C5BB3F53E +:10EB6800C5013347C7023D8B2207D98D139726006D +:10EB78003347C7028CDB8C5BB3F565003D8B3207EE +:10EB8800D98D8CDBB3C54603985B33771701BD89F4 +:10EB9800C2054D8F98DB139716003347C7028C5B6D +:10EBA800B3F505013D8B5207D98D8CDBB3C5C60281 +:10EBB800985B698FBD89E2054D8F98DB985B337749 +:10EBC800D70198DBB24503C7919F83AC47033387CE +:10EBD800E54093058002B34DB70293FC0CFF334C1C +:10EBE800870393FDFD00B3ECBC0123AA970383AC14 +:10EBF8004703CD4D93FCFCF0137CFC00120CB3ECE6 +:10EC08008C01330C970223AA970383AC4703B3FC08 +:10EC1800CC01334CBC02137CFC00220CB3EC8C01FD +:10EC280023AA9703B34CA70303AC4703337C6C00B8 +:10EC380093FCFC00B20C336C9C0123AA8703214C83 +:10EC4800334C870383AC4703B3FC1C01137CFC00E3 +:10EC5800420CB3EC8C01330C570223AA970383AC04 +:10EC68004703B3FC0C01334CBC02137CFC00520C70 +:10EC7800B3EC8C01330CF70323AA970383AC470347 +:10EC8800B3FCAC00334CBC02137CFC00620CB3EC4C +:10EC98008C0123AA9703B34C770203AC4703337C58 +:10ECA800DC01F20C336C9C01B30CE70323AA870345 +:10ECB80003AC8703137C0CFFB3CCBC02330B670394 +:10ECC80093FCFC00336C9C0123AC8703114C83AC90 +:10ECD800870393FCFCF0334C8703B30A5703137C78 +:10ECE800FC00120CB3EC8C0123AC970303AC870334 +:10ECF800D54C337CCC01334BBB02330A4703137B1F +:10ED0800FB00220B336C6C0123AC870303AB870336 +:10ED1800594C337B6B00B3CABA02B309370393FA71 +:10ED2800FA00B20A336B5B0123AC670383AA87033B +:10ED3800614BB3FA1A01334ABA0233092703137A2B +:10ED4800FA00420AB3EA4A0123AC570303AA87032D +:10ED5800E54A337A0A01B3C9B9023349B90293F9CA +:10ED6800F900D209336A3A0123AC470383A9870320 +:10ED7800694AB3F9A900B30B77031379F90062095B +:10ED8800B3E9290123AC37039319470003A9870383 +:10ED98003379D901B3C9B902B3CBBB02F2093369DC +:10EDA800390123AC270303A9C703137909FF93FB90 +:10EDB800FB003369790123AE270349493309270347 +:10EDC80083A9C703DD4B93F9F9F03349B9021379E5 +:10EDD800F9001209B3E929013309B70323AE370350 +:10EDE80083A9C703F54DB3F9C9013349B9021379AA +:10EDF800F9002209B3E9290109493349270323AE58 +:10EE0800370383A9C703B3F969001379F9003209F5 +:10EE1800B3E929013309970323AE370383A9C7034D +:10EE2800F94CB3F919013349B9021379F9004209C8 +:10EE3800B3E929013309870323AE370383A9C7033D +:10EE48007D4CB3F909013349B9021379F900520924 +:10EE5800B3E929013309770323AE370383A9C7032D +:10EE6800930B1002B3F9A9003349B9021379F900D9 +:10EE78006209B3E929013309670323AE370383A97C +:10EE8800C703130B2002B3F9D9013349B902720938 +:10EE9800B3E929013309570323AE370383A90704CC +:10EEA800930A300293F909FF3349B9021379F9003B +:10EEB800B3E929013309470323A0370583A90704C8 +:10EEC800130A400293F9F9F03349B9021379F900AA +:10EED8001209B3E9290123A03705ED49330937039E +:10EEE80083A90704B3F9C9013349B9021379F900B1 +:10EEF8002209B3E9290171493309270323A03705FA +:10EF080083A90704B3F969003349B9021379F900F1 +:10EF18003209B3E929013309B70323A0370583A9C7 +:10EF28000704B3F919013349B9021379F900420901 +:10EF3800B3E929013309970323A0370583A90704F7 +:10EF4800B3F909013349B9021379F9005209B3E950 +:10EF580029013309870323A0370583A90704B3F9D7 +:10EF6800A9003349B9021379F900620933E9290183 +:10EF780093195700B3C9B90223A0270503A90704A9 +:10EF88003379D901F2093369390123A027053309F7 +:10EF9800770383A9470493F909FF3349B902137921 +:10EFA800F90033E9290123A227053309670383A957 +:10EFB800470493F9F9F03349B9021379F9001209B2 +:10EFC80033E9290123A227053309570383A94704F5 +:10EFD800B3F9C9013349B9021379F900220933E9B0 +:10EFE800290123A227053309470383A94704B3F955 +:10EFF80069003349B9021379F900320933E9290163 +:10F008009309500223A227053309370383A947042C +:10F01800B3F919013349B9021379F900420933E9FF +:10F02800290123A22705130960023309270383A9AD +:10F038004704B3F909013306C7023349B902334615 +:10F04800B6021379F900520933E9290123A22705E9 +:10F0580003A947043379A9003D8A62063366C900CB +:10F06800F0C3F0431319C7013376D601336626017E +:10F07800F0C3130690023306C70203A98704137965 +:10F0880009FF3346B6023D8A3366C900B0C7130686 +:10F09800A0023306C7023346B602AC4793F5F5F033 +:10F0A8003D8A12064D8EB0C783C5A19F03C6819FB6 +:10F0B8003386C5403309A60383A98704B3F9C90178 +:10F0C8003349E902136989001379F900220933E900 +:10F0D800290123A427053309E60383A98704B3F983 +:10F0E80069003349E902136989001379F900320983 +:10F0F80033E9290123A42705131936003349E90206 +:10F1080083A98704B3F91901136989001379F900F0 +:10F11800420933E9290123A427053309F60383A902 +:10F128008704B3F909013349E9021369890013799E +:10F13800F900520933E9290123A4270533095602A6 +:10F1480083A98704B3F9A9003349E902136989003F +:10F158001379F900620933E9290123A42705330942 +:10F16800760283A98704B3F9D9013349E9021369FF +:10F178008900720933E9290123A4270513192600F8 +:10F188003349E90283A9C70493F909FF1369890080 +:10F198001379F90033E9290123A6270533099602D3 +:10F1A80083A9C70493F9F9F03349E902136989007F +:10F1B8001379F900120933E9290123A62705131940 +:10F1C80016003349E90283A9C704B3F9C9013346D4 +:10F1D800E602136989001379F900220933E9290144 +:10F1E80023A62705F84733776700136686003D8A0C +:10F1F8003206518FF8C7F84733771701F8C703C7A6 +:10F20800C19F0D8F3349D702F04793F5F507E20503 +:10F21800337606011379F900520933662601F0C7DF +:10F22800131617003346D60203A9C7043379A90079 +:10F23800B30497023D8A62063366C900F0C7F047F7 +:10F248003376D601931E2700B3C4D402B3037702E2 +:10F25800F204458EF0C7B04B419AB3CEDE02B3023A +:10F26800570293FEFE003366D601B0CBB04B13763F +:10F27800F6F0B3C3D302B30FF70393F3F30092038B +:10F2880033667600B0CBB04B3376C601B3C2D20238 +:10F29800B3CFDF0293F2F200A20233665600B0CB7E +:10F2A800B04B33766600330FE70393FFFF00B20FCE +:10F2B8003366F601B0CB1316370003A30705B378FE +:10F2C80013013346D6023307A7033D8A420633E6C5 +:10F2D800C800B0CBB04B33760601334FDF0233475B +:10F2E800D702137FFF00520F3366E601B0CBB44B51 +:10F2F800E98E3D8B6207558FB8CB5C40BD9B5CC0E7 +:10F308005C40F99B5CC01C549397C7281CD45C5480 +:10F3180093E707015CD4B24713F7F7031C5C93F734 +:10F3280007FCD98F1CDC1C5C370700817D17F98F1F +:10F33800CD8F1CDCB640264496440649F259625AE1 +:10F34800D25A425BB25B225C925C025DF24D616113 +:10F358008280239B019E6FF02FCC03A701A05C4302 +:10F3680093E707105CC38280411106C6712C930590 +:10F378006040EFE07FB6B24001454101828065AC54 +:10F3880001111305910006CED92C4884056530007B +:10F3980025059D45EFE0BFAEF240088405618280F7 +:10F3A80001119305F10006CE22CC2A84D12C48867F +:10F3B8000565C0867000218013055540914540873A +:10F3C800EFE0FFABF24062440886056182800111DC +:10F3D8001305D10006CEC12C4886096570000905C1 +:10F3E8009145EFE0DFA9F2400886056182800111AE +:10F3F80006CE8D29C88709651306F10041058545A4 +:10F40800EFE0FFA7F240888705618280011106CEF0 +:10F418000121C88709651306F10045058545EFE018 +:10F428001FA6F240888705618280011113055100EB +:10F4380006CEA1294882096550006105A545EFE07F +:10F448001FA4F240014505618280011106CE22CC3D +:10F458002A84B52148860965C0867000218069051F +:10F468008D454087EFE0BFA1F24062440145056148 +:10F478008280011106CE22CC2A84312B4886096568 +:10F48800C086700021806D058D454087EFE03F9F65 +:10F49800F2406244014505618280011106CE22CC0A +:10F4A8002A84392C48860965C08670002180130596 +:10F4B80005028D454087EFE09F9CF240624401457C +:10F4C80005618280011106CE22CC2A8471244886E7 +:10F4D8000965C08670002180130515028D45408797 +:10F4E800EFE0FF99F2406244014505618280011115 +:10F4F80006CE22CC2A84712C48860965C086700005 +:10F508002180130525028D454087EFE05F97F24083 +:10F518006244014505618280011106CE6529C887CC +:10F5280009651306F100130515038545EFE03F95BE +:10F53800F240888705618280411106C622C46D2980 +:10F548008965938525032A84EFE01F99B2402285B7 +:10F5580022444101828039711303D1021ACE034338 +:10F56800810506DE1ACC034341051ACA0343010587 +:10F578001AC80343C1041AC6034381041AC4030307 +:10F5880041041AC2034301041AC0D9212306A10267 +:10F5980009657010130565038945EFE05F8EF25029 +:10F5A8000345C10221618280011106CE9D2DC887C5 +:10F5B80009651306F100130575038545EFE03F8CD7 +:10F5C800F240888705618280011106CEF525C8873B +:10F5D80009651306F100130585038545EFE03F8AA9 +:10F5E800F240888705618280011106CE8D27C88781 +:10F5F80009651306F100130595038545EFE03F887B +:10F60800F240888705618280411122C406C62E8493 +:10F61800EF40A06719CD3821AA874945418B11C70A +:10F628006D472387870898A70145B24022444101C6 +:10F6380082804945DDBF011106CE22CC2EC6EF409F +:10F64800C06401CDB2452A84EF30D07EA30AA40A53 +:10F658000145F2406244056182804945DDBF1737A4 +:10F66800FF1F1307A74A8147994683455704330666 +:10F67800F50085070CA20507E399D7FE01458280AE +:10F68800411122C406C62E84EF40206009C98307B1 +:10F69800E50101451CA0B240224441018280930744 +:10F6A800F0070945C5BF9737FF1F9387A7219A2BF6 +:10F6B80018A19A2B218318B1FC373CA101458280FF +:10F6C800011122CC26CA4AC84EC63284AE89368970 +:10F6D800BA8406CEEF40605B05679386A9FF1306E0 +:10F6E800A7C7B3C606086367D606130707C8AA875D +:10F6F8004945636A8704636834059306301F63E4E9 +:10F708002605636297041307190033470708330770 +:10F718008702939634006358D70295C79837937633 +:10F72800470089CE6D9B98B79A3B2396370B239752 +:10F73800870A136707029ABB4147F8B7239A270934 +:10F74800239B97080145F2406244D2444249B2499A +:10F75800056182804945C5BF411122C406C62E8471 +:10F76800EF40A05211E54945B24022444101828050 +:10F778001C35A30A850A13F7470075D7ED9B1CB5FE +:10F78800BD47230BF50A1E3993E727001EB901452B +:10F79800E1BF411122C426C206C62E84B284EF40BE +:10F7A800C04E03572511137707022DC3130754FEC4 +:10F7B8009306000EAA8733470708494563E0E60227 +:10F7C8001167938684EB13078714B3C6060863672B +:10F7D800D70003D7A712631887000145B240224417 +:10F7E8009244410182809736FF1F93862632D822A1 +:10F7F8003357870A239DE710DA263357970A239E43 +:10F80800E710FA371317B728FAB7C1BF4545F9B754 +:10F818001737FF1F1307872F544BAA8791C6F0226B +:10F8280001C69426494581EA83468703034797031F +:10F8380063E8E6001D4582801D45F240056182802F +:10F84800011119461305A100DC8406CE9710FF1F8D +:10F85800E78080002800EF5060608547E31EF5FCD4 +:10F868000145E1BF9737FF1F83A7872B91C7F8236F +:10F8780001C79C27494589EB411106C6EF508068AE +:10F88800B2400145410182808280411122C426C2D2 +:10F898004AC006C6AA84014421499305F00F0545CC +:10F8A800EF603FD5B387840088A30504E31724FFDE +:10F8B800B2402244924402490145410182804111EB +:10F8C80022C406C62E84EF40403C61C51825930724 +:10F8D80040026316F7067C245834A2074207BA97F9 +:10F8E8007834BA9758246207BA970347E50B29CFAB +:10F8F800130705083CC33C241434A207C206B69774 +:10F908003434B6971424E206B6977CC37C2054306E +:10F91800A207C206B6977430B6975420E206B69787 +:10F928003CC73C201430A207C206B6973430B697BD +:10F938001420E206B6977CC79307A0021CA50145D0 +:10F94800B240224441018280130705083CD33C247D +:10F958001434A207C206B6973434B6971424E206C4 +:10F96800B6977CD37C205430A207C206B697743071 +:10F97800B6975420E206B6973CD73C201430A2072D +:10F98800C206B6973430B6971420E206B6977CD7ED +:10F9980065B7054575B7411106C6EF40002F0DC97B +:10F9A800142513074002AA8709456390E6020D470C +:10F9B800238BE70A1947A38AE70A1307500298A777 +:10F9C800B83B014513671700B8BBB24041018280BC +:10F9D8000945E5BF9737FF1F93874713B82B6D8FEE +:10F9E8006304B7004945828098ABB83B718FE31B2D +:10F9F800C7FE98BB01458280411122C426C24AC075 +:10FA080006C62E843289B684EF40202821C1937718 +:10FA1800140089EF8D4763F927014545B240224418 +:10FA2800924402494101828023092513098811E47F +:10FA38008D47E3E497FEA30995128547A308F512BD +:10FA48007E359397C7287EB50145C9BF4945F9B7A3 +:10FA58005D716ECE973DFF1F938D4D0B5AD83E8B2F +:10FA680083A74D01A2C4A6C2CAC04EDE52DC5ED630 +:10FA780062D466D286C656DA6AD046C6B689830B81 +:10FA8800410583468105B65C2A8A2E84B2843A8968 +:10FA9800428C99C7B847B70700043145F98F95EBF1 +:10FAA8000D47494563676703137D040163020D042D +:10FAB80085476390F6025285EF30C04EAA8A6313D9 +:10FAC800051083A78D0105458297AA8A1D4563976E +:10FAD8000A0EB640264496440649F259625AD25A4A +:10FAE800425BB25B225C925C025DF24D6161828096 +:10FAF800937734004945E38EE7FC93778400F1FB64 +:10FB08005285EF30204AAA8A4DDD83C67A00054720 +:10FB18006380E60E4545E3EE99FA7D47E37B97FA65 +:10FB28001167E36837FBCE948580B3C40408239C2F +:10FB38009A00A3842A011D47631EE90A0D47A38979 +:10FB4800EA003245A3846A0319468145EFA0207B69 +:10FB58004DEDB24505472388EA02A3888A03194672 +:10FB680013852A039710FF1FE78000CF034701057D +:10FB78002384EA001307F007639CEB081737FF1F7D +:10FB8800034787D52380EC000385FA00EFE09F8EBA +:10FB9800238AAA04EFE0BF8703478106A387AA0048 +:10FBA8002380AC00A389EA0403A78A0423890A04F2 +:10FBB80001451317B72923A4EA0421BF23824A0168 +:10FBC800E3050DF43D8815476317E4001307100893 +:10FBD800A383EA001DBFB5460547E30BD4FE89465B +:10FBE8001947E307D4FE1334140013171400CDB7D4 +:10FBF800894435BF1307F9FF3377270109E705471C +:10FC0800A384EA003DBF0947E5BF23880A02B9BFBC +:10FC1800194763457701A3877A01BDB7A387EA002F +:10FC2800A5B701114EC69739FF1F938929EE83A7FF +:10FC3800490122CC26CA4AC806CE2E893684BA84FF +:10FC480091CFB847B7070004F98F89CB3145F24007 +:10FC58006244D2444249B24905618280EF3080341F +:10FC6800AA8719E583A7490113052004E5F3C5B759 +:10FC7800783185463D8B6300D7020D474945E31827 +:10FC8800E9FC7D47E36587FC238B070019E4B84747 +:10FC980013178749B8C701455DBFB7E600E0904232 +:10FCA8003707200023A0E618798E0F10000084D3B0 +:10FCB800E0AB23A0C610C5B701114EC69739FF1F88 +:10FCC8009389C9E483A7490122CC26CA4AC806CE2B +:10FCD8002E893684BA8491C7B847B7070004F98FCC +:10FCE80091EBEF30202CAA8701E983A7490113057E +:10FCF800200489CB314539A0783185463D8B631A7C +:10FD0800D7000145F2406244D2444249B2490561F4 +:10FD180082800D474945E317E9FE7D47E36487FE86 +:10FD2800A38B070011E4B84713179749B8C7D1BF89 +:10FD3800B7E600E090423707200023A0E618798E46 +:10FD48000F100000C4D3E0BB23A0C6105DBF411153 +:10FD580026C29734FF1F938464DBAA87C84822C44D +:10FD68004AC006C63284368915C1344537070004AF +:10FD7800758F01CB3145B24022449244024941017A +:10FD88008280858B81CB91E94945F5B7858BE5FF65 +:10FD98000145D5B7EF30E02EE5BF0820EF308020D1 +:10FDA80011E5DC4813052004F1F7F1B73845B7072A +:10FDB8000003F98FE1F3783185476318F70003579B +:10FDC800090093070008E3E1E7FCDC4CD5DF0820D5 +:10FDD8002244B2409244024941018287011126CA55 +:10FDE8004AC852C406CE22CC4EC62E8A3289B68460 +:10FDF800EF30B06945C9938741A0631D09000547E5 +:10FE080098A30145F2406244D2444249B249224A89 +:10FE180005618280982385472A846315F700238229 +:10FE280001A0094AB7E700E083A9070037072000C7 +:10FE380023A0E718B3F9E9000F100000EF30D067EE +:10FE480031C13C253EA57C509DEB68D028D4930752 +:10FE580010F8F9141CB523200500231625012304E6 +:10FE6800450144C16C280145B315B028B3C5050840 +:10FE7800EFA0C05CB7E700E023A0371159B73C54A6 +:10FE880088C3E9B79737FF1F83A747A691C795652A +:10FE98009385555505458297B7E700E023A03711AC +:10FEA8001D458DB70945B9BF130705031E21110567 +:10FEB80093C7F7FF231EF5FE8347E5FF93C7F7FFB8 +:10FEC800230FF5FEE314E5FE8280411119469305E0 +:10FED800F00F06C622C42A849710FF1FE780A09B54 +:10FEE8001305640019469305F00F9710FF1FE7806C +:10FEF800809A23070400B240231604002328040034 +:10FF0800224441018280011122CC26CA4AC84EC629 +:10FF180052C406CE81440144138951A1938981A119 +:10FF2800514A83470900636BF400F2406244424936 +:10FF3800B249224A2685D2440561828033054403AA +:10FF480083A7090019469305F00F3E95EFA0203BC3 +:10FF580001E5850493F4F40F05041374F40FD1B785 +:10FF6800011122CC26CA4AC84EC606CE0144938443 +:10FF780051A1138981A1D1499C20636BF4003E846F +:10FF8800F24022856244D2444249B24905618280E6 +:10FF9800330534038327090019469305F00F3E956E +:10FFA800EFA0E03571FD05041374F40FF1B703A554 +:10FFB80001A111CD411106C6EF50BFB8B24023A828 +:10FFC80001A083C751A1238AF1A04101828083C780 +:10FFD80051A1238AF1A082801971A6DA86DEA2DCFB +:10FFE800CAD8CED6D2D483C741A1AA84639EA7001B +:08FFF8001384D1A20820854505 +:020000021000EC +:10000000EF503FE108208945EF50BFE0EFF0BFFA25 +:100010001949338924030A86D145930909204E855D +:10002000EF608FFF19C90144F65022856654D654FB +:100030004659B659265A0961828019469305F00F30 +:100040000A85EFA0402C65F1514433848402138A61 +:1000500081A103250A002295EFF0BFE74808714609 +:100060009305F00F9710FF1FE780608308181306B1 +:1000700000039305F00F9710FF1FE78040820326CF +:100080000A00D1454E852296EF601FA250082A84AF +:10009000F14513051920EF603FA15008498CF14547 +:1000A00013052920EF605FA01374F40F5008498CEA +:1000B000C14513053920EF603F9F1374F40F5008BA +:1000C000498CC14513054920EF601F9E1374F40F3E +:1000D0005008498C914513055920EF60FF9C13741B +:1000E000F40F498C1D651018930500032695EF60E9 +:1000F000BF9B1374F40F498C03C5E1821374F40F92 +:10010000EF605F9515B7011122CC26CA4EC652C4C6 +:1001100006CE4AC80144EFF00FAE938951A1514A6F +:10012000938481A183C70900634AF400F2406244CA +:10013000D2444249B249224A0561828033094403CC +:10014000884019469305F00F4A95EFA0C01B11E5B2 +:100150008C40CA95E835EFF0EFAB0504E1B701112B +:1001600006CEEFF0DFDA054789476363A700A947AA +:100170001306F10085451545DC87EF10A076F240A7 +:1001800005618280011122CC26CA4EC652C456C2D5 +:1001900006CE4AC80144938951A1514A938481A152 +:1001A000994A83C709006361F40283C771A199C3A7 +:1001B000EFF07FF56244F240D2444249B249224A0C +:1001C000924A05616FF0BFF9330944039040D1456D +:1001D000330554034A961305052033450508EF609F +:1001E000AFE305C9884019469305F00F4A9597007B +:1001F000FF1FE780C06A884019469305F00F4A95B3 +:1002000019059700FF1FE78080699C40CA972396D5 +:10021000070005041374F40F69B72A2183C5D1A21E +:100220006F900F8D011122CC26CA4AC84EC652C407 +:1002300006CEAA840144138951A1938981A1514A10 +:1002400083470900636CF4003E84F24022856244D7 +:10025000D2444249B249224A0561828033054403AF +:1002600083A709001946A6853E959700FF1FE780E2 +:10027000006761FD05041374F40FD9B71D71CAC876 +:10028000138901A183270900D2C4D6C286CEA2CC8D +:10029000A6CACEC6DAC05EDE62DC66DA6AD82A8A10 +:1002A000AE8A8DE36302052263800522EFF09FF79B +:1002B000138441A108A083C751A16365F500EFF045 +:1002C000BFCA08A0938441A1938B51A1882083C702 +:1002D0000B00637BF51E8327090063940712814995 +:1002E0007D5B0144514D138C81A10DA86385E9020A +:1002F000B38CA90303250C0019469305F00F6695EE +:10030000EFA0600009E983270C00E6979C4B33744B +:10031000F40A335BFB0A850993F9F90F83C70B00D5 +:100320009820E3E5F9FC330B644163550B048149E4 +:100330000144D14C138B81A10DA86385E902338C54 +:10034000990303250B0019469305F00F6295EF9072 +:10035000907B09E983270B00E2979C4B63C407005D +:100360003374F40A850993F9F90F83C70B009820B9 +:10037000E3E5F9FC8820854705043374F40A9947BE +:100380003305F5025286D14523288A00130505203E +:1003900033450508EF604FF1130600039305F00F96 +:1003A0000A859700FF1FE780804F88209D670A8697 +:1003B0003E959305000333450508EF60EFEE9C2062 +:1003C000514703A581A1B387E7025146D2853E95E7 +:1003D0009700FF1FE780C0482320590103C5E18231 +:1003E000EF604FE70145F6406644D6444649B649BA +:1003F000264A964A064BF25B625CD25C425D2561FE +:1004000082809047014705C299473305F502F145BF +:100410001305152033450508EF600FE98327090010 +:10042000054723A4070083270900904B35C2882085 +:100430009947F1453305F502130525203345050895 +:10044000EF608FE683270900D04B23A8070039E22D +:10045000D04749D688201944C14533058502130584 +:10046000452033450508EF602FE4882083270900E5 +:10047000914533058502D047410613055520334584 +:100480000508EF606FE28327090023A60700B9B7CC +:10049000D04B0DC288209947C1453305F50213059D +:1004A000352033450508EF602FE08327090023AA94 +:1004B000070079BFD04759FE15F383C771A199C3CF +:1004C000EFF07FC4EFF0BFC9054531BF011122CC69 +:1004D00006CE2A842EC632C4EFB08FE509CD83A79D +:1004E000C1A191CBDC4381CB228562442246B24537 +:1004F000F24005618287F240624405618280797131 +:10050000994722D43304F50226D27000AE84D14537 +:1005100006D613040420334404082285EF60CFAFCD +:1005200019C50145B2502254925445618280194642 +:100530009305F00F6800EF90105D65F5B884937730 +:10054000D70F89C49377F70F93E72700630CF70061 +:100550007000D1452285FC84EF600FD503C5E18290 +:10056000EF604FCF05457DBF411122C426C206C6AC +:1005700001450144938451A19C206373F40011C58B +:10058000B240224492444101828022850504EFF06A +:100590003FA51374F40FCDB783C751A1637EF50255 +:1005A000797122D406D62E8485C599473305F50284 +:1005B0007000D1451305052033450508EF60CFA530 +:1005C00001E919466C0022859700FF1FE78040294A +:1005D000B25022544561828082809947B307F50268 +:1005E0005971A2D4CECE3284AE897000D145A6D244 +:1005F00086D693870720CAD0AA8433C50708EF6040 +:10060000AFA111C90149B65026549654F6494A85FE +:1006100006596561828019469305F00F6800EF90D6 +:10062000904E6DF19D67BE941010930500032685D2 +:10063000EF608F9E2A8919C10549F1B70810EFF0C4 +:100640003F87639209041306000381450810EF9069 +:10065000904B7DF113060003814508109700FF1FA2 +:10066000E780E023854708102380F1A2EFF05F8444 +:100670001010930500032685EF600FC303C5E182C8 +:10068000EF604FBD55BF1C103E87162363853603B0 +:1006900011079408E31BD7FE3DD49A2311C7910795 +:1006A0009808E39CE7FE85B7B82323903701E3055C +:1006B00087F8A0A345BF3C23E38087F820A35DF023 +:1006C0002310070045B7011126CA4AC84EC606CEF8 +:1006D00022CC52C456C29729FF1F9389291FFD5768 +:1006E00003C5E900A386F1A2A38A01A0D14733057F +:1006F000F50293052004938481A1138951A1334508 +:100700000508EF90B07E88C00DC183C7E9000144A1 +:10071000D14A2300F900834709006366F40883A7E0 +:1007200089006381070C238601A0834709000544E3 +:10073000414681451725FF1F1305C52F238AF1A0C8 +:10074000238681A223A801A0A38501A2238501A25B +:100750009700FF1FE780A014A38401A293077007EE +:100760002384F1A223A201A2A38001A2954723889A +:10077000F182C147A387F182F24023878182A38659 +:100780008182238681826244238001A223AE01A05C +:10079000A38B01A0238B01A0D2444249B249224A33 +:1007A000924A05618280330A5403884019469305B2 +:1007B000F00F05041374F40F52959700FF1FE780A4 +:1007C000000E884019469305F00F529519059700C1 +:1007D000FF1FE780C00C9C40D29723960700238719 +:1007E000070015BF930700F82386F1A03DBF1971DC +:1007F000A6DACAD8CED6D2D4D6D2DECEE2CC86DE27 +:10080000A2DCDAD08144938B51A1514C938A81A10F +:1008100019499D69138AE18283C70B0063E0F402E2 +:10082000F6506654238AF1A0D6544659B659265A32 +:10083000965A065BF64B664C09618280338B8403C3 +:1008400003A50A00338424035A95EFF08FE871461C +:100850009305F00F48009700FF1FE7804004130640 +:1008600000039305F00F08109700FF1FE780200397 +:1008700003A60A0033440408D1455A961305042000 +:1008800033450508EF604FA25000F14513051420D1 +:1008900033450508EF604FA15000F14513052420B2 +:1008A00033450508EF604FA05000C14513053420C3 +:1008B00033450508EF604F9F5000C14513054420A4 +:1008C00033450508EF604F9E5000914513055420B5 +:1008D00033450508EF604F9D3385340110109305B3 +:1008E000000333450508EF602F9C03450A0085048B +:1008F00093F4F40FEF600F9605B7011106CE22CCEA +:1009000026CA4AC84EC652C456C2EF70AFA349E1C8 +:1009100003C761A185472A84938451A1630DF7021F +:10092000514A138981A1854A9C206370F404B3095C +:10093000440383270900CE97FC27639A5701228539 +:10094000EFF00FEA83270900CE97238707000504FD +:100950001374F40FD1BFEFF03FC19820238B01A097 +:1009600083A781A1B907631EE400EF60CFB762449B +:10097000F240D2444249B249224A924A05616FF09C +:100980007F800504238007001374F40FD107E1BFB3 +:10099000F2406244D2444249B249224A924A056135 +:1009A000828079714AD04ECE52CC06D622D426D23D +:1009B00056CA5AC8138A51A103440A00AE89328923 +:1009C0004DC5D8319306000C9377070C638FD70879 +:1009D0009306F00363EBE6028144938A81A1514BB5 +:1009E00003440A0063F4840AB387640303A50A007E +:1009F0001946CE853E9519059700FF1FE78020EE2A +:100A000031E5850493F4F40FE1BF13070004639507 +:100A1000E7048144994A03440A0063F98406338554 +:100A200054030A86C1451305352033450508EF50A8 +:100A3000BFDE25E941469305F00F0A85EF90B00C23 +:100A40002DE1CE850A85EF60DFD421ED83470A00D2 +:100A500063EDF40426841DA88947E30FF5F68D475E +:100A6000E309F5FA85476313F5024E85EFF08FFB36 +:100A700083470A002A84637BF5006309090019464D +:100A8000CE854A859700FF1FE78080DDB250228522 +:100A9000225492540259F249624AD24A424B456169 +:100AA0008280850493F4F40FBDB7E30509FACA8583 +:100AB0002685EFF07FAE79BF5D71130505C086C650 +:100AC000A2C4A6C2CAC04EDE52DC56DA5AD8F947D2 +:100AD0003345050863E3A72617970000130747155A +:100AE0003345E5201C41B284BA978287854761442B +:100AF0006399F5001C2209476365F7002386F1A27C +:100B00000144B6402285264496440649F259625A69 +:100B1000D25A425B6161828085476144E393F5FE6E +:100B20001422E3E0D5FE138791A21C2389C693E724 +:100B300047001CA3F1B7ED9BEDBF85476144E392ED +:100B4000F5FC1C221147E36EF7FAA385F1A24DBF15 +:100B500085476144E397F5FA1C22E3E4F5FA23851F +:100B6000F1A279BFC1476144E39DF5F84146A685EE +:100B70001725FF1F130505EC9700FF1FE78040CEE8 +:100B800041B785476144E39EF5F61422E3EBD5F6C1 +:100B9000138791A21C2381C693E7170059BFF99BC5 +:100BA00049BF85476144E39EF5F41C222384F1A2EA +:100BB00081BF91476144E396F5F41842B7470F00AF +:100BC0009387F723E3EFE7F223A2E1A215BF614485 +:100BD0008DF9EF603FF701E9EFF01F99EF60AF90FB +:100BE000EFF04FDA31BF8547238BF1A011BF9D474E +:100BF0006144E398F5F09385140019466800970066 +:100C0000FF1FE780E0C5882050086C00EFF07FD917 +:100C100083C751A1AA840944E375F5EE4808EFA003 +:100C2000DFF92A8409E92685EFF08FBBEF60AF8BEF +:100C3000EFF04FD5F9B55147B384E40283A781A102 +:100C400005475944A697F8A76DBDA38601824DBDFF +:100C50008547A386F1820144138951A19949130A5A +:100C6000F00FFD5A138BE18283470900E37AF4E821 +:100C7000B30434035008F14593841420B3C404082A +:100C80002685EF507FB905E18347F102638D470167 +:100C90005008F1452685A3075103EF50FFE00345B7 +:100CA0000B00EF503FDB05041374F40F75BF85474D +:100CB0006144E398F5E41C22E3E5F5E4A380F1A2A6 +:100CC00081B585476144E39EF5E21C222547E36A2E +:100CD000F7E22388F1822DB585476144E393F5E27D +:100CE0001822A546930797FF93F7F70FE3EBF6E07B +:100CF000A387E18231B585476144E394F5E013872A +:100D000071A11C2214231CA3E39C06DEE39AB7DE28 +:100D1000C1BD85476144E396F5DE1C222387F1823D +:100D2000C5B30545EF501FD3E1BB85476144E39A46 +:100D3000F5DC1C222386F182E1B30944D9B3011109 +:100D4000C16726CA06CE22CC4AC84EC6FD17AE845D +:100D50006307F506EFA0DFDD2A84514929C9930511 +:100D60006500483101465549EFF0BFC383C751A123 +:100D70006376F500A685EFF08FF801498DC82285CE +:100D8000EFF0AFC92DA0A6852285EFF04FF711C176 +:100D9000014905041374F40F83C70900E365F4FEE9 +:100DA00099C417F5FFFF13058547EFA0FFFDF2403B +:100DB0006244D244B2494A85424905618280014475 +:100DC0005549938951A1C9BF0111C1674AC84EC68F +:100DD00006CE22CC26CA52C4FD172E89B289630ED4 +:100DE000F504EFA0FFD4D14421C19305650048313B +:100DF0000146D544EFF0FFBA83C751A16376F502EF +:100E00004E86CA85EFF06FFD814439A84E86CA85AB +:100E10002285EFF08FFC11C1814405041374F40F97 +:100E200083470A00E364F4FEF24062444249B24957 +:100E3000224A2685D244056182800144D544138A22 +:100E400051A1F9BF411122C406C61384D1A20C20BE +:100E500023AEA1A02145EF60DFD408202244B24098 +:100E600041016F901FDC1387C1A21C2383C591A28F +:100E700093E707F81CA36F603FC15971A6D2B284F3 +:100E80005000D2CC86D6A2D4CAD0CECED6CA368A0C +:100E900002C223140100EFF0DFB083C751A16371D8 +:100EA000F5101944330485022A891010D14581496F +:100EB000334404081305042033450508EF50DF953B +:100EC00019E18349C10291476316FA0471468145CD +:100ED000081083CAC1A29700FF1FE780409C13053A +:100EE00014201010F14533450508EF50FF921DE125 +:100EF0008347A1032547E51793F7F70F636CF700C6 +:100F00009386EAFF93B61600101093F51900268514 +:100F1000EF608FFB5146814568009700FF1FE78017 +:100F20000098130544207000C14533450508EF5073 +:100F3000BF8E15E541469305F00F6800EF90A03C89 +:100F400019ED700891451304542033450408EF50FF +:100F5000BF8C700093F519002685EF605FB79D6721 +:100F60003305F90010109305000333450508EF50D1 +:100F7000BF8A19ED0810EFE0BFF300100E2089C5FD +:100F800030202685EF807F9E11049C08E318F4FE34 +:100F900093F7290091C783C5D1A22685EF804FB56D +:100FA0009147631AFA0003C7C1A289476315F70086 +:100FB0002685EFF05FEBB650265496540659F64955 +:100FC000664AD64A0145656182801D7186CEA2CCF3 +:100FD000A6CACAC8CEC6D2C4D6C2DAC05EDE62DC39 +:100FE00066DA3C212547E91793F7F70F6360F704AA +:100FF00017970000130787CBB3C7E7209C432A84C9 +:10100000BA978287262550255435268532C636C4A0 +:10101000EFA01FB201CD83A7C1A185CB9C4395C78B +:10102000A2463246A6851305340082978544F640D1 +:1010300066444649B649264A964A064BF25B625CCC +:10104000D25C2685D64425618280A68503A541A26F +:10105000EF60CFEE61DD9307E00FE309F5FC854516 +:101060002685EF609FABD9B70431E9F07C21858BF1 +:10107000D5DF83A701A1DDFB814551460808970014 +:10108000FF1FE780C0814C48D1C9FC291946C10522 +:10109000A30FF100080897F0FE1FE780607CB88678 +:1010A0007C2010304A20854593D72748D98FFC866D +:1010B000EFF0CFC10808EFF0EF96138A51A18347F4 +:1010C0000A00138941A12300A9006366F500EFE03F +:1010D000BFE92300A90083490A008347090063E2AE +:1010E000370383C7C18291C705476395E704EFF0D3 +:1010F0000FF09717FF1F83A7E77F81C7854521451D +:101100008297A2850808EFF06F97AA84631C050EEA +:10111000894503C5D1A2EF90E03211BF4A20EFA06C +:101120003FA1E30505F05C31194693056500A30F67 +:10113000F1008DB70947E39EE7FA01497D5B814ADB +:10114000D14C938B81A10DA8330C990303A50B00FF +:1011500019469305F00F6295EF90E01A19E983A7FD +:101160000B00E2979C4BB3FAFA0A63F467013E8BDB +:10117000CA8905091379F90F83470A00E366F9FC68 +:10118000B38A6A4163D50A047D59D14B938A81A100 +:10119000370C00800DA8338B740303A50A00194691 +:1011A0009305F00F5A95EF90001619E983A70A00EE +:1011B000DA979C4B6376FC0063F427013E89A6898D +:1011C000850493F4F40F83470A00E3E6F4FC8347B5 +:1011D0000A00E3F0F9F2D144B3849902138981A1A2 +:1011E000032509002695EFA05F9D19E54E85EFE0E8 +:1011F0003FDFEFE03FF9F5BD832709000547A697DC +:10120000F8A7C5BD55468D454A20EFF02FAC39BD36 +:1012100010318945D5BF9305450028310146EFF0CF +:101220004FF883C751A1E373F5E099473305F50201 +:101230001306C40091451305552033450508EF50AA +:10124000BF8603C5E182EF50FF80CDB383C711A2F3 +:101250004A2181C783C5018329B583C7C1A29545AA +:10126000E38107E0EFA0DF8CAA84E30105DC3C24E6 +:101270004831858B85C7854763F2A7025E2493F7C3 +:10128000072089EF100893856400EFF08FF183C782 +:1012900051A16395A7004A208D45E1B313060002D2 +:1012A000814508088359440003C9540097F0FE1F84 +:1012B000E780E05E83C7F1822306F10283C7B1A213 +:1012C00003C781A2230AF10083C7A1A2A30AF100E8 +:1012D0009356474893777700A206D58F9356574881 +:1012E000A606D58F135767482A07D98F035781025F +:1012F00041469715FF1F9385E5731377878FD98F25 +:10130000130561012314F1022318310197F0FE1F28 +:10131000E780005583C791A213F717009304840058 +:1013200009CB6308090003578102136727002314C0 +:10133000E10203476102A6850808D98F2303F10261 +:10134000EF600FAE01468145C1B54A21EFF0EFDAFB +:101350001387C1A21C2393F7F7071CA3C1B941113E +:1013600022C42A8406C6EFF00FB6A38681A22244C7 +:10137000B24041016FE01FE1797126D206D622D436 +:101380004AD04ECE52CCAE849397556063D70708AF +:1013900003C5D1A2EF40BF862A8431C11C211307A7 +:1013A000100B6389E7041307000D6384E70213073A +:1013B000000B6393E7025821F9476316F7002A21CF +:1013C0008145EFF0DF974C2013058400EF706FF339 +:1013D00021A0EFF09FBF01C52285EF400FF71394C6 +:1013E000F468B2502285225492540259F249624A5A +:1013F000456182805C21EDF312256E212A21238034 +:1014000001A2EFF07F9C83C701A2F9D703C5E18257 +:10141000238001A2EF500FE4C1B793F7250085C3E5 +:1014200081450145EFE09FE59387D1A2894511C130 +:101430008545882313C42400EF90C0005DB713F4E2 +:10144000150045D0138901A183270900138481A0C9 +:1014500003DA47001C4081EFC165138761A089460C +:101460001386C188FD150545EF806FF408C00C4058 +:1014700093C4140085E98327090001468545CA23E2 +:1014800033C40408EFF08F848327090001468D459B +:10149000CA23EFF0AF8303C5E182EF50AFDBEFE08B +:1014A0009FB181B7938961A003D609009308F00F1B +:1014B000094881471307E10074005285EF807FBF20 +:1014C00001E9308611C61C405285AE27EFF0DF8F50 +:1014D000084003D60900C1658146FD15EF80FFB2C3 +:1014E00008C033C4040841D9854503C5D1A2EF80A3 +:1014F0007075C5BD9821937625009377D70F99C253 +:101500009367270093F6F7071317456063540700A6 +:1015100093E607081378850093F7760F63040800B5 +:1015200093E786009376050299CE93E707029CA184 +:10153000635707001C2293E7C7001CA28280137523 +:10154000A5026DF9828093F7F7FD9CA1E34407FEA5 +:101550009377A502E5F37DF11C22CD9BF9BF2D45C4 +:1015600063120710011126CA4AC84EC606CE22CC05 +:101570009821BE8989472E89B684631AF704DC4115 +:101580003284983394232207558F8D66138646A0A4 +:10159000931757606349F6029386F69F63D9F60264 +:1015A000F5779387F75F3E978D47C8453347070820 +:1015B00063E3E702978600009386C6713347D7201E +:1015C0001C43B6978287938666AA6388D7082390C0 +:1015D000040005453DA0EF80D04C8325C90033466B +:1015E00005083356360B92A0228597F0FE1FE78040 +:1015F000202739A01E2109479AA01CA0A1831CB056 +:101600000145F2406244D2444249B24905618280B8 +:1016100099479EA01946AA85C1BF85479EA01C2157 +:101620001CA0F9BF05C9A1479EA01E211CA01E2118 +:10163000A1831CB03E213CA03E21A1833CB05E2191 +:101640005CA05E21A1835CB07E217CA07E21A18371 +:101650007CB07DB72390040065B785479EA0DC452C +:101660009C237DBF8280797122D44AD006D626D2AF +:101670004ECE52CC56CA3A89982189472E84631B94 +:10168000F7025C40B6840D6894239C33B285A207B0 +:10169000D58F930628A093975760638BD70E2A8A1D +:1016A00063CCF600930608A0638BD702130818A03A +:1016B000638A0709054811A8130738A06387E70A5A +:1016C000130768AA0D48E397E7FEB25022549254DC +:1016D0000259F249624AD24A4285456182804844B1 +:1016E00032C6EF80103C1D4833450508E36F25FDE9 +:1016F000938AA1A383C70A00B3099900B24563D4B2 +:1017000037013548D9B748442686B3C909084A95F0 +:1017100097F0FE1FE780C01403C60A0048448145C5 +:101720000506330636414E9597F0FE1FE7802017D9 +:1017300083A7C1A399E3014849BF9C438145E5DFE5 +:10174000528515A02D48E31209F8E39CE4FA1C32F7 +:101750001822A207D98F58441EA383A7C1A3E1DF93 +:101760009C438545E9DB8297F9B72D48E31F09F4CF +:101770009947E398F4F84844194697F0FE1FE7802C +:10178000200E83A7C1A3C5DB9C43D5D78D454DBF94 +:101790002D48E31C09F28547E395F4F61C22130853 +:1017A0000008E3E4F4F258441CA371B723AE01A28D +:1017B000238701A2238D01A2B707A000938501A36F +:1017C00099079CC1B707E803DCC11386C189971745 +:1017D000FF1F938727270947938E5183D0C3138612 +:1017E000018B85462380EE00138E418393883183DD +:1017F000D0C723AED70113864189138381A31388F1 +:10180000218313851183938E81882300EE0023802A +:10181000E80098A398ABD0CB2380E7022388E702A7 +:10182000D0DB23AEC7032380E7042300E80094A79E +:101830002395070094AF239D070023A2D703238499 +:10184000D7022395070223A60702238CD702239DE4 +:1018500007022310030014A1138E418823A2C70599 +:101860002388E704F0CB23AE17052380E7062388FF +:10187000E706F0DB2380E708938801881717FF1F2E +:10188000130747241386C1872384D70423950704AD +:1018900023A66704238CD704239D070423A21707DC +:1018A0002384D70623950706ECD7238CD706239DE0 +:1018B000070623AE070750C32384D70823950708DC +:1018C00048C79707FF1F9387A788170700001307CC +:1018D00047C998C317070000130727D9D8C323A403 +:1018E00007008280A54763E1A71017870000130750 +:1018F000673F3345E5201C41011122CCBA9726CA27 +:1019000006CE4AC82E84B28482879307800F63F97B +:10191000B7006145F2406244D24442490561828089 +:101920001719FF1F130909120325C90219C597F0DA +:10193000FE1FE7802059238D01A2130614001376A1 +:10194000F60F916593850571328532C6EF80105A86 +:101950002326A9025DDD3246814597F0FE1FE78010 +:1019600000F40325C9022286A68597F0FE1FE780B2 +:1019700020EF238D81A2014571BF8947E39BF5F8D4 +:101980001E22239CF1A2C5BFA147E394F5F821468E +:10199000A685138501A397F0FE1FE78060ECE1BFE9 +:1019A0008547E398F5F61716FF1F0326660B971574 +:1019B000FF1F9385A50B8820EFF0DFB36DBF854730 +:1019C000E399F5F41716FF1F0326860B9715FF1FE3 +:1019D0009385C50BCDB78547E39DF5F21C22A388FF +:1019E000F18251BF09453DB7094582809387E1A245 +:1019F00098230DE3054798A3058909CD97F6FE1FA7 +:101A0000938606754146A5451715FF1F13058503E7 +:101A10006F90CF97014582803421994763E9D71AA7 +:101A2000178700001307872EB3C7E6209C43411198 +:101A300022C4BA9706C626C22A8482871C319384A0 +:101A400081A6C1E741469715FF1F9385A509171584 +:101A5000FF1F1305250B97F0FE1FE78040E839E5CF +:101A60001716FF1F1306060AC1450945EF50CF831D +:101A70001716FF1F13060608C1450D45EF50CF820C +:101A800003C5E182EF401FFD93053400138581A457 +:101A9000194697F0FE1FE780A0DC8547854503C502 +:101AA000C1A69CC0EF80101A884051A041469715EE +:101AB000FF1F938525021715FF1F1305A50397F038 +:101AC000FE1FE780C0E149DDC1B799479CC0E9BF6F +:101AD00018313C310DE3054781450145639AE70024 +:101AE000EF60BF9408B0B24022449244410182802A +:101AF000EF60FF87C5BF0947E387E7FE138781A62D +:101B00001C43C19B13E5670008C315A01831138659 +:101B100081A61C4231EB8D4513F7F700639BB6029B +:101B200091466311D702C19B13E5570008C283A7F2 +:101B300001A4D5DB9C43C5DBA2852244B24092447C +:101B4000410182878946E300D7FAC19B13E527004C +:101B5000F1BF238301A6C19B954613E53700E31728 +:101B6000D7FC13E54700D9B7C19B13E567007DBFDC +:101B7000938481A69C401831C19B11EF93E74700E5 +:101B80009CC032259305450028319146EFF0EFAE19 +:101B9000238301A611BF930610036317D700238385 +:101BA00001A693E737001DB793E7670005B7EFF08D +:101BB000CFC1138781A61C43954613F6F700C19B3E +:101BC00013E53700E312D6F413E5270035BF828012 +:101BD0001821930610096307D7009307000D630EC1 +:101BE000F702828014313947639BE602562105676C +:101BF000130757406395E6021C451307F0078385DA +:101C00003700638EE50003A701A411CB584301CB35 +:101C10008833BC23A2075D8D02876FF0FFDF8280CF +:101C2000011122CC06CE26CA2E849397556063D428 +:101C3000070203C5C1A6EF309FFCAA8411C5EFF0CF +:101C40003FF92685EF307FF01315F468F2406244C7 +:101C5000D244056182809167ED8F91CF138601A5F3 +:101C600091451145EF405FE403C5E182EF409FDEFF +:101C70001315E468E1BF13F5150069D983C761A6A0 +:101C8000A1C3EFA0EF9521C18D475C8283C791A5C9 +:101C90005C864C0083C781A503C5C1A6DC86EF60C6 +:101CA000AFD319CD938781A6884341991365650009 +:101CB00088C383A701A489C79C4399C381458297A0 +:101CC0001345140061B783C731A65C82194683C7E8 +:101CD00021A69385C1A513056100DC8297F0FE1F44 +:101CE000E78000B865B7011122CC06CE2A842EC643 +:101CF00032C436C23AC0EF90BFE30DC97E25B2456B +:101D000002479246224663EBB7006369F6001E293C +:101D10006396D7003E2961456386E7002285EF5030 +:101D20005FD50145F2406244056182805145DDBFC7 +:101D3000411122C406C6A388A19C328481C52E8588 +:101D4000EFF04F9083A781A685EB19C023A081A453 +:101D50002244B24083C571A603C5C1A6938701A5DD +:101D60001717FF1F130707D99716FF1F938686D9EA +:101D7000014641016F507FE5B24022444545410193 +:101D80008280411126C206C622C49384C1A6802047 +:101D90009307F00F6308F4006145B2402244924477 +:101DA00041018280B717004083C717040545898B1E +:101DB000EDD7170500001305E5E6EF40AFE388A077 +:101DC000E30C85FC23A001A423A401A69147A383CF +:101DD000F1A6EF50BF9B414681451715FF1F130524 +:101DE00065D297F0FE1FE78080AB4146814517150D +:101DF000FF1F130525D097F0FE1FE78040AA23A8F8 +:101E000001A4A38101A6238101A69D471716FF1FE8 +:101E1000130646CFC1450945A38CF1A4238C01A428 +:101E2000EF409F9F1716FF1F1306C6CCC1450D45F7 +:101E3000EF409F9E41469715FF1F9385A5CC171530 +:101E4000FF1F130525CA97F0FE1FE78060A14146DA +:101E50009715FF1F938505CA1715FF1F130585C723 +:101E600097F0FE1FE780C09F138601A5914511459D +:101E7000EF409F9A014515B7FD572386F1A6A38829 +:101E8000F19CA38301A685472383F1A623A801A47F +:101E90009947239BF1A48567938707C8239AF1A4E8 +:101EA0008D47A382F1A62382F1A6194681451385A9 +:101EB000C1A517F3FE1F6700839E930705D0514706 +:101EC000B3C707086368F70A178700001307C7E559 +:101ED000B3C7E7209C43411106C6BA972E85828777 +:101EE00083C771A61CA111A841469715FF1F9385B2 +:101EF00065C197F0FE1FE780A0960145B240410101 +:101F0000828041469715FF1F9385C5BEDDB783A725 +:101F100001A59CC1DDB71946938581A4D9BF83C7AC +:101F200061A6C9B7EF602FDCC9BFEF60EFDDF1B785 +:101F300083C731A645BF83C721A66DB719469385D0 +:101F4000C1A545BF83C791A571BF83C781A559BFEF +:101F500083A781A641BF83D761A51EA179BF83D77F +:101F600041A5E5BF83C751A6B5BF83C741A69DBFA5 +:101F7000094569B7094582801305F5CF4D473345BB +:101F800005086367A71A97860000938626DF334506 +:101F9000D52018414111AE87369706C6B285028713 +:101FA00041476145639CE70041461715FF1F130534 +:101FB00065B597F0FE1FE780A08A0145B240410158 +:101FC000828041476145E39BE7FE41461715FF1FAD +:101FD000130545B2F9BF11476145E391E7FE1C4285 +:101FE00023A8F1A4D9BF05476145E399E7FC93868F +:101FF00061A69821902298A205C261F303A781A649 +:102000003D8B93074002B3D7E700858BDDD703C52F +:10201000C1A6EF602FA555B74DD303A781A66306D0 +:10202000F7003D8B7517E3EAE7F8854503C5C1A6C0 +:10203000EF80404159B77D47636AF70E6308060E8B +:10204000B2403E8541016F608FB27D476360F70EFD +:10205000630E060CB2403E8541016F600FBD05471F +:102060006145E39DE7F41C221147E369F7F4A3817E +:10207000F1A6A1B705476145E392E7F41C220947A1 +:10208000E36EF7F22381F1A60DBF19476145E3978F +:10209000E7F219461385C1A529BF05476145E39FAE +:1020A000E7F01C221D47E36BF7F0A38CF1A431B7D6 +:1020B00005476145E394E7F01C220D47E360F7F024 +:1020C000238CF1A4DDBD09476145E399E7EE1622B3 +:1020D00085679387A7C71387A6FF33470708E3EFF2 +:1020E000E7EC239BD1A4D1BD09476145E398E7EC18 +:1020F000162285679387A7C71387A6FF334707086C +:10210000E3EEE7EA239AD1A44DBD0C2203C641A613 +:10211000A382B1A60145EFD0AFC045B5102283C55B +:1021200051A62382C1A6FDB7094549BD614579B5D0 +:102130000945828023A2A1A482806FD0EFA601115D +:1021400006CE2AC6EF90DF9E01C9B245F2400821B3 +:102150004D4605616F505F9FF240494505618280A1 +:102160006FD00FBE411106C6EF20504C1795FFFFF0 +:1021700013058513EF400FA8EF900F8B1765FFFF36 +:102180001305C5ADEF400FA7EF505FA81775FFFF10 +:102190001305859BEF400FA6EF607F9817B5FFFFF3 +:1021A0001305C58BEF400FA5EFA03F9517F5FFFF77 +:1021B0001305C51CEF400FA4EFF06F9A1795FFFFB2 +:1021C0001305A5C1EF400FA3EF80DFBDB240410171 +:1021D0006FF03FBB83A781A703A701A70145631346 +:1021E000F7008280F62399E2D62336959C43C5BF3B +:1021F0001707FF1F1307876D1C435A23411193864E +:102200000721E117BA97856523ACD1A623A8F1A6CB +:1022100006C69D051306002063E5E5001583131629 +:1022200027003387C60023AAE1A6611698C2D2A26E +:10223000239306001CC3998FE1175EA323130700A5 +:10224000EFF05FF9B2409707FF1F2393A7664101A4 +:102250008280AA8703A781A703A601A7B305B5407B +:102260006314E6003E8529A8930687001843E3E936 +:10227000D7FEE3F7E7FE2E85E3E4D5FEE3F2E5FEC5 +:1022800082809C211CA1BE211CB1BE21A1833CA146 +:10229000DC213CB11145828023A001A823AE01A618 +:1022A00082800DCD411122C426C206C6AA842E8486 +:1022B000014585C12285414697850000938505B17A +:1022C00097E0FE1FE780C0599C2005455CA49C3028 +:1022D0005CB4B24022449244410182800145828034 +:1022E000011122CC26CA06CE8947AA843284639F74 +:1022F000F5006384B602414781476397E6048A8507 +:10230000EFF03FFA41468A85228515A8414763933D +:10231000E504638FF600639FB6022E86A2856244B1 +:10232000F2402685D244056117E3FE1F6700235B58 +:102330008A853285EFF0FFF641468A85268597E04B +:10234000FE1FE780C059AA87F2406244D2443E850E +:10235000056182808147CDBF23AEA1A6828023A0E4 +:10236000A1A88280011122CC622106CE26CA4AC8C9 +:102370004EC63DC8832985002A88AE8403C909005A +:1023800081471317496063550702B147054563F656 +:102390008704035528005114334404084E863387BC +:1023A0008900A2868545EFA00FD8B337A000850726 +:1023B000135569487D141379F903334404089CA02C +:1023C00088B023812401C2A0014719C013871900D6 +:1023D00098C409476383E7000145F2406244D24450 +:1023E0004249B249056182800545C5BFC167F917F9 +:1023F000630AF502D94763F7B702011122CC2EC652 +:1024000006CE2A84EF805FDBB2456368B500228583 +:102410006244F24005616F90BF94F240624405450A +:102420000561828005458280C167F9176314F50054 +:102430006F809FD8411106C6EF907F8311E15D4503 +:10244000B240410182809147639DF5001C211CA28E +:102450003C211831A207D98F3EA23C3101455CA234 +:1024600082801145828039714ED652D45AD05ECEC8 +:1024700006DE22DC26DA4AD856D22A8A2E8BB28988 +:10248000B68B15E7EFF05FFA9145EF809FD72A846E +:102490004D49854A19EDF2506254D254B259225A2C +:1024A000925A025BF24B4A854259216182803A84FA +:1024B000814A230034018544630A0B00DE8513053D +:1024C0001400029B93041500B3C404089399496057 +:1024D00063D30902C1455285EF90BF85654915E573 +:1024E00033069400A6852285EFA00F9C2A8911ED62 +:1024F000B104B3C4040891472C0052857C8422C6E1 +:102500006485EF90AFB42A8959D5E3860AF822850D +:1025100097F0FE1FE780009BBDBF011122CC26CAA9 +:102520004AC84EC606CE2A893284B689EFF0BFF378 +:10253000AA8419ED83A701A881CF05476317E4009A +:1025400003C4090005041374F40FA2854A85829719 +:10255000F24062444249B2492685D24405618280F4 +:10256000AE8601470546970500009385C5D16FF0FB +:10257000DFFA9E211CA19E21A1831CB10945828006 +:1025800089476399F5001C3118210145A207D98FAD +:102590001EA28280114582809A21011106CE22CC92 +:1025A0002EC6D94763F5E7022A84EF80FFC0B24602 +:1025B0009E22636EF50022856244F240014709467F +:1025C00097050000938525FB05616FF0DFE9F24078 +:1025D00062440945056182809E211CA19E21A18340 +:1025E0001CB109458280BC2105471CA18A21639743 +:1025F000E7000A050505334505088280C94733050C +:10260000F502CDBF8A210A05334505088280BE2127 +:102610001CA18A21BE213305F502050533450508B5 +:1026200082808A2182808A2182808A218280BE21C2 +:102630001CA18A21BE213305F50205053345050895 +:1026400082809E211CA19E21A1831CB1BE213CA1A0 +:10265000BE21A1833CB1CA21110533450508828002 +:102660009E211CA19E21A1831CB1AA2109053345ED +:1026700005088280894711456398F6001C321422B0 +:102680000145A207D58F1EA382809A21D947AE8625 +:1026900063FAE70001470D4697050000938505F4AE +:1026A0006FF0BFE7094582801145639DA6001C328B +:1026B00014220145A207D58F1EA33C323422A20763 +:1026C000D58F3EA38280BC210547FD1793F7F70FF6 +:1026D0006360F7049E218DCF011122CC2A84C8416A +:1026E00006CE2EC60DC18945EFF0BFB62A872285DA +:1026F0006244B246F2401546970500009385E5EE28 +:1027000005616FF09FE1F2406244094505618280F6 +:1027100009458280954763F0D706411122C426C23D +:102720004AC006C61C323A841822A207B284D98F46 +:102730001EA03C32382293854400A207D98F3EA0C8 +:1027400089475CA0094613055400368997E0FE1FAF +:10275000E7800011194781476304E900938764000B +:10276000691923142401B2405CC4224492440249F2 +:10277000014541018280114582809E218DCF01114A +:1027800022CC2A84C84106CE2EC60DC18545EFF065 +:102790005FAC2A8722856244B246F2401D46970507 +:1027A0000000938565E605616FF03FD7F240624413 +:1027B000094505618280094582809947B285638811 +:1027C000F600D147114541466384F60082800946F0 +:1027D000411106C650A39C31942113055700A2074E +:1027E000D58F1EA3BC31B4219105A207D58F3EA37E +:1027F00097E0FE1FE780C006B2400145410182809C +:102800009E218DCF011122CC2A84C84106CE2EC62E +:102810000DC18945EFF0FFA32A8722856244B246A5 +:10282000F2402546970500009385A5DE05616FF00F +:10283000DFCEF2406244094505618280094582800D +:10284000894711456398F6001C3214220145A207FE +:10285000D58F1EA38280011122CC2A84C84106CEC6 +:10286000AE8611C52EC68545EFF0BF9EB2462A87BB +:1028700022856244F2402D46970500009385A5DA33 +:1028800005616FF09FC96FF03FE2011122CC2A84ED +:10289000C84106CEAE8611C52EC68545EFF07F9B9A +:1028A000B2462A8722856244F240354697050000E9 +:1028B0009385A5D705616FF05FC693F716001145A4 +:1028C00081EB89476386F600858256A310C30145D4 +:1028D0008280011122CC2A84C84106CE2EC60DC1A9 +:1028E0008545EFF01F972A8722856244B246F24061 +:1028F0003D4697050000938585D305616FF0FFC1C4 +:10290000F24062440945056182809E218DCF01110C +:1029100022CC2A84C84106CE2EC60DC18945EFF0CF +:102920005F932A8722856244B246F2404546970566 +:102930000000938505D005616FF03FBEF240624410 +:1029400009450561828009458280854763F4D70285 +:1029500008A70CB71C320C220945A207CD8F814570 +:102960006384A60093052600F9161EA336A34CC364 +:102970000145828011458280014781464D4681454F +:102980006FF0BFB98D47114563F5D7021C320C2299 +:10299000A207CD8F1EA33C322C22A207CD8F8145EA +:1029A0006384A60093054600F1163EA356A30CC708 +:1029B00001458280011122CC2A84884506CEAE864C +:1029C00011C52EC69545EFF0DF88B2462A872285CD +:1029D0006244F2405D46970500009385C5C60561D7 +:1029E0006FF0BFB3854711456395F6001C22014582 +:1029F0001CA3828001478146654681456FF0FFB187 +:102A0000011122CC2A84C84106CEAE8611C52EC63D +:102A10008D45EFF01F84B2462A8722856244F2403A +:102A20006D46970500009385E5C305616FF0BFA370 +:102A3000011122CC2A84C84106CEAE8611C52EC60D +:102A40008D45EFF01F81B2462A8722856244F2400D +:102A50007546970500009385E5C005616FF0BFA03E +:102A60009397556063DD0702411122C426C206C652 +:102A70002E84EF30CF98AA8401CD1C21054793C73F +:102A800007086364F700EF10E0692685EF30EF8BED +:102A9000B2401315F46822449244410182800145FA +:102AA0008280411122C48145130680052A841705BE +:102AB000FF1F1305250606C626C223A601A897E018 +:102AC000FE1FE780C0DD0145A1250145652597076B +:102AD000FF1FA38E87DCFD471704FF1F1304840329 +:102AE0002302F40483570404116713077712D98F64 +:102AF0009704FF1F938484DD2310F4042311F4044E +:102B0000FC24A30CF402B7070303938737301CC8D7 +:102B1000EF305FAA9E281307B00F6D46B3D7E70AC0 +:102B200093F6F70F54A054B0B907B3F6C60AB3C76B +:102B3000070876A08E079306801433C707085AA4A7 +:102B40007AA43377D70A28B01AA43EA4EFB03FA1E5 +:102B5000EF10402DEF2000402244B240924441014A +:102B600009A0411119469705FF1F938595D71705B1 +:102B7000FF1F130575FE06C622C426C24AC0916413 +:102B800097E0FE1FE780C0CD9385F4FF0145EF304D +:102B90009FA92A84FD550145EF30BFABA287FD14E4 +:102BA0007D5933F79700B366E5009DCE6314250188 +:102BB000630C97021707FF1F1307C7F5230BF704D2 +:102BC000A1832319A7049356050193E707FC6181AC +:102BD000230AD704A30AA704A30BF704B240224494 +:102BE0009244024941018280A6850145EF30BFA38E +:102BF0002A84FD550145EF30DFA5A2875DB741115D +:102C0000930510201305800522C406C6EF70102E10 +:102C10002A8429C113068005814597E0FE1FE780BD +:102C200000C8C1575CA09707FF1F23AF87EE970727 +:102C3000FF1F9387E7DD984BDC4B38C07CC0FD5706 +:102C40001CA81705FF1F0345A5C9230AA404EFB05C +:102C50008FFC68B4B2402285224441018280411138 +:102C600022C406C67C3134410547BD8B58B13CA512 +:102C70009CA22A8428416391E708B1473CB483476A +:102C8000140389C71C2193E707F81CA128401946A3 +:102C900093052403210597E0FE1FE78060BC2840D0 +:102CA00019469305A402090597E0FE1FE78040BB83 +:102CB0009707FF1F83D727EA1167F98F89CB7C30ED +:102CC000B98B91E738401C2393E707021CA3834785 +:102CD0009402858B91E70347840289476317F700C5 +:102CE00038401C2393E707041CA33C40383498B3B6 +:102CF000B24022444101828070280C509307660044 +:102D000093F7F7033CB479B741114AC01709FF1F85 +:102D1000130949E08327090306C622C426C281EBB2 +:102D20000545B24022449244024941018280AA846E +:102D3000EF70F011832709038297EF0090752A84C2 +:102D400065D1DC4C1167EC407CC13CCD8357290434 +:102D5000F98F89CBBC4098239C21F98F93D7574892 +:102D60002307F512FC35F8250148A207D98F9829C9 +:102D70001546F90542075D8F83C735FF1305040823 +:102D8000E207D98F3CC883C755FF03C765FFA20779 +:102D90004207BA9703C745FFBA977CC883C775FF38 +:102DA000A300F40283C795FF03C785FFA207D98F4D +:102DB0003EB083C7B5FF03C7A5FFA207D98F5EB09A +:102DC00083C7D5FF03C7C5FFA207D98F7EB083C7CE +:102DD000F5FF03C7E5FF23220409A207D98F1EB41C +:102DE00081472320F40897E0FE1FE78060A7F840A2 +:102DF00083473702FD8B7CBC03473702ED1793F7FF +:102E0000F70F158338AC2D476365F7025E30056711 +:102E10009306A7C7E917B3C7070863ECF600763037 +:102E20009307301F63E7D7001E34130707C8637783 +:102E3000F7000A20EF00107C0145E5B58327490320 +:102E4000228582970A20054693050008EF1020414D +:102E5000C1BD34250547AA87639AE60203471503D7 +:102E6000834695030145058B6398E6044111194695 +:102E70009385A7031385270306C697E0FE1FE78007 +:102E800000A6B2403335A000410182801825937618 +:102E9000170099CA50358D466318D600885FCC5FFD +:102EA00017E3FE1F6700C312098B09C7D437154704 +:102EB000E386E6FE05458280828041114AC006C64F +:102EC00022C426C203A941A8630D09020839970448 +:102ED000FF1F9384E4A2EF209FF19C402A848297F5 +:102EE000636AA402B7470F00938707243305A44001 +:102EF000B335F502922481463305F502EF30603A8E +:102F000002992244B240924402498145014541015F +:102F10006F808012DC403E94F1B701119707FF1FCC +:102F200083C727AF22CC06CE26CA858B1704FF1F86 +:102F3000032484BFADC79707FF1F238C07AC93847E +:102F400041A49C409DC7DC438DC789475C82834771 +:102F50009403130561001946DC827C249305A403C5 +:102F60005C8697E0FE1FE780A08F9C404800DC4312 +:102F7000829783473405858B81CB83459403482012 +:102F80001306A403EFA0DFDC83473405898B81CBD4 +:102F900022856244F240D24405616F8060432285FD +:102FA0006244F240D24405616FF03FF1AA871705F1 +:102FB000FF1F032565B711E182805821E30EF7FE5C +:102FC0000841D5BF411106C622C426C2EFF01FFE3C +:102FD0005DC9834795022A8485E719469705FF1F37 +:102FE000938595B71305A40297E0FE1FE7804087FD +:102FF0007C2095C70145B240224492444101828021 +:103000000547E397E7FE9707FF1F83C757B5494575 +:10301000FDD319469705FF1F938585B4E1B7783036 +:1030200085477CA06316F70208289307F00F630614 +:10303000F500EF308F97FD571CA893060401131677 +:10304000B028A285170500001305E508EF304F8171 +:103050009704FF1F9384C48A9C4082979A241E2C55 +:103060002A8693061401B387E70213070064A2853A +:10307000178500001305A51C9387073233D7E70295 +:10308000EF70602C85BF0D45BDB7411122C42A8465 +:10309000094506C6EF700060EF70605B2285230370 +:1030A0000400EFF09FE108389307F00F6306F50086 +:1030B000EF30AF8FFD571CA808289307F00F630669 +:1030C000F500EF308F8EFD571CA8B240224441011D +:1030D0008280797122D406D626D26431FD571CA98C +:1030E000BD8885472A84639EF4005946814528009F +:1030F000EFE09EFF9307C0032800DC854487EFA024 +:103100005F9D22852254B250925445616FF0FFF7C3 +:1031100023A2A1A8828097F7FE1F83C7577985EF66 +:103120004111170500001305E59306C6EF308FAC7B +:10313000EFF03F97B2409707FF1F9387A79D1707B0 +:103140000000130707AC98CF170700001307C7E765 +:10315000D8CF410182809707FF1F9387A79B17074E +:103160000000130707AA98CF170700001307C7E549 +:10317000D8CF828023A4A1A8828083465513054717 +:10318000930790046394E6009307500317F7FE1F1C +:1031900003471775BA973EBDAE975EBD8280011199 +:1031A00022CC06CE2A8448299307F00F2E86630886 +:1031B000F5002EC6EF207FFF3246FD575CA8930630 +:1031C0004401A2856244F240170500001305456FD3 +:1031D00005616F20FFE8011122CC06CE2A84483910 +:1031E0009307F00F2E866308F5002EC6EF20FFFB35 +:1031F0003246FD575CB893065401A2856244F24002 +:10320000170500001305456E05616F207FE59706E1 +:10321000FF1F93862690FE22CC32FA2637061B002B +:10322000B626130686146D482320C5121306801493 +:10323000231DF510231BB510B3D7070B231CE51076 +:10324000231ED510B3D5050BB3D6C60A3357C70A0C +:10325000231F05112312C5122315F5122313B512CE +:103260002316D5122314E512A30AF5108280834693 +:10327000451305478357C5126390E6029387C7FB42 +:103280001147B3C7E7020357A512B3C70708B357DF +:10329000F70AA30AF5108280938707FB2147D5B769 +:1032A00003578511835645120356C51183552512C0 +:1032B000B3D6E60A035705120358A5114111335737 +:1032C000C70A056613068684B3D6C60A3357C70AEB +:1032D0000356651106C6AA87B3D5C50A0356E5117C +:1032E00093F5F50FB3C606083356060B035865125F +:1032F0001376F60F334707086316B8020358851292 +:103300006312D8020358A512631EC8000358C512E1 +:10331000631AE800230A0510EFF07FF50945B24073 +:10332000410182800545238AA7102393B7123E8569 +:103330002394D7122395C7122396E712EFF03FF399 +:103340000145F1BF0357C51183570512411106C648 +:10335000B3D7E70A0567130787846379F7008356B5 +:10336000E5101316B028F18E91E2BA870357C51203 +:103370006307F7002316F5128547230AF510035754 +:10338000851183574512B3D7E70A0567130787846A +:103390006379F7008356E5101316B028F18E91E299 +:1033A000BA87035785126307F7002314F512854780 +:1033B000230AF510EFF0BFEBB240014541018280D6 +:1033C0003C510D469306F00F98230D8B58B16313B3 +:1033D000C700B42354A59823418B78A19C333CB5F6 +:1033E00082805C21CD9B5CA182803C5158219C2332 +:1033F000935637408987B58F858B91C713478700D0 +:1034000058A101458280054582803C5158219C236A +:10341000935627408D87B58F858B91E713474700DB +:1034200058A101458280054582808327050B8507C9 +:103430002328F50A91E78347450B8507230AF50AF8 +:103440008307450B63D7070085472328F50A230A1E +:10345000050A82808327850B8507232CF50A91E7CF +:103460008347C50B8507230EF50A8307C50B63D772 +:1034700007008547232CF50A230E050A8280543560 +:10348000854763ECD7087C252A870145C9EB4111A4 +:1034900006C622C426C24AC05C2313F507017C235A +:1034A00085C38346070297F7FE1F83C7574363E22E +:1034B000F60211E9B240224492440249410182805D +:1034C00075D9014419A0035487128357C7123E943B +:1034D00021A00354871275F9014569DC17F9FE1F15 +:1034E00013090942832709006447829763E3A40212 +:1034F000B387A4400355890037470F0013070724FB +:10350000330585023355E50233B5A7001345150091 +:1035100055B783274900BE94E1BF01458280828070 +:1035200097F6FE1F9386C63D035605049A2697F725 +:10353000FE1F23A307607C453306E60237470F00D2 +:10354000AA851305F723130707242A963356E602A4 +:1035500017F7FE1F0347E7383A9663EDC700B845F3 +:103560003386C74093866501177500001305A53B98 +:103570006F60705DD842BA97DDB701114EC693896E +:1035800081A883A7090026CA06CE22CC4AC8AA84ED +:10359000B5CB17F9FE1F1309A93603578900035449 +:1035A00005047C453304E40237470F009306F723F4 +:1035B0001307072436943354E40263E78706338401 +:1035C00087408327090082976364A406B307A44059 +:1035D00003A4090063C2070617F7FE1F03476730FD +:1035E0000583637BF70437450F00998F1305052486 +:1035F000B3B5A7020356890081463385A702EF20A1 +:10360000504A0294EC280145B315B028B3C505080B +:10361000EF6050636244F240D2444249B24981456E +:10362000014505616F70502103274900BA9741BFDA +:10363000832749003E9459BF0145E1B7411122C497 +:1036400026C206C697F7FE1F83A7474F2A84AE847B +:103650006396A70097F7FE1F23A2074E7C5499C7D5 +:103660000A20014693050008EF00703F1C2C99C703 +:103670000A204D4693051008EF00703E0A201546BB +:1036800093051008EF00B03D23010400230404005B +:1036900023079408B24022449244014541018280AC +:1036A0003C21638B07201E3D011122CC06CE8507ED +:1036B0001EBD3C31A30605002A8413F7270005E34D +:1036C0003A35954763F3E71C9305E003EFF01FF7E6 +:1036D000A30AA40A0945F24062440561828013F7F7 +:1036E00007020DCF93F7F7FD3CB15E351307204E6F +:1036F0008356250493E747005EB55E318345150286 +:10370000A30A050AB387E702B3D7D702B385E50258 +:10371000FD077EBDB3C50508EFF03FA61C34858BC1 +:10372000DDCB835784093A346393E7168347F40863 +:10373000835564094838A300F402835704090EB482 +:1037400092053EB083574409F9157EB0EF206FF023 +:103750003A30231C040297F6FE1F9386661A0DC7A3 +:103760009E26CC42B387E7021307003293870719DE +:10377000B3D7E70278443E973A866364F700636400 +:10378000B7003306B74070C49A26835724099306BE +:1037900000326C285EB0B387E702231A04020145A9 +:1037A000B315B028B3C5050833D6D702B3F7D7028F +:1037B0009306204E30C4B387D702B3C7E7023EB8A2 +:1037C0003E347EB83C3093E707023CB01C34F99B92 +:1037D0001CB4EF6030471C34898BB9C38356C407CF +:1037E0003A34B387E6409397576063C7070A6399F3 +:1037F000E602814701482320F40813050408232228 +:1038000004091546930564072AC697D0FE1FE78072 +:103810002005324515251C34A30DA406F59B1CB4C8 +:103820001C3413F7070135C30356841336343307AA +:10383000D64013175760634107066318D604BD9B33 +:103840001CB48347641391C7898BADC38547230A92 +:10385000F4128347741391C7898BA1CF8547A30ABC +:10386000F41281452285EFF05F912285EFF09FAD44 +:103870008347441189C75E3493E707105EB45E3412 +:10388000A30A040A93E707205EB40145A9B5998FFE +:1038900093975760E3D107F4930580022285EFF0F8 +:1038A000FFD9A30AA40A1305800235B5230A04121E +:1038B0004DB7A30A041275B7054582801DC1411199 +:1038C0009305200222C406C62A84EFF03FD7FD5795 +:1038D000A30AA40A230404005CA8B24022444101C4 +:1038E000828082801DC5411122C406C63C312A84D3 +:1038F0009305E003898B91C3A145EFF03FD4FD57B9 +:10390000A30AA40A230404005CB8B2402244410183 +:10391000828082805E35411122C406C626C24AC01A +:103920002A84638D071813F7270009CBF59B5EB532 +:103930000A21194693050008EF0070125E3413F750 +:10394000470029C3ED9B5EB45E301307204E8145CE +:10395000B387E702035724042285B3D7E702FD07A4 +:103960007EBCEFF09F813C3893E717003CB883574B +:10397000A40999E70A200D4693050008EF00300ED0 +:10398000231D04085E3413F7870009CF0A20DD9B4E +:103990005EB4154693050008EF00700C3C3893E7C1 +:1039A00047003CB85E3413F7070105C7BD9B5EB402 +:1039B0008347E40B0A20214689C7230F040A130614 +:1039C000000393051008EF0090093C3893E71700B7 +:1039D0003CB85E3413F707041DC30347940893F7FC +:1039E000F7FB5EB4A14763F6E7007E3493E7070177 +:1039F0007EB40A20314693051008EF0050065E346D +:103A000013F707021DC793F7F7FD5EB48357241120 +:103A100093F7070289E77E349397B7487EB40A206C +:103A2000114693050008EF0090033C3893E7170018 +:103A30003CB85E3413F7071005C30A2093F7F7EF7D +:103A40005EB4230A04101D4693050008EF00300100 +:103A50003C3893E717003CB85E3413F7070819CBDE +:103A60000A2093F7F7F75EB4130670059305100864 +:103A7000EF00E07E5E3413F707201DC393F7F7DFF6 +:103A80005EB42285A3080412EFF06FFE0A203146CF +:103A900093050008EF00A07C3C3893E717003CB882 +:103AA0005E34858B81CF3C388345E408228593E7DB +:103AB00017003CB8EFF09FB8A30AA40A3C209DCBA6 +:103AC0007C5481CF1C2891EB0A2001469305000805 +:103AD000EF00E07819E185471CA81C2C81CF3C2819 +:103AE00091EB0A204D4693051008EF00407719E14D +:103AF00085473CA83C38BDC7918B99CB1024C16544 +:103B0000938505A02285EFF08FE93C38ED9B3CB80A +:103B10003C38858B89CF48289307F00F6306F50062 +:103B2000EF20AFE8FD575CA83C38F99B3CB83C3827 +:103B3000898B91CB0E3448389205F915EF206FB17F +:103B40003C38F59B3CB83C38A18B89CF0E340D46F0 +:103B500022859205F915B3C50508EFF04FE43C380E +:103B6000DD9B3CB897F4FE1F938444D6985439CF1C +:103B70003E34A9CF93064006B3F7D702A1EB83A743 +:103B8000C1A8898B85CF17F9FE1F1309A9F88347B0 +:103B90001900834529002545C207DD8D02979C54F5 +:103BA00083450900294582979C548315C4012D45FE +:103BB00082979C548305E4013145829797F7FE1F55 +:103BC000239A07F497F7FE1F238707F4B240224495 +:103BD0009244024941018280411122C406C62A84CE +:103BE0007C50A5EF7C54C1EB684C09C597D0FE1FF3 +:103BF000E780402D48289307F00F6304F500EF207D +:103C0000CFDA48389307F00F6304F500EF20EFD9BF +:103C100068289307F00F6306F500EF200FD9FD57D2 +:103C20007CA80A20C12A97F7FE1F83A7A7CA95C3BD +:103C300017F5FE1F032505C909CD97D0FE1FE780A4 +:103C4000602897F7FE1F23AF07C697F7FE1F23AD27 +:103C500007C6B240224441018280C84309C597D0BB +:103C6000FE1FE78020267C50BA27136707F0BAA70B +:103C70009C437CD0B5B7C84309C597D0FE1FE780E9 +:103C800060247C54BA27136707F0BAA79C437CD4FE +:103C900091BFAA8717F5FE1F0325C5E909C51A219B +:103CA0006303F7000145828017F5FE1F032545E9F0 +:103CB0003A25C167938727F56303F70001458280A2 +:103CC000C16717F5FE1F0325A5E7938547F5410555 +:103CD00017F6FE1F034676C00147FD176364C70051 +:103CE000014582803625E38EB6FEE38CF6FE410563 +:103CF0000507EDB7411122C417F4FE1F130484E138 +:103D00005C5406C626C2B9EB97F4FE1F938404BC2C +:103D10004830FC349305B020130515028507137550 +:103D2000051E92073E95EF60701C0DC9F034C16608 +:103D3000938826F593071600920748D4AA9701475F +:103D4000938646F50DC381453688231505014CC180 +:103D5000A304050005074105E356E6FEB2402244F0 +:103D6000924441018280BE854688C5B741119305C2 +:103D700030261305001406C622C4EF603017130660 +:103D8000001481452A8497D0FE1FE78040B1014589 +:103D900019CC97F7FE1F9387E7D7985309CF2310C5 +:103DA0000400228597D0FE1FE780C0110A20B24090 +:103DB00022444101828005471AA080D3EFF09FF38F +:103DC00023010400E5B717F5FE1F032565D711CDC4 +:103DD000411106C697D0FE1FE780C00EB24097F78C +:103DE000FE1F23AF07D44101828097F7FE1F23A94E +:103DF00007D48280AA8717F5FE1F0325A5D315C116 +:103E00001A216310F702411106C697D0FE1FE78002 +:103E1000600BB24097F7FE1F23AE07D041016FF051 +:103E20009FFA82804146814517F5FE1F130585D014 +:103E300017D3FE1F6700A3A61C3118215421A20727 +:103E4000D98F3821FD8A9305000242075D8F3C31EE +:103E50000145E207D98F01473316E0287D8E01C660 +:103E600005051375F50F0507E318B7FE81472147D0 +:103E700033D6F64801C605051375F50F8507E39996 +:103E8000E7FE828001114AC84EC60329050883292E +:103E9000450822CC26CA52C406CE2A84A30A0506A7 +:103EA000A30D05068144130A500226864A85CE8555 +:103EB000EF20C03C058911C58347B4078507A30DD2 +:103EC000F4068504E39344FFF2406244D24442493D +:103ED000B249224A0561828001458280411106C6AD +:103EE000EFF03FDB05C103576509835645090356CB +:103EF000E50A8355C50A0A21EF907FD70145B240F4 +:103F0000410182800945E5BF79711375F50F06D629 +:103F100022D4EFF0AF891DCD2A845946814528006F +:103F2000EFE08E9C9307C003DC8585475C87834761 +:103F300014031946930524030808DC8797D0FE1F55 +:103F4000E78000922800EF90DFB80145B25022547C +:103F5000456182800945DDBF797106D622D4EFF034 +:103F60005FD311C597F5FE1F83A505BC91E50945F3 +:103F7000B2502254456182808347550B2A841946EA +:103F8000DC851E219385A50308087C8685475C8710 +:103F900083C7F5FFDC8797D0FE1FE780608C5E301B +:103FA0002800FC837E30FC841E34FC853C2C230ED0 +:103FB000F100EF901FB23C30A30A040A014593E7D9 +:103FC00017003CB075B7411106C622C4EFF07FCC94 +:103FD00005C983465513034645130E212A8403451C +:103FE000550B8506050693F6F60F1376F60FEF9040 +:103FF000BFD00145A30A040AB24022444101828095 +:104000000945DDBF011106CEEFF0BFC815C51E2161 +:104010007C828357A5127C838357C5127C84835787 +:1040200065127C85835785120A857C86EF90BFC810 +:104030000145F240056182800945E5BF011106CEC8 +:1040400022CCEFF01FC505CD1E212A847C82835728 +:10405000C50A7C838357E50A7C84835745097C85A0 +:10406000835765090A857C86EF905FBC1C34014547 +:1040700093E747001CB4F240624405618280094521 +:10408000DDBF411106C6EFF0DFC001CD0356C510FC +:10409000930545100A21EF90DFB30145B24041017D +:1040A00082800945E5BF411106C622C4EFF07FBEFC +:1040B00005C10E212A841306E5100345550BEF9028 +:1040C0003FAB0145A30A040AB24022444101828069 +:1040D0000945DDBF011106CE22CCEFF09FBB1DC507 +:1040E0008347550B2A84DC831E217C848357250952 +:1040F0007C858327450948003EC6EF905FA30145B4 +:10410000A30A040AF2406244056182800945DDBFCA +:10411000014582800145828001458280014582807F +:1041200001458280011106CE22CC18219306000899 +:10413000AA876312D7021831BD46054563E7E60832 +:1041400097660000938686C93347D720AA23184371 +:10415000029701459DA89306100805456317D706E9 +:104160009833B1466306D70A63E9E60295466308C9 +:10417000D704A146E31FD7FCAA23EFF09FB12A84FE +:1041800021C50346D50B0E210345550B3336C00020 +:10419000EF90DFC6A30A040A6DBFCD466301D70ABC +:1041A00093060003E317D7FAAA23EFF09FAE2A8401 +:1041B00001CD0E210345550BEF909FD6E1BFAA23F9 +:1041C000EFF03FAD2A8411E50945F24062440561F4 +:1041D000828078511DC31C2D850793F7F70F184374 +:1041E0003E86850793F7F70F7DFB10AC19C60E20AE +:1041F0000545EF901FD7230C04000345540B0346DD +:10420000E4080E20EF903FBB2285EFF0FF9C91B7B2 +:10421000AA23EFF01FA82A8445D98347550B5C8356 +:104220001E217C84834795085C858357A5087C867E +:104230008357C50848007C87EF901FC1A1BFAA2300 +:10424000EFF03FA52A8449D1102D19C60E2105454E +:10425000EF903FD1230C040023090400DDBD411180 +:1042600022C42A84114526C24AC006C62E89B284B9 +:10427000EF10DF920DC12300250104B122A12244D9 +:10428000B24092440249AA8517E5FE1F03453562F4 +:1042900041016F105FA0B24022449244024911458F +:1042A00041018280411106C622C4EFF09F9E35C1B4 +:1042B0007C55230805002A84B9C738300A21058BAC +:1042C00009EF0A20014693050008EFF05FF91DCDC4 +:1042D0000145B240224441018280D443D0278C273B +:1042E0008906EF901FCC11ED7C54BA27A3840700F8 +:1042F000136707F0BAA79C437CD47C3899C3FD1799 +:104300007CB87C54DDFFA30B0400D9B785471CA8FB +:10431000C1B709457DBF411197E7FE1F83C7576F9E +:1043200022C406C6858B17F4FE1F0324E480DDCB70 +:104330005E340967F98FC1E32285EFF04F9485471A +:10434000631BF50683556412034554130356841208 +:104350009105B3C50508EF6040218347D40B1305D1 +:104360008015858B99C7A2850545EFA0AF841305FD +:104370008017EF60B05197E7FE1FA38B076883A7F4 +:10438000819D9C4303A7019FA1838D8B95E3930798 +:1043900060197CD397D0FE1FE78040812244B24051 +:1043A0008145170500001305850541016F60D04860 +:1043B0009307E01BF9BFEF6080297C2485C73D4748 +:1043C0006379F7009305D0032285EFF02FA7A30AA6 +:1043D000A40A97E7FE1F83A7E75189C795451305F0 +:1043E00050088297EF60A0262285EFF0AFD2228599 +:1043F0002244B24041016FF04F98011197E7FE1F30 +:1044000083C7076122CC26CA4AC84EC606CE97E9A2 +:10441000FE1F93892970858B03A4490297E4FE1F30 +:104420009384045F1389019F638707669C20939799 +:10443000476063DE0708DC443CCC3C30898B89E76D +:1044400081452285EFE07FD397E6FE1F9386464B9A +:104450008A263E3C37470F001306F723B387A7028F +:1044600013070724CC42B297B3D7E70238441D8F15 +:104470003C4CBA973E8663E4E70063E4B7003386BA +:10448000B7403C3083560404898B99E370C405A877 +:1044900078446367C7145E3C118FB3A7F620B387D7 +:1044A000A70237450F001308F52313050524C2970B +:1044B000B3D7A702E36CF7FC9D8DE3E9E5FC7E3CF6 +:1044C0008582231C0402B3F6F60A2310D404285074 +:1044D0001306C4019305E40197C0FE1FE780007630 +:1044E000C8A0DC20858B6391071C3C3893E727002C +:1044F0003CB83C30898BA5CF2285EFE01FEF25E942 +:104500003C30A303040093E747003CB07C508DC7C8 +:1045100018381DC39837058B05E3BA27C8431367BE +:1045200007F0BAA797D0FE1FE780C0991C2C85071B +:104530001CAC7C509C437CD03C2481CB8347D40B67 +:10454000898B81C72285EFE05FEE1C2413072002D0 +:10455000639AE7085E34A30A040A93E787005EB40F +:104560001C3493E787001CB4930740021CA4DC2092 +:10457000898BC1CF8347D40B858BC1CB7C24850726 +:104580007CA43C3013F7270001EB93E727003CB0F5 +:1045900097E7FE1F23A4075A97E7FE1F238A0746C3 +:1045A0008347040278309384819D85072300F402B9 +:1045B0005C206319074C1434BD9B93E73700130745 +:1045C00000045CA0A308040078B09397466063D60B +:1045D000070E93F6F60714B42285EF10201DE5A808 +:1045E0002E9755BD130700066399E70085471CA465 +:1045F0003C3893E717003CB89DBF7147E399E7F655 +:104600005E3493E717005EB49DB72285EFE0FFDFCD +:104610002DF9230704002285EFE09FDA1C34A18BDB +:1046200085CB3C3495C75C24094793F7B70F63816A +:10463000E7029307D0032307F408930770021CA432 +:104640008347D40B858B95DF2285EFE0BFE015BF54 +:1046500058308D476311F7045C2461476370F7029B +:104660005C241D476386E702A30BF40A1E382285EB +:1046700093E717001EB8EF10401F19A81767000036 +:1046800013070788B3C7E7209C432285829769F9FF +:104690003C34DDF7FDB53C34E38507EE2285EF6061 +:1046A0008020E31005EEEDB75C3485075CB483C76A +:1046B000090085072380F900E9B51E3813F72700A4 +:1046C0006302070EF59B1EB88357E4102285918B79 +:1046D000F9C7EF10A03C1438854758206399F60CB1 +:1046E0007C50DC4398A37C503824DC4398B378504A +:1046F000832709005843B8DF9C4098431317872944 +:1047000098C3D85B719BD8DB2C24034544139105D7 +:10471000EF50105F3C24638D07368347D40B898BA1 +:1047200063880736A2850145EF90BFC21305802735 +:10473000EF60D01597E7FE1FA38C072C9C40984391 +:104740001317872998C3D85B719BD8DB7C549DC70E +:104750003830058B05C7D443D0278C270A2089061B +:10476000EF903F8401ED7C54BA27136707F0BAA796 +:104770009C437CD47C3899C3FD177CB897C0FE1F3E +:10478000E780C0426244F240D2444249B249814586 +:1047900017050000130565B805616F60F009EF109B +:1047A000E01A15BF13F7170009CFF99B1EB87C4C10 +:1047B000582098A37C4C382498B383270900784C60 +:1047C0001DBF182405466312C70CB9CB13F70701A8 +:1047D00019C7BD9B1EB82285EF10E00AEDBD13F787 +:1047E000070201CB93F7F7FD1EB82285EF10A02139 +:1047F000DDB513F7070801CB93F7F7F71EB822854D +:10480000EF108032C9BD13F7072001CB93F7F7DF14 +:104810001EB82285EF10A03E7DBD2318040241BFC3 +:104820007E346384072013F7070401CB93F7F7FB6B +:104830007EB42285EF10E00B79BD13F7072019CB6A +:10484000CD8AE39B06D893F7F7DF7EB42285EF107D +:10485000A01151B51317B0287D8F01CB9397B7489E +:1048600022857EB4EF108025BDB505677D8F19CBFD +:10487000CD8AE39306D69397C74822857EB4EF107E +:10488000E03291BD231704021DB7E30707D4930755 +:10489000800363E4E702E947E3F0E7D415171377F1 +:1048A000F70FF547E3EAE7D29756000093860657DD +:1048B0003347D7201C43B6978287130707FC13772B +:1048C000F70FE947E3EAE7D0175600001306865CC6 +:1048D0003347C7201C43B29782878347540B8DC749 +:1048E00005476398E7002285EF10E01185471CA477 +:1048F000DDB38357E410918BDDC3BD47230BF40A6E +:104900002285EF10A019DDB72285EF00306A5E34F2 +:1049100093E727005EB4D9BF2285EF003069854751 +:104920001CA45E34231D040893E747005EB465B3FE +:104930002285EF001069D9472307F40869BB228557 +:10494000EF00D0665E3493E717005EB423040400E2 +:1049500059B32285EF50F065E30F05D68547230F45 +:10496000F40A2285EF0050778347D40BF99BA30EFE +:10497000F40A95B32285EF007063C9BF83572411F1 +:10498000858B89C72285EF001066B1B3E947A30A7A +:10499000F40A8357E410918B99C38D4785B722851C +:1049A000EF00D07AA1B72285EF00F0688347E40BCF +:1049B00091CB41469305040C1305040E97C0FE1FCE +:1049C000E78000EA8347D40B232C040A230E040A51 +:1049D00093E71700A30EF40AFDB98357E410918BF7 +:1049E00099CB8D47230BF40A2285EF10200B1C3442 +:1049F000DD9B1CB4E5BD2285EF005075CDBF83471C +:104A0000D40B2328040A230A040A93E72700A30EE1 +:104A1000F40A2285EF00D0631C34A30A040ADD9B4C +:104A20001CB45E3493E70701F5B52285EF5070584A +:104A3000E30305CA55B60347641311CB83474413F8 +:104A4000B317F0286385E70093E6060114B4034723 +:104A5000741319CB83475413B317F0286386E70008 +:104A60001C3493E707011CB48347141381CB1C3417 +:104A7000C18B89E75E3493E707205EB42285EF009F +:104A8000F052ADB583C719008507A380F900A1B125 +:104A90001305802571B983270900FC53D1EBEF5032 +:104AA000103B9C209397476063D0070883C7290079 +:104AB0003A34850793F7F70F2381F90029CF93063E +:104AC00040063377D70221EB03A7C1A8098B05CF96 +:104AD00097E4FE1F938484DF985415C783C519009B +:104AE0002545C205DD8D02979C5483C509002945E3 +:104AF00082979C548315C4012D4582979C5483054D +:104B0000E4013145829797E7FE1F2395070097E759 +:104B1000FE1F2382070022856244F240D2444249AC +:104B2000B24905616FE07FA52285EFE0BFDEE5B702 +:104B3000F2406244D2444249B24905618280411147 +:104B400026C206C622C44AC0EFF04FA2AA8439C1C9 +:104B5000EFF02F942A8445C5C5473CA185471CA585 +:104B600017E9FE1F130989D683570901130740105F +:104B700093053025A50713050004B3C70708B3D76D +:104B8000E70A33F5A70AEF50703668CC19E90A2016 +:104B9000EFF04FA6B24022440249268592444101DB +:104BA000828097E7FE1F83A7E7E73CD097E7FE1FC9 +:104BB000938747F603D727049E2B22852318E410FA +:104BC0002319F412FD573EB45EA87CA883478408DD +:104BD0002319E410231A041293E707FC2304F408B2 +:104BE000EFE03F8003454901A307A412EF90BF8285 +:104BF0002308A41297E7FE1F239B07E261BF8544A9 +:104C000051BF411106C622C426C24AC02C2D2A8497 +:104C10000145EF103F9697E4FE1F938464CE9624DF +:104C20005E30130600321309204E3387F60223113B +:104C3000A40433450508B355C7023377C7022CC413 +:104C400083451402B387270333072703B3D7A7028B +:104C500022853347D702FD07B3C707087EBC231060 +:104C6000F404B38525033AB893850514B3C5050844 +:104C7000EFE0AFD03E308A2437460F008507B38778 +:104C80002703814613060624938707ECB3A5A702E2 +:104C90003305F502EF10E0607C40D440AA9733B5AD +:104CA000A7002E9501E53E8763E4D7003387D74000 +:104CB00078C42285EFE0AFD50E3422859205F91530 +:104CC000B3C50508EFE02FD12285EFF0AF9B97E742 +:104CD000FE1F23A587E683A7C1A8898B91CF97E400 +:104CE000FE1F9384A4BE9C5481CB2C4835458297EB +:104CF0009C546C483945829722852244B2409244A4 +:104D0000024997E7FE1F239707E097E7FE1F2384DA +:104D100007E041016FE0DF80411122C406C626C2D0 +:104D20004AC017E4FE1F032424E18347D40B858B7C +:104D300089C7A2850545EF90EFE71389819D8327F9 +:104D400009008346F412370600FFD85B93E6060499 +:104D5000E6061E071D83558FD8DB3848B70680004E +:104D60009386D632B8D3D8C778489384019FB8CFFA +:104D7000D8C3F84F718F558FF8CF9847718F558FE3 +:104D800098C798405C4393E717005CC3835564124F +:104D90000356841203455413930700FC910517E74B +:104DA000FE1F2307F7C6B3C50508EF50007C17F5B3 +:104DB000FFFF1305C5648145EF6000280327090044 +:104DC0005C5BF19B93E717005CDB83A601A0DC56DC +:104DD000F59BDCD6834644071C4393F6F60793F70E +:104DE00007F8D58F1CC397C0FE1FE780801D83473F +:104DF000D40B13058017858B99E313058015EF609D +:104E0000E02883570404563C98402244B3A7D72097 +:104E10008607B240924402497CD397E7FE1FA389DC +:104E200007BE410117C3FE1F670023DAB717004012 +:104E300083C71704898B95C7411106C6EFE0AFAD54 +:104E4000B24097E7FE1F9387E7CC170700001307D0 +:104E500047CF98DB170700001307E7DAD8DB4101DB +:104E60008280828001114AC817E9FE1F130989CA8E +:104E700022CC0324C90326CA4EC652C456C206CE4B +:104E8000AA848149130A2500854A29E093057025E3 +:104E90003145EF50B0052A84014539C89C30194688 +:104EA000938524001CB01305240097C0FE1FE780E3 +:104EB000209B8327C903B1E7232E89022324040002 +:104EC000834789038507230CF90215A018309C300D +:104ED0006305F700A28900444DBF1946D28513052A +:104EE000240097C0FE1FE780809FE31555FF05450E +:104EF000F2406244D2444249B249224A924A056190 +:104F00008280E38D09FA23A489004DBF17E5FE1FB7 +:104F1000032505C411E997E7FE1F23AB07C297E7F6 +:104F2000FE1F238507C28280411106C622C40045A8 +:104F300097C0FE1FE78000F9228575F8B240224431 +:104F400097E7FE1F23A607C097E7FE1F238007C031 +:104F50004101828097E7FE1F9387C7BB23AE0702FC +:104F6000238C070282800545828038358947630497 +:104F7000F700054582803C5113070004BC33A30AA7 +:104F8000F50A1C2593F6B70F6396E60093075004C5 +:104F90001CA539A813075005639EE7005E3593E70B +:104FA00007205EB585471CA51C3593E707F81CB59F +:104FB00001458280130750066395E7009307A0061A +:104FC000C1BF13075008E396E7FA85471CA53C3993 +:104FD00093E717003CB9C9BF34350D473C51638492 +:104FE000E60005458280D823A30AE50ABC333D4785 +:104FF000639EE7001C251307000493F7B70F639522 +:10500000E700930750041CA501458280514763992E +:10501000E700182593070005E315F7FC8547E5B77A +:105020005947E390E7FC182593075005E31BF7FA6F +:105030005E3593E707205EB585471CA51C3593E7D1 +:1050400007F81CB5D1B73C511303000ECC23B43381 +:10505000A205D58D938655FEB3C606086361D306B7 +:10506000F023D43311682206558E930686EB13087D +:105070008814B3C606086364D804942783C87700ED +:10508000A206B3E61601938856FEB3C80808636803 +:10509000130383C89700BC27A207B3E717019388BF +:1050A00087EBB3C80808636C1801231FB5102310E1 +:1050B000C5122311D5122312F5126FE06F9E05451C +:1050C00082803835B1476319F7083C51B833A307DC +:1050D000E508D833D4232207558F2318E508F03389 +:1050E000F8232206598E2319C50894379827A2065B +:1050F000D98E231AD508B837AC2722074D8F231B2A +:10510000E508CC27DC37A207CD8F4E31231CF508EC +:1051100081476399C50072316316D6001E35998F99 +:1051200093B71700231DF5081C251307000463809F +:10513000E702130740046394E70085471CA51C356C +:10514000154778B593E717F81CB5014582803C39BF +:1051500093E717003CB9D5B70545828038358947B4 +:10516000631AF7003C51BC332307F508F5471CA52B +:10517000014582801D458280AA872835054763182E +:10518000E50298279306B0026319D7001307E002DF +:1051900098A7A38A070A014582809306D002631963 +:1051A000D7001307E002A38A070A98A7EDB70545C1 +:1051B0008280383589476317F702E947A30AF50A61 +:1051C0003C513D47BC336391E702835725111825B5 +:1051D000F59B2319F510930700046315F700930757 +:1051E00060041CA50145828051476392E70218259F +:1051F00093070005E318F7FE85471CA55E3593E786 +:1052000007105EB51C3593E707F81CB5E1BF594799 +:10521000E39AE7FC182593075005E315F7FC5E3584 +:1052200093E707205EB585471CA5E9BFAA87283507 +:105230000547631AE50098276318A7001307600362 +:1052400098A70145828005458280AA8728350547B1 +:105250006318E5029827930670036319D7001307B4 +:105260008003A38E070A98A7014582809306500306 +:105270006319D7001307800398A7A38E070AEDB719 +:105280000545828038359947631EF7063C51B8338F +:10529000A304E508D833D4232207558F2315E50846 +:1052A000F823FC331425A207D98F2316F50813071A +:1052B000A00383478508639EE602858B89CB5E3514 +:1052C000A30A050A2304050893E707045EB53C39E1 +:1052D00093E717003CB985471CA51C3593E707F8F1 +:1052E0001CB58347850893F7F7FB2304F5080145B0 +:1052F000828093974760E3D207FE7E3593E70704E9 +:105300007EB5E1BF0545828038358D476319F704C6 +:105310001C3534518D8B89EB18252146930707FCEA +:1053200093F7F70F636EF600D947230BF50A93073F +:10533000A002A30AF50A1E3993E727001EB911A897 +:105340008547631AF700DC22A30BF512930760056B +:105350001CA5014582801E3993E70720C5B7054586 +:10536000828034351547AA8705456391E60698275C +:10537000930650056307D70093068005054563171C +:10538000D704B83BA853854613671700B8BB4C2118 +:105390001147636AB70230316367C7021387F5FFAD +:1053A0009306F6FFF18E6D8F558F854609EF7821B4 +:1053B0005431238BB7122207558F239CE712A38BFE +:1053C000C7129306A00594A70145828082803835D4 +:1053D000E1476310F71283572511411122C406C615 +:1053E00026C2898B2A840545F9CB2C500565930686 +:1053F000A5C7DC21B831F944A207D98F1387A7FFCD +:105400003347070863E3E60AF821D431130505C8DA +:105410002207558F636BE5086369F7089025F4311F +:105420002206558E9306301F63E1C608B42503C8D3 +:105430009500A206B3E606016369D50613051600BA +:10544000334505083305F50213983600635F0505FB +:10545000A83519C1636BA704035844028144639CB7 +:105460000701631AF700035864026316C800063484 +:10547000958C93B41400231AC408231EA408231681 +:10548000F40A2317E40A231BD408DC35D825314657 +:10549000A207D98F231FF408B9051305040A97B092 +:1054A000FE1FE780E03B91477CB41C24A30A940ACA +:1054B0000547639BE700930710041CA40145B24015 +:1054C000224492444101828013070004639AE7005A +:1054D000930710041CA43C3893E717003CB8F9BFAD +:1054E0005E3493E727005EB41C3493E707F81CB4DE +:1054F000F1B7054582803835A547631FF704411190 +:1055000022C406C6182585472A846312F7042C5145 +:1055100009461305E5108D0597B0FE1FE78040345E +:105520008357E4100D671307070DD98F0357041134 +:10553000F98F2319F410930710031CA41C340145A0 +:1055400093E707F81CB4B2402244410182801E391F +:1055500093E707011EB9DDB7054582803835A147BD +:10556000631DF704411126C2245122C415462A8422 +:10557000938534001305650706C697B0FE1FE780C4 +:10558000202E9C349824A207D98F3A34231EF40687 +:10559000638BE700998F9397576063C607001C34AD +:1055A00093E727001CB41C34014593E707F81CB4AB +:1055B000B2402244924441018280054582803835C0 +:1055C000A5476316F704411122C406C61425130724 +:1055D00000052A8485476392E602EFF0DFA61DE10D +:1055E0005E34A30A040A93E707105EB41C3493E701 +:1055F00007F81CB485471CA48147B24022443E856D +:10560000410182803C3893E717003CB8C5B7854715 +:105610003E8582803835A5476309F70005458280BD +:105620000545B24022444101828083572511411132 +:1056300022C406C693F707022A84FDD3EFF0BFA069 +:105640008547E30FF5FC18246317F700930710054F +:105650001CA40145F9B71E3893E707081EB8D5BF4B +:105660003835DD476314F712797126D2245122D4DC +:1056700021462A84938534001305451006D64ECE64 +:105680004AD097B0FE1FE780A01DDC24B8349309F0 +:105690000410A207D98F2316F41097B0FE1FE780DD +:1056A000C0172AC497B0FE1FE78020172AC62C0017 +:1056B0001305840F214697B0FE1FE780601AFC3463 +:1056C000F8244E85A2074207BA9798282C00114665 +:1056D000BA97D8346207BA97232EF40CBC38B8288E +:1056E000A2074207BA97D828BA9798386207BA979C +:1056F000232CF40C0347940F8347A40F4207A207FF +:10570000BA970347B40FBA970347840F6207BA9753 +:10571000232AF40C0347D40F8347E40F4207A20760 +:10572000BA970347F40FBA970347C40F6207BA97B3 +:105730002328F40CA247374703001307D73FB3874A +:10574000E70237A72600130737ECBA973EC497B095 +:10575000FE1FE780E010FC28D8380145A207D98F4A +:10576000F83842075D8F9C2CE207D98F2328F40E6E +:1057700083270410232AF40E930710021CA4B250AE +:10578000225492540259F249456182800545828033 +:1057900005458280054582800545828005458280D9 +:1057A0000545828005458280054582805C21230570 +:1057B0000500F19B93E717005CA1684D13351500B8 +:1057C00082807C4D094738A589CFB8A30347E508F7 +:1057D000B8B33C3993E787003CB9F1471CA50145B4 +:1057E00082801D458280411126C2644D06C622C4B6 +:1057F000B5473CA59DCC91472A84BCA09305850F55 +:1058000021461385340097B0FE1FE780600513859D +:10581000B40011469305041097B0FE1FE7804004C2 +:10582000930720021CA40145B24022449244410146 +:1058300082800545D5BF85473CA57C4D81CB15476A +:10584000B8A39307B0021CA501458280054582805C +:1058500085473CA57C4D81CB1947B8A39307D0025F +:105860001CA5014582800545828089473CA57C4D69 +:1058700089CB1D47B8A37C4D0347750B0145B8B3D1 +:105880008280054582807C4DB1C7411106C622C485 +:10589000254738A5B8A32A84684D214681450D05C2 +:1058A00097B0FE1FE780A0FF684C930504110946DE +:1058B0000D0597B0FE1FE780A0FA5E34A30A040A24 +:1058C000014593E707025EB485471CA4B240224419 +:1058D000410182800545828085473CA57C4D81CB76 +:1058E0002D47B8A3930770031CA501458280054589 +:1058F000828099473CA57C4D3147B8A32547B8B372 +:10590000130770FDD8A31D47D8B313070002F8A3EF +:10591000130710F9F8B38347850813F7070401CF7D +:105920009307A0031CA58347850893F7F707230473 +:10593000F50801458280858BFDD75E35A30A050AEF +:105940002304050893E707045EB5F1BF89473CA52A +:105950007C4D89CB3547B8A37C4D0347550B01459A +:10596000B8B3828005458280411122C406C6E14752 +:105970002A843CA5684D51C5BD473CA18347C40A54 +:1059800039053146A30AF5FE8347D40A9305040A74 +:10599000230BF5FE8347E40AA30BF5FE8357E40AC5 +:1059A000A183230CF5FE83474409A30CF5FE83472E +:1059B0005409230DF5FE83476409A30DF5FE8357B3 +:1059C0006409A183230EF5FE8357C409A30EF5FED7 +:1059D0008347E409230FF5FE8357E409A183A30F4E +:1059E000F5FE97B0FE1FE780A0E73C38014593E73E +:1059F00047003CB8930700041CA4B2402244410174 +:105A000082800545DDBF411122C406C6E1472A84D4 +:105A10003CA5684D51C1C1473CA18347C40A390523 +:105A20003146A30AF5FE8347D40A9305040A230BE3 +:105A3000F5FE8347E40AA30BF5FE8357E40AA1832E +:105A4000230CF5FE83474409A30CF5FE8347540954 +:105A5000230DF5FE83476409A30DF5FE8357640902 +:105A6000A183230EF5FE8357C409A30EF5FE8347D9 +:105A7000E409230FF5FE8357E409A183A30FF5FE84 +:105A800097B0FE1FE780C0DD930740041CA40145CA +:105A9000B2402244410182800545DDBF8D473CA5CF +:105AA0007C4D99CB4547B8A30347650BB8B3034773 +:105AB000550B0145D8A38280054582807C4DBDC32E +:105AC000254738A55147B8A30347651103568511EB +:105AD0008566B8B303576511938686843356D60A14 +:105AE0002183D8A30347A511B3450608F8B303578C +:105AF000A511218398A70357C511D0B313D68500EC +:105B00003357D70A98B7B346070813D78600F0A3D0 +:105B1000B8A73C3993E747003CB9930700051CA59B +:105B200001458280054582807C4DBDCF254738A543 +:105B30005547B8A303476511035685118566B8B369 +:105B400003576511938686843356D60A2183D8A3DA +:105B50000347A511B3450608F8B30357A5112183E0 +:105B600098A70357C511D0B313D685003357D70A6A +:105B700098B7B346070813D78600F0A3B8A78347A2 +:105B80004511A30A050A89C75E3593E707105EB57C +:105B90007E351317B0287D8F01C79397B7487EB520 +:105BA00085471CA501458280054582808D473CA51F +:105BB0007C4D5947B8A303472513B8B303473513A2 +:105BC000D8A3058B8357C5121DC7938707FB2147B1 +:105BD000B3C7E7020357A512B3C70708B357F70ABD +:105BE000A30AF5103C3993E747003CB993075005E9 +:105BF0001CA5014582809387C7FB1147D1BF8D4704 +:105C00003CA57C4D5D47B8A303472513B8B3834635 +:105C10003513D4A3834675138357C512758F058B2F +:105C20001DC7938707FB2147B3C7E7020357A51298 +:105C3000B3C70708B357F70AA30AF51093078005FF +:105C40001CA53C3993E747003CB901458280938706 +:105C5000C7FB1147D1BF011106CE2EC60DCD18418D +:105C6000AA8705C358417D5511CB8546631BD700D4 +:105C700098472300070023A207000545F24005616D +:105C800082809847B24614A39847050798C7D8431F +:105C90007D17D8C3DDB705466C00EFC0AECBF1BFB2 +:105CA000011122CC26CA52C456C25AC006CE4AC8D6 +:105CB0004EC62A8AAE8A3284BA8413FB1600634C1D +:105CC00006082E853689EF10B066AA8963538508C9 +:105CD000635E9502058C631B0B08130B000222897F +:105CE0006340200901493369240B3304244163DAFA +:105CF0009902B3843441A689930500035285FD19A6 +:105D0000EFF07FF5E39A09FE269921A8098C137913 +:105D10002900E30209FCE1F063010B040149130BC4 +:105D20000003CA84B3872441D69783850700B9E16D +:105D30002289634620058147F2403365F40A6244B4 +:105D40004249B249224A924A024B2695D244056101 +:105D5000828001446DBF8149BDBF130B000341B771 +:105D6000DA855285EFF03FEF7D199DBF130B0002DE +:105D70000149B5BF5285EFF01FEE850465B7DA859E +:105D80005285EFF05FED7D196DB7397126DA4ED689 +:105D900006DE22DC4AD852D456D25AD0BA84BE8902 +:105DA00085E5930700030147CE8626862C007C8478 +:105DB000EFF01FEFF2506254D2544259B259225AB6 +:105DC000925A025B216182802A893684C28A468B7C +:105DD00091CAA94701446317F60063D50500B305CE +:105DE000B0400544A30F01001307F101A546138538 +:105DF0006AFCB3F7C50263D3F600AA97938707033B +:105E0000A30FF7FE130AF7FFB3D7C50263F9C50462 +:105E100019C8A9C893F72900B1C79305D0024A85CC +:105E2000EFF07FE3FD1493F749008DC3930710064D +:105E3000930500034A85639FFA02EFF0DFE19305C3 +:105E400080074A85EFF03FE10904F9145A87CE86AE +:105E50002686D2854A85EFF0BFE42295A1BFBE8594 +:105E6000528741BF9307D002A30FFAFE0144130AE1 +:105E7000E7FF55BFEFF03FDE93058005D9B7014539 +:105E800082800145828039715AD0696B22DC26DA22 +:105E90004AD84ED652D456D25ECE66CA6AC806DEFC +:105EA00062CCAA892E893284014A8144930B500224 +:105EB000930AD002A54C294D130B8BF683050900DC +:105EC00095E56386090081454E85EFF0DFD8F250F5 +:105ED00062544259B259225A925A025BF24B624CB6 +:105EE000D24C424D2685D25421618280638875014F +:105EF0004E85EFF05FD685040509C9B78307190001 +:105F0000130C1900639A7701930550024E85EFF048 +:105F10009FD485046289CDB7CDD76386570363CC00 +:105F2000FA00130730026387E7041307B0026380A7 +:105F3000E704814721A813070003E39CE7FE130C45 +:105F40002900894721A0130C2900854703070C006D +:105F5000630D570363C4EA0293063002630AD70253 +:105F60009306B0026308D7026289014625A8130C84 +:105F70002900C1B7130C29009147C9BF930600033C +:105F8000E314D7FE93E7270031A0050C8547E9BF4E +:105F900093E74700050CC9BF3306A60313174760F4 +:105FA00005093A9683060900138706FD9375F70FD6 +:105FB000E3F4BCFE1307E0029945639FE600050980 +:105FC0008145A546294803070900130707FD1375F6 +:105FD000F70F63F9A6022E8A830609001307C0068D +:105FE0006380E6046347D70213078006638BE606E7 +:105FF0001307A006638EE6061307C004638AE6064D +:1060000001473DA0B3850503131747600509BA95FD +:106010005DBF13074007638DE6041307A007F9BFB0 +:10602000030519000D476314D5000509114705093B +:106030008306090013050006635ED5021305800779 +:10604000E34CD5EA13052006E358D5EA9386D6F942 +:1060500093F6F60F5545E361D5EAB3C6662194423F +:106060008286030519000147E314D5FC0909C9B765 +:10607000050979B7130570046344D502130740047A +:106080006340D71413073004E398E6E61840130C76 +:106090004400A30601005886BE8601476C00A1A0FB +:1060A0009305800513081004E398B6E49146631144 +:1060B000D70893057400E19913848500C2883E884F +:1060C0000147B287C146D0418C414E85EFF03FDB9E +:1060D000AA941DB50C40130C440081E5E965938535 +:1060E00005F65287BE864E85EFF09FBB25A89146E8 +:1060F000631ED70093057400E1993E8813848500E0 +:1061000093081006B2870547A94675BF130C4400D3 +:10611000D288130810063287854629460C404E85E2 +:10612000EFF0BFC6AA946284C1BB13081006BDBFBE +:10613000130C4400D288328781464146C5B7914648 +:10614000631DD70093057400E1993E881384850090 +:1061500093081006B287014745BF130C4400D2884C +:1061600013081006328781464DBF914693E74700DA +:10617000631AD70093057400E1991384850093088E +:10618000100635BF130C4400D2881308100665B7FB +:106190009146631ED70093057400E1993E881384ED +:1061A000850093081006B2870147A14629BF3287B0 +:1061B000130C4400D2881308100681462146B9BF4B +:1061C000930810041305740061993E883287AE87E6 +:1061D00050410C4113048500A9464E85EFF07FCA5B +:1061E000C5BD93081006F9BF39712ED232D4AA85E5 +:1061F0005010014506CE36D63AD83EDA42DC46DEAD +:1062000032C6EFF05FC8F24021618280397132D42A +:106210003EDA2AC63010FD57480006CE36D63AD8A8 +:1062200042DC46DE02C23EC432C0EFF0DFC5F240BF +:1062300021618280011122CC26CA06CE8307050087 +:10624000AA840144DC87050499EFA9479305F1006E +:1062500005460145DC87EFB0FEEFF240228562443F +:10626000D2440561828005469305F1000145EFB0F7 +:106270007EEEB387840083870700E9B709CE9307D2 +:106280000002918F635AF000B397F5003355C500B3 +:10629000B3D5C5005D8D8280011633D5C50081451B +:1062A00082803288AA882E87CDEA63FFC50EC16737 +:1062B000636AF618B7070001B337F600B307F0407A +:1062C000E19BE1073353F60097460000938686D39F +:1062D0009A96942213030002B697B306F340630B19 +:1062E000F3003397D500B357F5003318D6005D8F10 +:1062F000B318D500135608013355C702B346080832 +:1063000093D708013377C702B385A6024207D98F16 +:1063100063FAB700C2971307F5FF63E4070163E868 +:10632000B7303A858D8F33D7C702B3C80808B3F7A3 +:10633000C702B386E602C207B3E8F80063FBD800E1 +:10634000C2989307F7FF63E50801791763E3D80064 +:106350003E874205598D8145828063F5D500814590 +:1063600001458280C16763E5F618B7070001B3B73E +:10637000F600B307F040E19BE10733D8F60017477A +:106380000000130727C842971823930800023E977E +:106390003388E8406392E81863EDB6263335C500CC +:1063A000134515008145828045C6C167637BF6248D +:1063B00013370610134717000E07B356E60097472A +:1063C0000000938727C4B6979C2393060002BA97D0 +:1063D000B38EF640639DF608B387C5408545935656 +:1063E00006013346060833D5D70213D70801B3F7A1 +:1063F000D7023303C502C207D98F63FA6700C29779 +:106400001307F5FF63E4070163E067223A85B3876A +:10641000674033D7D702B3C80808B3F7D7023306AB +:10642000C702C207B3E8F80063FBC800C29893072D +:10643000F7FF63E50801791763E3C8003E8742056B +:10644000598D82809337061093C717008E079DBD24 +:106450008146974700009387E7BAB6979C23014788 +:1064600093060002BA97B38EF640E387F6F6331828 +:10647000D60133D3F50093560801335ED302B395AA +:10648000D501B357F500CD8F3346080813D7070160 +:10649000B318D5013373D302B305C6034203336780 +:1064A0006700637BB70042971305FEFF636A071717 +:1064B0006378B716791E42970D8F3355D702B3C74D +:1064C00007083377D7023303A6024207D98F63FB4D +:1064D0006700C2971307F5FF63E0071563FE6712B5 +:1064E0007915C29793150E01B3876740C98DE5BD35 +:1064F00093B7061093C717008E0733D8F6001747D7 +:106500000000130727B042971823930800023E9714 +:106510003388E840E382E8E8335EE600B39606019C +:10652000336EDE00B3D8E500935E0E01B3D7D80317 +:10653000B39505013357E5004D8F33430E0893564D +:10654000070133160601B3F8D803B305F302C208F6 +:10655000B3E6160163FBB600F2969388F7FF63E398 +:10656000C60D63F1B60CF917F2968D8EB3D5D6032E +:1065700033470708B3F6D603B308B302C206558FF4 +:10658000637B170172979386F5FF6369C709637789 +:106590001709F9157297C207C16ECD8F9386FEFF5A +:1065A000B3F5D70013D30701F18E4182338ED502A4 +:1065B00033071741B306D30293580E01B385C502C2 +:1065C000B695C6953303C30263F3D500769393D68D +:1065D00005019A966363D7026305D7003E8581451E +:1065E0008280C166FD1633F7D5004207337EDE0098 +:1065F000331505017297E373E5FE1385F7FF8145B7 +:106600008280B70700016377F6029356060141477F +:106610007DB38145054582803A85E9B5B685A5BF3C +:106620002A8E59BDC68791B77915C297CDB3791512 +:10663000C297CDB993568601614751B3B707100091 +:10664000FD17B3F8B70033F8D70013DE460193D730 +:1066500045018E081353D6011357D5010E0893F741 +:10666000F77F137EFE7FFD81FD823367170133685C +:106670000301931E350013133600B388C7416388A6 +:10668000D51663501011630B0E1E9306F07F638DB9 +:10669000D7549306800305461318782963C7160359 +:1066A000FD4663CB164193060002B38616413316AE +:1066B000D80033551301B316D300498EB336D0003A +:1066C000B3581801558E330717413386CE40B3B601 +:1066D000CE00158FB70680003375D70063050524FB +:1066E000FD16758F630F072693160760E1161305D5 +:1066F0000002B308D540B35816013317D700B3E8EA +:10670000E8003316D60063C1F6329D8E8506158DDE +:10671000B317A6003357D600B337F000D98F33959F +:10672000A8003366F50033D7D8008147937676000A +:1067300081CE9376F60011456388A6009306460045 +:1067400033B6C60032973686B7068000F98E63826C +:10675000062685079306F07F638AD71A0D82931861 +:10676000D70113189700B3E8C8001358C80093F76F +:10677000F77FD207B3E70701FE05CD8F4685BE85BB +:10678000828063800812B308FE40639B0730B367C2 +:10679000D701638407289387F8FF6382074E930528 +:1067A000F07F638CB84493058003054663C8F50207 +:1067B000BE88FD4763C6174793070002B38717419A +:1067C0003316F700B3D51E01B397FE004D8EB337D5 +:1067D000F000B35817015D8E330818413306C340EB +:1067E0003333C30033076840F287B685E5B563519C +:1067F000101563110E10B36668006383062293863A +:10680000F8FF638A063A1306F07F6386C8481305CB +:10681000800305466349D502B688FD4663D016332A +:10682000938608FE13060002B356D800638AC80098 +:1068300013060004330616413316C8003363C30041 +:1068400033366000558EB306D60133B5C6002A979D +:106850003686B7068000F98EF9C685079306F07F65 +:106860006386D70A93561600058A1315F701D18E51 +:10687000131777493366D50005834DBDB3666800AD +:106880006380061A9386F8FF638506341306F07F4B +:10689000638AC814130580030546E348D5E2B68829 +:1068A00001B59388170093F8E87F6394081C336E52 +:1068B000D701B36868006396072E63050E3A6386B6 +:1068C000083E33866E4033B5CE00330E0741330E9B +:1068D000AE40370580003375AE00630E0542B30E3F +:1068E000D3413308E8403333D30176863307684019 +:1068F000B6852DBD9306F07F6386D70E9306800381 +:10690000054613187829E3DA16F135BF9307F07FAF +:106910000148D207B3E70701FE058148CD8F4685C0 +:10692000BE858280854713757600E31405E03DAA95 +:1069300063800810B308FE406394071AB367D70159 +:10694000638F07369386F8FF638706269307F07FE9 +:10695000638FF82A1306800385476342D61CB688E6 +:1069600059AA931806607D4593868801E351D5D8CE +:10697000E118B318160163CCF61A3386F640930675 +:106980001600635BD53A05169307000233D6C8009C +:10699000638BF60093070004958FB398F800B33823 +:1069A000100133661601137576008147E31305D88D +:1069B00075A8935636009318D7011306F07FB3E8F5 +:1069C000D800135837006388C702320893F7F77F5F +:1069D0001358C800D207B3E70701FE05CD8F4685DF +:1069E000BE8582800E05935835009317D701B3E812 +:1069F000F80013583700B3E80801E38908F093075B +:106A0000F07F370808008145D207B3E70701FE058C +:106A10008148CD8F4685BE8582809A8E4287B68515 +:106A200093D63E00C68741BF958F13977849FDB92D +:106A30009388170093F6E87F63940612B366D70134 +:106A40006394072063830628B3666800638806287A +:106A500076933A98B336D3013307D80037058000D0 +:106A6000798D1A8601C5854713177749B28EBE887E +:106A700045BF33866E40B3B8CE00330507413305BA +:106A80001541B7088000B378150163910810B36809 +:106A9000A6002A87E39808C4814581470148D1B9F7 +:106AA0009307F07F630BFE149307800305461317CB +:106AB0007729E3D017D11DB3938608FE1306000291 +:106AC000B356D800638AC800130600043306164183 +:106AD0003316C8003363C30033366000558EF5B6F5 +:106AE0009307F07F6305FE12930680038547131713 +:106AF000772963C61603FD4763CB171F9306000271 +:106B0000B3861641B317D70033D61E01B396DE0005 +:106B1000D18FB336D000B3581701D58F46983E9326 +:106B2000B337F300338707011A86F2871DB3139832 +:106B30007849958FF6081358380041BD9306000236 +:106B4000B38616413316D80033551301B316D3005C +:106B5000498EB336D000B3581801558E4697E5B12B +:106B60009307F07FE384F8DA33856E00B3070701FB +:106B7000B336D501B69705811396F701498E1D8965 +:106B800013D71700C687E31605BACDB5B30ED341A8 +:106B90003308E8403333D301768633076840B6853F +:106BA00091B663110E12639E081681459307F07F1C +:106BB000370808007DBE76933A98B336D301330781 +:106BC000D800B7078000F98F1A86E38D07D489476C +:106BD00051B933836E4033080741B3B66E001A864D +:106BE0003307D8408547FDB40E050D819318D701B2 +:106BF000B368150113583700FDBB0E069317D80173 +:106C00000D82B368F60013583800B685EDB30E0652 +:106C10009317D8010D82B368F60013583800E1BB12 +:106C2000938708FE13060002B357F700638AC80073 +:106C300013060004330616413317C700B3EEEE0007 +:106C40003336D0015D8E59BEF9D233636800E31844 +:106C500003DA0E050D819317D701B368F5001358B9 +:106C6000370051BBE38A08E2131736009318D801A6 +:106C70000D83B3E8E80013583800B685B9B3B30EF6 +:106C8000D3413308E8403333D30176863307684075 +:106C9000B685854781B4931735009318D7018D8346 +:106CA000B3E8F80013583700B9B3931635009318BA +:106CB000D7018D82B3E8D8001358370039B39A8EC4 +:106CC0004287B9BBE38708F81DBB0E061317D8012E +:106CD0000D82B368E60013583800C5B90E050D8162 +:106CE0009316D701B368D50013583700F9B99386C6 +:106CF00008FE93070002B356D700638AF800930793 +:106D00000004B3871741B317F700B3EEFE00B337A3 +:106D1000D001D58F29B5B368C6017287E39808D42E +:106D2000A5BB931736009318D8018D83B3E8F800FC +:106D300013583800B685C1B113050002158D81477F +:106D4000F1BA411113D745019397C50022C626C455 +:106D50001377F77FB183FD81630207101308F07F7B +:106D6000630C07139358D5018E07B3E7F800131E81 +:106D700035000143130517C0014F9398772993D726 +:106D800046011397C60093F7F77F3183FD82D9CB75 +:106D90001308F07F638D070713183700938717C018 +:106DA0001357D60133670701931E36001D8D814F9F +:106DB000131777293D4633C8D500636E661617361C +:106DC000000013062620B347C3209C43B297828756 +:106DD0009D8E13068003635BD63E81478146014644 +:106DE0003244D207D58F7E08B3E70701A24432852B +:106DF000BE85410182809307F07F81460146CDB771 +:106E000001489307F07FB70608000146D1BFB36E73 +:106E1000C7001305158063960E1013632300014706 +:106E2000894F49BFB36EC70063880E0E630D0734E8 +:106E300093170760938F57FF7548938E87FF33082A +:106E4000F8413317D701335806013367E800B31E02 +:106E5000D601AA971385373F814FA9BFB3E8A70092 +:106E60006386080C6382073013980760130758FF86 +:106E7000F548130E88FFB388E840B397C701B358AD +:106E80001501B3E8F800331EC5011307D0C0330560 +:106E900007410143014FE5B5B3E8A7006397080632 +:106EA000014E21431305F07F094FD1BD7E8F8947E5 +:106EB0006309FF3C8D47E305FFF485473688E30E01 +:106EC000FFF09307F53F6358F02093F67E00639040 +:106ED000063AB7060001F98E89C6930705401317D5 +:106EE00087499306E07FE3C8F6F093DE3E00131671 +:106EF000D701931697003366D601B18293F7F77FD7 +:106F0000C5B5AE864687F28E5DB72A8EBE88314300 +:106F10001305F07F0D4FA5B5136313000147854F8F +:106F200051BD13633300B28E8D4F69B5014E1143CD +:106F30000145054FA9B5636F1721638BE820728F58 +:106F40007D15C687014E9316870093D8060133D767 +:106F5000170313D68E01558E93958E003343060882 +:106F600093560F01B3F71703B30EE302C207D58F91 +:106F700063F8D701B2979306F7FF63F4C724368707 +:106F8000B387D741B3DE1703B3460F08B3F7170330 +:106F90003304D303C207DD8E63F88600B29693876D +:106FA000FEFF63FBC620BE8E4207C1643367D70174 +:106FB000138FF4FFB37EE7019352070193DF0501BE +:106FC00033FFE501B303DF03818EB38EDF0393D775 +:106FD00003013384E203A29EF697B382F20363F3C4 +:106FE0008700A69241647D1493DE0701E18FC207FA +:106FF000B3F38300969E9E9763EAD6136386D613F7 +:10700000B307FE40B386D641333EFE00B386C64189 +:107010006301D624B3DE160313DE0701B3F61603AD +:10702000B302D303C206B366DE0063FB5600B2961A +:10703000138EFEFF63E5C62463F35624F91EB29651 +:10704000B386564033DE1603B3C70708B3F61603FC +:107050003303C303C206D58F63FB6700B297930661 +:10706000FEFF63ECC72063FA6720791EB297C20E59 +:10707000B3EECE0193D20E01B3C60E08338EE203F7 +:10708000B3876740B388DF02338FE603F2989356E5 +:107090000F01C696B38F5F0263F4C601C168C69F35 +:1070A00041637D1393D80601B3F66600C206337FB1 +:1070B0006F00FE98FA9663F6170FB297138EFEFFD5 +:1070C0003E8363E6C71663E4171D638D171DF28EBA +:1070D00093EE1E00FDB38546E39C07CE1305E54104 +:1070E000B397AE00B337F0003315A700C98FB3DEF6 +:1070F000DE00B3EEFE0093F77E003357D70081CF5A +:1071000093F7FE0091466388D70093874E00B3BE85 +:10711000D7017697BE8EB7058000F98D85478146E9 +:107120000146E39F05CAD5A8E37CFEECB302BE008E +:10713000B3B3C201338EC300F2961304F7FF168E69 +:107140006376D60663EFD60F638BDE0E22874DBDC6 +:10715000E367DEDF93561E00139FF80193D71800F4 +:10716000336FDF007E0EC5B393180560714313873C +:10717000580113880802E35DE3CE938788FFB318B4 +:10718000F500014E19B313180660F14E930F580124 +:1071900093070802E3D2FECB6118814E3317060134 +:1071A0004DB9E39717F3E38E06D001BFE310D6FA8B +:1071B000E38A03F82287A9B5E3F786DEF91EB296C3 +:1071C000E5B3E3FED7DB7917B2975DBB7D46E357A6 +:1071D000D6F00556B307F64013060002B357F70082 +:1071E0006388C6001305E5433317A700B3EEEE002E +:1071F000B33ED001B3EEFE0013F77E00814615C307 +:1072000093F7FE00914601476389D70093874E00AC +:10721000B3BED7013337D001BE8E93169700B1822B +:10722000760793DE3E0033E6EE00814755BEF28ED0 +:10723000E31013EBE387B6C893EE1E0059B1E3F7F2 +:10724000F2F0AE92B3B3B200B2937917168E9E9657 +:1072500045BB930620C09307F53FFD5EE34DD5E6A1 +:1072600093864E00B3BED6017697B68E9DB193F647 +:10727000FE001146E38FC6C4E5B7368ECDBBF28E55 +:10728000C1B336889307F07F8146014691BE139EB5 +:1072900015003333BE0032933E93F91EF285E30BA3 +:1072A00013F93DB5E3E5D5FEF28EE397B6F811B9D3 +:1072B000411193D74501939EC50022C626C44AC2F8 +:1072C0004EC093F7F77F93DECE00FD8163890714EC +:1072D0001307F07F6382E7188E0E1357D501B36E44 +:1072E000D70193123500138E17C081488144939EB5 +:1072F0007E2993D746011397C60093F7F77F328410 +:107300001353C70093D3F601F9CB1305F07F6386BF +:10731000A706131733001355D601498F938617C05C +:10732000338FC601131377292947131436000145FB +:10733000130E1F006346171733C87500C28F8945A7 +:1073400063CF15051386F8FF854863EBC818630FF4 +:10735000B51085477E886316F5068147814601474B +:107360003244D207D58F7E08B3E70701A244124901 +:1073700082493A85BE85410182803366C300130F7E +:10738000FE7F6301061033C875009316B02893E89A +:1073900038002947C28F369E634417410D45331686 +:1073A00010291377065305C389476381F40C8D4771 +:1073B0006381F41226858547768316847E88E30EE2 +:1073C000F5F8728FBDAC93750624DDE5137686085B +:1073D000630806109E8F9A8EA282AA84F1B7336743 +:1073E000C30061CF630F0330131F036013075FFFF8 +:1073F000754593078FFF198D3355A6003317F3009A +:107400003363E5003314F600330FEE41130FDFC092 +:1074100029470145130E1F00E35017F351A0B3E2B3 +:10742000AE006387020863800E2C13980E609307EA +:1074300058FF7547930288FF1D8FB39E5E00335738 +:10744000E500B36ED701B3125500130ED0C0330E52 +:107450000E418148814471BDB3E2AE0063940204E1 +:10746000814EA148130EF07F894461B57E88930751 +:10747000F07F81460147EDB501489307F07FB706DD +:107480000800F9BD1317B02893E82800A9473A9ED1 +:1074900063DC17290144B94709452D476380E7306C +:1074A000AE8F19B7AA82B148130EF07F8D4491B503 +:1074B000814E9148014E85442DBD728F93E818008E +:1074C0002947014301440545130E1F00E35617E702 +:1074D000C1BF01489307F07FB7060800014749B5CF +:1074E000C1659384F5FFB3F7920013D90201935855 +:1074F0000401E18C33879702330699021355070183 +:10750000B386F802B2963695B30F19036373C500BC +:10751000AE9F41641306F4FFB375C500B376C30094 +:10752000718F93530301C205B382D702BA9541818B +:107530003307D90213D60201B387F302BA973E96F6 +:10754000B30779026373E600A297C1691383F9FF59 +:107550003377660013D40E01B3F26200B3FE6E00FF +:10756000420716973389D40341823E963A95B382F7 +:10757000D80393570901330394029A929697B388DC +:10758000880263F36700CE98C1691383F9FFB3F4EF +:107590006700C20433736900C183C697B382D60300 +:1075A000B3886400B306D40213D30201B38ED303AD +:1075B000B69E9A9E3383830263F3DE004E93C163CB +:1075C000FD13B3F67E00C206B3F272007E95969666 +:1075D00036963337E5003297AA98BA9733B5A800A4 +:1075E0003E95B336D6003336C700D18E33B7E700A9 +:1075F00013D60E01B337F500B2965D8F36971A9702 +:1076000093979800260793567501CD8F3363D70063 +:10761000B337F00013D77801D98F3707000126055B +:107620003377E30033E4A70009CF135714009377AF +:1076300014009316F301D98F33E4D70013531300CA +:10764000728F1306FF3F6358C0049377740081CF95 +:107650009377F40011476388E70013074400B337BA +:1076600087003E933A84B7070001B377F30089C7D8 +:1076700013060F40131383499307E07F63C1C70AC2 +:10768000935734001317D301931693005D8FB18283 +:107690009377F67FF1B1054759EE130FEF4133169B +:1076A000E4013336C000331FE301B357E40033660F +:1076B000E6015D8E93777600B355E30081CF937733 +:1076C000F60011476388E7009307460033B6C7000A +:1076D000B2953E86370580006D8D8547814601470E +:1076E000E31005C85DA013170560F1489307570123 +:1076F00013080702E3DFF8D261178142B31EE500E9 +:10770000A9B393170660F14613875701138F070239 +:10771000E3D0E6CEE11701443313F600F5B1930749 +:10772000F07F814601472DB933C87500C28F0143F0 +:107730000144094529B1118F93078003E3CFE7C0C6 +:10774000FD47E3DCE7F48557918F93060002B357BA +:10775000F3006308D700130FEF43331FE3013364D3 +:10776000E401333680005D8E1377760081461DC3B9 +:107770009377F600114781456389E7009307460038 +:1077800033B6C700B335C0003E8693969500139775 +:10779000D501B1820D82518F8147D9B632831DB98F +:1077A0003D476397E8000148B706080001474DBE12 +:1077B0001A86AD470D45D5B193D745011397C5003E +:1077C00093F7F77F1306E03FAA863183FD810145D9 +:1077D0006353F60091C182801306E0417D55E34C6E +:1077E000F6FE130630431D8EFD451317472963CA65 +:1077F000C5009387D7BE3317F70033D5C600598D20 +:107800008280130530411D8D3355A700828021C130 +:107810003307A0409307E0413367E50AA9461316F2 +:107820000760918F7D8193F7F77F63CDC602AD46E8 +:10783000918EB356D700B206B182D2075506D58FC6 +:107840007E05C98F3317C7003A85BE858280814780 +:1078500081460145D207D58F7E05C98F01473A85FC +:10786000BE8582805516B316C700B206B182D20714 +:10787000D58F7E05C98F01473A85BE8582800DC9A7 +:107880009307E04113170560A946998F93F7F77F97 +:1078900063C6E602AD46998EB356D5005507B206CB +:1078A0003315E500D20713D7C600D98FBE85828075 +:1078B00081470147D207D98FBE858280551733177C +:1078C000E50032073183D207D98F0145BE8582801A +:1078D00013567501370780007D1793D6750113760F +:1078E000F60F1308F00FB378A7009357F5016D8FCB +:1078F00013F5F60FFD8163050603630A050105EA2A +:1079000009E939C3639E0804A1C92E85828039E73D +:1079100019E2E38B08FE6399B7009DCF3E85828014 +:10792000639E08026305C50205459DE782806DDD03 +:10793000E39CB7FEE34AC5FEE341A6FEE36617FFFC +:107940000145E3ECE8FC8280E39008FE828019E7C1 +:10795000E39CB7FC014582807D5582807955828009 +:10796000E38EB7FCD1B713567501370780007D173A +:1079700093D675011376F60F1308F00FB378A700AE +:107980009357F5016D8F13F5F60FFD81630606031E +:10799000630A050105EE11E929CB639F0804B9C903 +:1079A0002E858280094501EB19E2E38A08FE638B8C +:1079B000B7020545A1E38280639C0802E31BC5FE74 +:1079C000094575FBE397B7FE014582807DD1E392BF +:1079D000B7FEE340C5FE6347A600E36C17FD014513 +:1079E000E3FBE8FC81CB3E858280E39408FC828047 +:1079F000094582807D558280E381B7FE5DBF1357C4 +:107A00007501931795001377F70F1306E00793D6C8 +:107A100097009357F50101456353E60091C38280B7 +:107A20009307E0097D55E3CCE7FE130650099397D1 +:107A300076296357E6001307A7F63395E70082809F +:107A400013056009198D33D5A70082801DCDB306BB +:107A5000A0409307E009B366D50A13066009939521 +:107A600006608D8F1357F5016349F6022146638A3C +:107A7000C508E115B396B60013F5F70FA606A58263 +:107A80005E05558D7E07598D8280014701458146EF +:107A90005E05558D7E07598D8280130690096346D9 +:107AA000F60415461385B5FF6384C500B396A6009A +:107AB00013F576001396A64919CDBD8A1145638C3E +:107AC000A6001106B7060004F18E91C69307F009CF +:107AD0008D8F1316A6499316660013F5F70FA5822E +:107AE0005E05558D7E07598D82801386B50115453B +:107AF0003396C6000D8DB3D6A6003336C000D18EA6 +:107B000045BFA606A5821305600959B7014763144E +:107B1000E60001458280B307E5000507B386E5006E +:107B20009C2383C6F6FFE384D7FE3385D74082804B +:107B3000AA879823850775FF3385A7407D15828026 +:107B40002A8603A58183AE860DC11C4D99EF0111D4 +:107B500006CE2EC632C42AC2912A1245B246224609 +:107B6000F2400C4505616F0030360C45EDBF1971D0 +:107B7000A2DCA6DA86DECAD8AA843284635C060058 +:107B80009307B0081CC17D55F6506654D65446592B +:107B90000961828093078020FC822EC42ECC368619 +:107BA0008147BA8619C09307F4FF7D592C002685BA +:107BB0003EC83ECE231B2101E921635525019307D1 +:107BC000B0089CC071D0A2472380070075BF3687DC +:107BD000B2862E86AA8503A581836FF05FF94111D5 +:107BE00022C406C62A844EA572A52320050023229E +:107BF0000500232405002322050623280500232A47 +:107C00000500232C0500214681451305C505EFA07D +:107C1000AECD97170000938787D95CD097170000E7 +:107C2000938787DB1CD497170000938747DF5CD4CA +:107C300097170000938787E1B24000D01CD82244F8 +:107C400041018280971500009385C51349A2411117 +:107C500026C2930780069384F5FFB384F4024AC0DA +:107C60002E8922C406C69385440735242A8401CD73 +:107C70002320050023222501310508C4138684062C +:107C80008145EFA06EC6B24022852244924402494B +:107C900041018280138541A945A2138541A971AA9A +:107CA000138581A951AA138581A941AA411122C432 +:107CB00006C62A84EFF0DFFE1C4C91C72244B24076 +:107CC00041016FF05FFE970700009387E7F71CD430 +:107CD00023240404232604042328040483A7818B7B +:107CE0006394870085471CCC2285152848C02285CF +:107CF0003D2008C42285252048C4484001469145BE +:107D0000EFF0FFED08440546A545EFF05FED484470 +:107D10000946C945EFF0BFEC85471CCC45B741117A +:107D200026C24AC006C622C42A89EFF0BFF683A441 +:107D3000818B9C4C81E72685EFF05FF79384840468 +:107D40008044DC40FD1763D607009C40A5C78440F3 +:107D5000C5BF0317C40021EFC17785075CC41305B5 +:107D6000840523220406C128EFF03FF32146232097 +:107D70000400232404002322040023280400232ACF +:107D80000400232C040081451305C405EFA0CEB5E3 +:107D9000232A0402232C040223240404232604049B +:107DA000B240228522449244024941018280130458 +:107DB000840649BF91454A85EFF07FE988C02A844F +:107DC00059F5EFF09FEDB1472320F900D1BF79714C +:107DD00022D44AD04ECE52CC5AC85EC606D626D23F +:107DE00056CA2A892E8A130485048149054BFD5BF6 +:107DF0000444832A4400FD1A63D00A0200406DF84F +:107E0000B250225492540259624AD24A424BB24B67 +:107E10004E85F24945618280DE24637BFB008397B7 +:107E2000E40063877701A6854A85029AB3E9A90031 +:107E300093848406C9B782808280828041114AC0BF +:107E40001389C1A98327090022C426C206C6AA84B1 +:107E50002E8491E78145EF00D0322320A900A2852E +:107E60002685EF0010327D59631A25017D54B240FA +:107E70002285224492440249410182801304350044 +:107E80007198E30685FEB305A4402685EF00702FA8 +:107E9000E31F25FDE1BF011126CA93843500F19847 +:107EA0004AC8A104B14706CE22CC4EC62A89B3F4F3 +:107EB000F40A63C4040063FDB400B1472320F90051 +:107EC0000145F2406244D2444249B2490561828090 +:107ED000EF10E006938901AA83A709003E8429E8F0 +:107EE000A6854A85EFF09FF5FD572A84631AF50AA7 +:107EF00003A40900A287D9EB8329040081454A85A0 +:107F0000A299EF0010286396A9081C408D044A85A9 +:107F10009D8CF198B147A104B3F4F40AA685EFF063 +:107F2000FFF1FD576307F5061C40A6971CC015A07E +:107F30001440858E63C906042D47637ED70204C0B2 +:107F4000330794006397870223A0E9005C4014C3C1 +:107F50005CC34A85EF00307F1305B40093074400EB +:107F600061993307F540E30EF5F43A94898F1CC00C +:107F700089BFD8C3E1BF58406395870023A0E900BB +:107F8000C9BFD8C3F9B7A287404091BF3E84DC4344 +:107F90009DB7B1472320F9004A85EF00D07A0DB78D +:107FA00004C145BF01114AC803A9850022CC4EC6B1 +:107FB00052C456C206CE26CA5AC003AA05002E8451 +:107FC000B28AB68963E526078397C50013F7074889 +:107FD00029CF58488D448C49B384E4020947330AB9 +:107FE000BA4093F707402A8BB3C4E4021387160004 +:107FF0005297B3F4E40AA5C7A685EFF0DFE92A8912 +:1080000025C90C485286EFA0CE8C5E2493F7F7B7B3 +:1080100093E707085EA42328240144C85299B38437 +:1080200044412320240104C44E8963F329014E896D +:1080300008404A86D685EFA02E8C1C440145B387A4 +:1080400027411CC41C40CA971CC0F2406244D24461 +:108050004249B249224A924A024B056182802686F1 +:10806000EF0010792A8945F90C485A85EF00306EE7 +:10807000B1472320FB005E247D5593E707045EA4EF +:10808000E9B7DE25357122CD26CB4AC952C506CFC8 +:108090004EC756C35AC1DEDEE2DC93F707082A8AD0 +:1080A0002E89B2843684A1C39C4995EF93050004C0 +:1080B000EFF07FDE2320A9002328A9000DE1B147BE +:1080C0002320FA007D55FA406A44DA444A49BA4905 +:1080D0002A4A9A4A0A4BF65B665C0D6182809307D6 +:1080E0000004232AF90093070002A304F102930776 +:1080F000000302D22305F10222C6930B5002972AF5 +:108100000000938A2A06294B26841C2099C3639970 +:108110007709330C9440630E9400E2862686CA8564 +:108120005285EFF03FE8FD576307F5189257E29745 +:108130003ED21C2063810718FD579304140002C827 +:1081400002CE3ECA02CCA309010482D48C2015467B +:108150005685EF00505DC2471384140021E513F7E4 +:10816000070109C713070002A309E10413F78700F9 +:1081700009C71307B002A309E10494201307A00262 +:108180006389E602F2472684814625461820930536 +:108190001400130707FD6372E60685C63ECE15A0E0 +:1081A0000504A5B733055541B397A728A2843EC857 +:1081B00071BF324793064700184336C6634807022B +:1081C0003ACE18209307E002631CF7041830930797 +:1081D000A002631AF702B2470904138747009C43C1 +:1081E0003AC67D57B3E7E70A3ECA1DA83307E04009 +:1081F00093E727003ACE3EC8E9B7B38767032E84DA +:108200008546BA9761B7050402CA8146814725466B +:10821000182093051400130707FD6374E606E9F6BA +:108220000C200D4617250000130545F4EF00B04F54 +:1082300011CD97270000938767F31D8DC247130761 +:1082400000043317A700D98F05043EC80C20194637 +:10825000172500001305C5F1930414002304B1028F +:10826000EF00704C2DC19307000095E74247B247DD +:108270001377071009CF91073EC69257CE973ED28B +:1082800061B5B38767032E848546BA9751B79D07BA +:10829000E19BA107D5B77800970600009386C6D06A +:1082A0004A860C08528597000000E7000000FD5741 +:1082B000AA89E314F5FC8357C90093F70704E393F5 +:1082C00007E0125509B57800970600009386C6CDE1 +:1082D0004A860C0852853922D9BF797156CA9C4901 +:1082E000BA8A984522D44AD04ECE52CC06D626D24F +:1082F0005AC85EC6B3E7E70A1CC203C73504AA8999 +:108300002E843289368A19C385071CC21C4093F714 +:10831000070291C78327090089072320F900044039 +:10832000998891E8130B9401FD5B5C4403270900D5 +:10833000998F63CCF40483473404B336F0001C40B7 +:1083400093F70702A5EB13063404D2854E85829A73 +:10835000FD576303F5041C4011478144998B6399D1 +:10836000E7008327090044449D8C8147B3E4F40A65 +:108370001C4418486354F700998FBE94014969045E +:108380007D5B63982405014509A885465A86D285F8 +:108390004E85829A631E75017D55B25022549254C7 +:1083A0000259F249624AD24A424BB24B456182803D +:1083B0008504A5BF3307D40013060003A301C70437 +:1083C0000347540493871600A2978906A381E70404 +:1083D0009DBF85462286D2854E85829AE30E65FB37 +:1083E000050945B7797122D44AD04ECE52CC06D673 +:1083F00026D256CA5AC803C88501930780072A891E +:108400002E84B289368A63E2070393072006938697 +:10841000350463E10703630C081C930780051726E6 +:108420000000130666D56308F8149304240423019E +:10843000040515A89307D8F993F7F70F5546E36697 +:10844000F6FE172600001306A6D5B3C7C7209C4327 +:10845000B29782871C4393842504938647009C43EC +:1084600014C32381F504854775A290411C431375FD +:1084700006089385470029C19C430CC3584063DF1D +:1084800007129305D002A301B40418C4635E070267 +:10849000B307F04017260000130606CE2948B6841D +:1084A00033F70703FD143297182398A03E87B3D7FC +:1084B0000703E37707FF85A09C43137506040CC3ED +:1084C00055DD939757605DBF6D9A10C0D1B790414D +:1084D0001C43137506089385470001C50CC39C43D4 +:1084E00031A0137606040CC37DDA9E231307F00631 +:1084F00017260000130646C86310E80C2148A301A4 +:108500000404584018C4E34C07F80C40ED990CC023 +:10851000D9F7B68449F7A147631EF8001C40858B44 +:1085200091CB58401C4863C7E70093070003A38F13 +:10853000F4FEFD14858E14C85287CE867000A28585 +:108540004A85EFF09FD9FD5A631A550D7D55B250FB +:10855000225492540259F249624AD24A424B45612E +:1085600082809C4193E707029CC11308800717266D +:1085700000001306A6C1A30204050C401C4313F817 +:108580000508138547006305080008C39C4339A00C +:1085900013F8050408C3E30B08FE9E2313F7150028 +:1085A00001C793E505020CC099C3414889BF184033 +:1085B0001377F7FD18C0D5BF294891B717260000DB +:1085C000130686BB294835BF90411C43CC4913781C +:1085D0000608138547006306080008C39C438CC344 +:1085E00039A008C3137606049C4375DA8EA32328AA +:1085F0000400B68491B71C43D0418145938647005F +:1086000014C384432685EF00101201C5B3079540BB +:108610005CC05C401CC8A301040439BF1448268612 +:10862000CE854A85029AE30355F31C40898B85E782 +:108630004844B2473365F50A19BF85465686CE854C +:108640004A85029AE30465F185045C443247998FB8 +:10865000E3C5F4FEF1BF8144930A94017D5BF5B755 +:108660001C46FD171CC663D90700184E63C5E700FA +:10867000A9476393F500E1AE1C422E8513871700CE +:1086800018C28CA38280011122CC26CA4AC84EC6C9 +:1086900052C406CE2A89AE893284B304D6007D5AEC +:1086A00063149400014509A80C204E864A85EFF01A +:1086B0003FFB0504E31645FFF2406244D2444249C1 +:1086C000B249224A05618280357122CD26CB4AC942 +:1086D0004EC706CF52C556C35AC1DEDEE2DCAA89B8 +:1086E0002E843289B68409C51C4D99E3EFF00FDC66 +:1086F00097270000938707A56317F40403A4490094 +:108700007C50858B81EB5E2493F7072081E7284C12 +:10871000EFF08FF25E24A18B99C31C48B9EFA285BC +:108720004E85192939C97C50858BA1C37D55FA40E6 +:108730006A44DA444A49BA492A4A9A4A0A4BF65BD9 +:10874000665C0D618280972700009387A79D631563 +:10875000F40003A489006DB7972700009387879AD8 +:10876000E310F4FA03A4C90061BF5E2493F7072065 +:10877000D5FF284CEFF06FEC55BF93070002A30420 +:10878000F1029307000302D22305F10226C6930BE0 +:108790005002972A0000938AEA9C294BCA849C20A5 +:1087A00099C3639B7709338C2441638E2401E2864D +:1087B0004A86A2854E85EFF01FEDFD576307F51839 +:1087C0009257E2973ED29C2063810718FD57138988 +:1087D000140002C802CE3ECA02CCA309010482D40E +:1087E0008345090015465685EF00E073C2479304A0 +:1087F000190029E513F7070109C713070002A309A8 +:10880000E10413F7870009C71307B002A309E104C5 +:10881000834609001307A0026389E602F247CA846F +:1088200081462546982093851400130707FD63723F +:10883000E60685C63ECE15A0850495B7330555419D +:10884000B397A72826893EC861BF324793064700E1 +:10885000184336C6634807023ACE98209307E002D1 +:10886000631CF70498309307A002631AF702B2471B +:108870008904138747009C433AC67D57B3E7E70A4C +:108880003ECA1DA83307E04093E727003ACE3EC812 +:10889000E9B7B3876703AE848546BA9761B78504A5 +:1088A00002CA814681472546982093851400130704 +:1088B00007FD6372E606E9F68C200D4617250000D9 +:1088C0001305C58A8D2511CD972700009387078A48 +:1088D0001D8DC247130700043317A700D98F8504E5 +:1088E0003EC88C201946172500001305658813899A +:1088F00014002304B102052D35C99307000095E744 +:108900004247B2471377071009CF91073EC69257E7 +:10891000D2973ED261B5B3876703AE848546BA97D6 +:1089200061B79D07E19BA107D5B7780097060000C6 +:108930009386A6D522860C084E8597000000E70096 +:108940000000FD572A8AE314F5FC7C50858B81EBEF +:108950005E2493F7072081E7284CEFF00FCE5E24CA +:1089600093F70704E39407DC1255D1B37800970618 +:108970000000938686D122860C084E85EFF09FA6D4 +:10898000C9B7411122C42A842E8523A201AA06C692 +:10899000EFC0BEB0FD576316F50083A741AA91C38F +:1089A0001CC0B240224441018280411122C42E8465 +:1089B0008395E50006C6452D634905007C48AA97C6 +:1089C0007CC8B2402244410182805E249397C7480C +:1089D0005EA4C5BFDE25011122CC26CA4AC84EC6F8 +:1089E00006CE93F70710AA842E843289B68991C7E0 +:1089F0008395E5008946014619295E248315E40024 +:108A0000F2409397C7485EA46244CE864A86B24934 +:108A100042492685D2440561D5A8411122C42E843D +:108A20008395E50006C6E5267D575E246319E500BB +:108A30009397C7485EA4B240224441018280939735 +:108A4000C72868C85EA4C5BF8395E500F1AA0111D7 +:108A500022CC26CA4AC806CE4EC6AA842E893284A3 +:108A600009C51C4D99E3EFF06FA497170000938799 +:108A7000676D6317F402C0401C4C1CC45E24A18BBC +:108A800099C31C4895EFA28526857D2015C97D597F +:108A9000F2406244D244B2494A854249056182802B +:108AA00097170000938707686314F4008044E9B7C0 +:108AB0009717000093870765E310F4FCC0446DBF6F +:108AC0001C4808409379F90F1379F90F1D8D5C4804 +:108AD0006346F500A2852685652455F91C440505E5 +:108AE000FD171CC41C401387170018C023803701D2 +:108AF0005C486388A7005E24858BD9DBA947E3190E +:108B0000F9F8A2852685AD2C41D551B7411122C473 +:108B10002A842E85B285368623A201AA06C6EF9046 +:108B20006EE3FD576316F50083A741AA91C31CC0ED +:108B3000B240224441018280411122C426C24AC06F +:108B400006C683A481832A892E8491C49C4C81E724 +:108B50002685EFF0AF95971700009387A75E631304 +:108B6000F402C0408317C40013F7870025E713F70A +:108B700007010DEB25472320E90093E707045EA4D6 +:108B80007D5571A0971700009387C7596314F400AF +:108B90008044C9BF971700009387C756E314F4FCBD +:108BA000C044C9B7918B9DC34C5889C993074404ED +:108BB0006384F5004A85612E232A04025E24232261 +:108BC000040093F7B7FD5EA41C481CC05E2493E725 +:108BD00087005EA41C4899EB5E241307002093F7DE +:108BE00007286385E700A2854A855D248317C400B2 +:108BF00013F717001DC35848232404003307E0402F +:108C000018CC1848014501E713F707083DF7B240B3 +:108C10002244924402494101828013F72700814691 +:108C200011E3544814C4F1BF411122C42A842E8593 +:108C300023A201AA06C67529FD576316F50083A76E +:108C400041AA91C31CC0B240224441018280839753 +:108C5000C500011122CC26CA06CE4AC84EC613F75B +:108C60008700AA842E8479E3D8416345E000B841A7 +:108C70006356E008585459C303A9040023A0040014 +:108C80000C5093D7C748A9CB70485E24918B99C7E5 +:108C90005C401D8E5C5899C33C401D8E5C540C504A +:108CA000814626858297FD57630CF5041C480567AD +:108CB000232204001CC05E24F98F91C368C84C585D +:108CC00023A0240185CD930744046384F500268501 +:108CD000BD2C232A04021DA0014685462685029745 +:108CE000FD572A86E313F5FA9C40C5D37547638583 +:108CF000E70059476395E70623A024010145B5A085 +:108D000098408317C40001CFF5466305D700D946C4 +:108D10006319D7041C48232204001CC04DB718480F +:108D20002322040093D7C74818C041BF83A9050177 +:108D3000E38609FC03A905008D8B23A035013309C7 +:108D40003941014791E3D84918C4E35920FB1C5429 +:108D50000C50CA864E8626858297634FA0008317E3 +:108D6000C40093E707045EA47D55F2406244D244F8 +:108D70004249B24905618280AA993309A940F1B7F5 +:108D80009C49411106C622C426C281EB8144B240EF +:108D900022442685924441018280AA842E8409C5FA +:108DA0001C4D99E3EFE09FF09717000093878739F8 +:108DB000631FF402C0408317C400E9DB7850058BC1 +:108DC00019E793F7072081E7284CEFF0EF86268517 +:108DD000A285EFF0DFE77C50AA84858BCDFB5E2473 +:108DE00093F70720CDF7284CEFF02F854DB7971755 +:108DF0000000938727336314F40080446DBF9717F6 +:108E0000000093872730E318F4FAC0446DB741118E +:108E100022C42A842E85B285368623A201AA06C6DC +:108E2000DD2CFD576316F50083A741AA91C31CC032 +:108E3000B2402244410182805971A2D42E8483958C +:108E4000E500A6D2CAD086D6B284368963D205029E +:108E50005E2493F707088DEB13070040B6502654A5 +:108E60002320F90098C00659965401456561828017 +:108E70003000392CE34E05FC3247BD67F98F797716 +:108E8000BA9793B71700C9BF814713070004F9B712 +:108E9000DE25797122D406D626D24AD04ECE898BD1 +:108EA0002E8491CF930774041CC01CC885475CC8EE +:108EB000B250225492540259F249456182807400A2 +:108EC0003000AA84EFF05FF7A2492A892685CE8573 +:108ED000EFE07FFC19E98317C40013F7072069FB53 +:108EE000F19B93E727005EA475BF97F7FFFF938779 +:108EF000A7D59CD45E2408C008C893E707085EA4E1 +:108F0000B247232A340199CB8315E40026856D22CC +:108F100011C55E24F19B93E717005EA45E2433E540 +:108F200027014AA471B793F5F50F2A966314C5007B +:108F3000014582801C21E38EB7FE0505C5BF138560 +:108F400001A96FE07FEF138501A96FE01FEFC5C195 +:108F500083A7C5FF011122CC06CE1384C5FF63D3BE +:108F600007003E942AC6EFF09FFD138701AA1C4319 +:108F7000324589EB2322040000C36244F2400561BC +:108F80006FF07FFC637DF4001040B306C40063966D +:108F9000D7009443DC43B29614C05CC0F1BF3E8757 +:108FA000DC4399C3E37DF4FE14433306D700631F0B +:108FB00086001040B29614C33306D700E39FC7FA69 +:108FC0009043DC43B29614C35CC345BF6375C400D1 +:108FD000B1471CC15DB71040B306C4006396D7000B +:108FE0009443DC43B29614C05CC040C379B782801E +:108FF000011126CA06CE22CC4AC84EC652C4B2843B +:1090000099E96244F240D2444249B249224AB285C7 +:1090100005616FE05FE809EEEFF07FF30144F24095 +:1090200022856244D2444249B249224A0561828083 +:109030002A8A2E846D202A8963669500935715002D +:10904000E3EF97FCA6855285EFE0FFE4AA8979D586 +:10905000A28533D6240BEF90CE87A2855285EFF000 +:109060001FEF4E846DBF411122C42A842E85B28524 +:10907000368623A201AA06C66D20FD576316F500A9 +:1090800083A741AA91C31CC0B240224441018280FF +:10909000411122C42A842E85B28523A201AA06C6C4 +:1090A000B928FD576316F50083A741AA91C31CC0D8 +:1090B000B240224441018280411122C42A842E857B +:1090C00023A201AA06C69120FD576316F50083A7C7 +:1090D00041AA91C31CC0B24022444101828083A7AF +:1090E000C5FF1385C7FF63D50700AA959C413E9530 +:1090F00082809307800523A2F1AA7D558280930781 +:10910000800523A2F1AA7D5582809307800523A2C2 +:10911000F1AA014582809307800523A2F1AA7D551B +:1091200082809307800523A2F1AA7D5582800000EA +:10913000F401FA00960064004B0032001E00140097 +:109140000D000000253864205B2536645D3A200060 +:1091500025730000454550524F4D5F5265616420B4 +:109160005355434300000000454550524F4D5F5258 +:1091700065616420466C6167204661696C3A253000 +:109180003278000031B2C1B3FDB3C9B9A6210000E5 +:1091900031B2C1B3FDCAA7B0DC202530325821005E +:1091A00031B2CECAFDB1A3B4E6B3C9B9A60000007E +:1091B00031B2CECAFDB1A3B4E6CAA7B0DC202530D7 +:1091C000325821005573653A25642C25642C25649A +:1091D0002C256400454550524F4D5F526561642017 +:1091E000466C6167204661696C323A2530327800FE +:1091F000454550524F4D5F536176655F47726F75BD +:109200007044617461313A256400000032B2C1B328 +:10921000FDB3C9B9A621000032B2C1B3FDCAA7B0DF +:10922000DC2025303258210032B2CECAFDB1A3B4C1 +:10923000E6B3C9B9A600000032B2CECAFDB1A3B4EC +:10924000E6CAA7B0DC2025303258210052415244F2 +:10925000656C617954696D3A25642C25642C25640C +:109260002C256400454550524F4D5F526561642086 +:1092700052415244656C617954696D20466C616756 +:10928000204661696C333A25303278005573652089 +:1092900044656661756C7420506F7274496E666FB8 +:1092A000000000005573652044656661756C74208C +:1092B00047726F75704461746100000055736520DA +:1092C00044656661756C742052415244656C6179E5 +:1092D00054696D00454550524F4D5F536176655F4F +:1092E00052415244656C617954696D3A25640000BD +:1092F00033B2C1B3FDB3C9B9A621000033B2C1B3C3 +:10930000FDCAA7B0DC2025303258210033B2CECAC6 +:10931000FDB1A3B4E6B3C9B9A600000033B2CECA0A +:10932000FDB1A3B4E6CAA7B0DC2025303258210035 +:109330000101010000010004000000020001000121 +:109340000201000001000001000014000100010200 +:1093500002000001000000010014000100010203EE +:1093600000000100000000011400010003030100DF +:1093700000010003000000020001000304010500D9 +:109380000100010202020A000200040501050001B9 +:1093900000010202020A00020002060105000200AA +:1093A000010202020A0002000000000000000000AA +:1093B00000000000000000005295FEFF7495FEFFC3 +:1093C0008495FEFF9495FEFFA895FEFF546F6F20D5 +:1093D0006C61726765206E6F7469000070726F66F1 +:1093E000696C65204368616E67654342204348416C +:1093F00052332E2E000000005570646174653131C7 +:10940000202578202D20496E742025782C25642075 +:109410000A0000004552522E2E000000496E697469 +:1094200069616C697A65642E2E000000446973637B +:109430006F6E6E65637465642E2E20526561736F66 +:109440006E3A25780A00000041647665727469738B +:10945000696E672E2E000000436F6E6E656374693F +:109460006F6E206D61782E2E2E000000436F6E6EA1 +:10947000202578202D20496E74202578200A0000B0 +:10948000436F6E6E65637465642E2E00436F6E6E5F +:109490006563746564204164766572746973696E8E +:1094A000672E2E0057616974696E6720666F72209F +:1094B0006164766572746973696E672E2E000000B0 +:1094C0004572726F722E2E004572726F722E2E25AB +:1094D000780A0000A096FEFFB496FEFF9097FEFF6C +:1094E000E896FEFF7E97FEFFCC97FEFF506879203E +:1094F0007570646174652052783A25782054783A02 +:109500002578202E2E0A0000595957202D2D206D28 +:1095100074752065786368616E67653A2025640A12 +:10952000000000004D5455D0ADC9CCB7A2C6F0B371 +:10953000C9B9A6A3ACC7EBC7F3B4F3D0A1A3BA25AE +:10954000640A00004D5455D0ADC9CCB7A2C6F0CACC +:10955000A7B0DCA3ACD7B4CCACC2EBA3BA253032F5 +:10956000780A0000504859205570646174652025C0 +:10957000782E2E2E0A000000489DFEFF7A9DFEFFE9 +:10958000A69DFEFFB09DFEFFBA9DFEFFC49DFEFF9F +:10959000CE9DFEFFB3F5CABCBBAFD3B3C9E4B6CB17 +:1095A000BFDA256420D3B3C9E4C0E0D0CD3A256446 +:1095B00020D3B3C9E4BBD8C2B73A256420E3D0D6E0 +:1095C000B53A25642D256420CAB9C4DCB1EAD6BEFB +:1095D0003A2564202D20256453000000C8A1B5E77A +:1095E000A3ACB4A5B7A2202D2043482564000000F9 +:1095F000C8A1B5E7A3ACB2BBB4A5B7A2202D204348 +:1096000048256400B6CBBFDA20256420B4A5B7A2F4 +:109610003A256420B4CECAFDA3BA2564202D2025A6 +:1096200064202020B4A5B7A2E3D0D6B5A3BA2564A0 +:10963000000000002D20D7B4CCAC3A256420CCF536 +:10964000BCFED7E93A256420C5D0B6A82D25642CE8 +:1096500025642C25642C25642C25642054696D65B3 +:109660003A25642D256400002DD7B4CCAC3A25648E +:10967000CCF5BCFED7E93A2564C5D0B6A825642C44 +:1096800025642C25642C25642C25642C54696D6577 +:109690003A25642D256400002DCCF5BCFE25642DF3 +:1096A000256420C5D0B6A8B3ACCAB120B7B5BBD825 +:1096B000CCF5BCFED7E925642D000000CEDEC8CB7A +:1096C000D6C1D3D0C8CB20256420CCF5BCFED7E9C9 +:1096D000B3C9C1A220256400CEDEC8CBD6C1D3D089 +:1096E000C8CB20256420CCF5BCFED7E9B3C9C1A204 +:1096F0002025642C256400002DCCF5BCFE25642DAE +:10970000256420C5D0B6A8D3D0C8CB2D000000005A +:109710002DCAC2BCFE3ABFAAC3C5BDF8C8EB2D2DE9 +:1097200000000000D3D0C8CBD6C1CEDEC8CB2025E8 +:109730006420CCF5BCFED7E9B3C9C1A2000000008B +:10974000D3D0C8CBD6C1CEDEC8CB20256420CCF583 +:10975000BCFED7E9B3C9C1A22025642C2564000052 +:109760002DCCF5BCFE25642D256420C5D0B6A8CE31 +:10977000DEC8CB2D000000002DCAC2BCFE3ACEDEF2 +:10978000BFA8C8CBC0EB2D2D000000002DB3A4CA8C +:10979000B1BCE4BCECB2E220BBD8C2B72564202542 +:1097A00064202D20256420C5D0B6A8D3D0C8CB2DE9 +:1097B000000000002DB3A4CAB1BCE4BCECB2E220AE +:1097C000BBD8C2B72564202564202D20256420C580 +:1097D000D0B6A8CEDEC8CB2D00000000C3C5B4C5EE +:1097E000BFAAA3ACBFAAC3C5CAC2BCFE000000008A +:1097F000C3C5B4C5B9D8A3ACB9D8C3C5CAC2BCFE29 +:1098000000000000CFB4CAD6BCE4D3D0C8CBA3AC10 +:10981000BFAAB5C6CAC2BCFE00000000CFB4CAD6FB +:10982000BCE4CEDEC8CBA3ACB9D8B5C6CAC2BCFEB8 +:10983000000000002D20CAC2BCFECAE4B3F63A20E4 +:109840002564200020465A4C20436C6F736500004D +:109850005365745F506F7274496E666F2053756301 +:10986000633A2564000000005365742053756363F8 +:10987000000000004E6F204E6565642053617665E0 +:10988000000000005365745F436F6E64477020539F +:10989000756363007468652073616D650000000086 +:1098A0005244525F5374612053746172740000001B +:1098B0005244525F53746120456E64007072696E49 +:1098C00074205241525F73746120696E69740000A4 +:1098D00053746F70207072696E74205241525F73BE +:1098E00074610000526563765F50726F204D41587D +:1098F0004C656E73204572720000000052656376FD +:109900005F50726F204C656E7320457272000000CC +:10991000526563765F50726F2048656164204572BE +:10992000720000004865616420457272000000000A +:10993000526563765F50726F2043524320457272C6 +:109940003A20253034582C253034580043524320D7 +:109950004572723A20253034582C25303458000096 +:10996000526563765F50726F2041434B3A20253039 +:10997000325800004F544120557020537461727466 +:109980000000000044B3FEFF4CB3FEFF4CB3FEFFEB +:109990004CB3FEFF4CB3FEFF4CB3FEFF4CB3FEFFD7 +:1099A00050B3FEFF5AB3FEFF4CB3FEFF64B3FEFF9D +:1099B0007EB3FEFF4CB3FEFF4CB3FEFF4CB3FEFF85 +:1099C0004CB3FEFF88B3FEFF4CB3FEFF92B3FEFF25 +:1099D0004CB3FEFF4CB3FEFFB8B3FEFF4D43552022 +:1099E00053746172743A2573000000004D43555F53 +:1099F0005273743A253034780A00000038B9FEFFFB +:109A000050B9FEFF74B9FEFF7EB9FEFF94B9FEFFA8 +:109A10002A20000043483537325F424C455F5045AD +:109A200052495F4C49425F56312E3200686561648D +:109A30002066696C65206572726F722E2E2E000092 +:109A40004C494220696E6974206572726F7220639E +:109A50006F64653A202578202E2E2E0A0000000023 +:109A60006C7369467271203D2025640A0000000075 +:109A70003CEDFEFF30EDFEFF3CEDFEFF2CEDFEFF6A +:109A80003CEDFEFF2CEDFEFF3CEDFEFF2CEDFEFF5E +:109A90003CEDFEFF34EDFEFF3CEDFEFF2CEDFEFF46 +:109AA0003CEDFEFF3CEDFEFF2CEDFEFF2CEDFEFF3E +:109AB0002CEDFEFF38EDFEFF38EDFEFF2CEDFEFF36 +:109AC0002CEDFEFF2CEDFEFF3CEDFEFF2CEDFEFF2E +:109AD0003CEDFEFF0208FFFF3608FFFF5208FFFFC4 +:109AE0006008FFFFFE13FFFF8613FFFF3014FFFF28 +:109AF0008613FFFF3C14FFFF8613FFFFF214FFFFE6 +:109B00008613FFFF8815FFFF8613FFFF9415FFFFE5 +:109B10008613FFFFA015FFFF8613FFFF8613FFFFCD +:109B20008613FFFFB015FFFF8613FFFFC615FFFF6B +:109B30007426010098900000A8260100DE9C000019 +:109B400014270100B09C0000BA270100829C00008D +:109B5000402801003CA70000862801003CA7000027 +:109B6000BA280100A2A60000BA270100369C000016 +:109B70004A290100369F000000000000000000009C +:109B800084290100D69F0000E4290100089100000B +:109B90007829FFFF7829FFFFD629FFFFD629FFFF8D +:109BA0009A29FFFFD629FFFFBA29FFFFD629FFFF19 +:109BB000CE29FFFFD629FFFFDE29FFFF01010201A9 +:109BC0000201010201020404060104010101010174 +:109BD00004040201040000003636FFFFE239FFFFF3 +:109BE0002038FFFF6038FFFFC239FFFFA438FFFFB6 +:109BF000E038FFFF1A39FFFF4A39FFFF8439FFFFC2 +:109C000000000000000000000000000000000087CD +:109C100043483537325F424C455F504552495F4CAF +:109C200049425F56312E322E32000000C06EFFFFD7 +:109C3000EC6EFFFF0E6FFFFF246FFFFF386FFFFF1B +:109C4000566FFFFF766FFFFF866FFFFF0E71FFFFFE +:109C50000E71FFFF0E71FFFF0E71FFFF0E71FFFF10 +:109C60000E71FFFF0E71FFFF0E71FFFFA26FFFFF6E +:109C70008270FFFF9670FFFFAC70FFFFCA70FFFF9E +:109C80000E71FFFF0E71FFFFC26FFFFFE670FFFF57 +:109C9000F670FFFF0E71FFFF0E71FFFF1E70FFFFDA +:109CA0002470FFFFFE70FFFFA276FFFF8473FFFFAB +:109CB0008473FFFF6E75FFFFC073FFFF5C73FFFFD0 +:109CC0008473FFFF8473FFFF6875FFFFA475FFFFB8 +:109CD0002479FFFF4A79FFFF4079FFFF5479FFFFA6 +:109CE0002A7CFFFF9A7CFFFF047DFFFF047DFFFFBE +:109CF000A87CFFFF047DFFFFC07CFFFFDE7CFFFF31 +:109D0000047DFFFFF67CFFFF347DFFFFDE7DFFFF5C +:109D1000C87DFFFF047EFFFF047EFFFF687EFFFF1C +:109D2000A67EFFFFBC81FFFFC481FFFFDE81FFFF36 +:109D3000EA81FFFFF281FFFFFA81FFFF0082FFFF50 +:109D40000682FFFF0C82FFFF1282FFFF1882FFFFD7 +:109D50002082FFFF2682FFFF2C82FFFF4C82FFFF45 +:109D60004C82FFFF4C82FFFF3282FFFF3A82FFFFEF +:109D70004082FFFF4682FFFF2882FFFF4A82FFFFEB +:109D80005E82FFFFB083FFFF6E82FFFFBE82FFFF98 +:109D9000D282FFFFE682FFFFFC82FFFF1283FFFFFC +:109DA0002283FFFF3883FFFFB083FFFFB083FFFFF5 +:109DB000B083FFFFB083FFFF4E83FFFF7083FFFF81 +:109DC0009283FFFFA483FFFFFB349B5F8000008032 +:109DD0000010000000000000A4420100583F0100F4 +:109DE000D83E0100D4400100A6400100824001009D +:109DF0003C40010004400100184101001C410100E9 +:109E00002041010010410100C63F01001441010042 +:109E1000083F0100DC3E010018ABFFFFC0A7FFFFB9 +:109E200026ABFFFFC0A7FFFFC0A7FFFFC0A7FFFF34 +:109E300064ABFFFFC0A7FFFFC0A7FFFFC0A7FFFFE6 +:109E4000C2ABFFFFC0A7FFFF26ABFFFFC0A7FFFF0E +:109E5000C0A7FFFF8EABFFFFC0A7FFFFC0A7FFFF9C +:109E6000C0A7FFFFE6ABFFFFC0A7FFFFC0A7FFFF34 +:109E7000BEA9FFFFC0A7FFFFC0A7FFFFC0A7FFFF4E +:109E8000C0A7FFFF3AABFFFFC0A7FFFF5CABFFFF20 +:109E900048A7FFFF4AAAFFFF48A7FFFF48A7FFFF09 +:109EA00048A7FFFF88AAFFFF88AAFFFF48A7FFFF78 +:109EB00048A7FFFF48A7FFFF48A7FFFF48A7FFFFEE +:109EC00048A7FFFF48A7FFFF48A7FFFF48A7FFFFDE +:109ED00048A7FFFF6EA9FFFF48A7FFFF48A7FFFFA6 +:109EE00048A7FFFF9AABFFFF82A9FFFF48A7FFFF2C +:109EF0009AABFFFF48A7FFFFA6ABFFFFC2500100D0 +:109F00005C5501005C51010060560100664F010084 +:109F10009857010078510100B2510100F654010038 +:109F20009C5701002C5201004A520100845201004A +:109F30006A4F0100A0570100CE530100A457010051 +:109F4000D84F0100A8570100905701001456010096 +:109F5000BE550100085301009457010062530100EF +:109F6000286E756C6C2900008C600100EE600100A9 +:109F7000E2610100E2610100E2610100F85E0100BE +:109F8000F85E0100F85E0100F85E0100F85E010075 +:109F9000F85E0100F85E0100906101006A61010055 +:109FA000F85E0100F85E0100D4600100F85E010077 +:109FB0003E610100F85E0100F85E01002A610100C7 +:109FC00076CFFFFF36CEFFFF1ACEFFFFECCEFFFFAE +:109FD0001ACEFFFF40CEFFFF1ACEFFFFECCEFFFFF1 +:109FE00036CEFFFF36CEFFFF40CEFFFFECCEFFFFA9 +:109FF00042CFFFFF42CFFFFF42CFFFFF40CEFFFF28 +:10A00000000102020303030304040404040404041F +:10A0100005050505050505050505050505050505F0 +:10A0200006060606060606060606060606060606D0 +:10A0300006060606060606060606060606060606C0 +:10A0400007070707070707070707070707070707A0 +:10A050000707070707070707070707070707070790 +:10A060000707070707070707070707070707070780 +:10A070000707070707070707070707070707070770 +:10A080000808080808080808080808080808080850 +:10A090000808080808080808080808080808080840 +:10A0A0000808080808080808080808080808080830 +:10A0B0000808080808080808080808080808080820 +:10A0C0000808080808080808080808080808080810 +:10A0D0000808080808080808080808080808080800 +:10A0E00008080808080808080808080808080808F0 +:10A0F00008080808080808080808080808080808E0 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A16000232D302B20000000686C4C00656667458D +:10A1700046470000303132333435363738394142C2 +:10A180004344454600000000303132333435363721 +:10A19000383961626364656600000000B8E2FFFF61 +:10A1A000CEE2FFFF8EE2FFFF8EE2FFFF8EE2FFFFB7 +:10A1B0008EE2FFFFCEE2FFFF8EE2FFFF8EE2FFFFA7 +:10A1C0008EE2FFFF8EE2FFFF2CE4FFFF32E3FFFF92 +:10A1D000C6E3FFFF8EE2FFFF8EE2FFFF5AE4FFFFC0 +:10A1E0008EE2FFFF32E3FFFF8EE2FFFF8EE2FFFF12 +:04A1F000CEE3FFFFBC +:02A1F40001A0C8 +:10A1F600AA8703A5C19311E182803A216315B700AE +:10A206001821E30BF7FE4845FDB72A8713F5F50F2E +:10A2160049C5011126CA06CE22CC4AC84EC652C42A +:10A2260093F71500AE84B5E3854621466385C604DB +:10A236003684B3D584488506F5D9B3490408B147B1 +:10A24600336787203307F702138A419503290A00EB +:10A256003A998327090081C7032549008297314728 +:10A26600B389E90283270A00CE979C4795C3331426 +:10A276008028B3470408F24062444249B249224A60 +:10A2860033C59700D244056182808149014445BFA8 +:10A296002320090023220900D9BF8280411122C44C +:10A2A60037E400E026C2044006C6B7072000FD8C4E +:10A2B6002320F4180F100000EFD03F87B240232070 +:10A2C6009410224492444101828037E700E01C4307 +:10A2D600B70620002320D718F58F0F1000001307AC +:10A2E600F6FFBA952A966317C50037E700E02320E4 +:10A2F600F71082809821FD150505A30FE5FEE5B749 +:10A3060037E700E01C43B70620002320D718F58F57 +:10A316000F10000001C53307C50019E637E700E056 +:10A326002320F7100145828014210505E398B6FE27 +:10A33600E31CE5FE37E700E02320F71005458280A1 +:10A346007971B7E700E022D4804352CC06D626D2F4 +:10A356004AD04ECE56CA5AC85EC662C43A8A370733 +:10A366002000798C23A0E7180F10000005E123A038 +:10A3760087100945B250225492540259F249624A52 +:10A38600D24A424BB24B224C4561828083A78194CC +:10A39600B6892A89AE8A328B938B4195829703A719 +:10A3A6000B008144B146A147338CD40233068701A2 +:10A3B60010422DEEC165938505F041452D2619ED18 +:10A3C6009787FE1F83A7A75281C7814511458297AC +:10A3D600B7E700E023A087102D4569BF1387C19317 +:10A3E6001C43A1E308C323000500B31790283EA130 +:10A3F60083A70B002326050023246501232245019C +:10A40600E29723A0270123A2570123A447016384CF +:10A41600090023809900B7E700E023A087100145D3 +:10A4260091BF3E87DC47F5FF48C775BF8504E39DAE +:10A43600F4F6B7E700E023A08710214525BFB7E76C +:10A4460000E09843B706200023A0D718758F0F1099 +:10A4560000009786FE1F83C616456371D502978650 +:10A46600FE1F23A6064483A601953325D520162173 +:10A47600D58D0EA123A0E7100145828023A0E71009 +:10A486000D4582800111B7E700E022CC80433707F3 +:10A49600200006CE26CA4AC8798C23A0E7180F10DA +:10A4A60000009D4763E5A70431473307E50283A70C +:10A4B6004195BA979C4385CF3315A0282E89B3457D +:10A4C600050801452EC62D33AA8419C5B245014596 +:10A4D600EFB0DE9323A42401B7E700E023A08710A2 +:10A4E6000145F2406244D244424905618280B7E7A1 +:10A4F60000E023A087100945EDB783A7419E99CBBD +:10A50600944BD04B9842518F98C294439C479842A3 +:10A51600D98F9CC2054783A7819D6312E5029843A4 +:10A52600B70600FAFD161377F7CF98C3D8531395DD +:10A5360025001305A50C758FD8D36F307FF9984386 +:10A54600B70600FAFD161377F7CF1367071098C3FF +:10A55600D853139535001305E50E758F13179729F4 +:10A56600D8D3E1BF83A7419E89CFD44303A88700F0 +:10A5760098423367070198C2D447DC4B9842D98F7B +:10A586009CC293875500854603A7819D03A801A019 +:10A59600B3C707086312D5061443B70500FAFD15BD +:10A5A60093F6F6CF14C354538E07ED8E54D38326F9 +:10A5B600080583C5419FFD89819ACD8E2328D8043D +:10A5C600544B93F606FC93E6D60054CB9306F0075D +:10A5D60074AF544F93F606C093E6060A54CF93879A +:10A5E600C703B3C7070801C60606B3470608178799 +:10A5F600FE1F2310F74282801443B70500FAFD15AB +:10A6060093F6F6CF93E6061014C354539207ED8ED5 +:10A616009396962954D38326080583C5519FFD89B1 +:10A62600819ACD8E2328D804544B93F606FC93E6E4 +:10A63600B60054CB9306800774AF544F93F606C00A +:10A6460093E6C60954CF61BF4111014506C6EF0026 +:10A65600902383A7419E99CBD44390479842518F2C +:10A6660098C2944BDC4B9842D98F9CC283A7019F1A +:10A67600B84B1377F78FB8CB98431367870098C307 +:10A68600B2409787FE1FA38407384101828083A7C3 +:10A69600019F9C438D8BB9C7411122C406C61787FB +:10A6A600FE1F0347D7368D471784FE1F1304E43574 +:10A6B6006318F70083A7C19D0146814545458297EA +:10A6C6005C30A14613F7F70F6398D7009305000295 +:10A6D60003C5019E78A0A5332244B2402386019E7D +:10A6E60041019DB782804111B7E700E022C4804353 +:10A6F6003707200006C6798C23A0E7180F10000044 +:10A7060011C199E5B7E700E023A08710014549A8E4 +:10A716000D0533450508130740037199B34705082E +:10A726006362A70203A581A783A601A7639FA6006C +:10A736001787FE1F0327A71B71D7C207DD8D0545A7 +:10A746000297C9B703A541A7C5B77A2131EF5A21A8 +:10A75600636CF704B306F74021481786FE1F1306FD +:10A7660086146375D802832805000358460093862D +:10A7760087001D8FAA966117DAA223A016012393DC +:10A78600060014C15EA1130788FF5AA25A226EA1C1 +:10A796002105B307F7405EA2B7E700E023A08710C4 +:10A7A600B240224441018280084149B77C51FDC72D +:10A7B600411122C406C65821834555119437D22724 +:10A7C6002A841377C70F1395466063F7C50663514E +:10A7D6000506882793F6F60794B70546936627007D +:10A7E6006314C5009366170054A0D8430907D8C35D +:10A7F600684C2CA42E86CC4309059760FE1FE78083 +:10A80600C0057C503424D8433697D8C3DA27158F31 +:10A81600DAA789471CB8034704029787FE1F83C738 +:10A82600A70B6368F706B2402244014541018280C6 +:10A836001367170058A06DBF9376F60F6354050291 +:10A8460088278545136627006314B500136617002D +:10A8560050A034A4A384070085471CB87C509C43B1 +:10A86600DDFBD1B71367170058A034A4A3840700F3 +:10A87600684CCC4309059760FE1FE78000FE7C50BC +:10A886003424D8433697D8C3DA27158FDAA78D47ED +:10A89600E9B75C2093E707015CA071B705458280A4 +:10A8A600411183A7C1A822C406C6858B2A84B9EFA5 +:10A8B600EF902FBF21CD3C253EA57C54A1E368D463 +:10A8C60028D885477CB8232005002C341787FE1F1F +:10A8D600130727154EA55C3093F5F50F1CA5854784 +:10A8E6001CB57E23484185077EA39760FE1FE7803F +:10A8F60000690145B2402244410182803C5888C328 +:10A906007C3828D8850793F7F70F6DBF5C202303A3 +:10A916000400054593C747005CA0E9BF630B0540EB +:10A9260001114AC81789FE1F130929FD832709004B +:10A9360026CA644522CC06CE4EC652C456C22A84C6 +:10A94600829763EEA4223385A44083270900634CD3 +:10A9560005221E3C66308329C404835A890063E8B5 +:10A96600972C384C178AFE1F130AEAF583445A01BE +:10A97600B387E94063F6E90083274900998FCE97AC +:10A98600B7460F0013860624334756039386F623ED +:10A99600B307F70203572404B3D7E702BE94B3C440 +:10A9A600040823109404B3845403B694B3D4C402A5 +:10A9B60063E4993083270900B3849940829763E161 +:10A9C600A4303385A4408356890083570404034783 +:10A9D6006A01B387D702B7460F001386F62393861C +:10A9E6000624B297B3D7D702BA9763E0A7323E34AC +:10A9F600228585073EB48347E4126389072CC12E5E +:10AA06002285EF809FC96313051603558900835776 +:10AA16000404B7460F001386F623B387A70293866E +:10AA2600062478442300040283294900B297B3D749 +:10AA3600D702636FF728B307F74034447CC0814AD6 +:10AA4600B387E600BE8463E4D70063E43701B384CA +:10AA560037413E3864C4A1C736347A3837460F00CA +:10AA660076B83387E640B387E7025A3813060624DA +:10AA760081468145BA97B3C707083385A7025EB8F2 +:10AA8600EFB0DF8109CD2695B3349500A695AA8748 +:10AA96006394BA0063643501B30735417CC48327E8 +:10AAA60009008297AA84832709008297E30D95FE01 +:10AAB600832709006440829763E1A4223385A4407A +:10AAC600630105228359890083570404B7440F00A4 +:10AAD6001387F423B387370393840424BA97B3D731 +:10AAE600970203476A01BA9763EDA71EB33595022D +:10AAF600035A44034E86814633059502EFB00FFA9A +:10AB06003309AA0033053A0337460F001306062415 +:10AB160081468145EFB08FF805C1B33795024E8661 +:10AB26008146B385B4023385A402BE95EFB00FF714 +:10AB3600330AAA40231A44033545913E814517A599 +:10AB4600FFFF1305451D9787FE1F23A487FEEF0011 +:10AB5600404E95471787FE1FA30BF7EA37071000ED +:10AB660083A7019F98C7060923A82707F2406244D6 +:10AB7600D2444249B249224A924A056182808327D9 +:10AB86004900BE94C9B3829778446367E504198D7A +:10AB96001E34035789008E07B387E7021307003276 +:10ABA60093870719B3D7E70263FDA702A14522855C +:10ABB600EF807FA8A30AA40A9787FE1F83A727D33F +:10ABC600D5D76244F240D2444249B249224A924A17 +:10ABD600894515450561828783274900998F3E95EA +:10ABE60045BF3E3485073EB48347E41299E3228588 +:10ABF60091222285EF807FAA35F934447C440327CD +:10AC06004900B697BE8463E4D70063E4E700B384E3 +:10AC1600E7408327090064C48297B387A44063F59D +:10AC2600A40003274900BA97E3CD07FA1DB31424FD +:10AC36000547E398E6D27850E31507D27A34E31253 +:10AC460007D234301D47E39EE6D04A309D8C9307E9 +:10AC5600204E3305950237460F001306062481461B +:10AC66003305F502B335550333055503EFB00FE34E +:10AC7600B307350133B5A7002E9503274900BE89D2 +:10AC860019E163E4E700B389E74093078002B387DD +:10AC9600F402B7460F001386F62393860624B3877D +:10ACA6005703B297B3D7D70263E5F900B389F940E2 +:10ACB6004DB91D8FBA9975B183274900BE99DDB983 +:10ACC60083274900A6973385A740F5B9A5200DBB74 +:10ACD600B3063701B387F6408DB383274900BE9488 +:10ACE600F1BB9787FE1F23A607E46C286244F24057 +:10ACF600D2444249B249224A924A01450561B315F6 +:10AD0600B028B3C505086FF08FF3B385E44063F749 +:10AD1600E40083274900998FB38597006828624429 +:10AD2600F240D2444249B249224A924A05616FF042 +:10AD36006FF58280797126D206D622D44AD04ECEBD +:10AD460052CC56CA5AC85EC67C3D03445507AA84EF +:10AD56003E941374F40F9307400263F687001304BE +:10AD6600B4FD1374F40F03A9040883A94408A38A45 +:10AD7600840622864A85CE85EFB0EFCF058905E5A4 +:10AD860003CBB407014A814A337B6403930B500219 +:10AD960052864A85CE85EFB00FCE05890DC5631163 +:10ADA6005B031374FA0F238A8406B250225492541A +:10ADB6000259F249624AD24A424BB24B45618280FD +:10ADC600850A93FAFA0F050AE3147AFDE9BF3C49AE +:10ADD6003235797193D60701BD8EB3C60608358E16 +:10ADE60093575640898B135776485D8F9357364055 +:10ADF600918B5D8F93571640A18B5D8F931716002D +:10AE0600C18B5D8F9317360093F707025D8F9317FB +:10AE1600560093F707045D8F9317760093F7F70FA5 +:10AE260022D45D8F2A849357D6001355B600118914 +:10AE3600898B93558600C98F1355F6002582C98FD5 +:10AE4600218AD18F13961500418AD18F139635002A +:10AE560013760602D18F1396550013760604D18F0A +:10AE6600139675001376F60FD18FA207C5455D8F31 +:10AE76003307B70226D24AD04ECE032904088329C7 +:10AE860044085AC806D652CC56CA369733470708DE +:10AE960013565740098A93577748D18F1356374030 +:10AEA600118AD18F13561740218AD18F1316170096 +:10AEB600418AD18F1316370013760602D18F1316E7 +:10AEC600570013760604D18F131677001376F60F04 +:10AED600D18F1358B7001356D70013784800098A44 +:10AEE60013558700336606011358F700258333662A +:10AEF6000601218B518F13161500418A518F1316A7 +:10AF0600350013760602518F131655001376060484 +:10AF1600518F131675001376F60F518F2207D98FAE +:10AF2600B387B7025EC6B697B3C7070813D55740AF +:10AF3600098913D77748498F13D537401189498F27 +:10AF460013D517402189498F139517004189498FD9 +:10AF56001395370013750502498F1395570013751E +:10AF66000504498F139577001375F50F598D13D87E +:10AF7600B70013D7D70013784800098B13D687007C +:10AF86003367070113D8F700A58333670701A18B41 +:10AF9600D98F13171600418BD98F131736001377E5 +:10AFA6000702D98F13175600137707041E06D98F89 +:10AFB6001376F60FD18FA2073367F5003307B70272 +:10AFC600130650024A85CE853697B98EB3C4060855 +:10AFD60033F6C402137BF60FEFB0EFA9058915E52A +:10AFE600834AB407014A930B5002B38A9A028144FA +:10AFF60093DA0A0126864A85CE85EFB0CFA7058962 +:10B006000DC563914A0313FBF40F230A6407B2507C +:10B01600225492540259F249624AD24A424BB24BE6 +:10B0260045618280050A137AFA0F8504E39474FD5C +:02B03600E9BF70 +:10B0380099E123A0A1948280B707020003A7819D0C +:10B048009387C7201CDF930700055CDF9307F00395 +:10B058001CD3B7E600E0D147A389F6049767FE1F23 +:10B068009387E7B393E71700FCD65C5B9786FE1FD0 +:10B0780083C6868693E606049E07E6069D83D58FDB +:10B088005CDB828083A7819D9843B706FDFFFD1690 +:10B0980003A601A0758F1DC198C39843758F131718 +:10B0A800172998C31C4637073300D98F3707030081 +:10B0B8001CC6598D83A7019FA8CB82801317072927 +:10B0C80098C31C463707CEFF7D17F98FC5B723866F +:10B0D800019E23A4019E83A7019F1307C008D8CB14 +:10B0E80093066007D4CFD8D31306C006D0D7D8DBD1 +:10B0F800D0DFF8C3F4C713078007FAA323AA07040D +:10B108001787FE1F03278791F8DF7D5798C73707F2 +:10B1180016003D07D8C737E700E0D5472309F704ED +:10B128009767FE1F938727D993E717003CD782803C +:10B13800896703A7019F938707F47CD383A601A09F +:10B1480083A7060993D7A74991C783A7060993D769 +:10B15800974999E37C53EDF78280411126C2938485 +:10B16800819D984022C406C65C5B1784FE1F032499 +:10B17800249B13058025F19B93E717005CDB1937A7 +:10B1880003A701A05C57F59B5CD7944038289C42E4 +:10B198001377F70793F707F8D98F9CC2583085477C +:10B1A8006305F7002285EF701FAB03A6019F5C4281 +:10B1B800B70500FF014593E717005CC29C40834632 +:10B1C8004405D85B93E60604E6061E071D83558FE3 +:10B1D800D8DB37C7898E130767EDD8C7B8D3375779 +:10B1E800550013075755D8C3B8CF9847B7068000FE +:10B1F8009386D6326D8F558F98C7F84F6D8F558FC0 +:10B20800F8CF89471787FE1FA302F7803C403CDE32 +:10B218008345240530349760FE1FE780E0A7224469 +:10B22800B24092448145170500001305851D410170 +:10B2380001B5011106CE22CC26CA4AC84EC652C450 +:10B248006421A302050085476398F4161777FE1F4B +:10B258000347D77B95472A846311F70262440C3968 +:10B26800F240D2444249B249224A01450561B31528 +:10B27800B028B3C505086FF06F9C38398D47631542 +:10B28800F70A9750FE1FE780C0580D89630805101C +:10B29800631F9510930760023CA8930750025CA8AF +:10B2A8009307700278305CB88547630CF704177908 +:10B2B800FE1F1309696483270900834914018297D3 +:10B2C80083270900035A8401AA84829703578900B7 +:10B2D8009377F500D297B387E70213070064938743 +:10B2E8000732B3D7E7020327490033859700AA85B9 +:10B2F8006364F5006364E500B305E5404E85EFF04F +:10B308004F9885472304F4029787FE1F83A78782F7 +:10B31800C5E70945EFF08FB76244F240D24442498D +:10B32800B249224A056115BD89461C356315D70205 +:10B3380013F7170019CB898B1307500291EB93076A +:10B34800700238A85CA88147B1BF13076002C5BF67 +:10B3580093076002FDB799CF93F6170013075002C1 +:10B3680091E6898B13B717001307670238A8230AD9 +:10B378000400D1BF5C29130740026368F7009307F4 +:10B3880050025CA85C283CA87DBF850793F7F70F9F +:10B398005CA913077002E364F7FEEDB713077002A8 +:10B3A800930750025CA838A893076002E5BD13070D +:10B3B800500293077002FDB7F2406244D2444249FA +:10B3C800B249224A05618280583911C7342963106D +:10B3D800D7026F701FAE5C29EDDF3829E30BF7FE4B +:10B3E8003CA9814517050000130565D791B15C2973 +:10B3F80089C7E397F6FE38A9EDB7E1FEEDBF411125 +:10B408009777FE1F83C7676022C406C6858B1774AB +:10B41800FE1F0324E47085CF382489476309F702A7 +:10B4280013065002814505459760FE1FE780C086D8 +:10B438009777FE1F83C7775D858B91CB2244B240F7 +:10B448008145170500001305A5014101D5B6EFF0A8 +:10B458008F9F22852244B2404101BDB7411122C4C9 +:10B468001774FE1F0324C46B684001469305E4006B +:10B4780006C626C24AC09750FE1FE780A07B59E542 +:10B488006C407D479C3193F7F7035CA4E91793F769 +:10B49800F70F636DF7069C21BD8B5CB4F51793F726 +:10B4A800D70FADE71309A4021946A1054A8597509D +:10B4B800FE1FE780404239C96C408544230C940242 +:10B4C8009C211305A403194693D767488905A30C43 +:10B4D800F4029750FE1FE78020382285EF70FF9610 +:10B4E80015C5543415473C24639BE60263E0F40217 +:10B4F8009777FE1F83A74740829748CC2285EF7035 +:10B508003F80631595002285EF70BFB7EFF0AF93CA +:10B5180022852244B24092440249410175B581C74F +:10B528001947E395E7FE8304E4002D45EFC0CE9E5E +:10B5380013154560E3CCA4FC7C389146094799076C +:10B548003CB43C4034A458B094A33C40343494B345 +:10B5580083479402858B89E7834784026397E700D2 +:10B5680038401C2393E707041CA32840CA851946C2 +:10B5780009059750FE1FE780202E284070384C5050 +:10B5880021059750FE1FE780202D83452405303480 +:10B598000D459750FE1FE7802070EFF0CF8A2244B8 +:10B5A800B2409244024981451785FFFF1305A596CD +:04B5B8004101BDBCD4 +:10B5BC003A270000A827000000000000020000004D +:10B5CC00541200200100000018120020020000009C +:10B5DC004C12002001000000BA11002002000000F3 +:10B5EC002812002003000000B0150020020000000B +:10B5FC004812002001000000FC1000200200000096 +:10B60C004C12002001000000B911002002000000C3 +:10B61C002412002000000000A812002002000000EC +:10B62C004412002003000000A412002002000000BD +:10B63C004812002001000000E81000200200000069 +:10B64C004C12002001000000B81100200200000084 +:10B65C0020120020040000009C12002002000000B8 +:10B66C004812002001000000D410002043686172D1 +:10B67C00616374657269737469632035000000003E +:10B68C0043686172616374657269737469632034B1 +:10B69C0000000000436861726163746572697374C1 +:10B6AC0069632031000000004A2B0000B42900001F +:10B6BC009E2A0000424C565F5731335F3030303099 +:10B6CC000000000000000000000000000D09424CCA +:10B6DC00565F5731335F3030303005120800280088 +:10B6EC00020A00005E150100661601000000000051 +:10B6FC000000000040A1010020A1010000A10100F8 +:10B70C00000000000000000000000000000000002D +:10B71C00000000000000000000000000000000001D +:10B72C00000000000000000000000000000000000D +:10B73C0000000000000000000000000000000000FD +:10B74C0000000000000000000000000000000000ED +:10B75C0002100A00282A000017000000020106034C +:10B76C0002E0FFFF682B0020C3812F010100FFFFC7 +:10B77C00FF200000020000005812002001010110FF +:10B78C000501020202020000581100200000000016 +:10B79C00000000000000F03F0000000000408F405F +:10B7AC000000000000804640000000000000E03F68 +:10B7BC00020000002C120020E3FF0000E2FF00005A +:10B7CC00E1FF0000E0FF0000052A0000A62A0000AF +:10B7DC00042A0000012A0000002A000002290000AF +:10B7EC0001290000032800000128000000280000A7 +:10B7FC0001180000001800001215181B1F252D0041 +:0CB80C00020000005C1200205811002017 +:0400000300001000E9 +:00000001FF diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.lst b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.lst new file mode 100644 index 0000000..1ef6ea6 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.lst @@ -0,0 +1,47813 @@ + +BLV_RF_W13_V04.elf: file format elf32-littleriscv +BLV_RF_W13_V04.elf +architecture: riscv:rv32, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00001000 + +Program Header: +0x70000003 off 0x0003df05 vaddr 0x00000000 paddr 0x00000000 align 2**0 + filesz 0x00000051 memsz 0x00000000 flags r-- + LOAD off 0x00001000 vaddr 0x00001000 paddr 0x00001000 align 2**12 + filesz 0x00000004 memsz 0x00000004 flags r-x + LOAD off 0x00002000 vaddr 0x20000000 paddr 0x00001004 align 2**12 + filesz 0x00001014 memsz 0x00001014 flags r-x + LOAD off 0x00003018 vaddr 0x00002018 paddr 0x00002018 align 2**12 + filesz 0x000195a4 memsz 0x000195a4 flags r-x + LOAD off 0x0001d018 vaddr 0x20001018 paddr 0x0001b5bc align 2**12 + filesz 0x0000025c memsz 0x0000025c flags rw- + LOAD off 0x00000278 vaddr 0x20001278 paddr 0x0001b818 align 2**12 + filesz 0x00000000 memsz 0x000018f0 flags rw- + +Sections: +Idx Name Size VMA LMA File off Algn Flags + 0 .init 00000004 00001000 00001000 00001000 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .highcode_initlalign 00000000 00001004 00001004 0001d274 2**0 CONTENTS + 2 .highcodelalign 00000000 00001004 00001004 0001d274 2**0 CONTENTS + 3 .highcode 00001014 20000000 00001004 00002000 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE + 4 .text 000181dc 00002018 00002018 00003018 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE + 5 .vector_handler 00000002 0001a1f4 0001a1f4 0001b1f4 2**0 CONTENTS, ALLOC, LOAD, READONLY, CODE + 6 .highcode_fast 00000e42 0001a1f6 0001a1f6 0001b1f6 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE + 7 .highcode_lp 00000584 0001b038 0001b038 0001c038 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE + 8 .fini 00000000 0001b5bc 0001b5bc 0001d274 2**0 CONTENTS, ALLOC, LOAD, CODE + 9 .dlalign 00000000 0001b5bc 0001b5bc 0001d274 2**0 CONTENTS + 10 .data 0000025c 20001018 0001b5bc 0001d018 2**3 CONTENTS, ALLOC, LOAD, DATA + 11 .bss 000018f0 20001278 0001b818 0001d278 2**3 ALLOC + 12 .stack 00000000 20003000 20003000 0001d274 2**0 CONTENTS + 13 .debug_info 0000affb 00000000 00000000 0001d274 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 14 .debug_abbrev 00002939 00000000 00000000 0002826f 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 15 .debug_loclists 00003eee 00000000 00000000 0002aba8 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 16 .debug_aranges 00000580 00000000 00000000 0002ea98 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS + 17 .debug_rnglists 0000095d 00000000 00000000 0002f018 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 18 .debug_line 0000adf3 00000000 00000000 0002f975 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 19 .debug_str 00003101 00000000 00000000 0003a768 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 20 .debug_line_str 00000638 00000000 00000000 0003d869 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS + 21 .comment 00000064 00000000 00000000 0003dea1 2**0 CONTENTS, READONLY + 22 .riscv.attributes 00000051 00000000 00000000 0003df05 2**0 CONTENTS, READONLY + 23 .debug_frame 00000ee0 00000000 00000000 0003df58 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS +SYMBOL TABLE: +00001000 l d .init 00000000 .init +00001004 l d .highcode_initlalign 00000000 .highcode_initlalign +00001004 l d .highcodelalign 00000000 .highcodelalign +20000000 l d .highcode 00000000 .highcode +00002018 l d .text 00000000 .text +0001a1f4 l d .vector_handler 00000000 .vector_handler +0001a1f6 l d .highcode_fast 00000000 .highcode_fast +0001b038 l d .highcode_lp 00000000 .highcode_lp +0001b5bc l d .fini 00000000 .fini +0001b5bc l d .dlalign 00000000 .dlalign +20001018 l d .data 00000000 .data +20001278 l d .bss 00000000 .bss +20003000 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_loclists 00000000 .debug_loclists +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_rnglists 00000000 .debug_rnglists +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_line_str 00000000 .debug_line_str +00000000 l d .comment 00000000 .comment +00000000 l d .riscv.attributes 00000000 .riscv.attributes +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l df *ABS* 00000000 startup_CH572.o +0001a1f4 l .vector_handler 00000000 ENDOCE_IRQHandler +00000000 l df *ABS* 00000000 debug.c +2000127a l O .bss 00000001 NUM.1 +20001278 l O .bss 00000002 NUM_s.0 +00000000 l df *ABS* 00000000 uart.c +00000000 l df *ABS* 00000000 CH57x_sys.c +200011cc l O .data 00000004 curbrk.0 +00000000 l df *ABS* 00000000 RTC.c +200004c6 l F .highcode 00000018 SYS_GetClockValue +200004de l F .highcode 0000000e SYS_SetPendingIRQ +00000000 l df *ABS* 00000000 ISP572.c +2000054a l .highcode 00000000 .loop52 +20000558 l .highcode 00000000 .loop63 +20000566 l .highcode 00000000 .loop74 +20000666 l .highcode 00000000 .loop247 +00000000 l df *ABS* 00000000 tmos.c +0001a1f6 l F .highcode_fast 0000001a tmosFindTask +200011d0 l O .data 00000004 holdrand.0 +00000000 l df *ABS* 00000000 tmos_hw.c +20000aea l F .highcode 00000030 clockGetHSEValue +000064f4 l F .text 00000080 clockGetTickValve +00000000 l df *ABS* 00000000 bb.c +00000000 l df *ABS* 00000000 ip.c +20001260 l O .data 00000007 CSWTCH.135 +2000139c l O .bss 00000004 gPaControl +20001394 l O .bss 00000004 rfStatusCBs +20001398 l O .bss 00000001 gRfTaskId +00000000 l df *ABS* 00000000 lle.c +00000000 l df *ABS* 00000000 memory.c +00000000 l df *ABS* 00000000 ll_connect.c +00000000 l df *ABS* 00000000 ll_whitelist.c +00000000 l df *ABS* 00000000 lib_a-memcpy-asm.o +00000000 l df *ABS* 00000000 lib_a-memset.o +00000000 l df *ABS* 00000000 lib_a-memmove.o +00000000 l df *ABS* 00000000 flash.c +00000000 l df *ABS* 00000000 gattprofile.c +0000273a l F .text 0000006e simpleProfile_ReadAttrCB +000027a8 l F .text 000000aa simpleProfile_WriteAttrCB +200012ac l O .bss 00000004 simpleProfile_AppCBs +00002852 l F .text 0000003e simpleProfile_HandleConnStatusCB +200012a4 l O .bss 00000004 simpleProfileChar4Config +20001024 l O .data 000000b0 simpleProfileAttrTbl +200015b0 l O .bss 00000050 simpleProfileChar1 +200015a4 l O .bss 0000000a simpleProfileChar2 +20001598 l O .bss 0000000a simpleProfileChar3 +200012a8 l O .bss 00000001 simpleProfileChar4 +2000129c l O .bss 00000005 simpleProfileChar5 +20001218 l O .data 00000008 simpleProfileService +200011ba l O .data 00000001 simpleProfileChar1Props +200010fc l O .data 00000012 simpleProfileChar1UserDesp +200011b9 l O .data 00000001 simpleProfileChar4Props +200010e8 l O .data 00000012 simpleProfileChar4UserDesp +200011b8 l O .data 00000001 simpleProfileChar5Props +200010d4 l O .data 00000012 simpleProfileChar5UserDesp +00000000 l df *ABS* 00000000 peripheral.c +000029b4 l F .text 00000002 peripheralRssiCB +000029b6 l F .text 00000072 peripheralChar4Notify +200012b8 l O .bss 00000008 peripheralConnList +200011c0 l O .data 00000002 peripheralMTU +00002a28 l F .text 00000076 simpleProfileChangeCB +200011cb l O .data 00000001 Peripheral_TaskID +00002a9e l F .text 0000002c peripheralParamUpdateCB +00002aca l F .text 00000080 Peripheral_LinkTerminated +00002b4a l F .text 0000016c peripheralStateNotificationCB +200012c0 l O .bss 00000004 W13_currentBleState +20001134 l O .data 00000017 scanRspData +200011c4 l O .data 00000007 advertData +2000111c l O .data 00000015 attDeviceName +200011bc l O .data 00000004 Peripheral_SimpleProfileCBs +200012b0 l O .bss 00000008 Broadcaster_BroadcasterCBs +20001110 l O .data 0000000c Peripheral_PeripheralCBs +2000164c l O .bss 0000000c Peripheral_BondMgrCBs +00000000 l df *ABS* 00000000 sensor_scan.c +200012d0 l O .bss 00000004 update_20ms.2 +200012cc l O .bss 00000004 scan_tisk.1 +200012c8 l O .bss 00000004 print_rdrsta_tisk.0 +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 CH57x_clk.c +00000000 l df *ABS* 00000000 CH57x_flash.c +00000000 l df *ABS* 00000000 CH57x_gpio.c +00000000 l df *ABS* 00000000 CH57x_uart.c +00000000 l df *ABS* 00000000 MCU.c +00000000 l df *ABS* 00000000 SLEEP.c +00000000 l df *ABS* 00000000 message.c +00000000 l df *ABS* 00000000 tmos_snv.c +00000000 l df *ABS* 00000000 gap.c +00006cea l F .text 00000020 disconnectNext +20001331 l O .bss 00000001 terminateReason +20001330 l O .bss 00000001 terminateAllTaskID +2000132c l O .bss 00000004 pfnPeripheralCBs +20001328 l O .bss 00000004 pfnPeripheralConnCBs +20001318 l O .bss 00000008 slaveUpdateReq +20001320 l O .bss 00000006 gapCurrentRandomAddr +00000000 l df *ABS* 00000000 gap_peripheral.c +00007fec l F .text 000000a0 gapSetAdvParams +0000808c l F .text 0000001e gapFreeAdvertState +000080aa l F .text 000000aa gapPeriProcessConnEvt +00008154 l F .text 00000084 gapWriteAdvDataStatus +20001341 l O .bss 00000001 gapAdvAppTaskID +20001340 l O .bss 00000001 gapAdvTaskID +000082c0 l F .text 000000ae gapProcessAdvertisingEvt +2000133c l O .bss 00000004 pGapAdData +20001338 l O .bss 00000004 pGapScanRspData +20001334 l O .bss 00000004 gapPeripheralConnCBs +20002944 l O .bss 0000000c gapPeripheralCBs +000085f0 l F .text 00000144 gapPeriProcessHCICmdCompleteEvt +00000000 l df *ABS* 00000000 gatt.c +00000000 l df *ABS* 00000000 gattclientapp.c +00000000 l df *ABS* 00000000 gattservapp.c +00009098 l F .text 00000004 gattProcessExchangeMTUReq +0000909c l F .text 00000022 gattServApp_FindCharCfgItem +000090be l F .text 00000030 gattServerHandleTimerCB +000090ee l F .text 0000001a GATTServApp_InitCharCfg.part.0 +00009108 l F .text 00000004 gattProcessExecuteWriteReq +200011d9 l O .data 00000001 serviceChangedCharProps +200011d8 l O .data 00000001 reqTaskId +200011d7 l O .data 00000001 appTaskID +200011d6 l O .data 00000001 GATTServApp_TaskID +200011d4 l O .data 00000002 nextHandle +20001354 l O .bss 00000002 attrLen +20001350 l O .bss 00000004 pAttrValue +20001368 l O .bss 00000004 serviceCBsList +20001364 l O .bss 00000004 pServiceList +200011dc l O .data 00000008 gattService +2000136c l O .bss 00000001 gattAddService +20002950 l O .bss 00000040 gattAttrTbl +20001358 l O .bss 00000004 indCharCfg +20002990 l O .bss 0000000c gattServiceCBs +20001360 l O .bss 00000004 prepareWritesTbl +2000135c l O .bss 00000004 serverInfoTbl +0000974e l F .text 00000026 gattServerNotifyTxCB +00009c36 l F .text 0000004c gattProcessReadByGrpTypeReq +00009c82 l F .text 0000002e gattProcessReadByTypeReq +00009cb0 l F .text 0000002e gattProcessFindByTypeValueReq +00009cde l F .text 0000016e gattProcessFindInfoReq +00009f36 l F .text 00000034 gattProcessWriteReq +00009fd6 l F .text 00000034 gattProcessPrepareWriteReq +2000299c l O .bss 00000018 rsp +0000a6a2 l F .text 0000009a gattProcessReadMultiReq +0000a73c l F .text 00000030 gattProcessReadReq +00000000 l df *ABS* 00000000 l2cap.c +00000000 l df *ABS* 00000000 l2cap_input.c +00000000 l df *ABS* 00000000 l2cap_output.c +0000b7ea l F .text 00000062 l2capSendFCPkt.part.0 +00000000 l df *ABS* 00000000 l2cap_sdu.c +0000b9ec l F .text 0000002c l2capBuildParamUpdateReq +00000000 l df *ABS* 00000000 linkdb.c +0000ba80 l F .text 0000003e reportStatusChange +00000000 l df *ABS* 00000000 sm.c +0000bfba l F .text 00000034 smStartRspTimer +00000000 l df *ABS* 00000000 sm_pdu.c +0000cb1c l F .text 0000008e smpBuildPairingReqRsp +00000000 l df *ABS* 00000000 sm_responding.c +00000000 l df *ABS* 00000000 sm_toolbox.c +00000000 l df *ABS* 00000000 host_input.c +00000000 l df *ABS* 00000000 aes.c +00000000 l df *ABS* 00000000 rfend.c +200013b5 l O .bss 00000001 nCO2401 +200013b4 l O .bss 00000001 nGA2401 +200013b3 l O .bss 00000001 nCO2440 +200013b2 l O .bss 00000001 nGA2440 +200013b1 l O .bss 00000001 nCO2480 +200013b0 l O .bss 00000001 nGA2480 +200013ae l O .bss 00000002 ftuneFlag +00000000 l df *ABS* 00000000 api_c.c +00000000 l df *ABS* 00000000 ctl_input.c +200013bc l O .bss 00000001 fragment.0 +00000000 l df *ABS* 00000000 gapbondmgr.c +0000feb0 l F .text 00000022 gapBondMgrInvertCharCfgItem +0000fed2 l F .text 0000003c mainRecordNvID_Erase +0000ff0e l F .text 0000005a gapBondMgrBondTotal +200013cd l O .bss 00000001 gapBondMax +200013d0 l O .bss 00000004 bonds +0000ff68 l F .text 0000004e gapBondMgrFindEmpty +0000ffb6 l F .text 0000002a gapBondFreeAuthEvt +200013c8 l O .bss 00000004 pAuthEvt +200013cc l O .bss 00000001 bondIdx +0000ffe0 l F .text 00000126 gapBondMgrEraseBonding +200013e5 l O .bss 00000001 gapBondMgr_TaskID +00010106 l F .text 00000058 gapBondMgr_SyncWhiteList +0001015e l F .text 00000026 gapBondSetupPrivFlag +00010184 l F .text 00000096 gapBondMgrReadBonds +200013cf l O .bss 00000001 autoSyncWhiteList +0001021a l F .text 0000000a gapBondMgrSendServiceChange +00010224 l F .text 00000058 gapBondMgrFindAddr +0001027c l F .text 00000250 gapBondMgrAddBond +000104cc l F .text 00000032 gapBondPairStateCB +200013d4 l O .bss 00000004 pGapPeriBondCB +000104fe l F .text 0000006a gapBondMgrChangeState.constprop.0 +00010568 l F .text 00000030 gapBondMgrEraseAllBondings.isra.0 +00010598 l F .text 00000042 gapBondMgrGetPublicAddr.isra.0 +000105da l F .text 000000ec gapBondMgrUpdateCharCfg +200013d8 l O .bss 00000001 gattCCFlag +20002a30 l O .bss 00000010 gapBond_Peri_OOBData +200013e4 l O .bss 00000001 gapBond_Peri_PairingMode +200013e3 l O .bss 00000001 gapBond_Peri_IOCap +200013e2 l O .bss 00000001 gapBond_Peri_OOBDataFlag +200013e1 l O .bss 00000001 gapBond_Peri_AuthReq +200013e0 l O .bss 00000001 gapBond_Peri_KeyDistList +200013dc l O .bss 00000004 gapBond_Peri_Passcode +200013d9 l O .bss 00000001 gapBond_AutoFail +200011e8 l O .data 00000001 gapBond_AutoFailReason +200011e7 l O .data 00000001 gapBond_KeySize +200013ce l O .bss 00000001 eraseAllBonds +200013c0 l O .bss 00000004 pAttr.1 +200013be l O .bss 00000002 service.0 +00000000 l df *ABS* 00000000 gapgattserver.c +000114f4 l F .text 0000006a ggs_SetAttrWPermit +0001155e l F .text 00000108 ggs_ReadAttrCB +00011666 l F .text 00000146 ggs_WriteAttrCB +200013f2 l O .bss 00000001 deviceNameLength +200013f4 l O .bss 00000004 ggs_AppCBs +200013e6 l O .bss 00000001 ggsAddService +200013e8 l O .bss 00000008 periConnParameters +20002a40 l O .bss 00000090 gapAttrTbl +200011ed l O .data 00000001 deviceNameCharProps +20001268 l O .data 00000008 gapService +200011ec l O .data 00000001 appearanceCharProps +200011eb l O .data 00000001 periConnParamCharProps +200013f0 l O .bss 00000002 appearance +200011ea l O .data 00000001 centAddrResCharProps +200011e9 l O .data 00000001 centAddrRes +00000000 l df *ABS* 00000000 peripheral.c +00000000 l df *ABS* 00000000 role.c +00000000 l df *ABS* 00000000 att.c +00000000 l df *ABS* 00000000 att_client.c +00000000 l df *ABS* 00000000 att_server.c +00000000 l df *ABS* 00000000 ll.c +00000000 l df *ABS* 00000000 ll_address.c +00000000 l df *ABS* 00000000 ll_advertise.c +0001b406 l F .highcode_lp 0000005e ll_adv_legacy_ind_tx_process +2000143c l O .bss 00000004 pfnAdvertiseEventCBs +0001b464 l F .highcode_lp 00000158 ll_adv_legacy_rx_process +00012f1a l F .text 00000092 ll_adv_legacy_rsp_tx_process +00000000 l df *ABS* 00000000 ll_core.c +00000000 l df *ABS* 00000000 ll_hop.c +00000000 l df *ABS* 00000000 ll_report.c +00013ed8 l F .text 00000004 llAdvertisingReportReport +00013edc l F .text 0000002c llRemoteConnectionParamRequestReport +00013f08 l F .text 00000050 llDirectedAdvertisingConnectionCompleteReport +00013f58 l F .text 0000006e llConnectCompleteReport +00013fc6 l F .text 0000003e llPHYUpdateCompleteReport +00014004 l F .text 00000038 llDataLengthChangeReport +0001403c l F .text 00000046 llRemoteConnectParamRequestReport +00014082 l F .text 00000024 llLTKRequestedReport +000140a6 l F .text 0000002e llReadRemoteFeatureCompleteReport +000140d4 l F .text 0000003c llConnectUpdateCompleteReport +00014110 l F .text 00000004 llDirectAdvertisingReportReport +00014114 l F .text 00000004 llCancelConnectionCompleteReport +00014118 l F .text 00000004 llReadLocalP256PublicKeyCompleteReport +0001411c l F .text 00000004 llGenerateDHKEYCompleteReport +00014120 l F .text 00000004 llEnhancedConnectCompleteReport +000142a4 l F .text 00000072 llDataPackageReport +00000000 l df *ABS* 00000000 ll_slave.c +00014316 l F .text 000000e4 ll_slave_tx_process +000143fa l F .text 00000744 ll_slave_listern +00014c02 l F .text 00000116 llSlaveSetFirstTimer +00000000 l df *ABS* 00000000 ll_pdu.c +00014f66 l F .text 00000004 llEncRsp +00014f6a l F .text 0000006e llRejectInd +00014fd8 l F .text 0000006e llRejectIndExt +00015046 l F .text 0000007c LL_RxLenUpdate +000150c2 l F .text 0000009a llConnectionUpdateInd +0001515c l F .text 0000001c llTerminateInd +00015178 l F .text 0000003a llStartEncRsp +000151b2 l F .text 0000007a llUnknowRsp +0001522c l F .text 0000001e llPauseEncReq +0001524a l F .text 0000003a llPauseEncRsp +00015284 l F .text 00000084 llVersionInd +00015308 l F .text 0000005a llPHYReq +00015362 l F .text 0000006c llPHYUpdateIND +000153ce l F .text 00000128 llConnectionParamReq +000154f6 l F .text 00000066 llFeatureReq +0001555c l F .text 00000062 llChannelMapReq +000155be l F .text 00000056 llLengthRsp +00015614 l F .text 0000004c llLengthReq +00015660 l F .text 00000130 llEncReq +00015790 l F .text 00000004 llPingRsp +00015794 l F .text 00000004 llPHYRsp +00015798 l F .text 00000004 llStartEncReq +0001579c l F .text 00000004 llFeatureRsp +000157a0 l F .text 00000004 llSlaveFeatureReq +000157a4 l F .text 00000004 llConnectionParamRsp +000157a8 l F .text 00000004 llPingReq +00000000 l df *ABS* 00000000 wchprintf.c +00000000 l df *ABS* 00000000 _lshrdi3.o +00000000 l df *ABS* 00000000 _udivdi3.o +00000000 l df *ABS* 00000000 adddf3.o +00000000 l df *ABS* 00000000 divdf3.o +00000000 l df *ABS* 00000000 muldf3.o +00000000 l df *ABS* 00000000 fixunsdfsi.o +00000000 l df *ABS* 00000000 floatsidf.o +00000000 l df *ABS* 00000000 floatunsidf.o +00000000 l df *ABS* 00000000 gesf2.o +00000000 l df *ABS* 00000000 lesf2.o +00000000 l df *ABS* 00000000 fixunssfsi.o +00000000 l df *ABS* 00000000 floatsisf.o +00000000 l df *ABS* 00000000 lib_a-memcmp.o +00000000 l df *ABS* 00000000 lib_a-strlen.o +00000000 l df *ABS* 00000000 lib_a-vprintf.o +00000000 l df *ABS* 00000000 lib_a-vsnprintf.o +00000000 l df *ABS* 00000000 lib_a-findfp.o +00017bde l F .text 00000066 std +00000000 l df *ABS* 00000000 lib_a-fwalk.o +00000000 l df *ABS* 00000000 lib_a-lock.o +00000000 l df *ABS* 00000000 lib_a-nano-mallocr.o +00017e3c l F .text 0000005a sbrk_aligned +00000000 l df *ABS* 00000000 lib_a-nano-svfprintf.o +00000000 l df *ABS* 00000000 lib_a-nano-vfprintf_i.o +00000000 l df *ABS* 00000000 lib_a-nano-vfprintf.o +00018660 l F .text 00000026 __sfputc_r +00000000 l df *ABS* 00000000 lib_a-sbrkr.o +00000000 l df *ABS* 00000000 lib_a-stdio.o +00000000 l df *ABS* 00000000 lib_a-wbuf.o +00000000 l df *ABS* 00000000 lib_a-writer.o +00000000 l df *ABS* 00000000 lib_a-wsetup.o +00000000 l df *ABS* 00000000 lib_a-closer.o +00000000 l df *ABS* 00000000 lib_a-fflush.o +00000000 l df *ABS* 00000000 lib_a-lseekr.o +00000000 l df *ABS* 00000000 lib_a-makebuf.o +00000000 l df *ABS* 00000000 lib_a-memchr.o +00000000 l df *ABS* 00000000 lib_a-mlock.o +00000000 l df *ABS* 00000000 lib_a-nano-freer.o +00000000 l df *ABS* 00000000 lib_a-nano-reallocr.o +00000000 l df *ABS* 00000000 lib_a-readr.o +00000000 l df *ABS* 00000000 lib_a-fstatr.o +00000000 l df *ABS* 00000000 lib_a-isattyr.o +00000000 l df *ABS* 00000000 lib_a-nano-msizer.o +00000000 l df *ABS* 00000000 close.o +00000000 l df *ABS* 00000000 fstat.o +00000000 l df *ABS* 00000000 isatty.o +00000000 l df *ABS* 00000000 lseek.o +00000000 l df *ABS* 00000000 read.o +00000000 l df *ABS* 00000000 lib_a-impure.o +20001158 l O .data 00000060 impure_data +00000000 l df *ABS* 00000000 gatt_uuid.c +00004456 g F .text 000001d4 Action_Task +00015e82 w F .text 00000004 printDouble +000190de g F .text 00000014 _malloc_usable_size_r +000076c8 g F .text 00000058 GAP_Bond +0000f818 g F .text 00000054 LL_AddWhiteListDevice +2000114c g O .data 0000000c gapServiceCBs +000093c8 g F .text 000000f4 gattServApp_IsWriteLong +20000ba8 g F .highcode 0000001e ll_rx_wait_finish +000190b8 g F .text 00000026 _isatty_r +00012622 g F .text 00000004 ATT_BuildReadRsp +00007024 g F .text 00000024 gapGetDevAddress +00005dee g F .text 00000024 tmos_get_periodic_task_time +20002a24 g O .bss 0000000c gDtm_t +00009a74 g F .text 00000096 gattServApp_ProcessWriteReq +00015968 g F .text 0000009e LL_ConnectionParamReq +20000ba2 g F .highcode 00000006 BB_IRQLibFunction +0000985e g F .text 0000010c gattServApp_ProcessExecuteWriteReq +0001135e g F .text 0000001a GAPBondMgr_Init +00007792 g F .text 00000004 GAP_ResolvePrivateAddr +00018e0e g F .text 0000002a _lseek_r +20000566 g F .highcode 0000000e FLASH_ROM_OUT +000033fa g F .text 00001018 Blv_CardlessPower_Tack +20000926 g F .highcode 000001c4 TMOS_SystemProcess +0000b0bc g F .text 0000004c l2capFreeChannel +000032a8 g F .text 000000a8 FZL_CtrlOut +0000abf6 g F .text 0000002c GATTServApp_AddService +0001a1f4 w .vector_handler 00000000 CMP_IRQHandler +00013344 g F .text 0000007c ll_connect_phy_update_dataLen +0000c1bc g F .text 0000005a smSendSMMsg +00012840 g F .text 00000016 ATT_ParseReadReq +0000c24c g F .text 0000002c smProcessPairingReq +200012e4 g O .bss 00000004 lsiFrq +20001248 g O .data 00000002 charUserDescUUID +0000b202 g F .text 00000026 L2CAP_bm_alloc +0001251a g F .text 00000046 attSendRspMsg +0000c426 g F .text 00000032 smpParseIdentityAddrInfo +0000cbaa g F .text 0000000a smpBuildPairingRsp +00004e2e g F .text 0000010e UART_RECEIVE +00014e64 g F .text 000000a8 LL_WhitelistAdd +0000c490 g F .text 0000002c smpParsePairingConfirm +00015e86 w F .text 00000362 print +00012a30 g F .text 00000030 ATT_HandleValueInd +0000ac28 g F .text 00000026 GATTServApp_InitCharCfg +000161e8 w F .text 00000024 printf +200019b8 g .data 00000000 __global_pointer$ +0000bd32 g F .text 0000002e linkDB_State +00003366 g F .text 00000052 DetWin_WriteData_Bit +0000bc84 g F .text 0000002a linkDB_NumActive +0000c058 g F .text 00000064 smEndPairing +00006328 g F .text 00000008 TMOS_ClockRegister +20001314 g O .bss 00000004 pGapAdvertState +2000141e g O .bss 00000001 gapRole_AdvEnabled +20001411 g O .bss 00000001 gapRole_AdvChanMap +0000c31a g F .text 0000001e smDetermineKeySize +00018a1a g F .text 0000002e __sseek +20001250 g O .data 00000002 secondaryServiceUUID +00017cac g F .text 00000072 __sinit +00018a4e g F .text 000000be __swbuf_r +20000442 w F .highcode 00000084 HardFault_Handler +0000aaac g F .text 000000e0 GATT_RegisterService +00006f8a g F .text 0000002a gapAddAddrAdj +0001277a g F .text 00000040 ATT_FindByTypeValueRsp +00009502 g F .text 0000001a gattResetServerInfo +0000bc38 g F .text 00000036 linkDB_FindFirst +0000be18 g F .text 00000050 linkDB_GetSMEvtID +00017c4e g F .text 00000046 __sfmoreglue +00012984 g F .text 00000030 ATT_ParsePrepareWriteReq +00015d8a w F .text 000000f4 printInt +00018f46 g F .text 00000008 __malloc_unlock +00006626 g F .text 0000002c ble_ll_common_rand16 +00012a60 g F .text 00000042 LL_ProcessEvent +00010e66 g F .text 00000014 GAPBondMgr_PeriSecurityReq +20001460 g O .bss 00000064 Dbg_Buffer +0001317a g F .text 00000024 ll_connect_set_windowWidening +00007ba2 g F .text 00000028 GAP_SetParamValue +000055e8 g F .text 0000009a HAL_ProcessEvent +2000141b g O .bss 00000001 gapRole_AdvEventType +0000c4bc g F .text 0000001a smpParsePairingFailed +0001a1f4 w .vector_handler 00000000 GPIOA_IRQHandler +00012e52 g F .text 00000068 ll_advertise_filter +20001390 g O .bss 00000004 gptrBBReg +00012164 g F .text 00000070 GAPRole_PeripheralInit +000063f4 g F .text 0000002a TMOS_ProcessEventRegister +20000090 g F .highcode 00000060 SysTick_Handler +00011a18 g F .text 000001b8 gapRole_PeripheralProcessGAPMsg +0000c130 g F .text 0000008c smProcessEncryptChange +00012160 g F .text 00000004 GAPRole_UpdatePHY +0000b446 g F .text 0000005a l2capProcessReq +00006224 g F .text 000000ea tmos_idle +00012446 g F .text 00000020 ATT_ParseErrorRsp +00006fda g F .text 0000004a gapFreeAuthLink +00008a7c g F .text 00000086 GATT_ServiceChangedInd +0000251c g F .text 000000b6 EEPROM_Read_RARDelayTim +0000c278 g F .text 0000002c smSetPairingReqRsp +000020f8 g F .text 00000026 memmove +000095ca g F .text 00000184 gattServerProcessMsgCB +200013ac g O .bss 00000001 gTuneFilter2M +0000f79a g F .text 0000007e LL_SetDataLength +20000fbe g F .highcode 0000000e ll_wait_connect_event +00007052 g F .text 0000000a gapGetIRK +0001b3d0 g F .highcode_lp 00000036 ll_advertise_status_closed +0000217a g F .text 00000076 Dbg_Println +20001384 g O .bss 00000008 gBleHostPara +0000f55e g F .text 00000052 API_LE_SetExtendedAdvertisingParametersCmd +0001a1f4 w .vector_handler 00000000 NMI_Handler +00008b02 g F .text 0000001c GATT_bm_free +200000f0 g F .highcode 000000b4 UART_IRQHandler +2000125c g O .data 00000002 gapServiceUUID +20001379 g O .bss 00000001 l2capTaskID +00010e44 g F .text 00000022 GAPBondMgr_PeripheralRegister +20001434 g O .bss 00000004 attClientNotifyTxCB +2000089a g F .highcode 00000040 tmos_memset +00008d9c g F .text 0000008e gattClientHandleConnStatusCB +0000b618 g F .text 0000005e l2capNotifyData +00019330 g O .text 00000087 DefaultGroupInfo +200012d4 g O .bss 00000001 portstate +0000e4d6 g F .text 00000022 ble_ll_set_timeout +0000dbd2 g F .text 0000005a HOST_LE_LongTermKeyRequestEvent +00009370 g F .text 0000002a gattServApp_FindPrepareWriteQ +0000b3d2 g F .text 00000014 l2capParseSignalHdr +000079e2 g F .text 0000001e gapFreeEstLink +00012c5e g F .text 000000aa ll_advertise_generated_pdu +000118e4 g F .text 00000108 GGS_SetParameter +20000c9c g F .highcode 000000f6 ll_tx_wait_finish +00004412 g F .text 00000044 Dev_VirtualCard_InType_Get +00008d1c g F .text 00000080 gattResetClientInfo +0001b040 g F .highcode_lp 0000004c BB_DevInit +00019090 g F .text 00000028 _fstat_r +0001a2a2 g F .highcode_fast 0000002e tmos_strlen +000133e2 g F .text 00000008 ll_connect_flowcontrol_init +20000c38 g F .highcode 00000064 ble_ll_chkcrc +0000f688 g F .text 00000026 LL_ReadRssi +0001a306 g F .highcode_fast 00000040 tmos_isbufset +0000bd60 g F .text 00000028 linkDB_UpdateMTU +0000d72c g F .text 00000080 sm_ah +2000145c g O .bss 00000004 errno +0000ba58 g F .text 00000012 L2CAP_CmdReject +00005e52 g F .text 000000ce tmos_update_callback_timer +00012428 g F .text 0000001e ATT_GetMTU +00004792 g F .text 0000005a NoCard_Read_Version_Processing +2000062a g F .highcode 00000060 FLASH_CMD_ROM_WRITE +20001278 g .bss 00000000 _sbss +0000e47c g F .text 0000005a SetTxPower +00019bbc g O .text 00000019 IOCapMatrix +0000e416 g F .text 00000066 GetTxPower +0000795c g F .text 00000086 gapPasskeyNeededCB +00008e66 g F .text 000000fe gattClientProcessMsgCB +0000be68 g F .text 000000aa linkDB_Add +200012e8 g O .bss 00000004 RTCTigFlag +00005558 g F .text 00000020 UART_RecvString +000119ec g F .text 0000002c GGS_AddService +00006d0a g F .text 00000052 GAP_ParamInit +20000558 g F .highcode 0000000e FLASH_ROM_IN +00011ce6 g F .text 0000004a GAPRole_PeripheralConnParamUpdateReq +0000fde4 g F .text 000000cc LL_SendDataPkt +000133c0 g F .text 00000022 ll_connect_parse_datapdu_head +00019c10 g O .text 0000001a VER_LIB +200014fc g O .bss 00000010 g_rar_info +0000de48 g F .text 0000003e HOST_ReadRemoteVersionInfoEvent +00008560 g F .text 00000048 GAP_PeripheralParamInit +0000fcc0 g F .text 00000096 LL_SetExtendedScanResponseData +00006776 g F .text 000000a2 tmos_snv_init +00013df4 g F .text 00000030 LL_CoreClose +200012c4 g O .bss 00000001 BLE_OTA_flag +00004fc6 g F .text 00000050 HSECFG_Capacitance +0000c2a4 g F .text 00000076 sm_c1 +0000f5d0 g F .text 00000020 API_LE_SetExtendedScanResponseDataCmd +00003138 g F .text 00000060 Get_Port_State +000028dc g F .text 0000000e SimpleProfile_RegisterAppCBs +200028a8 g O .bss 00000020 gTmosPara +20001370 g O .bss 00000004 pL2capData +00011eba g F .text 000000be GAPRole_GetParameter +00007ace g F .text 0000004c GAP_Signable +20001220 g O .data 00000002 simpleProfilechar5UUID +000138bc g F .text 00000028 ll_connect_procedure_timeout +000132a0 g F .text 000000a4 ll_connect_update_dataLen +00008cc0 g F .text 00000026 gattClientNotifyTxCB +000020d2 g F .text 00000016 memcpy +0001363c g F .text 00000064 LL_ConnectToStandby +00014e2c g F .text 00000038 LL_SlaveEnalbe +000023aa g F .text 00000092 EEPROM_Read_PortGroupData +0000327e g F .text 0000002a Get_DETCH_State +00007c0c g F .text 0000004c GAP_Init +0000ca58 g F .text 000000a2 SM_ProcessEvent +0000f4a2 g F .text 0000002a API_LE_RemoteConnParamReqReplyCmd +0000b108 g F .text 00000028 l2capHandleTimerCB +00017c44 g F .text 0000000a _cleanup_r +00018082 g F .text 00000258 _svfprintf_r +0001780e g F .text 00000070 .hidden __floatsidf +0000ada4 g F .text 00000032 GATTServApp_Init +00015e7e w F .text 00000004 printLongLongInt +0000bcb4 g F .text 00000020 linkDB_Register +2000141d g O .bss 00000001 gapRole_PHYTx +00015b28 g F .text 00000084 LL_LengthRsp +00005450 g F .text 0000004a WWDG_ClearFlag +200029e4 g O .bss 00000010 l2capChannels +0000f4f6 g F .text 0000002a API_LE_SetDataLengthCmd +00016234 g F .text 00000048 puts +0000f6c8 g F .text 00000098 LL_RemoteConnParamReqReply +00007a00 g F .text 00000072 gapUpdateConnSignCounter +20001224 g O .data 00000002 simpleProfilechar4UUID +0000b700 g F .text 00000032 l2capNotifyEvent +00012598 g F .text 00000040 ATT_ExchangeMTUReq +0000b1be g F .text 00000002 L2CAP_HostNumCompletedPkts +0001594c g F .text 0000001c LL_RejectInd +0000a63a g F .text 00000068 GATT_VerifyReadPermissions +00012364 g F .text 00000088 ATT_ParsePacket +20001a48 g O .bss 0000005f g_uart +00002cb6 g F .text 0000017c Peripheral_Init +0001347e g F .text 000000a2 ll_connect_event_continue +000048e2 g F .text 00000080 NoCard_Set_RDR_Processing +000131d6 g F .text 00000038 ll_connect_set_connect_timeout +00004d46 g F .text 00000036 Set_Uart_recvTimeout +20001428 g O .bss 00000004 MemCtlEnd +0000dee0 g F .text 00000040 HOST_CommandStatusEvent +00003198 g F .text 000000e6 DIP_ScanTask +0001ad3a g F .highcode_fast 0000009a LL_HopGetChannel +0001a1f4 w .vector_handler 00000000 SWI_Handler +000190fe g F .text 0000000c _fstat +00001004 g .init 00000000 _einit +00005c96 g F .text 00000092 tmos_msg_send +20001304 g O .bss 00000004 tasksArr +2000142c g O .bss 00000004 MemCtlPartition +000093b2 g F .text 00000016 gattServApp_FindAuthorizeAttrCB +00017bce g F .text 00000010 vsnprintf +00019dc8 g O .text 00000010 btBaseUUID +00017966 g F .text 00000098 .hidden __lesf2 +20001228 g O .data 00000002 simpleProfilechar1UUID +20001414 g O .bss 00000006 gapRole_AdvDirectAddr +000177b8 g F .text 00000056 .hidden __fixunsdfsi +20000b1a g F .highcode 00000088 BB_IRQLibHandler +20000d92 g F .highcode 00000128 LLE_IRQLibHandler +200012f8 g O .bss 00000004 pfnProcessCBs +0000b184 g F .text 0000001a l2capStartTimer +0000e320 g F .text 00000032 LL_Encrypt +0001a1f4 w .vector_handler 00000000 BB_IRQHandler +000059f6 g F .text 00000136 FLASH_EEPROM_CMD +0000cd16 g F .text 0000000a smpBuildPairingReq +0000f362 g F .text 0000000e RFEND_TXFtune +0000cc14 g F .text 00000030 smpBuildEncInfo +0001a1f4 w .vector_handler 00000000 Break_Point_Handler +00015bac g F .text 00000052 LL_PHYReq +00006fb4 g F .text 00000026 gapDetermineAddrType +0000cc80 g F .text 00000030 smpBuildIdentityInfo +20001348 g O .bss 00000004 pfnClientProcessMsgCB +0000e650 g F .text 0000008c RFEND_RXFilter +00007048 g F .text 0000000a gapGetDevAddressMode +200005f4 g F .highcode 00000036 FLASH_START +000055b8 g F .text 00000030 Lib_Write_Flash +0000a0b2 g F .text 000002b2 GATTServApp_ReadAttr +00018982 g F .text 00000028 _sbrk_r +0000c77a g F .text 000000b2 SM_PasskeyUpdate +2000141c g O .bss 00000001 gapRole_PHYRx +000122a2 g F .text 0000003e ATT_ConvertUUIDto128 +00011d82 g F .text 000000f6 GAPRole_PeripheralEnable +0000705c g F .text 0000000a gapGetSRK +00006aa8 g F .text 0000023e tmos_snv_write +200013f8 g O .bss 00000004 pGapRolesPeri_AppCGs +0000c4d6 g F .text 000000a4 smProcessDataMsg +00013520 g F .text 0000005a ll_set_connect_event +200013ad g O .bss 00000001 gTuneFilter +00012978 g F .text 0000000c ATT_WriteRsp +0001320e g F .text 00000060 ll_connect_init_dataLen +00013116 g F .text 0000005e LL_AdvertiseEnalbe +00006678 g F .text 00000032 TMOS_TimerSet +0000ce6a g F .text 00000010 smPairingSendSingingInfo +0001a6ec g F .highcode_fast 000000c6 tmos_memory_allocate +0000f666 g F .text 00000022 LL_ReadBDAddr +00002464 g F .text 000000b8 EEPROM_Write_PortGroupData +00019066 g F .text 0000002a _read_r +000130d2 g F .text 0000003e llAdvertiseTimeout +0000db70 g F .text 00000062 HOST_LE_ReadRemoteUsedFeaturesCompleteEvent +20000536 g F .highcode 00000014 FLASH_ROM_BEG +00008832 g F .text 0000002c gattSendFlowCtrlEvt +00012560 g F .text 00000012 ATT_ErrorRsp +00006a54 g F .text 00000054 tmos_snv_notify +2000137c g O .bss 00000004 linkDB +0000bf3e g F .text 0000003e linkDB_GetPairingParam +00012800 g F .text 00000040 ATT_ReadByTypeRsp +000125d8 g F .text 0000000e ATT_BuildExchangeMTURsp +00002ec2 g F .text 0000016c Peripheral_ProcessEvent +0001213e g F .text 00000022 GAPRole_TerminateLink +0000c886 g F .text 000000a0 SM_StartPairing +000053f8 g F .text 00000058 WWDG_ResetCfg +0000a4b6 g F .text 00000184 gattServApp_ProcessFindByTypeValueReq +2000123c g O .data 00000002 appearanceUUID +00006ce6 g F .text 00000004 tmos_snv_compact +0000ccb0 g F .text 00000036 smpBuildIdentityAddrInfo +00008536 g F .text 0000002a GAP_PeriConnRegister +0001a2d0 g F .highcode_fast 00000036 tmos_revmemcpy +0001a210 g F .highcode_fast 00000092 TMOS_CB_PeriodicProcessEvent +2000068a g F .highcode 00000072 FLASH_CMD_ROM_ERASE +20001288 g O .bss 00000004 SysTick_Now +0001663c g F .text 00000706 .hidden __adddf3 +0001a1f4 w .vector_handler 00000000 Ecall_M_Mode_Handler +00011e78 g F .text 00000042 GAPRole_ParamInit +00007072 g F .text 00000022 gapIncSignCounter +200013a4 g O .bss 00000001 tmosSign +000157ac g F .text 00000016 LL_SendAck +0000747c g F .text 0000009c gapSendLinkUpdateEvent +20002ad0 g O .bss 00000010 gapRole_OldSRK +00012298 g F .text 0000000a ATT_ParamInit +0000d70c g F .text 00000020 sm_xor +0001910a g F .text 0000000c _isatty +0000dfa2 g F .text 00000206 HOST_RecvDataPackets +20001450 g O .bss 00000001 __lock___sinit_recursive_mutex +20001270 g O .data 00000004 _global_impure_ptr +00008b44 g F .text 00000152 GATT_ProcessEvent +20000574 g F .highcode 00000048 FLASH_ROM_ADDR +00008734 g F .text 0000002e GAP_PeriDevMgrInit +00018ff0 g F .text 00000076 _realloc_r +00006d5c g F .text 0000005e sendTerminateEvent +00002e32 g F .text 0000004a Ble_Printfln +20001310 g O .bss 00000004 pEstLink +000162a2 g F .text 0000039a .hidden __udivdi3 +00007b48 g F .text 0000005a GAP_TerminateLinkReq +20001444 g O .bss 00000004 llRecvDataDisable +0001787e g F .text 00000052 .hidden __floatunsidf +0000f8c6 g F .text 000000d8 LL_LtkReqReply +0000549a g F .text 00000028 _sbrk +2000140e g O .bss 00000002 gapRole_MinConnInterval +0000b130 g F .text 00000052 l2capFreePendingPkt +200012e0 g O .bss 00000001 halTaskID +0000773c g F .text 00000050 GAP_PasscodeUpdate +200028fc g O .bss 00000014 bleClock_t +000070c8 g F .text 0000009e gapProcessDisconnectCompleteEvt +0000d5e4 g F .text 00000024 leftshift_onebit +20001440 g O .bss 00000004 pfnConnectEventCBs +20001300 g O .bss 00000004 fnGetClockCBs +0000641e g F .text 000000d6 BLE_LibInit +0001b0d6 g F .highcode_lp 00000062 LLE_DevInit +0000f388 g F .text 00000020 API_ReadBDADDRCmd +00013e24 g F .text 00000014 LL_CoreInit +0001a500 g F .highcode_fast 0000006a BLE_SetPHYTxMode +20001430 g O .bss 00000004 MemCtlStart +0001b138 g F .highcode_lp 0000002a RFEND_WaitTune +000127ba g F .text 00000046 ATT_ParseReadByTypeReq +0000f99e g F .text 0000003e LL_LtkReqNegReply +20000bc6 g F .highcode 00000072 ll_rx_start +000065b4 g F .text 00000046 ll_get_sca_own +0001a444 g F .highcode_fast 00000046 tmos_set_event +0000c0f2 g F .text 0000003e smNextPairingState +00006574 g F .text 00000040 ll_get_sca_divisor +0000b1b8 g F .text 00000006 L2CAP_GetMTU +0000dad2 g F .text 0000005c HOST_LE_ConnectionCompleteEvent +200004ec g F .highcode 00000016 RTC_IRQHandler +000125e6 g F .text 0000001e ATT_BuildFindInfoRsp +20002b68 g .bss 00000000 _ebss +20001254 g O .data 00000002 primaryServiceUUID +0000f3d6 g F .text 00000020 API_LE_ReadBufSizeCmd +0000acbc g F .text 000000e8 GATT_InitServer +000088b8 g F .text 00000048 GATT_ExchangeMTU +00012d08 g F .text 0000014a ll_advertise_to_connection_state +20001380 g O .bss 00000004 pSmGenKey +0000f370 g F .text 00000016 API_DisconnectCmd +00017bce g F .text 00000010 vsniprintf +0001a1f4 w .vector_handler 00000000 SPI_IRQHandler +00013dc6 g F .text 0000002e LL_CoreDataListFree +0000cdee g F .text 00000036 smPairingSendIdentityAddrInfo +00014124 g F .text 0000013a LL_ProcessTMOSReportMsg +000108fa g F .text 000000a8 GAPBondMgr_LinkTerm +0000ba6a g F .text 00000016 L2CAP_ConnParamUpdateReq +000052f8 g F .text 0000001c FLASH_ROM_READ +0000302e g F .text 00000006 Peripheral_GetBLEState +0000ba18 g F .text 00000040 l2capBuildCmdReject +000085a8 g F .text 00000048 gapSendMakeDiscEvent +0000cdde g F .text 00000010 smPairingSendEncInfo +0000ddfc g F .text 0000004c HOST_EncryptionChangeEvent +20001448 g O .bss 00000001 __lock___malloc_recursive_mutex +200012ec g O .bss 00000002 LSIWakeup_MaxTime +0001260e g F .text 00000014 ATT_BuildReadByTypeRsp +00004b10 g F .text 000000b0 print_RDRsta_Tack +0000ab8c g F .text 0000006a GATTServApp_RegisterService +0000fa58 g F .text 000001d2 LL_SetExtendedAdvertisingParameters +000117ac g F .text 00000138 GGS_ParamInit +000057da g F .text 0000002a HAL_Init +200005bc g F .highcode 00000038 FLASH_ROM_WAIT +000033b8 g F .text 00000042 DetWin_ReadData_Bit +00006dba g F .text 00000006 gapRegisterPeripheral +0001a922 g F .highcode_fast 00000418 llProcessConnectEvent +00005578 g F .text 00000028 UART_Remap +0001a64e g F .highcode_fast 00000046 ble_ll_hw_api_shut +000109a2 g F .text 00000116 GAPBondMgr_ResolveAddr +20001284 g O .bss 00000004 SysTick_Last +000178d0 g F .text 00000096 .hidden __gtsf2 +00002216 g F .text 00000086 EEPROM_Read_PortInfo +0000de86 g F .text 0000005a HOST_CommandCompleteEvent +0001627c g F .text 00000026 .hidden __lshrdi3 +2000128c g O .bss 00000004 SysTick_1s +2000138c g O .bss 00000004 gptrAESReg +2000150c g O .bss 0000008b g_portGp +00006e1e g F .text 00000030 gapL2capConnParamUpdateReq +00006f3c g F .text 0000004e GAP_ParamsInit +0001b162 g F .highcode_lp 000000d8 ll_advertise_tx +00009324 g F .text 0000004c gattServApp_ClearPrepareWriteQ +20001290 g O .bss 00000004 SysTick_1ms +0000e5d6 g F .text 0000007a RFEND_DevInit +20001420 g O .bss 00000004 gapRole_state +00006dc0 g F .text 00000006 gapRegisterPeripheralConn +0000ddb6 g F .text 00000046 HOST_DisconnectionCompleteEvent +00017b40 g F .text 0000002e vprintf +0001a100 g O .text 00000020 __sf_fake_stderr +0000f386 g F .text 00000002 API_MD_DisconnectCmd +000094bc g F .text 0000001a gattFindService +0000550c g F .text 00000028 UART_INTCfg +0001262e g F .text 00000014 ATT_BuildReadByGrpTypeRsp +0000778c g F .text 00000006 GAP_RegisterForMsgs +0001290a g F .text 00000040 ATT_ReadByGrpTypeRsp +0000d608 g F .text 0000002c padding +0000bf7c g F .text 0000003e linkDB_NeedSendKey +20000000 g .highcode 00000000 _vector_base +00017e3a g F .text 00000002 __retarget_lock_release_recursive +00006eb2 g F .text 0000008a GAP_SecParamsInit +0000b9bc g F .text 00000030 l2capSendPkt +0001a1f4 w .vector_handler 00000000 PWMX_IRQHandler +200012f0 g O .bss 00000004 msg_qHead +00009e4c g F .text 00000074 GATT_Notification +0001235e g F .text 00000006 ATT_RegisterServer +0001a56a g F .highcode_fast 000000e4 BLE_SetPHYRxMode +00017fa4 g F .text 000000de __ssputs_r +000133ea g F .text 00000020 LL_ConnectFlowcontrolTx +00008e2a g F .text 0000003c gattClientHandleTimerCB +00019c00 g O .text 00000010 const_Rb +00005534 g F .text 00000024 UART_SendString +0000f5b0 g F .text 00000020 API_LE_SetExtendedAdvertisingDataCmd +00007620 g F .text 000000a8 GAP_Authenticate +00008f64 g F .text 00000072 gattStoreClientInfo +0000fa00 g F .text 00000058 LL_SetPHY +00012358 g F .text 00000006 ATT_RegisterClient +0000d08c g F .text 00000130 smResponderProcessLTKReq +00012a00 g F .text 00000030 ATT_HandleValueNoti +000091c0 g F .text 00000016 GATTServApp_ReadCharCfg +00004bc0 g F .text 00000186 BLV_DETInfo_Recv_Processing +0000a00a g F .text 000000a8 GATT_FindNextAttr +0000f47a g F .text 00000028 API_LE_LtkReqNegReplyCmd +00018686 g F .text 00000042 __sfputs_r +00013914 g F .text 000002c4 ll_process_after_connect_event +0000b84c g F .text 00000080 L2CAP_SendData +0000b75c g F .text 0000008e l2capEncapSendData +00017c94 g F .text 00000006 __sfp_lock_acquire +00018f26 g F .text 00000018 memchr +0000bcd4 g F .text 00000048 linkDB_Remove +0000886a g F .text 00000026 gattStopTimer +00015abc g F .text 0000006c LL_LengthReq +00018f4e g F .text 000000a2 _free_r +2000122c g O .data 00000002 simpleProfileServUUID +20001298 g O .bss 00000004 p_image_flash +200011e6 g O .data 00000001 gapBond_Auto +00012466 g F .text 000000b4 attSendMsg +20001376 g O .bss 00000001 l2capId +000087b0 g F .text 00000082 gattNotifyEvent +0000f4cc g F .text 0000002a API_LE_RemoteConnParamReqNegReplyCmd +000021f0 g F .text 00000026 EEPROM_CheckSum +00011f78 g F .text 000001bc GAPRole_SetParameter +000092f0 g F .text 00000034 GATTServApp_SendServiceChangedInd +00009264 g F .text 0000002c gattServApp_WriteAttrCB +00001000 g .init 00000000 _start +0001262a g F .text 00000004 ATT_BuildReadMultiRsp +0000f520 g F .text 00000020 API_LE_SetDefaultPHYCmd +0001a48a g F .highcode_fast 00000076 tmos_update_periodic_callback_timer +00009bae g F .text 00000088 GATT_FindHandleUUID +0000dd50 g F .text 00000066 HOST_LE_ScanRequestReceivedEvent +00012886 g F .text 00000004 ATT_ParseReadBlobReq +00002974 g F .text 00000040 simpleProfile_Notify +00012fc4 g F .text 000000c6 llAdvertiseSet +00011c20 g F .text 000000c6 GAPRole_PeripheralProcessEvent +20001658 g O .bss 000002d0 portBuff +00019116 g F .text 0000000c _lseek +20001438 g O .bss 00000004 attServerNotifyTxCB +00014f54 g F .text 00000012 LL_WhitelistInit +0000bde0 g F .text 00000038 linkDB_PeripheralLinkNum +200029f4 g O .bss 00000018 linkCBs +00017a4c g F .text 000000c0 .hidden __floatsisf +00015ca0 w F .text 000000ea prints +0000e55e g F .text 00000078 BLE_IPCoreInit +0000f414 g F .text 0000001e API_LE_AddWhiteListCmd +00015bfe g F .text 00000058 LL_PHYRsp +00007b1a g F .text 0000002a GAP_TerminateAuth +0000cd36 g F .text 00000016 smpBuildSecurityReq +2000134c g O .bss 00000004 clientInfoTbl +0000e1a8 g F .text 00000178 AES_DevAESEnc +0000c6a8 g F .text 000000d2 SM_GenerateAuthenSig +0000740c g F .text 00000070 gapSendDeviceInitDoneEvent +00005b9c g F .text 00000062 tmos_msg_allocate +20001938 g O .bss 00000018 sensor_info +20001230 g O .data 00000002 serviceChangedUUID +0000b1c0 g F .text 0000002a L2CAP_RegisterApp +0000ce24 g F .text 00000010 smPairingSendIdentityInfo +0000bd1c g F .text 00000016 linkDB_Role +20000000 g .highcode 00000000 _highcode_vma_start +00005d98 g F .text 00000056 tmos_memdup +00015836 g F .text 0000001a LL_StartEncReq +0000e3b4 g F .text 00000062 AES_DevPktDec +0000b3e6 g F .text 00000060 l2capParsePacket +00008b1e g F .text 00000026 GATT_Init +20002928 g O .bss 0000001c gapParams +000084e6 g F .text 00000022 GAP_GetAdvertisingAdvData +20001308 g O .bss 00000004 EventsArr +0000462a g F .text 0000004a NetCRC16_Data +0000cd20 g F .text 00000016 smpBuildPairingFailed +00003034 g F .text 000000c6 Sensor_Init +00011378 g F .text 0000017c GAPBondMgr_ProcessEvent +00015a06 g F .text 00000096 LL_ConnectionParamRsp +0000df62 g F .text 00000040 HOST_NumberOfCompletedPacketsEvent +00007362 g F .text 000000aa gapSendPairingReqEvent +2000141a g O .bss 00000001 gapRole_AdvDirectType +0000b732 g F .text 0000002a l2capStoreFCPkt +0000f540 g F .text 0000001e API_LE_SetPHYCmd +000065fa g F .text 0000002c ble_ll_common_rand8 +0000d8ce g F .text 00000082 sm_s1 +0000ac4e g F .text 0000006e gattServApp_HandleConnStatusCB +00018c28 g F .text 00000026 _close_r +0001a1f4 w .vector_handler 00000000 KEYSCAN_IRQHandler +20001018 g .data 00000000 _data_vma +0001b08c g F .highcode_lp 0000004a LLE_DevSetMode +0000b956 g F .text 00000066 l2capSendReq +000072f2 g F .text 00000070 gapSendBondCompleteEvent +200013b8 g O .bss 00000004 gptrRFENDReg +00017b0c g F .text 00000024 memcmp +0000213a g F .text 0000001a WDT_Feed +0001288a g F .text 00000030 ATT_ReadBlobRsp +20001408 g O .bss 00000004 gapRole_signCounter +00012bfe g F .text 00000060 llAdvertiseCreateCore +200001a4 g F .highcode 00000240 SetSysClock +20001377 g O .bss 00000001 l2capNumRecvDataPkts +00012580 g F .text 00000018 ATT_ParseExchangeMTURsp +0001a1f4 w .vector_handler 00000000 USB_IRQHandler +20000fcc g F .highcode 00000046 LL_WhitelistLookup +20002b10 g O .bss 00000058 gBleLlPara +00018b38 g F .text 000000f0 __swsetup_r +00013e84 g F .text 00000054 LL_HopInit +0000a76c g F .text 000001ce gattServApp_ProcessReadByGrpTypeReq +200007be g F .highcode 0000003e FLASH_CMD_GET_UNIQUE_ID +000028ea g F .text 0000008a SimpleProfile_SetParameter +00016d42 g F .text 0000056e .hidden __divdf3 +00017d1e g F .text 000000b0 __sfp +000128ba g F .text 00000018 ATT_ParseReadMultiReq +0001586a g F .text 0000001c LL_UnknowRsp +2000074c g F .highcode 00000012 FLASH_CMD_ROM_PWR +00017ca6 g F .text 00000006 __sinit_lock_release +00012eba g F .text 00000060 ll_advertise_event_closed +2000140c g O .bss 00000002 gapRole_MaxConnInterval +00007a72 g F .text 00000016 GAP_L2capConnParamUpdateReq +00017b6e g F .text 00000060 _vsnprintf_r +20002b00 g O .bss 00000010 gapRole_IRK +0000dc2c g F .text 00000042 HOST_LE_RemoteConnectionParameterRequestEvent +000172b0 g F .text 00000508 .hidden __muldf3 +00007796 g F .text 000001c6 gapPairingCompleteCB +000189aa g F .text 0000002a __sread +0001425e g F .text 00000046 LL_ReportGenerateEvent +0000211e g F .text 0000001c WDT_Init +00018f3e g F .text 00000008 __malloc_lock +00014d18 g F .text 00000114 llSlaveStartEvent +0000dc6e g F .text 00000048 HOST_RemoteConnectionParameterRequestEvent +20001aa8 g O .bss 00000e00 MEM_BUF +0000ce34 g F .text 00000036 smPairingSendMasterID +00018d80 g F .text 0000008e _fflush_r +000121d4 g F .text 0000001c tmos_memory_getlen +00012134 g F .text 00000006 GAPRole_BroadcasterSetCB +00013174 g F .text 00000006 LL_ConnectEventRegister +00008890 g F .text 00000028 GATT_AppCompletedMsg +0001a140 g O .text 00000020 __sf_fake_stdin +000025d2 g F .text 000000be EEPROM_Init +00017e38 g F .text 00000002 __retarget_lock_acquire_recursive +00007094 g F .text 00000034 gapProcessConnEvt +200008da g F .highcode 0000004c tmos_memcmp +2000127c g O .bss 00000004 Dbg_Switch +0001a1f4 w .vector_handler 00000000 I2C_IRQHandler +000020e8 g F .text 00000010 memset +200013a8 g O .bss 00000004 gptrLLEReg +00004f3c g F .text 0000008a main +00019dd8 g O .text 00000040 funcArr +000157c2 g F .text 00000024 LL_TerminateInd +00007bca g F .text 00000042 GAP_DeviceInit +00005d2e g F .text 0000006a TMOS_CB_ProcessEvent +00015a9c g F .text 00000020 LL_RejectIndExt +00010d3e g F .text 0000008a GAPBondMgr_ServiceChangeInd +00009986 g F .text 000000ee gattServApp_ProcessPrepareWriteReq +0000f63e g F .text 00000028 LL_MD_Disconnect +00014b3e g F .text 000000c4 llSlaveCreateCore +00012282 g F .text 00000016 ATT_BuildErrorRsp +0000cd4c g F .text 0000002e smGeneratePairingRsp +00017e36 g F .text 00000002 __retarget_lock_init_recursive +00002890 g F .text 0000004c SimpleProfile_AddService +0001add4 g F .highcode_fast 00000264 LL_HopGetChannel2 +0000b2a4 g F .text 000000b6 L2CAP_ProcessEvent +200013c4 g O .bss 00000001 gapBond_Invalid +00017966 g F .text 00000098 .hidden __ltsf2 +000091d6 g F .text 0000003a GATTServApp_WriteCharCfg +200013fc g O .bss 00000004 pGapRoles_AppCGs +00005804 g F .text 00000026 BLE_ClockConfig +00018a48 g F .text 00000006 __sclose +00007c58 g F .text 00000394 GAP_ProcessEvent +00014f0c g F .text 00000048 LL_WhitelistClearAll +000158d8 g F .text 0000001a LL_PauseEncRsp +20001950 g O .bss 000000a5 VCard_Info +00002e7c g F .text 00000006 Ble_Buff_Print +000128d2 g F .text 00000038 ATT_ReadMultiRsp +00005016 g F .text 000000ea RTC_InitClock +00017e96 g F .text 0000010e _malloc_r +20002af0 g O .bss 00000010 gapRole_SRK +00009290 g F .text 00000060 GATTServApp_SendCCCUpdatedEvent +20000ec0 g F .highcode 000000c0 tmos_memory_free +0000f452 g F .text 00000028 API_LE_LtkReqReplyCmd +000158f2 g F .text 0000005a LL_VersionInd +20001280 g O .bss 00000004 SysTick_Diff +0000f760 g F .text 0000003a LL_RemoteConnParamReqNegReply +0000e4f8 g F .text 00000066 BLE_RegInit +00006330 g F .text 000000c4 TMOS_Init +00010e7a g F .text 00000150 GAPBondMgr_LinkEst +0000a93a g F .text 00000172 gattServApp_ProcessReadByTypeReq +0000f610 g F .text 0000002e LL_Disconnect +00010ab8 g F .text 00000286 GAPBondMgr_SetParameter +000106c6 g F .text 00000128 GAPBondMgr_ParamInit +00005f20 g F .text 00000140 tmos_start_task +0000f3f6 g F .text 0000001e API_LE_ClearWhiteListCmd +00008900 g F .text 00000040 GATT_NotifyEvent +20002910 g O .bss 00000018 gapParameters +000122e0 g F .text 00000078 ATT_CompareUUID +20001018 g O .data 0000000c simpleProfileCBs +20001240 g O .data 00000002 deviceNameUUID +00004d7c g F .text 000000b2 UARTx_Init +000136a0 g F .text 0000021c ll_connect_action_in_connintervaltimeout +20001928 g O .bss 0000000f condata +0000582a g F .text 00000102 HAL_TimeInit +2000124c g O .data 00000002 characterUUID +200011e4 g O .data 00000001 gapBond_Erase +000157e6 g F .text 00000050 LL_EncRsp +00012642 g F .text 0000001e ATT_BuildPrepareWriteRsp +00001004 g .highcodelalign 00000000 _highcode_lma +0000cdac g F .text 00000032 smGenerateRandMsg +0000b4a0 g F .text 0000009e l2capProcessRsp +00011bd0 g F .text 00000050 gapRole_PeripheralProcessTMOSMsg +0000d5be g F .text 00000026 xor_128 +0000bcae g F .text 00000006 linkDB_NumConns +00015c56 w F .text 0000004a printchar +0000fc2a g F .text 00000096 LL_SetExtendedAdvertisingData +0001213a g F .text 00000004 GAPRole_ReadRssiCmd +00006118 g F .text 00000092 tmos_stop_task +000047ec g F .text 000000d6 NoCard_Set_CondGpJd_Processing +0000b228 g F .text 0000007c L2CAP_Init +0000bb30 g F .text 0000002a linkDB_Find +0000f6ae g F .text 0000001a LL_LE_ReadBufSize +0001620c g F .text 00000028 sprintf +0001a000 g O .text 00000100 .hidden __clz_tab +0001a1f4 w .vector_handler 00000000 LLE_IRQHandler +0000bd88 g F .text 00000058 linkDB_PerformFunc +00001000 g .init 00000000 _sinit +0000dcf8 g F .text 00000058 HOST_LE_PHYUpdateCompleteReportEvent +0000ac22 g F .text 00000006 GATTServApp_RegisterForMsg +0000fd56 g F .text 0000008e LL_SetExtendedAdvertisingEnable +000178d0 g F .text 00000096 .hidden __gesf2 +00018b0c g F .text 0000002c _write_r +00012604 g F .text 0000000a ATT_BuildFindByTypeValueRsp +200007fc g F .highcode 0000001a FLASH_CMD_ROM_SW_RESET +000094ec g F .text 00000016 GATT_ServiceEncKeySize +0001a1f4 w .vector_handler 00000000 TMR_IRQHandler +0000cce6 g F .text 00000030 smpBuildSigningInfo +0000c458 g F .text 00000038 smpParseMasterID +00007066 g F .text 0000000c gapGetSignCounter +200012f4 g O .bss 00000004 taskHead +000182da g F .text 0000010a _printf_common +00008946 g F .text 00000006 gattRegisterServer +200011f0 g O .data 00000004 _impure_ptr +0000b8cc g F .text 0000008a l2capSendCmd +0000bc6e g F .text 00000016 linkDB_MTU +00018c4e g F .text 00000132 __sflush_r +000121f0 g F .text 00000062 tmos_memory_init +00012714 g F .text 00000066 ATT_ParseFindByTypeValueReq +00009210 g F .text 00000054 GATTServApp_ProcessCCCWriteReq +2000141f g O .bss 00000001 gapRole_profileRole +00012674 g F .text 00000016 ATT_ParseExchangeMTUReq +0000c216 g F .text 00000036 smSendFailAndEnd +00006e4e g F .text 00000064 gapFindADType +200012d8 g O .bss 00000004 Freq_LSI +0000f432 g F .text 00000020 API_LE_RandCmd +000129e4 g F .text 00000010 ATT_ParseExecuteWriteReq +00018082 g F .text 00000258 _svfiprintf_r +20001244 g O .data 00000002 clientCharCfgUUID +0000e6dc g F .text 00000036 RFEND_RXAdc +00005682 g F .text 00000158 CH57x_BLEInit +0000df20 g F .text 00000042 HOST_EncryptionKeyRefreshCompleteEvent +0000b19e g F .text 0000001a l2capStopTimer +0000894c g F .text 00000040 GATT_UpdateMTU +00013110 g F .text 00000006 LL_AdvertiseEventRegister +0000b53e g F .text 000000da l2capProcessRxData +0000f892 g F .text 00000034 LL_Rand +0001a1f4 w .vector_handler 00000000 WDOG_BAT_IRQHandler +0001a1f4 w .vector_handler 00000000 Ecall_U_Mode_Handler +0000d1bc g F .text 00000402 smpResponderProcessIncoming +0000b39c g F .text 00000036 L2CAP_ParseParamUpdateReq +0000c926 g F .text 00000132 SM_VerifyAuthenSig +20001424 g O .bss 00000001 gapRole_TaskID +0000add6 g F .text 000002e4 GATTServApp_ProcessEvent +0000c338 g F .text 000000ee smpParsePairingReq +20003000 g .stack 00000000 _eusrstack +0001a346 g F .highcode_fast 000000fe tmos_start_periodic_callback_task +0000bfee g F .text 0000006a smFreePairingParams +00017b6e g F .text 00000060 _vsniprintf_r +0000f3a8 g F .text 0000002e API_ReadRssiCmd +0000ce7a g F .text 00000212 smResponderSendNextKeyInfo +0001319e g F .text 00000038 ll_connect_set_procedure_timeout +000129b4 g F .text 00000030 ATT_PrepareWriteRsp +20002ae0 g O .bss 00000010 gapRole_OldIRK +00005314 g F .text 00000082 GPIOA_ModeCfg +00005b2c g F .text 0000001e tmos_msg_enqueue +20001374 g O .bss 00000002 l2capMtuSize +200014c4 g O .bss 00000037 PortInfo +200028c8 g O .bss 00000034 ble +00009f6a g F .text 0000006c GATT_VerifyPrepareWritePermissions +20001410 g O .bss 00000001 gapRole_AdvFilterPolicy +00018e38 g F .text 00000058 __swhatbuf_r +0001308a g F .text 00000048 LL_AdvertiseToStandby +00002690 g F .text 000000aa EEPROM_Write_RARDelayTim +00005396 g F .text 0000005a GetSysClock +00004962 g F .text 0000012a NoCard_Set_RDRPara_Processing +00004674 g F .text 00000052 NoCard_Reply_Packing_Processing +0000babe g F .text 00000072 linkDB_Init +0000953c g F .text 0000008e gattServerHandleConnStatusCB +00019efc g O .text 00000064 funcRxPDUArr +20000502 g F .highcode 00000034 FLASH_ROM_BEG_FF +2000075e g F .highcode 00000060 FLASH_CMD_GET_ROM_INFO +00008508 g F .text 0000002e GAP_GetAdvertisingRspData +00013bd8 g F .text 000000ba LL_ConnectShut +20001258 g O .data 00000002 gattServiceUUID +000126c6 g F .text 0000004e ATT_FindInfoRsp +00002154 g F .text 00000026 _write +20001274 g .data 00000000 _edata +200029b4 g O .bss 00000030 l2capFixedChannels +20002b68 g .bss 00000000 _end +20001400 g O .bss 00000006 gapRole_bdAddr +00011d30 g F .text 00000052 GAPRole_PeripheralStartDevice +0000b0ba g F .text 00000002 l2capHandleConnStatusCB +20001610 g O .bss 0000003c print_BLE +00002e82 g F .text 00000040 Jump_OTA +20001014 g .highcode 00000000 _highcode_vma_end +00005b4a g F .text 00000052 tmos_msg_deallocate +20000816 g F .highcode 00000046 tmos_rand +0000f5f0 g F .text 00000020 API_LE_SetExtendedAdvertisingEnableCmd +20001344 g O .bss 00000004 pfnServerProcessMsgCB +000081d8 g F .text 0000008c GAP_MakeDiscoverable +00003350 g F .text 00000016 DetWin_WriteData +00019b30 g O .text 00000060 serverReqTbl +2000130c g O .bss 00000004 cbTimersHead +20001238 g O .data 00000002 periConnParamUUID +0001b5bc g .dlalign 00000000 _data_lma +00008fd6 g F .text 000000c2 GATT_InitClient +00005e12 g F .text 00000040 tmos_clear_event +000138e4 g F .text 00000030 ll_connect_supervision_timeout +200011e5 g O .data 00000001 gapBond_Valid +00008940 g F .text 00000006 gattRegisterClient +0000b1ea g F .text 00000018 L2CAP_SetBufSize +0001326e g F .text 00000032 ll_connect_update_effective_Len +00007166 g F .text 0000006a gapProcessRandomAddrComplete +0000cbe4 g F .text 00000030 smpBuildPairingRandom +000189d4 g F .text 00000046 __swrite +0000243c g F .text 00000028 EEPROM_Default_PortGroupData +00007b44 g F .text 00000004 GAP_NumActiveConnections +0000230a g F .text 000000a0 EEPROM_Write_PortInfo +000186c8 g F .text 000002ba _vfiprintf_r +00009b0a g F .text 000000a4 GATT_Indication +00012252 g F .text 00000030 tmos_bm_adjust_header +000061aa g F .text 0000007a tmos_stop_callback_task +00017dce g F .text 00000068 _fwalk_reent +00015850 g F .text 0000001a LL_StartEncRsp +000107ee g F .text 0000010c GAPBondMgr_Erase +000055a0 g F .text 00000018 Lib_Read_Flash +0001a694 g F .highcode_fast 00000058 phy_status_clear +0000b182 g F .text 00000002 l2capHandleRxError +0000592c g F .text 000000ca GET_WakeUpLSIMaxTime +2000085c g F .highcode 0000003e tmos_memcpy +000097ba g F .text 000000a4 GATTServApp_WriteAttr +0000939a g F .text 00000018 gattServApp_FindServiceCBs +0000b676 g F .text 0000008a l2capNotifySignal +20002a0c g O .bss 00000018 gBleIPPara +0000951c g F .text 00000020 gattFindServerInfo +00008ce6 g F .text 00000036 gattGetClientStatus +00017c9a g F .text 00000006 __sfp_lock_release +0000cd7a g F .text 00000032 smGenerateConfirm +0001a120 g O .text 00000020 __sf_fake_stdout +00008264 g F .text 0000005c GAP_EndDiscoverable +000053f0 g F .text 00000008 SYS_GetSysTickCnt +00012b62 g F .text 0000009c LL_AddrInit +00004a8c g F .text 00000084 print_RDRSta_Changw +200019f8 g O .bss 00000050 g_Dealbuf +000129f4 g F .text 0000000c ATT_ExecuteWriteRsp +00019122 g F .text 0000000c _read +00002018 w .text 00000000 handle_reset +00013ca8 g F .text 00000018 LL_CoreGetRxDataList +00010fca g F .text 00000394 GAPBondMgr_ProcessGAPMsg +00015886 g F .text 00000052 LL_FeatureRsp +000123ec g F .text 0000003c ATT_UpdateMTU +000179fe g F .text 0000004e .hidden __fixunssfsi +20001294 g O .bss 00000004 SysTick_100us +00006dc6 g F .text 00000058 smGenerateRandBuf +000030fa g F .text 0000003e CRC16 +00013e38 g F .text 0000004c LL_HopGetChannels +0000d7ac g F .text 00000122 sm_c1new +000126a8 g F .text 0000001e ATT_ParseFindInfoReq +0000c82c g F .text 0000005a SM_ResolveRandomAddrs +00013cc0 g F .text 00000034 LL_CoreGetTxDataList +00006818 g F .text 0000023c tmos_snv_read +00012856 g F .text 00000030 ATT_ReadRsp +00008762 g F .text 0000004e gattGetPayload +00013c92 g F .text 00000016 LL_CoreGetCore +0000e712 g F .text 00000c50 RFEND_TXCtune +0000b35a g F .text 00000042 l2capParseCmdReject +0000c57a g F .text 0000012e smProcessTMOSMsg +0000898c g F .text 000000f0 GATT_bm_alloc +00018e90 g F .text 00000096 __smakebuf_r +0001294a g F .text 0000002e ATT_ParseWriteReq +200012d6 g O .bss 00000002 g_DealLen +00010dc8 g F .text 0000007c GAPBondMgr_UpdateCharCfg +00017b30 g F .text 00000010 strlen +20000eba g F .highcode 00000006 LLE_IRQFIOFHandler +000183e4 g F .text 0000027c _printf_i +0001a7b2 g F .highcode_fast 000000f4 ll_connect_send_data +0001a8a6 g F .highcode_fast 0000007c ll_connect_recv_data +0000bf12 g F .text 0000002c linkDB_GetHandleFromSMEvtID +00005100 g F .text 000001f8 RTC_InitTime +20001454 g O .bss 00000004 __malloc_sbrk_start +20001600 g O .bss 00000010 block_buf +00013454 g F .text 0000002a LL_ConnectRxPktnumIncrease +0000cc44 g F .text 0000003c smpBuildMasterID +00009ec0 g F .text 00000076 GATT_VerifyWritePermissions +00012660 g F .text 00000014 ATT_BuildHandleValueInd +00009774 g F .text 00000046 GATT_FindHandle +0001357a g F .text 000000c2 LL_ConnectFreeTmosPrioritID +0001b038 g F .highcode_lp 00000008 TMOS_ProcessRegister +000054c2 g F .text 00000030 UART_BaudRateCfg +0000842a g F .text 000000bc GAP_SetAdvertisingRspData +00007a88 g F .text 00000046 GAP_SendSlaveSecurityRequest +0000d634 g F .text 000000d8 generate_subkey +2000054a g F .highcode 0000000e FLASH_ROM_END +00005bfe g F .text 00000098 tmos_msg_receive +00007518 g F .text 00000048 gapSendPhyUpdateEvent +0000bb5a g F .text 00000060 linkDB_Authen +00013d6c g F .text 0000005a LL_CoreOpen +0000f86c g F .text 00000026 LL_ClearWhiteList +0000630e g F .text 0000001a TMOS_TimerRegister +000071d0 g F .text 00000122 sendAuthEvent +20001458 g O .bss 00000004 __malloc_free_list +00012572 g F .text 0000000e ATT_BuildExchangeMTUReq +00006060 g F .text 000000b8 tmos_start_callback_task +00012fac g F .text 00000018 LL_AdvGetCore +00008c96 g F .text 0000002a gattFindClientInfo +0000cbb4 g F .text 00000030 smpBuildPairingConfirm +000186c8 g F .text 000002ba _vfprintf_r +0000e352 g F .text 00000062 AES_DevPktEnc +200013a0 g O .bss 00000004 pfnHandle +0001340a g F .text 00000020 LL_ConnectFlowcontrolRx +000094d6 g F .text 00000016 GATT_ServiceNumAttrs +000066aa g F .text 000000cc TMOS_TimerInit +0001342a g F .text 0000002a LL_ConnectTxPktnumIncrease +0000d950 g F .text 00000182 sm_CMAC +0001268a g F .text 0000001e ATT_ExchangeMTURsp +00007720 g F .text 0000001c GAP_GetParamValue +0000cafa g F .text 00000022 SM_Init +0000c0bc g F .text 00000036 smLinkCheck +00012626 g F .text 00000004 ATT_BuildReadBlobRsp +00013cf4 g F .text 00000078 LL_CoreDataListInit +00012aa2 g F .text 000000c0 LL_Init +0000db2e g F .text 00000042 HOST_LE_ConnectionUpdateCompleteEvent +0000dcb6 g F .text 00000042 HOST_LE_DataLengthChangeEvent +000046c6 g F .text 000000cc NoCard_Set_PortInfo_Processing +200012dc g O .bss 00000004 g_LLE_IRQLibHandlerLocation +20001234 g O .data 00000002 centAddrResUUID +200012fc g O .bss 00000004 pfnTimerCBs +00005d28 g F .text 00000006 tmos_msg_init +200006fc g F .highcode 00000050 FLASH_CMD_ROM_VERIFY +20000f80 g F .highcode 0000003e process_recv_data +20001378 g O .bss 00000001 l2capNumDataPkts +0000885e g F .text 0000000c gattStartTimer +000048c2 g F .text 00000020 NoCard_Set_Printf_Processing +0000836e g F .text 000000bc GAP_SetAdvertisingAdvData +00017b40 g F .text 0000002e viprintf +0000910c g F .text 000000b4 GATTServApp_ParamInit +200003e4 g F .highcode 0000005e SYS_ResetExecute +00007560 g F .text 000000c0 gapSendEstLinkEvent +0001b23a g F .highcode_lp 00000196 llAdvertiseStart +0000996a g F .text 0000001c GATTServApp_UpdateCharCfg +2000144c g O .bss 00000001 __lock___sfp_recursive_mutex +000190f2 g F .text 0000000c _close +0000a364 g F .text 00000152 gattServApp_ProcessReadMultiReq +0000bbba g F .text 0000007e linkDB_FindByAddr +00017ca0 g F .text 00000006 __sinit_lock_acquire +00006652 g F .text 00000026 ble_ll_common_rand32 +0000229c g F .text 0000006e EEPROM_Default_PortInfo +0000f9dc g F .text 00000024 LL_SetDefaultPHY +000054f2 g F .text 0000001a UART_ByteTrigCfg + + + +Disassembly of section .init: + +00001000 <_sinit>: +_start(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:18 + .section .init,"ax",@progbits + .global _start + .global _vector_base + .align 1 +_start: + j handle_reset + 1000: 0180106f j 2018 + +Disassembly of section .highcode: + +20000000 <_highcode_vma_start>: + ... +_vector_base(): +20000008: 0001a1f4 .word 0x0001a1f4 +2000000c: 20000442 .word 0x20000442 +20000010: f3f9bda9 .word 0xf3f9bda9 +20000014: 0001a1f4 .word 0x0001a1f4 + ... +20000020: 0001a1f4 .word 0x0001a1f4 +20000024: 0001a1f4 .word 0x0001a1f4 + ... +20000030: 20000090 .word 0x20000090 +20000034: 00000000 .word 0x00000000 +20000038: 0001a1f4 .word 0x0001a1f4 + ... +20000044: 0001a1f4 .word 0x0001a1f4 +20000048: 00000000 .word 0x00000000 +2000004c: 0001a1f4 .word 0x0001a1f4 +20000050: 0001a1f4 .word 0x0001a1f4 +20000054: 0001a1f4 .word 0x0001a1f4 +20000058: 0001a1f4 .word 0x0001a1f4 +2000005c: 00000000 .word 0x00000000 +20000060: 0001a1f4 .word 0x0001a1f4 + ... +2000006c: 200000f0 .word 0x200000f0 +20000070: 200004ec .word 0x200004ec +20000074: 0001a1f4 .word 0x0001a1f4 +20000078: 0001a1f4 .word 0x0001a1f4 +2000007c: 0001a1f4 .word 0x0001a1f4 +20000080: 00000000 .word 0x00000000 +20000084: 0001a1f4 .word 0x0001a1f4 +20000088: 00000000 .word 0x00000000 +2000008c: 0001a1f4 .word 0x0001a1f4 + +20000090 : +SysTick_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:27 + +__INTERRUPT +__HIGH_CODE +void SysTick_Handler(void) +{ + SysTick->SR = 0; //жϱ־ +20000090: e000f7b7 lui a5,0xe000f +20000094: 0007a223 sw zero,4(a5) # e000f004 <_eusrstack+0xc000c004> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:31 + + static uint8_t NUM = 0; + static uint16_t NUM_s = 0; + SysTick_100us++; +20000098: 8dc18713 addi a4,gp,-1828 # 20001294 +2000009c: 431c lw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:34 + NUM++; + + if(NUM >= 10){ +2000009e: 46a5 li a3,9 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:31 + SysTick_100us++; +200000a0: 0785 addi a5,a5,1 +200000a2: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:32 + NUM++; +200000a4: 8c218713 addi a4,gp,-1854 # 2000127a +200000a8: 231c lbu a5,0(a4) +200000aa: 0785 addi a5,a5,1 +200000ac: 0ff7f793 zext.b a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:34 + if(NUM >= 10){ +200000b0: 00f6e563 bltu a3,a5,200000ba +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:32 + NUM++; +200000b4: a31c sb a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:44 + { + NUM_s = 0; + SysTick_1s++; + } + } +} +200000b6: 30200073 mret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:36 + SysTick_1ms++; +200000ba: 8d818713 addi a4,gp,-1832 # 20001290 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:35 + NUM = 0; +200000be: 8c018123 sb zero,-1854(gp) # 2000127a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:36 + SysTick_1ms++; +200000c2: 431c lw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:38 + if(NUM_s == 1000) +200000c4: 3e800693 li a3,1000 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:36 + SysTick_1ms++; +200000c8: 0785 addi a5,a5,1 +200000ca: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:37 + NUM_s++; +200000cc: 8c018713 addi a4,gp,-1856 # 20001278 +200000d0: 231e lhu a5,0(a4) +200000d2: 0785 addi a5,a5,1 +200000d4: 0807c7b3 zext.h a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:38 + if(NUM_s == 1000) +200000d8: 00d78463 beq a5,a3,200000e0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:37 + NUM_s++; +200000dc: a31e sh a5,0(a4) +200000de: bfe1 j 200000b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:41 + SysTick_1s++; +200000e0: 8d418713 addi a4,gp,-1836 # 2000128c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:40 + NUM_s = 0; +200000e4: 8c019023 sh zero,-1856(gp) # 20001278 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:41 + SysTick_1s++; +200000e8: 431c lw a5,0(a4) +200000ea: 0785 addi a5,a5,1 +200000ec: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:44 +} +200000ee: b7e1 j 200000b6 + +200000f0 : +UART_IRQHandler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:99 + * @return none + */ +__INTERRUPT +__HIGH_CODE +void UART_IRQHandler(void) +{ +200000f0: 1101 addi sp,sp,-32 +200000f2: ce22 sw s0,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:102 + volatile uint8_t i; + + switch(UART_GetITFlag()) +200000f4: 40003737 lui a4,0x40003 +200000f8: 40474783 lbu a5,1028(a4) # 40003404 <_eusrstack+0x20000404> +200000fc: 4619 li a2,6 +200000fe: 0ff7f693 zext.b a3,a5 +20000102: 8bbd andi a5,a5,15 +20000104: 08c78763 beq a5,a2,20000192 +20000108: 0076f793 andi a5,a3,7 +2000010c: 4691 li a3,4 +2000010e: 08d79763 bne a5,a3,2000019c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:109 + case UART_II_LINE_STAT: // ·״̬ + i = UART_GetLinSTA(); + break; + case UART_II_RECV_RDY: // ݴﵽô + case UART_II_RECV_TOUT: // ճʱʱһ֡ݽ + i = R8_UART_RFC; +20000112: 40a74783 lbu a5,1034(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:110 + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; +20000116: 09018413 addi s0,gp,144 # 20001a48 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:109 + i = R8_UART_RFC; +2000011a: 0ff7f793 zext.b a5,a5 +2000011e: 87dc sb a5,15(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:110 + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; +20000120: 483c lw a5,80(s0) +20000122: 8798 lbu a4,15(sp) +20000124: 83a1 srli a5,a5,0x8 +20000126: 0807c7b3 zext.h a5,a5 +2000012a: 97ba add a5,a5,a4 +2000012c: 04f00713 li a4,79 +20000130: 00f75663 bge a4,a5,2000013c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:110 (discriminator 1) +20000134: 0e0180a3 sb zero,225(gp) # 20001a99 +20000138: 0e018123 sb zero,226(gp) # 20001a9a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:111 + i = UART_RecvString(&g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen]); +2000013c: 4828 lw a0,80(s0) +2000013e: 8121 srli a0,a0,0x8 +20000140: 08054533 zext.h a0,a0 +20000144: 9522 add a0,a0,s0 +20000146: e0005097 auipc ra,0xe0005 +2000014a: 412080e7 jalr 1042(ra) # 5558 +2000014e: 0ff57513 zext.b a0,a0 +20000152: 87c8 sb a0,15(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:112 + g_uart[UART_0].RecvLen += i; +20000154: 4838 lw a4,80(s0) +20000156: 879c lbu a5,15(sp) +20000158: 8321 srli a4,a4,0x8 +2000015a: 97ba add a5,a5,a4 +2000015c: 0807c733 zext.h a4,a5 +20000160: 04f408a3 sb a5,81(s0) +20000164: 00875793 srli a5,a4,0x8 +20000168: 04f40923 sb a5,82(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:113 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; +2000016c: 8d81a783 lw a5,-1832(gp) # 20001290 +20000170: 0087d713 srli a4,a5,0x8 +20000174: 04f40ba3 sb a5,87(s0) +20000178: 04e40c23 sb a4,88(s0) +2000017c: 0107d713 srli a4,a5,0x10 +20000180: 83e1 srli a5,a5,0x18 +20000182: 04f40d23 sb a5,90(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:115 + + g_uart[UART_0].Receiving = 0x01; +20000186: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:113 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; +20000188: 04e40ca3 sb a4,89(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:115 + g_uart[UART_0].Receiving = 0x01; +2000018c: 04f40823 sb a5,80(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:124 + + default: + break; + } + +} +20000190: a031 j 2000019c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:105 + i = UART_GetLinSTA(); +20000192: 40574783 lbu a5,1029(a4) +20000196: 0ff7f793 zext.b a5,a5 +2000019a: 87dc sb a5,15(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:124 +} +2000019c: 4472 lw s0,28(sp) +2000019e: 6105 addi sp,sp,32 +200001a0: 30200073 mret + +200001a4 : +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:31 +{ + uint16_t clk_sys_cfg; + uint8_t i; + uint8_t x32M_c; + + if(sc == RB_CLK_SYS_MOD) // LSI +200001a4: 0c000793 li a5,192 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:26 +{ +200001a8: 1101 addi sp,sp,-32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:31 + if(sc == RB_CLK_SYS_MOD) // LSI +200001aa: 04f51463 bne a0,a5,200001f2 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __risc_v_disable_irq(void) +{ + uint32_t result; + + __asm volatile("csrrc %0, 0x800, %1" : \ +200001ae: 08800793 li a5,136 +200001b2: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + "=r"(result): "r"(0x88) : "memory"); + return result & 0x88; +200001b6: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:33 + { + sys_safe_access_enable(); +200001ba: c03e sw a5,0(sp) +200001bc: 0000100f fence.i +200001c0: 400017b7 lui a5,0x40001 +200001c4: 05700713 li a4,87 +200001c8: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +200001cc: fa800713 li a4,-88 +200001d0: 04e78023 sb a4,64(a5) +200001d4: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:34 + R8_CLK_SYS_CFG |= RB_CLK_SYS_MOD; +200001d8: 2798 lbu a4,8(a5) +200001da: 0c076713 ori a4,a4,192 +200001de: a798 sb a4,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:35 + sys_safe_access_disable(); +200001e0: 04078023 sb zero,64(a5) +200001e4: 4782 lw a5,0(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +200001e6: 8007a7f3 csrrs a5,0x800,a5 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:86 + } + } + + sys_safe_access_enable(); + R8_CLK_SYS_CFG = sc; + sys_safe_access_disable(); +200001ea: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:88 + } +} +200001ee: 6105 addi sp,sp,32 +200001f0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:39 + if(!(R8_HFCK_PWR_CTRL & RB_CLK_XT32M_PON)) +200001f2: 400017b7 lui a5,0x40001 +200001f6: 27b8 lbu a4,10(a5) +200001f8: 8b11 andi a4,a4,4 +200001fa: eb69 bnez a4,200002cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:41 + x32M_c = R8_XT32M_TUNE; +200001fc: 04e7c683 lbu a3,78(a5) # 4000104e <_eusrstack+0x1fffe04e> +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +20000200: 08800713 li a4,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:41 +20000204: 0ff6f693 zext.b a3,a3 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 +20000208: 80073673 csrrc a2,0x800,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +2000020c: 08867613 andi a2,a2,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:42 + sys_safe_access_enable(); +20000210: c232 sw a2,4(sp) +20000212: 0000100f fence.i +20000216: 05700813 li a6,87 +2000021a: 05078023 sb a6,64(a5) +2000021e: fa800593 li a1,-88 +20000222: 04b78023 sb a1,64(a5) +20000226: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:43 + R8_XT32M_TUNE |= 0x03; +2000022a: 04e7c603 lbu a2,78(a5) +2000022e: 00366613 ori a2,a2,3 +20000232: 04c78723 sb a2,78(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:44 + R8_HFCK_PWR_CTRL |= RB_CLK_XT32M_PON; +20000236: 27b0 lbu a2,10(a5) +20000238: 00466613 ori a2,a2,4 +2000023c: a7b0 sb a2,10(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:45 + sys_safe_access_disable(); +2000023e: 04078023 sb zero,64(a5) +20000242: 4612 lw a2,4(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +20000244: 80062673 csrrs a2,0x800,a2 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:45 +20000248: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:46 + clk_sys_cfg = R8_CLK_SYS_CFG; +2000024c: 2790 lbu a2,8(a5) +2000024e: 0ff67613 zext.b a2,a2 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +20000252: 80073773 csrrc a4,0x800,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000256: 08877713 andi a4,a4,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:47 + sys_safe_access_enable(); +2000025a: c43a sw a4,8(sp) +2000025c: 0000100f fence.i +20000260: 05078023 sb a6,64(a5) +20000264: 04b78023 sb a1,64(a5) +20000268: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:48 + R8_CLK_SYS_CFG |= 0xC0; +2000026c: 2798 lbu a4,8(a5) +2000026e: 0c076713 ori a4,a4,192 +20000272: a798 sb a4,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:49 + sys_safe_access_disable(); +20000274: 04078023 sb zero,64(a5) +20000278: 47a2 lw a5,8(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +2000027a: 8007a7f3 csrrs a5,0x800,a5 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:49 +2000027e: 0000100f fence.i +20000282: 47a5 li a5,9 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:52 (discriminator 3) + __nop(); +20000284: 0001 nop +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:50 (discriminator 3) + for(i=0; i<9; i++) +20000286: 17fd addi a5,a5,-1 +20000288: 0ff7f793 zext.b a5,a5 +2000028c: ffe5 bnez a5,20000284 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +2000028e: 08800793 li a5,136 +20000292: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000296: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:54 + sys_safe_access_enable(); +2000029a: c63e sw a5,12(sp) +2000029c: 0000100f fence.i +200002a0: 400017b7 lui a5,0x40001 +200002a4: 05700713 li a4,87 +200002a8: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +200002ac: fa800713 li a4,-88 +200002b0: 04e78023 sb a4,64(a5) +200002b4: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:55 + R8_CLK_SYS_CFG = clk_sys_cfg; +200002b8: a790 sb a2,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:56 + R8_XT32M_TUNE = x32M_c; +200002ba: 04d78723 sb a3,78(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:57 + sys_safe_access_disable(); +200002be: 04078023 sb zero,64(a5) +200002c2: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +200002c4: 8007a7f3 csrrs a5,0x800,a5 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:57 +200002c8: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:60 + if((sc & RB_CLK_SYS_MOD) == 0x40) // PLL div +200002cc: 0c057793 andi a5,a0,192 +200002d0: 04000713 li a4,64 +200002d4: 08e79963 bne a5,a4,20000366 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +200002d8: 08800793 li a5,136 +200002dc: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +200002e0: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:62 + sys_safe_access_enable(); +200002e4: c83e sw a5,16(sp) +200002e6: 0000100f fence.i +200002ea: 400017b7 lui a5,0x40001 +200002ee: 05700713 li a4,87 +200002f2: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +200002f6: fa800713 li a4,-88 +200002fa: 04e78023 sb a4,64(a5) +200002fe: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:63 + R8_HFCK_PWR_CTRL |= RB_CLK_PLL_PON; +20000302: 27b8 lbu a4,10(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:64 + R8_FLASH_CFG = 0X01; +20000304: 4685 li a3,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:63 + R8_HFCK_PWR_CTRL |= RB_CLK_PLL_PON; +20000306: 01076713 ori a4,a4,16 +2000030a: a7b8 sb a4,10(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:64 + R8_FLASH_CFG = 0X01; +2000030c: 40002737 lui a4,0x40002 +20000310: 80d703a3 sb a3,-2041(a4) # 40001807 <_eusrstack+0x1fffe807> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:65 + R8_FLASH_SCK |= 1<<4; //50M +20000314: 80574683 lbu a3,-2043(a4) +20000318: 0106e693 ori a3,a3,16 +2000031c: 80d702a3 sb a3,-2043(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:66 + sys_safe_access_disable(); +20000320: 04078023 sb zero,64(a5) +20000324: 47c2 lw a5,16(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +20000326: 8007a7f3 csrrs a5,0x800,a5 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:80 + sys_safe_access_disable(); +2000032a: 0000100f fence.i +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +2000032e: 08800793 li a5,136 +20000332: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000336: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:84 + sys_safe_access_enable(); +2000033a: ce3e sw a5,28(sp) +2000033c: 0000100f fence.i +20000340: 400017b7 lui a5,0x40001 +20000344: 05700713 li a4,87 +20000348: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +2000034c: fa800713 li a4,-88 +20000350: 04e78023 sb a4,64(a5) +20000354: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:85 + R8_CLK_SYS_CFG = sc; +20000358: 0ff57513 zext.b a0,a0 +2000035c: a788 sb a0,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:86 + sys_safe_access_disable(); +2000035e: 04078023 sb zero,64(a5) +20000362: 47f2 lw a5,28(sp) +20000364: b549 j 200001e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:70 + if((sc&0x1F) ) +20000366: 01f57793 andi a5,a0,31 +2000036a: cf9d beqz a5,200003a8 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +2000036c: 08800793 li a5,136 +20000370: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000374: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:72 + sys_safe_access_enable(); +20000378: ca3e sw a5,20(sp) +2000037a: 0000100f fence.i +2000037e: 400017b7 lui a5,0x40001 +20000382: 05700713 li a4,87 +20000386: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +2000038a: fa800713 li a4,-88 +2000038e: 04e78023 sb a4,64(a5) +20000392: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:73 + R8_FLASH_CFG = 0X02; +20000396: 40002737 lui a4,0x40002 +2000039a: 4689 li a3,2 +2000039c: 80d703a3 sb a3,-2041(a4) # 40001807 <_eusrstack+0x1fffe807> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:74 + sys_safe_access_disable(); +200003a0: 04078023 sb zero,64(a5) +200003a4: 47d2 lw a5,20(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +200003a6: b741 j 20000326 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +200003a8: 08800793 li a5,136 +200003ac: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +200003b0: 0887f793 andi a5,a5,136 +SetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:78 + sys_safe_access_enable(); +200003b4: cc3e sw a5,24(sp) +200003b6: 0000100f fence.i +200003ba: 400017b7 lui a5,0x40001 +200003be: 05700713 li a4,87 +200003c2: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +200003c6: fa800713 li a4,-88 +200003ca: 04e78023 sb a4,64(a5) +200003ce: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:79 + R8_FLASH_CFG = 0X07; +200003d2: 40002737 lui a4,0x40002 +200003d6: 469d li a3,7 +200003d8: 80d703a3 sb a3,-2041(a4) # 40001807 <_eusrstack+0x1fffe807> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:80 + sys_safe_access_disable(); +200003dc: 04078023 sb zero,64(a5) +200003e0: 47e2 lw a5,24(sp) +200003e2: b791 j 20000326 + +200003e4 : +SYS_ResetExecute(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:147 + * + * @return none + */ +__HIGH_CODE +void SYS_ResetExecute(void) +{ +200003e4: 1101 addi sp,sp,-32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:148 + FLASH_ROM_SW_RESET(); +200003e6: 4681 li a3,0 +200003e8: 4601 li a2,0 +200003ea: 4581 li a1,0 +200003ec: 4511 li a0,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:147 +{ +200003ee: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:148 + FLASH_ROM_SW_RESET(); +200003f0: e0005097 auipc ra,0xe0005 +200003f4: 606080e7 jalr 1542(ra) # 59f6 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +200003f8: 08800793 li a5,136 +200003fc: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000400: 0887f793 andi a5,a5,136 +SYS_ResetExecute(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:149 + sys_safe_access_enable(); +20000404: c63e sw a5,12(sp) +20000406: 0000100f fence.i +2000040a: 400017b7 lui a5,0x40001 +2000040e: 05700713 li a4,87 +20000412: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +20000416: fa800713 li a4,-88 +2000041a: 04e78023 sb a4,64(a5) +2000041e: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:150 + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; +20000422: 0467c703 lbu a4,70(a5) +20000426: 00176713 ori a4,a4,1 +2000042a: 04e78323 sb a4,70(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:151 + sys_safe_access_disable(); +2000042e: 04078023 sb zero,64(a5) +20000432: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +20000434: 8007a7f3 csrrs a5,0x800,a5 +SYS_ResetExecute(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:151 +20000438: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:152 +} +2000043c: 40f2 lw ra,28(sp) +2000043e: 6105 addi sp,sp,32 +20000440: 8082 ret + +20000442 : +HardFault_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:283 + */ +__INTERRUPT +__HIGH_CODE +__attribute__((weak)) +void HardFault_Handler(void) +{ +20000442: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:284 + FLASH_ROM_SW_RESET(); +20000444: 4681 li a3,0 +20000446: 4601 li a2,0 +20000448: 4581 li a1,0 +2000044a: 4511 li a0,4 +2000044c: e0005097 auipc ra,0xe0005 +20000450: 5aa080e7 jalr 1450(ra) # 59f6 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +20000454: 08800713 li a4,136 +20000458: 800737f3 csrrc a5,0x800,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +2000045c: 0887f793 andi a5,a5,136 +HardFault_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:285 + sys_safe_access_enable(); +20000460: c43e sw a5,8(sp) +20000462: 0000100f fence.i +20000466: 400017b7 lui a5,0x40001 +2000046a: 05700613 li a2,87 +2000046e: 04c78023 sb a2,64(a5) # 40001040 <_eusrstack+0x1fffe040> +20000472: fa800693 li a3,-88 +20000476: 04d78023 sb a3,64(a5) +2000047a: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:286 + R16_INT_LSI_TUNE = 0xFFFF; +2000047e: 55fd li a1,-1 +20000480: b7ce sh a1,44(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:287 + sys_safe_access_disable(); +20000482: 04078023 sb zero,64(a5) +20000486: 45a2 lw a1,8(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +20000488: 8005a5f3 csrrs a1,0x800,a1 +HardFault_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:287 +2000048c: 0000100f fence.i +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ +20000490: 80073773 csrrc a4,0x800,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; +20000494: 08877713 andi a4,a4,136 +HardFault_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:288 + sys_safe_access_enable(); +20000498: c63a sw a4,12(sp) +2000049a: 0000100f fence.i +2000049e: 04c78023 sb a2,64(a5) +200004a2: 04d78023 sb a3,64(a5) +200004a6: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:289 + R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET; +200004aa: 0467c703 lbu a4,70(a5) +200004ae: 00176713 ori a4,a4,1 +200004b2: 04e78323 sb a4,70(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:290 + sys_safe_access_disable(); +200004b6: 04078023 sb zero,64(a5) +200004ba: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ +200004bc: 8007a7f3 csrrs a5,0x800,a5 +HardFault_Handler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:290 +200004c0: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:291 (discriminator 1) + while(1); +200004c4: a001 j 200004c4 + +200004c6 : +SYS_GetClockValue(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:65 + RTCTigFlag = 1; +} + +__HIGH_CODE +static uint32_t SYS_GetClockValue(void) +{ +200004c6: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:68 + uint32_t volatile rtc_count; + do{ + rtc_count = R32_RTC_CNT_LSI; +200004c8: 400017b7 lui a5,0x40001 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:68 (discriminator 1) +200004cc: 5f98 lw a4,56(a5) +200004ce: c63a sw a4,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:69 (discriminator 1) + }while( rtc_count != R32_RTC_CNT_LSI); +200004d0: 5f94 lw a3,56(a5) +200004d2: 4732 lw a4,12(sp) +200004d4: fee69ce3 bne a3,a4,200004cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:70 + return rtc_count; +200004d8: 4532 lw a0,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:71 +} +200004da: 0141 addi sp,sp,16 +200004dc: 8082 ret + +200004de : +PFIC_SetPendingIRQ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:228 + * + * @param IRQn - Interrupt Numbers + */ +__attribute__((always_inline)) RV_STATIC_INLINE void PFIC_SetPendingIRQ(IRQn_Type IRQn) +{ + PFIC->IPSR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); +200004de: e000e7b7 lui a5,0xe000e +200004e2: 10000737 lui a4,0x10000 +200004e6: 20e7a023 sw a4,512(a5) # e000e200 <_eusrstack+0xc000b200> +SYS_SetPendingIRQ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:77 + +__HIGH_CODE +static void SYS_SetPendingIRQ(void) +{ + PFIC_SetPendingIRQ( RTC_IRQn ); +} +200004ea: 8082 ret + +200004ec : +RTC_IRQHandler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:59 + R8_RTC_FLAG_CTRL =(RB_RTC_TMR_CLR|RB_RTC_TRIG_CLR); +200004ec: 400017b7 lui a5,0x40001 +200004f0: 03000713 li a4,48 +200004f4: 02e78823 sb a4,48(a5) # 40001030 <_eusrstack+0x1fffe030> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:60 + RTCTigFlag = 1; +200004f8: 4785 li a5,1 +200004fa: 92f1a823 sw a5,-1744(gp) # 200012e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:61 +} +200004fe: 30200073 mret + +20000502 : +FLASH_ROM_BEG_FF(): +20000502: 80040323 sb zero,-2042(s0) +20000506: 4715 li a4,5 +20000508: 87a2 mv a5,s0 +2000050a: 80e40323 sb a4,-2042(s0) +2000050e: 0001 nop +20000510: 0001 nop +20000512: 80a40223 sb a0,-2044(s0) +20000516: 8067c703 lbu a4,-2042(a5) +2000051a: 0762 slli a4,a4,0x18 +2000051c: 8761 srai a4,a4,0x18 +2000051e: fe074ce3 bltz a4,20000516 +20000522: 80a78223 sb a0,-2044(a5) +20000526: 8722 mv a4,s0 +20000528: 80674783 lbu a5,-2042(a4) # ffff806 <_data_lma+0xffe424a> +2000052c: 07e2 slli a5,a5,0x18 +2000052e: 87e1 srai a5,a5,0x18 +20000530: fe07cce3 bltz a5,20000528 +20000534: 8082 ret + +20000536 : +FLASH_ROM_BEG(): +20000536: 80040323 sb zero,-2042(s0) +2000053a: 4715 li a4,5 +2000053c: 80e40323 sb a4,-2042(s0) +20000540: 0001 nop +20000542: 0001 nop +20000544: 80a40223 sb a0,-2044(s0) +20000548: 8082 ret + +2000054a : +FLASH_ROM_END(): +2000054a: 80640783 lb a5,-2042(s0) +2000054e: fe07cee3 bltz a5,2000054a +20000552: 80040323 sb zero,-2042(s0) +20000556: 8082 ret + +20000558 : +FLASH_ROM_IN(): +20000558: 80640783 lb a5,-2042(s0) +2000055c: fe07cee3 bltz a5,20000558 +20000560: 80444503 lbu a0,-2044(s0) +20000564: 8082 ret + +20000566 : +FLASH_ROM_OUT(): +20000566: 80640783 lb a5,-2042(s0) +2000056a: fe07cee3 bltz a5,20000566 +2000056e: 80a40223 sb a0,-2044(s0) +20000572: 8082 ret + +20000574 : +FLASH_ROM_ADDR(): +20000574: 1141 addi sp,sp,-16 +20000576: c426 sw s1,8(sp) +20000578: c24a sw s2,4(sp) +2000057a: c04e sw s3,0(sp) +2000057c: c606 sw ra,12(sp) +2000057e: 0bf57713 andi a4,a0,191 +20000582: 47ad li a5,11 +20000584: 89aa mv s3,a0 +20000586: 892e mv s2,a1 +20000588: 4495 li s1,5 +2000058a: 00f70663 beq a4,a5,20000596 +2000058e: 4519 li a0,6 +20000590: 375d jal 20000536 +20000592: 3f65 jal 2000054a +20000594: 448d li s1,3 +20000596: 854e mv a0,s3 +20000598: 3f79 jal 20000536 +2000059a: 59fd li s3,-1 +2000059c: 14fd addi s1,s1,-1 +2000059e: 01349863 bne s1,s3,200005ae +200005a2: 40b2 lw ra,12(sp) +200005a4: 44a2 lw s1,8(sp) +200005a6: 4912 lw s2,4(sp) +200005a8: 4982 lw s3,0(sp) +200005aa: 0141 addi sp,sp,16 +200005ac: 8082 ret +200005ae: 01095513 srli a0,s2,0x10 +200005b2: 0ff57513 zext.b a0,a0 +200005b6: 3f45 jal 20000566 +200005b8: 0922 slli s2,s2,0x8 +200005ba: b7cd j 2000059c + +200005bc : +FLASH_ROM_WAIT(): +200005bc: 1101 addi sp,sp,-32 +200005be: cc26 sw s1,24(sp) +200005c0: ce06 sw ra,28(sp) +200005c2: 000804b7 lui s1,0x80 +200005c6: 3751 jal 2000054a +200005c8: 4515 li a0,5 +200005ca: 37b5 jal 20000536 +200005cc: 3771 jal 20000558 +200005ce: 3769 jal 20000558 +200005d0: c62a sw a0,12(sp) +200005d2: 3fa5 jal 2000054a +200005d4: 4532 lw a0,12(sp) +200005d6: 00157793 andi a5,a0,1 +200005da: eb89 bnez a5,200005ec +200005dc: 00156513 ori a0,a0,1 +200005e0: 0ff57513 zext.b a0,a0 +200005e4: 40f2 lw ra,28(sp) +200005e6: 44e2 lw s1,24(sp) +200005e8: 6105 addi sp,sp,32 +200005ea: 8082 ret +200005ec: 14fd addi s1,s1,-1 # 7ffff <_data_lma+0x64a43> +200005ee: fce9 bnez s1,200005c8 +200005f0: 4501 li a0,0 +200005f2: bfcd j 200005e4 + +200005f4 : +FLASH_START(): +200005f4: 1141 addi sp,sp,-16 +200005f6: c606 sw ra,12(sp) +200005f8: 400017b7 lui a5,0x40001 +200005fc: 05700713 li a4,87 +20000600: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> +20000604: fa800713 li a4,-88 +20000608: 04e78023 sb a4,64(a5) +2000060c: 0447c703 lbu a4,68(a5) +20000610: 0ff00513 li a0,255 +20000614: 0e076713 ori a4,a4,224 +20000618: 04e78223 sb a4,68(a5) +2000061c: 4791 li a5,4 +2000061e: 80f40323 sb a5,-2042(s0) +20000622: 35c5 jal 20000502 +20000624: 40b2 lw ra,12(sp) +20000626: 0141 addi sp,sp,16 +20000628: b70d j 2000054a + +2000062a : +FLASH_CMD_ROM_WRITE(): +2000062a: 1101 addi sp,sp,-32 +2000062c: cc26 sw s1,24(sp) +2000062e: ca4a sw s2,20(sp) +20000630: c84e sw s3,16(sp) +20000632: c652 sw s4,12(sp) +20000634: ce06 sw ra,28(sp) +20000636: 892a mv s2,a0 +20000638: 89ae mv s3,a1 +2000063a: 84b2 mv s1,a2 +2000063c: 4a55 li s4,21 +2000063e: 3f5d jal 200005f4 +20000640: e891 bnez s1,20000654 +20000642: 3721 jal 2000054a +20000644: 40f2 lw ra,28(sp) +20000646: 8526 mv a0,s1 +20000648: 4952 lw s2,20(sp) +2000064a: 44e2 lw s1,24(sp) +2000064c: 49c2 lw s3,16(sp) +2000064e: 4a32 lw s4,12(sp) +20000650: 6105 addi sp,sp,32 +20000652: 8082 ret +20000654: 85ca mv a1,s2 +20000656: 4509 li a0,2 +20000658: 3f31 jal 20000574 +2000065a: 0991 addi s3,s3,4 +2000065c: ffc9a703 lw a4,-4(s3) +20000660: 4791 li a5,4 +20000662: 80e42023 sw a4,-2048(s0) + +20000666 <.loop247>: +20000666: 80640703 lb a4,-2042(s0) +2000066a: fe074ee3 bltz a4,20000666 <.loop247> +2000066e: 81440323 sb s4,-2042(s0) +20000672: 17fd addi a5,a5,-1 +20000674: fbed bnez a5,20000666 <.loop247> +20000676: 14fd addi s1,s1,-1 +20000678: 0911 addi s2,s2,4 +2000067a: c481 beqz s1,20000682 <.loop247+0x1c> +2000067c: 0ff97793 zext.b a5,s2 +20000680: ffe9 bnez a5,2000065a +20000682: 3f2d jal 200005bc +20000684: fd55 bnez a0,20000640 +20000686: 54fd li s1,-1 +20000688: bf75 j 20000644 + +2000068a : +FLASH_CMD_ROM_ERASE(): +2000068a: 1101 addi sp,sp,-32 +2000068c: cc26 sw s1,24(sp) +2000068e: ca4a sw s2,20(sp) +20000690: c84e sw s3,16(sp) +20000692: c652 sw s4,12(sp) +20000694: c456 sw s5,8(sp) +20000696: c25a sw s6,4(sp) +20000698: ce06 sw ra,28(sp) +2000069a: 892a mv s2,a0 +2000069c: 8a32 mv s4,a2 +2000069e: 498d li s3,3 +200006a0: 3f91 jal 200005f4 +200006a2: 64c1 lui s1,0x10 +200006a4: 6ac1 lui s5,0x10 +200006a6: 6b05 lui s6,0x1 +200006a8: fff48793 addi a5,s1,-1 # ffff +200006ac: 0127f7b3 and a5,a5,s2 +200006b0: e399 bnez a5,200006b6 +200006b2: 029a7163 bgeu s4,s1,200006d4 +200006b6: 19fd addi s3,s3,-1 +200006b8: 8091 srli s1,s1,0x4 +200006ba: fe0997e3 bnez s3,200006a8 +200006be: 3571 jal 2000054a +200006c0: 4501 li a0,0 +200006c2: 40f2 lw ra,28(sp) +200006c4: 44e2 lw s1,24(sp) +200006c6: 4952 lw s2,20(sp) +200006c8: 49c2 lw s3,16(sp) +200006ca: 4a32 lw s4,12(sp) +200006cc: 4aa2 lw s5,8(sp) +200006ce: 4b12 lw s6,4(sp) +200006d0: 6105 addi sp,sp,32 +200006d2: 8082 ret +200006d4: 0d800513 li a0,216 +200006d8: 01548863 beq s1,s5,200006e8 +200006dc: 02000513 li a0,32 +200006e0: 01648463 beq s1,s6,200006e8 +200006e4: 08100513 li a0,129 +200006e8: 85ca mv a1,s2 +200006ea: 3569 jal 20000574 +200006ec: 3dc1 jal 200005bc +200006ee: c509 beqz a0,200006f8 +200006f0: 9926 add s2,s2,s1 +200006f2: 409a0a33 sub s4,s4,s1 +200006f6: bf75 j 200006b2 +200006f8: 557d li a0,-1 +200006fa: b7e1 j 200006c2 + +200006fc : +FLASH_CMD_ROM_VERIFY(): +200006fc: 1101 addi sp,sp,-32 +200006fe: ce06 sw ra,28(sp) +20000700: cc26 sw s1,24(sp) +20000702: ca4a sw s2,20(sp) +20000704: 84b2 mv s1,a2 +20000706: c84e sw s3,16(sp) +20000708: c62a sw a0,12(sp) +2000070a: 892e mv s2,a1 +2000070c: 35e5 jal 200005f4 +2000070e: 4532 lw a0,12(sp) +20000710: 14fd addi s1,s1,-1 +20000712: 59fd li s3,-1 +20000714: 85aa mv a1,a0 +20000716: 452d li a0,11 +20000718: 3db1 jal 20000574 +2000071a: 01349a63 bne s1,s3,2000072e +2000071e: 3535 jal 2000054a +20000720: 40f2 lw ra,28(sp) +20000722: 8526 mv a0,s1 +20000724: 4952 lw s2,20(sp) +20000726: 44e2 lw s1,24(sp) +20000728: 49c2 lw s3,16(sp) +2000072a: 6105 addi sp,sp,32 +2000072c: 8082 ret +2000072e: 352d jal 20000558 +20000730: 0034f793 andi a5,s1,3 +20000734: eb91 bnez a5,20000748 +20000736: 80042683 lw a3,-2048(s0) +2000073a: 00092703 lw a4,0(s2) +2000073e: 00490793 addi a5,s2,4 +20000742: fce69ee3 bne a3,a4,2000071e +20000746: 893e mv s2,a5 +20000748: 14fd addi s1,s1,-1 +2000074a: bfc1 j 2000071a + +2000074c : +FLASH_CMD_ROM_PWR(): +2000074c: 1101 addi sp,sp,-32 +2000074e: ce06 sw ra,28(sp) +20000750: c62a sw a0,12(sp) +20000752: 354d jal 200005f4 +20000754: 4532 lw a0,12(sp) +20000756: 33c5 jal 20000536 +20000758: 40f2 lw ra,28(sp) +2000075a: 6105 addi sp,sp,32 +2000075c: b3fd j 2000054a + +2000075e : +FLASH_CMD_GET_ROM_INFO(): +2000075e: 1101 addi sp,sp,-32 +20000760: ce06 sw ra,28(sp) +20000762: cc26 sw s1,24(sp) +20000764: ca4a sw s2,20(sp) +20000766: c84e sw s3,16(sp) +20000768: c652 sw s4,12(sp) +2000076a: 89aa mv s3,a0 +2000076c: c456 sw s5,8(sp) +2000076e: 892e mv s2,a1 +20000770: 3551 jal 200005f4 +20000772: 000405b7 lui a1,0x40 +20000776: 00b9e5b3 or a1,s3,a1 +2000077a: 452d li a0,11 +2000077c: 3be5 jal 20000574 +2000077e: 4481 li s1,0 +20000780: 4a8d li s5,3 +20000782: 4a21 li s4,8 +20000784: 3bd1 jal 20000558 +20000786: 01549663 bne s1,s5,20000792 +2000078a: 80042783 lw a5,-2048(s0) +2000078e: 00f92023 sw a5,0(s2) +20000792: 0485 addi s1,s1,1 +20000794: ff4498e3 bne s1,s4,20000784 +20000798: 80042783 lw a5,-2048(s0) +2000079c: 01299713 slli a4,s3,0x12 +200007a0: 00075c63 bgez a4,200007b8 +200007a4: 00f91223 sh a5,4(s2) +200007a8: 40f2 lw ra,28(sp) +200007aa: 44e2 lw s1,24(sp) +200007ac: 4952 lw s2,20(sp) +200007ae: 49c2 lw s3,16(sp) +200007b0: 4a32 lw s4,12(sp) +200007b2: 4aa2 lw s5,8(sp) +200007b4: 6105 addi sp,sp,32 +200007b6: bb51 j 2000054a +200007b8: 00f92223 sw a5,4(s2) +200007bc: b7f5 j 200007a8 + +200007be : +FLASH_CMD_GET_UNIQUE_ID(): +200007be: 1141 addi sp,sp,-16 +200007c0: c606 sw ra,12(sp) +200007c2: c426 sw s1,8(sp) +200007c4: c24a sw s2,4(sp) +200007c6: c04e sw s3,0(sp) +200007c8: 89ae mv s3,a1 +200007ca: 352d jal 200005f4 +200007cc: 4581 li a1,0 +200007ce: 04b00513 li a0,75 +200007d2: 334d jal 20000574 +200007d4: 44bd li s1,15 +200007d6: 597d li s2,-1 +200007d8: 3341 jal 20000558 +200007da: 0074f793 andi a5,s1,7 +200007de: 97ce add a5,a5,s3 +200007e0: 0007c703 lbu a4,0(a5) +200007e4: 14fd addi s1,s1,-1 +200007e6: 8d39 xor a0,a0,a4 +200007e8: 00a78023 sb a0,0(a5) +200007ec: ff2496e3 bne s1,s2,200007d8 +200007f0: 40b2 lw ra,12(sp) +200007f2: 44a2 lw s1,8(sp) +200007f4: 4912 lw s2,4(sp) +200007f6: 4982 lw s3,0(sp) +200007f8: 0141 addi sp,sp,16 +200007fa: bb81 j 2000054a + +200007fc : +FLASH_CMD_ROM_SW_RESET(): +200007fc: 1141 addi sp,sp,-16 +200007fe: c606 sw ra,12(sp) +20000800: 3bd5 jal 200005f4 +20000802: 06600513 li a0,102 +20000806: 3b05 jal 20000536 +20000808: 3389 jal 2000054a +2000080a: 09900513 li a0,153 +2000080e: 3325 jal 20000536 +20000810: 40b2 lw ra,12(sp) +20000812: 0141 addi sp,sp,16 +20000814: bb1d j 2000054a + +20000816 : +tmos_rand(): +20000816: 1141 addi sp,sp,-16 +20000818: c422 sw s0,8(sp) +2000081a: c606 sw ra,12(sp) +2000081c: 00002797 auipc a5,0x2 +20000820: 0cc7a783 lw a5,204(a5) # 200028e8 +20000824: 81818413 addi s0,gp,-2024 # 200011d0 +20000828: c791 beqz a5,20000834 +2000082a: 9782 jalr a5 +2000082c: 401c lw a5,0(s0) +2000082e: 97aa add a5,a5,a0 +20000830: c01c sw a5,0(s0) +20000832: a021 j 2000083a +20000834: 9481a783 lw a5,-1720(gp) # 20001300 +20000838: fbed bnez a5,2000082a +2000083a: 4008 lw a0,0(s0) +2000083c: 000347b7 lui a5,0x34 +20000840: 3fd78793 addi a5,a5,1021 # 343fd <_data_lma+0x18e41> +20000844: 02f50533 mul a0,a0,a5 +20000848: 0026a7b7 lui a5,0x26a +2000084c: ec378793 addi a5,a5,-317 # 269ec3 <_data_lma+0x24e907> +20000850: 40b2 lw ra,12(sp) +20000852: 953e add a0,a0,a5 +20000854: c008 sw a0,0(s0) +20000856: 4422 lw s0,8(sp) +20000858: 0141 addi sp,sp,16 +2000085a: 8082 ret + +2000085c : +tmos_memcpy(): +2000085c: e000e7b7 lui a5,0xe000e +20000860: 4398 lw a4,0(a5) +20000862: 002006b7 lui a3,0x200 +20000866: 18d7a023 sw a3,384(a5) # e000e180 <_eusrstack+0xc000b180> +2000086a: 8f75 and a4,a4,a3 +2000086c: 0000100f fence.i +20000870: c501 beqz a0,20000878 +20000872: c199 beqz a1,20000878 +20000874: 4781 li a5,0 +20000876: e611 bnez a2,20000882 +20000878: e000e7b7 lui a5,0xe000e +2000087c: 10e7a023 sw a4,256(a5) # e000e100 <_eusrstack+0xc000b100> +20000880: 8082 ret +20000882: 00f586b3 add a3,a1,a5 +20000886: 0006c803 lbu a6,0(a3) # 200000 <_data_lma+0x1e4a44> +2000088a: 00f506b3 add a3,a0,a5 +2000088e: 0785 addi a5,a5,1 +20000890: 01068023 sb a6,0(a3) +20000894: fef617e3 bne a2,a5,20000882 +20000898: b7c5 j 20000878 + +2000089a : +tmos_memset(): +2000089a: 1141 addi sp,sp,-16 +2000089c: c226 sw s1,4(sp) +2000089e: e000e4b7 lui s1,0xe000e +200008a2: c422 sw s0,8(sp) +200008a4: 4080 lw s0,0(s1) +200008a6: 002006b7 lui a3,0x200 +200008aa: c606 sw ra,12(sp) +200008ac: 8c75 and s0,s0,a3 +200008ae: 18d4a023 sw a3,384(s1) # e000e180 <_eusrstack+0xc000b180> +200008b2: 0000100f fence.i +200008b6: c111 beqz a0,200008ba +200008b8: ea11 bnez a2,200008cc +200008ba: e000e7b7 lui a5,0xe000e +200008be: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> +200008c2: 40b2 lw ra,12(sp) +200008c4: 4422 lw s0,8(sp) +200008c6: 4492 lw s1,4(sp) +200008c8: 0141 addi sp,sp,16 +200008ca: 8082 ret +200008cc: e0002097 auipc ra,0xe0002 +200008d0: 81c080e7 jalr -2020(ra) # 20e8 +200008d4: 1084a023 sw s0,256(s1) +200008d8: b7ed j 200008c2 + +200008da : +tmos_memcmp(): +200008da: e000e737 lui a4,0xe000e +200008de: 431c lw a5,0(a4) +200008e0: 002006b7 lui a3,0x200 +200008e4: 18d72023 sw a3,384(a4) # e000e180 <_eusrstack+0xc000b180> +200008e8: 8ff5 and a5,a5,a3 +200008ea: 0000100f fence.i +200008ee: c501 beqz a0,200008f6 +200008f0: c199 beqz a1,200008f6 +200008f2: 4701 li a4,0 +200008f4: ea11 bnez a2,20000908 +200008f6: e000e737 lui a4,0xe000e +200008fa: 10f72023 sw a5,256(a4) # e000e100 <_eusrstack+0xc000b100> +200008fe: 4505 li a0,1 +20000900: 8082 ret +20000902: 0705 addi a4,a4,1 +20000904: fee609e3 beq a2,a4,200008f6 +20000908: 00e50833 add a6,a0,a4 +2000090c: 00e586b3 add a3,a1,a4 +20000910: 00084803 lbu a6,0(a6) +20000914: 2294 lbu a3,0(a3) +20000916: fed806e3 beq a6,a3,20000902 +2000091a: e000e737 lui a4,0xe000e +2000091e: 10f72023 sw a5,256(a4) # e000e100 <_eusrstack+0xc000b100> +20000922: 4501 li a0,0 +20000924: 8082 ret + +20000926 : +TMOS_SystemProcess(): +20000926: 7179 addi sp,sp,-48 +20000928: d422 sw s0,40(sp) +2000092a: d606 sw ra,44(sp) +2000092c: d226 sw s1,36(sp) +2000092e: d04a sw s2,32(sp) +20000930: ce4e sw s3,28(sp) +20000932: cc52 sw s4,24(sp) +20000934: ca56 sw s5,20(sp) +20000936: c85a sw s6,16(sp) +20000938: c65e sw s7,12(sp) +2000093a: c462 sw s8,8(sp) +2000093c: 94018413 addi s0,gp,-1728 # 200012f8 +20000940: 401c lw a5,0(s0) +20000942: e7d5 bnez a5,200009ee +20000944: 00002497 auipc s1,0x2 +20000948: f6448493 addi s1,s1,-156 # 200028a8 +2000094c: 95018913 addi s2,gp,-1712 # 20001308 +20000950: 00092703 lw a4,0(s2) +20000954: 209c lbu a5,0(s1) +20000956: 3094 lbu a3,1(s1) +20000958: 4601 li a2,0 +2000095a: 20e7a5b3 sh1add a1,a5,a4 +2000095e: 218e lhu a1,0(a1) +20000960: c9c9 beqz a1,200009f2 +20000962: c211 beqz a2,20000966 +20000964: a09c sb a5,0(s1) +20000966: 2088 lbu a0,0(s1) +20000968: 08d56c63 bltu a0,a3,20000a00 +2000096c: 00002797 auipc a5,0x2 +20000970: f2078e23 sb zero,-196(a5) # 200028a8 +20000974: 401c lw a5,0(s0) +20000976: e7f1 bnez a5,20000a42 +20000978: 94818993 addi s3,gp,-1720 # 20001300 +2000097c: 0009a783 lw a5,0(s3) +20000980: c3e9 beqz a5,20000a42 +20000982: 93c18a13 addi s4,gp,-1732 # 200012f4 +20000986: 000a2403 lw s0,0(s4) +2000098a: cc45 beqz s0,20000a42 +2000098c: 00002b97 auipc s7,0x2 +20000990: f70b8b93 addi s7,s7,-144 # 200028fc +20000994: 004ba783 lw a5,4(s7) +20000998: 01c9c937 lui s2,0x1c9c +2000099c: 4b01 li s6,0 +2000099e: c49c sw a5,8(s1) +200009a0: 37f90913 addi s2,s2,895 # 1c9c37f <_data_lma+0x1c80dc3> +200009a4: 00002a97 auipc s5,0x2 +200009a8: f24a8a93 addi s5,s5,-220 # 200028c8 +200009ac: 203e lhu a5,2(s0) +200009ae: ebcd bnez a5,20000a60 +200009b0: 445c lw a5,12(s0) +200009b2: 0a0b1463 bnez s6,20000a5a +200009b6: 00fa2023 sw a5,0(s4) +200009ba: 00c42c03 lw s8,12(s0) +200009be: 8522 mv a0,s0 +200009c0: 2301 jal 20000ec0 +200009c2: 8462 mv s0,s8 +200009c4: f465 bnez s0,200009ac +200009c6: 00002797 auipc a5,0x2 +200009ca: f267a783 lw a5,-218(a5) # 200028ec +200009ce: cbb5 beqz a5,20000a42 +200009d0: 5422 lw s0,40(sp) +200009d2: 50b2 lw ra,44(sp) +200009d4: 5492 lw s1,36(sp) +200009d6: 5902 lw s2,32(sp) +200009d8: 49f2 lw s3,28(sp) +200009da: 4a62 lw s4,24(sp) +200009dc: 4ad2 lw s5,20(sp) +200009de: 4b42 lw s6,16(sp) +200009e0: 4bb2 lw s7,12(sp) +200009e2: 4c22 lw s8,8(sp) +200009e4: 6145 addi sp,sp,48 +200009e6: e0006317 auipc t1,0xe0006 +200009ea: 83e30067 jr -1986(t1) # 6224 +200009ee: 9782 jalr a5 +200009f0: bf81 j 20000940 +200009f2: 0785 addi a5,a5,1 +200009f4: 0ff7f793 zext.b a5,a5 +200009f8: 4605 li a2,1 +200009fa: f6d7e0e3 bltu a5,a3,2000095a +200009fe: b79d j 20000964 +20000a00: 20e52733 sh1add a4,a0,a4 +20000a04: 230e lhu a1,0(a4) +20000a06: 00071023 sh zero,0(a4) +20000a0a: 00002797 auipc a5,0x2 +20000a0e: ea079223 sh zero,-348(a5) # 200028ae +20000a12: 94c1a783 lw a5,-1716(gp) # 20001304 +20000a16: 20f547b3 sh2add a5,a0,a5 +20000a1a: 439c lw a5,0(a5) +20000a1c: 9782 jalr a5 +20000a1e: 209c lbu a5,0(s1) +20000a20: 00092683 lw a3,0(s2) +20000a24: 20fa lhu a4,6(s1) +20000a26: 20d7a6b3 sh1add a3,a5,a3 +20000a2a: 2292 lhu a2,0(a3) +20000a2c: 40e57733 andn a4,a0,a4 +20000a30: 8f51 or a4,a4,a2 +20000a32: a29a sh a4,0(a3) +20000a34: c399 beqz a5,20000a3a +20000a36: 0785 addi a5,a5,1 +20000a38: a09c sb a5,0(s1) +20000a3a: 2098 lbu a4,0(s1) +20000a3c: 309c lbu a5,1(s1) +20000a3e: f2f777e3 bgeu a4,a5,2000096c +20000a42: 50b2 lw ra,44(sp) +20000a44: 5422 lw s0,40(sp) +20000a46: 5492 lw s1,36(sp) +20000a48: 5902 lw s2,32(sp) +20000a4a: 49f2 lw s3,28(sp) +20000a4c: 4a62 lw s4,24(sp) +20000a4e: 4ad2 lw s5,20(sp) +20000a50: 4b42 lw s6,16(sp) +20000a52: 4bb2 lw s7,12(sp) +20000a54: 4c22 lw s8,8(sp) +20000a56: 6145 addi sp,sp,48 +20000a58: 8082 ret +20000a5a: 00fb2623 sw a5,12(s6) # 100c <_einit+0x8> +20000a5e: bfb1 j 200009ba +20000a60: 0009a783 lw a5,0(s3) +20000a64: 9782 jalr a5 +20000a66: 441c lw a5,8(s0) +20000a68: 40f50733 sub a4,a0,a5 +20000a6c: 00f57663 bgeu a0,a5,20000a78 +20000a70: 004ba703 lw a4,4(s7) +20000a74: 8f1d sub a4,a4,a5 +20000a76: 972a add a4,a4,a0 +20000a78: 02e96963 bltu s2,a4,20000aaa +20000a7c: 202e lhu a1,2(s0) +20000a7e: 2008 lbu a0,0(s0) +20000a80: e001a097 auipc ra,0xe001a +20000a84: 9c4080e7 jalr -1596(ra) # 1a444 +20000a88: 405c lw a5,4(s0) +20000a8a: d39d beqz a5,200009b0 +20000a8c: 4410 lw a2,8(s0) +20000a8e: 004ba683 lw a3,4(s7) +20000a92: 97b2 add a5,a5,a2 +20000a94: 873e mv a4,a5 +20000a96: 00c7e463 bltu a5,a2,20000a9e +20000a9a: 00d7e463 bltu a5,a3,20000aa2 +20000a9e: 40d78733 sub a4,a5,a3 +20000aa2: c418 sw a4,8(s0) +20000aa4: 8b22 mv s6,s0 +20000aa6: 4440 lw s0,12(s0) +20000aa8: bf31 j 200009c4 +20000aaa: 024aa703 lw a4,36(s5) +20000aae: db7d beqz a4,20000aa4 +20000ab0: 02a7e963 bltu a5,a0,20000ae2 +20000ab4: 40a78533 sub a0,a5,a0 +20000ab8: 201c lbu a5,0(s0) +20000aba: ef99 bnez a5,20000ad8 +20000abc: 016ac703 lbu a4,22(s5) +20000ac0: 004ba683 lw a3,4(s7) +20000ac4: 1751 addi a4,a4,-12 +20000ac6: 00a707b3 add a5,a4,a0 +20000aca: 853e mv a0,a5 +20000acc: 00e7e463 bltu a5,a4,20000ad4 +20000ad0: 00d7e463 bltu a5,a3,20000ad8 +20000ad4: 40d78533 sub a0,a5,a3 +20000ad8: 449c lw a5,8(s1) +20000ada: fcf575e3 bgeu a0,a5,20000aa4 +20000ade: c488 sw a0,8(s1) +20000ae0: b7d1 j 20000aa4 +20000ae2: 004ba703 lw a4,4(s7) +20000ae6: 97ba add a5,a5,a4 +20000ae8: b7f1 j 20000ab4 + +20000aea : +clockGetHSEValue(): +20000aea: 4000c7b7 lui a5,0x4000c +20000aee: 20c78713 addi a4,a5,524 # 4000c20c <_eusrstack+0x2000920c> +20000af2: 4314 lw a3,0(a4) +20000af4: 49269613 bclri a2,a3,0x12 +20000af8: c310 sw a2,0(a4) +20000afa: 0000100f fence.i +20000afe: 26878793 addi a5,a5,616 +20000b02: 00002517 auipc a0,0x2 +20000b06: dba52503 lw a0,-582(a0) # 200028bc +20000b0a: 439c lw a5,0(a5) +20000b0c: 056a slli a0,a0,0x1a +20000b0e: c314 sw a3,0(a4) +20000b10: fff7c793 not a5,a5 +20000b14: 8399 srli a5,a5,0x6 +20000b16: 8d5d or a0,a0,a5 +20000b18: 8082 ret + +20000b1a : +BB_IRQLibHandler(): +20000b1a: 1141 addi sp,sp,-16 +20000b1c: c226 sw s1,4(sp) +20000b1e: 9d818493 addi s1,gp,-1576 # 20001390 +20000b22: 4098 lw a4,0(s1) +20000b24: c606 sw ra,12(sp) +20000b26: c422 sw s0,8(sp) +20000b28: 433c lw a5,64(a4) +20000b2a: 4867d793 bexti a5,a5,0x6 +20000b2e: c3b1 beqz a5,20000b72 +20000b30: 06000793 li a5,96 +20000b34: c33c sw a5,64(a4) +20000b36: 00002797 auipc a5,0x2 +20000b3a: ed67c783 lbu a5,-298(a5) # 20002a0c +20000b3e: 0407f793 andi a5,a5,64 +20000b42: 00002417 auipc s0,0x2 +20000b46: eca40413 addi s0,s0,-310 # 20002a0c +20000b4a: cb99 beqz a5,20000b60 +20000b4c: 00002797 auipc a5,0x2 +20000b50: db07a783 lw a5,-592(a5) # 200028fc +20000b54: 9782 jalr a5 +20000b56: c448 sw a0,12(s0) +20000b58: 201c lbu a5,0(s0) +20000b5a: 0bf7f793 andi a5,a5,191 +20000b5e: a01c sb a5,0(s0) +20000b60: 241e lhu a5,8(s0) +20000b62: cb81 beqz a5,20000b72 +20000b64: 9f01a703 lw a4,-1552(gp) # 200013a8 +20000b68: d37c sw a5,100(a4) +20000b6a: 00002797 auipc a5,0x2 +20000b6e: ea079523 sh zero,-342(a5) # 20002a14 +20000b72: 4098 lw a4,0(s1) +20000b74: 433c lw a5,64(a4) +20000b76: 4847d793 bexti a5,a5,0x4 +20000b7a: c799 beqz a5,20000b88 +20000b7c: 47c1 li a5,16 +20000b7e: c33c sw a5,64(a4) +20000b80: 9f01a783 lw a5,-1552(gp) # 200013a8 +20000b84: 0607a223 sw zero,100(a5) +20000b88: 9d41a703 lw a4,-1580(gp) # 2000138c +20000b8c: 435c lw a5,4(a4) +20000b8e: 4817d793 bexti a5,a5,0x1 +20000b92: c399 beqz a5,20000b98 +20000b94: 00072223 sw zero,4(a4) +20000b98: 40b2 lw ra,12(sp) +20000b9a: 4422 lw s0,8(sp) +20000b9c: 4492 lw s1,4(sp) +20000b9e: 0141 addi sp,sp,16 +20000ba0: 8082 ret + +20000ba2 : +BB_IRQLibFunction(): +20000ba2: 3fa5 jal 20000b1a +20000ba4: 30200073 mret + +20000ba8 : +ll_rx_wait_finish(): +20000ba8: 9f01a683 lw a3,-1552(gp) # 200013a8 +20000bac: 00002717 auipc a4,0x2 +20000bb0: e6070713 addi a4,a4,-416 # 20002a0c +20000bb4: 231c lbu a5,0(a4) +20000bb6: 8b85 andi a5,a5,1 +20000bb8: e791 bnez a5,20000bc4 +20000bba: 331c lbu a5,1(a4) +20000bbc: 8b85 andi a5,a5,1 +20000bbe: e399 bnez a5,20000bc4 +20000bc0: 52fc lw a5,100(a3) +20000bc2: fbed bnez a5,20000bb4 +20000bc4: 8082 ret + +20000bc6 : +ll_rx_start(): +20000bc6: 00002697 auipc a3,0x2 +20000bca: d0268693 addi a3,a3,-766 # 200028c8 +20000bce: 52dc lw a5,36(a3) +20000bd0: c785 beqz a5,20000bf8 +20000bd2: e000e7b7 lui a5,0xe000e +20000bd6: 00200737 lui a4,0x200 +20000bda: 28e7a023 sw a4,640(a5) # e000e280 <_eusrstack+0xc000b280> +20000bde: e000f7b7 lui a5,0xe000f +20000be2: d0078793 addi a5,a5,-768 # e000ed00 <_eusrstack+0xc000bd00> +20000be6: 4b98 lw a4,16(a5) +20000be8: 9b6d andi a4,a4,-5 +20000bea: cb98 sw a4,16(a5) +20000bec: 4b98 lw a4,16(a5) +20000bee: 03876713 ori a4,a4,56 +20000bf2: cb98 sw a4,16(a5) +20000bf4: 10500073 wfi +20000bf8: 00002797 auipc a5,0x2 +20000bfc: e0078aa3 sb zero,-491(a5) # 20002a0d +20000c00: 9f018713 addi a4,gp,-1552 # 200013a8 +20000c04: 431c lw a5,0(a4) +20000c06: 4605 li a2,1 +20000c08: c390 sw a2,0(a5) +20000c0a: 52dc lw a5,36(a3) +20000c0c: cb99 beqz a5,20000c22 +20000c0e: e000f6b7 lui a3,0xe000f +20000c12: d106a783 lw a5,-752(a3) # e000ed10 <_eusrstack+0xc000bd10> +20000c16: 0087e793 ori a5,a5,8 +20000c1a: d0f6a823 sw a5,-752(a3) +20000c1e: 10500073 wfi +20000c22: 4318 lw a4,0(a4) +20000c24: 00002697 auipc a3,0x2 +20000c28: de868693 addi a3,a3,-536 # 20002a0c +20000c2c: 229c lbu a5,0(a3) +20000c2e: 8b85 andi a5,a5,1 +20000c30: e399 bnez a5,20000c36 +20000c32: 537c lw a5,100(a4) +20000c34: ffe5 bnez a5,20000c2c +20000c36: 8082 ret + +20000c38 : +ble_ll_chkcrc(): +20000c38: 3114 lbu a3,1(a0) +20000c3a: 87aa mv a5,a0 +20000c3c: 00268713 addi a4,a3,2 +20000c40: ca89 beqz a3,20000c52 +20000c42: 9f01a603 lw a2,-1552(gp) # 200013a8 +20000c46: 4a30 lw a2,80(a2) +20000c48: 48565613 bexti a2,a2,0x5 +20000c4c: c219 beqz a2,20000c52 +20000c4e: 00668713 addi a4,a3,6 +20000c52: 00370693 addi a3,a4,3 # 200003 <_data_lma+0x1e4a47> +20000c56: 96be add a3,a3,a5 +20000c58: 2290 lbu a2,0(a3) +20000c5a: 4805 li a6,1 +20000c5c: 4505 li a0,1 +20000c5e: 07f67613 andi a2,a2,127 +20000c62: 03061c63 bne a2,a6,20000c9a +20000c66: c581 beqz a1,20000c6e +20000c68: 973e add a4,a4,a5 +20000c6a: 2338 lbu a4,2(a4) +20000c6c: a198 sb a4,0(a1) +20000c6e: 3388 lbu a0,1(a5) +20000c70: c50d beqz a0,20000c9a +20000c72: 9f01a783 lw a5,-1552(gp) # 200013a8 +20000c76: 4bbc lw a5,80(a5) +20000c78: 4501 li a0,0 +20000c7a: 4857d793 bexti a5,a5,0x5 +20000c7e: cf91 beqz a5,20000c9a +20000c80: 229c lbu a5,0(a3) +20000c82: 4705 li a4,1 +20000c84: 06f7f693 andi a3,a5,111 +20000c88: 00e69863 bne a3,a4,20000c98 +20000c8c: 60479793 sext.b a5,a5 +20000c90: 0007d563 bgez a5,20000c9a +20000c94: 4539 li a0,14 +20000c96: 8082 ret +20000c98: 4519 li a0,6 +20000c9a: 8082 ret + +20000c9c : +ll_tx_wait_finish(): +20000c9c: 1101 addi sp,sp,-32 +20000c9e: 00002797 auipc a5,0x2 +20000ca2: d6078823 sb zero,-656(a5) # 20002a0e +20000ca6: c84a sw s2,16(sp) +20000ca8: 00002797 auipc a5,0x2 +20000cac: d60783a3 sb zero,-665(a5) # 20002a0f +20000cb0: 00002917 auipc s2,0x2 +20000cb4: c1890913 addi s2,s2,-1000 # 200028c8 +20000cb8: 02492783 lw a5,36(s2) +20000cbc: cc22 sw s0,24(sp) +20000cbe: ce06 sw ra,28(sp) +20000cc0: ca26 sw s1,20(sp) +20000cc2: c64e sw s3,12(sp) +20000cc4: 842a mv s0,a0 +20000cc6: 852e mv a0,a1 +20000cc8: 85b2 mv a1,a2 +20000cca: c785 beqz a5,20000cf2 +20000ccc: e000e7b7 lui a5,0xe000e +20000cd0: 00200737 lui a4,0x200 +20000cd4: 28e7a023 sw a4,640(a5) # e000e280 <_eusrstack+0xc000b280> +20000cd8: e000f7b7 lui a5,0xe000f +20000cdc: d0078793 addi a5,a5,-768 # e000ed00 <_eusrstack+0xc000bd00> +20000ce0: 4b98 lw a4,16(a5) +20000ce2: 9b6d andi a4,a4,-5 +20000ce4: cb98 sw a4,16(a5) +20000ce6: 4b98 lw a4,16(a5) +20000ce8: 03876713 ori a4,a4,56 +20000cec: cb98 sw a4,16(a5) +20000cee: 10500073 wfi +20000cf2: 4785 li a5,1 +20000cf4: 9d818993 addi s3,gp,-1576 # 20001390 +20000cf8: 9f018493 addi s1,gp,-1552 # 200013a8 +20000cfc: 06f41563 bne s0,a5,20000d66 +20000d00: 4601 li a2,0 +20000d02: e001a097 auipc ra,0xe001a +20000d06: 868080e7 jalr -1944(ra) # 1a56a +20000d0a: 0009a783 lw a5,0(s3) +20000d0e: 4098 lw a4,0(s1) +20000d10: 439c lw a5,0(a5) +20000d12: 83a1 srli a5,a5,0x8 +20000d14: 8b8d andi a5,a5,3 +20000d16: e7a9 bnez a5,20000d60 +20000d18: 19600793 li a5,406 +20000d1c: d37c sw a5,100(a4) +20000d1e: 02492783 lw a5,36(s2) +20000d22: cb99 beqz a5,20000d38 +20000d24: e000f737 lui a4,0xe000f +20000d28: d1072783 lw a5,-752(a4) # e000ed10 <_eusrstack+0xc000bd10> +20000d2c: 0087e793 ori a5,a5,8 +20000d30: d0f72823 sw a5,-752(a4) +20000d34: 10500073 wfi +20000d38: 4094 lw a3,0(s1) +20000d3a: 00002717 auipc a4,0x2 +20000d3e: cd270713 addi a4,a4,-814 # 20002a0c +20000d42: 233c lbu a5,2(a4) +20000d44: 8b85 andi a5,a5,1 +20000d46: e791 bnez a5,20000d52 +20000d48: 333c lbu a5,3(a4) +20000d4a: 8b85 andi a5,a5,1 +20000d4c: e399 bnez a5,20000d52 +20000d4e: 52fc lw a5,100(a3) +20000d50: fbed bnez a5,20000d42 +20000d52: 40f2 lw ra,28(sp) +20000d54: 4462 lw s0,24(sp) +20000d56: 44d2 lw s1,20(sp) +20000d58: 4942 lw s2,16(sp) +20000d5a: 49b2 lw s3,12(sp) +20000d5c: 6105 addi sp,sp,32 +20000d5e: 8082 ret +20000d60: 1be00793 li a5,446 +20000d64: bf65 j 20000d1c +20000d66: e0019097 auipc ra,0xe0019 +20000d6a: 79a080e7 jalr 1946(ra) # 1a500 +20000d6e: 0009a783 lw a5,0(s3) +20000d72: 4398 lw a4,0(a5) +20000d74: 29871713 bseti a4,a4,0x18 +20000d78: c398 sw a4,0(a5) +20000d7a: 5bd8 lw a4,52(a5) +20000d7c: 9b71 andi a4,a4,-4 +20000d7e: dbd8 sw a4,52(a5) +20000d80: fc59 bnez s0,20000d1e +20000d82: 00002797 auipc a5,0x2 +20000d86: c80785a3 sb zero,-885(a5) # 20002a0d +20000d8a: 409c lw a5,0(s1) +20000d8c: 4709 li a4,2 +20000d8e: c398 sw a4,0(a5) +20000d90: b779 j 20000d1e + +20000d92 : +LLE_IRQLibHandler(): +20000d92: 9f01a783 lw a5,-1552(gp) # 200013a8 +20000d96: 4798 lw a4,8(a5) +20000d98: 47d4 lw a3,12(a5) +20000d9a: 8f75 and a4,a4,a3 +20000d9c: 000406b7 lui a3,0x40 +20000da0: c798 sw a4,8(a5) +20000da2: 8ef9 and a3,a3,a4 +20000da4: ca91 beqz a3,20000db8 +20000da6: 56fd li a3,-1 +20000da8: d7b4 sw a3,104(a5) +20000daa: 00002617 auipc a2,0x2 +20000dae: afe60613 addi a2,a2,-1282 # 200028a8 +20000db2: 4a54 lw a3,20(a2) +20000db4: 0685 addi a3,a3,1 # 40001 <_data_lma+0x24a45> +20000db6: ca54 sw a3,20(a2) +20000db8: 00877693 andi a3,a4,8 +20000dbc: c295 beqz a3,20000de0 +20000dbe: 00002697 auipc a3,0x2 +20000dc2: c506c683 lbu a3,-944(a3) # 20002a0e +20000dc6: 0016e693 ori a3,a3,1 +20000dca: 00002617 auipc a2,0x2 +20000dce: c4d60223 sb a3,-956(a2) # 20002a0e +20000dd2: 9d81a603 lw a2,-1576(gp) # 20001390 +20000dd6: 5a54 lw a3,52(a2) +20000dd8: 9af1 andi a3,a3,-4 +20000dda: 0016e693 ori a3,a3,1 +20000dde: da54 sw a3,52(a2) +20000de0: 00177693 andi a3,a4,1 +20000de4: c295 beqz a3,20000e08 +20000de6: 00002697 auipc a3,0x2 +20000dea: c276c683 lbu a3,-985(a3) # 20002a0d +20000dee: 0016e693 ori a3,a3,1 +20000df2: 00002617 auipc a2,0x2 +20000df6: c0d60da3 sb a3,-997(a2) # 20002a0d +20000dfa: 9d81a603 lw a2,-1576(gp) # 20001390 +20000dfe: 5a54 lw a3,52(a2) +20000e00: 9af1 andi a3,a3,-4 +20000e02: 0016e693 ori a3,a3,1 +20000e06: da54 sw a3,52(a2) +20000e08: 00677693 andi a3,a4,6 +20000e0c: ce85 beqz a3,20000e44 +20000e0e: 8b11 andi a4,a4,4 +20000e10: 9d81a603 lw a2,-1576(gp) # 20001390 +20000e14: 00002697 auipc a3,0x2 +20000e18: bf868693 addi a3,a3,-1032 # 20002a0c +20000e1c: c359 beqz a4,20000ea2 +20000e1e: 4218 lw a4,0(a2) +20000e20: 8321 srli a4,a4,0x8 +20000e22: 8b0d andi a4,a4,3 +20000e24: ef25 bnez a4,20000e9c +20000e26: 4ad8 lw a4,20(a3) +20000e28: 3318 lbu a4,1(a4) +20000e2a: e321 bnez a4,20000e6a +20000e2c: 06700713 li a4,103 +20000e30: cfd8 sw a4,28(a5) +20000e32: 229c lbu a5,0(a3) +20000e34: 0017e793 ori a5,a5,1 +20000e38: a29c sb a5,0(a3) +20000e3a: 5a5c lw a5,52(a2) +20000e3c: 9bf1 andi a5,a5,-4 +20000e3e: 0017e793 ori a5,a5,1 +20000e42: da5c sw a5,52(a2) +20000e44: 9ec1c783 lbu a5,-1556(gp) # 200013a4 +20000e48: cba5 beqz a5,20000eb8 +20000e4a: 9e018623 sb zero,-1556(gp) # 200013a4 +20000e4e: 9e81a783 lw a5,-1560(gp) # 200013a0 +20000e52: cfa9 beqz a5,20000eac +20000e54: 1141 addi sp,sp,-16 +20000e56: c606 sw ra,12(sp) +20000e58: 9782 jalr a5 +20000e5a: 9ec1c783 lbu a5,-1556(gp) # 200013a4 +20000e5e: e399 bnez a5,20000e64 +20000e60: 9e01a423 sw zero,-1560(gp) # 200013a0 +20000e64: 40b2 lw ra,12(sp) +20000e66: 0141 addi sp,sp,16 +20000e68: 8082 ret +20000e6a: 4bac lw a1,80(a5) +20000e6c: 0205f593 andi a1,a1,32 +20000e70: c581 beqz a1,20000e78 +20000e72: 07500713 li a4,117 +20000e76: bf6d j 20000e30 +20000e78: 4585 li a1,1 +20000e7a: 00b71563 bne a4,a1,20000e84 +20000e7e: 06b00713 li a4,107 +20000e82: b77d j 20000e30 +20000e84: 4589 li a1,2 +20000e86: 00b71563 bne a4,a1,20000e90 +20000e8a: 06f00713 li a4,111 +20000e8e: b74d j 20000e30 +20000e90: 458d li a1,3 +20000e92: feb710e3 bne a4,a1,20000e72 +20000e96: 07300713 li a4,115 +20000e9a: bf59 j 20000e30 +20000e9c: 07600713 li a4,118 +20000ea0: bf41 j 20000e30 +20000ea2: 32bc lbu a5,3(a3) +20000ea4: 0017e793 ori a5,a5,1 +20000ea8: b2bc sb a5,3(a3) +20000eaa: bf41 j 20000e3a +20000eac: 9ec1c783 lbu a5,-1556(gp) # 200013a4 +20000eb0: e781 bnez a5,20000eb8 +20000eb2: 9e01a423 sw zero,-1560(gp) # 200013a0 +20000eb6: 8082 ret +20000eb8: 8082 ret + +20000eba : +LLE_IRQFIOFHandler(): +20000eba: 3de1 jal 20000d92 +20000ebc: 30200073 mret + +20000ec0 : +tmos_memory_free(): +20000ec0: e000e7b7 lui a5,0xe000e +20000ec4: 0007a803 lw a6,0(a5) # e000e000 <_eusrstack+0xc000b000> +20000ec8: 00200737 lui a4,0x200 +20000ecc: 18e7a023 sw a4,384(a5) +20000ed0: 00e87833 and a6,a6,a4 +20000ed4: 0000100f fence.i +20000ed8: a781ae03 lw t3,-1416(gp) # 20001430 +20000edc: a701a303 lw t1,-1424(gp) # 20001428 +20000ee0: 87f2 mv a5,t3 +20000ee2: 4681 li a3,0 +20000ee4: 0867f663 bgeu a5,t1,20000f70 +20000ee8: 0007a883 lw a7,0(a5) +20000eec: 08f56763 bltu a0,a5,20000f7a +20000ef0: 08a8e563 bltu a7,a0,20000f7a +20000ef4: 00878713 addi a4,a5,8 +20000ef8: 06e56c63 bltu a0,a4,20000f70 +20000efc: 23f2 lhu a2,6(a5) +20000efe: 6721 lui a4,0x8 +20000f00: 0705 addi a4,a4,1 # 8001 +20000f02: 00e61763 bne a2,a4,20000f10 +20000f06: 9bf18613 addi a2,gp,-1601 # 20001377 +20000f0a: 2218 lbu a4,0(a2) +20000f0c: 0705 addi a4,a4,1 +20000f0e: a218 sb a4,0(a2) +20000f10: 00002597 auipc a1,0x2 +20000f14: 99858593 addi a1,a1,-1640 # 200028a8 +20000f18: 23d2 lhu a2,4(a5) +20000f1a: 21da lhu a4,4(a1) +20000f1c: 00079323 sh zero,6(a5) +20000f20: 9732 add a4,a4,a2 +20000f22: 08074733 zext.h a4,a4 +20000f26: a1da sh a4,4(a1) +20000f28: 03c78163 beq a5,t3,20000f4a +20000f2c: a741a503 lw a0,-1420(gp) # 2000142c +20000f30: 00f50d63 beq a0,a5,20000f4a +20000f34: 22ea lhu a0,6(a3) +20000f36: e911 bnez a0,20000f4a +20000f38: 22de lhu a5,4(a3) +20000f3a: 0116a023 sw a7,0(a3) +20000f3e: 0721 addi a4,a4,8 +20000f40: 963e add a2,a2,a5 +20000f42: 0621 addi a2,a2,8 +20000f44: a2d2 sh a2,4(a3) +20000f46: a1da sh a4,4(a1) +20000f48: 87b6 mv a5,a3 +20000f4a: 4398 lw a4,0(a5) +20000f4c: 02670263 beq a4,t1,20000f70 +20000f50: a741a683 lw a3,-1420(gp) # 2000142c +20000f54: 00d70e63 beq a4,a3,20000f70 +20000f58: 2376 lhu a3,6(a4) +20000f5a: ea99 bnez a3,20000f70 +20000f5c: 23d6 lhu a3,4(a5) +20000f5e: 2352 lhu a2,4(a4) +20000f60: 4318 lw a4,0(a4) +20000f62: 06a1 addi a3,a3,8 +20000f64: 96b2 add a3,a3,a2 +20000f66: a3d6 sh a3,4(a5) +20000f68: c398 sw a4,0(a5) +20000f6a: 21de lhu a5,4(a1) +20000f6c: 07a1 addi a5,a5,8 +20000f6e: a1de sh a5,4(a1) +20000f70: e000e7b7 lui a5,0xe000e +20000f74: 1107a023 sw a6,256(a5) # e000e100 <_eusrstack+0xc000b100> +20000f78: 8082 ret +20000f7a: 86be mv a3,a5 +20000f7c: 87c6 mv a5,a7 +20000f7e: b79d j 20000ee4 + +20000f80 : +process_recv_data(): +20000f80: 02158593 addi a1,a1,33 +20000f84: 00002797 auipc a5,0x2 +20000f88: a9c7a783 lw a5,-1380(a5) # 20002a20 +20000f8c: 8595 srai a1,a1,0x5 +20000f8e: 4398 lw a4,0(a5) +20000f90: 15fd addi a1,a1,-1 +20000f92: c118 sw a4,0(a0) +20000f94: 43d8 lw a4,4(a5) +20000f96: c158 sw a4,4(a0) +20000f98: 4798 lw a4,8(a5) +20000f9a: c518 sw a4,8(a0) +20000f9c: 47d8 lw a4,12(a5) +20000f9e: c558 sw a4,12(a0) +20000fa0: 4b98 lw a4,16(a5) +20000fa2: c918 sw a4,16(a0) +20000fa4: 4bd8 lw a4,20(a5) +20000fa6: c958 sw a4,20(a0) +20000fa8: 4f98 lw a4,24(a5) +20000faa: cd18 sw a4,24(a0) +20000fac: 4fd8 lw a4,28(a5) +20000fae: cd58 sw a4,28(a0) +20000fb0: c591 beqz a1,20000fbc +20000fb2: 02050513 addi a0,a0,32 +20000fb6: 02078793 addi a5,a5,32 +20000fba: bfd1 j 20000f8e +20000fbc: 8082 ret + +20000fbe : +ll_wait_connect_event(): +20000fbe: 9f01a703 lw a4,-1552(gp) # 200013a8 +20000fc2: 5b3c lw a5,112(a4) +20000fc4: fffd bnez a5,20000fc2 +20000fc6: 0001 nop +20000fc8: 0001 nop +20000fca: 8082 ret + +20000fcc : +LL_WhitelistLookup(): +20000fcc: 1101 addi sp,sp,-32 +20000fce: cc22 sw s0,24(sp) +20000fd0: ca26 sw s1,20(sp) +20000fd2: ce06 sw ra,28(sp) +20000fd4: c42a sw a0,8(sp) +20000fd6: c62e sw a1,12(sp) +20000fd8: 00002417 auipc s0,0x2 +20000fdc: b7442403 lw s0,-1164(s0) # 20002b4c +20000fe0: 4485 li s1,1 +20000fe2: e019 bnez s0,20000fe8 +20000fe4: 4501 li a0,0 +20000fe6: a00d j 20001008 +20000fe8: 849c lbu a5,9(sp) +20000fea: 3018 lbu a4,1(s0) +20000fec: 8b85 andi a5,a5,1 +20000fee: 00f70463 beq a4,a5,20000ff6 +20000ff2: 4400 lw s0,8(s0) +20000ff4: b7fd j 20000fe2 +20000ff6: 4619 li a2,6 +20000ff8: 00a10593 addi a1,sp,10 +20000ffc: 00240513 addi a0,s0,2 +20001000: 8dbff0ef jal ra,200008da +20001004: fe9517e3 bne a0,s1,20000ff2 +20001008: 40f2 lw ra,28(sp) +2000100a: 4462 lw s0,24(sp) +2000100c: 44d2 lw s1,20(sp) +2000100e: 6105 addi sp,sp,32 +20001010: 8082 ret + ... + +Disassembly of section .text: + +00002018 : +handle_reset(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:119 + .weak handle_reset + .align 1 +handle_reset: +.option push +.option norelax + la gp, __global_pointer$ + 2018: 20000197 auipc gp,0x20000 + 201c: 9a018193 addi gp,gp,-1632 # 200019b8 <__global_pointer$> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:121 +1: + la sp, _eusrstack + 2020: 20001117 auipc sp,0x20001 + 2024: fe010113 addi sp,sp,-32 # 20003000 <_eusrstack> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:126 +.option pop + +/* Load highcode code section from flash to RAM */ +2: + la a0, _highcode_lma + 2028: fffff517 auipc a0,0xfffff + 202c: fdc50513 addi a0,a0,-36 # 1004 <_einit> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:127 + la a1, _highcode_vma_start + 2030: 1fffe597 auipc a1,0x1fffe + 2034: fd058593 addi a1,a1,-48 # 20000000 <_highcode_vma_start> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:128 + la a2, _highcode_vma_end + 2038: 1ffff617 auipc a2,0x1ffff + 203c: fdc60613 addi a2,a2,-36 # 20001014 <_highcode_vma_end> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:129 + bgeu a1, a2, 2f + 2040: 00c5fa63 bgeu a1,a2,2054 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:131 +1: + lw t0, (a0) + 2044: 00052283 lw t0,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:132 + sw t0, (a1) + 2048: 0055a023 sw t0,0(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:133 + addi a0, a0, 4 + 204c: 0511 addi a0,a0,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:134 + addi a1, a1, 4 + 204e: 0591 addi a1,a1,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:135 + bltu a1, a2, 1b + 2050: fec5eae3 bltu a1,a2,2044 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:139 + +/* Load data section from flash to RAM */ +2: + la a0, _data_lma + 2054: 00019517 auipc a0,0x19 + 2058: 56850513 addi a0,a0,1384 # 1b5bc <_data_lma> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:140 + la a1, _data_vma + 205c: 1ffff597 auipc a1,0x1ffff + 2060: fbc58593 addi a1,a1,-68 # 20001018 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:141 + la a2, _edata + 2064: 8bc18613 addi a2,gp,-1860 # 20001274 <_edata> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:142 + bgeu a1, a2, 2f + 2068: 00c5fa63 bgeu a1,a2,207c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:144 +1: + lw t0, (a0) + 206c: 00052283 lw t0,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:145 + sw t0, (a1) + 2070: 0055a023 sw t0,0(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:146 + addi a0, a0, 4 + 2074: 0511 addi a0,a0,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:147 + addi a1, a1, 4 + 2076: 0591 addi a1,a1,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:148 + bltu a1, a2, 1b + 2078: fec5eae3 bltu a1,a2,206c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:151 +2: + /* clear bss section */ + la a0, _sbss + 207c: 8c018513 addi a0,gp,-1856 # 20001278 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:152 + la a1, _ebss + 2080: 20001597 auipc a1,0x20001 + 2084: ae858593 addi a1,a1,-1304 # 20002b68 <_ebss> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:153 + bgeu a0, a1, 2f + 2088: 00b57763 bgeu a0,a1,2096 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:155 +1: + sw zero, (a0) + 208c: 00052023 sw zero,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:156 + addi a0, a0, 4 + 2090: 0511 addi a0,a0,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:157 + bltu a0, a1, 1b + 2092: feb56de3 bltu a0,a1,208c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:161 +2: + /* ûģʽжʹ */ + /*Ԥȡʹ*/ + li t0, 0x25 + 2096: 02500293 li t0,37 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:162 + csrw 0xbc0, t0 + 209a: bc029073 csrw 0xbc0,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:164 + /* ǶжϡӲѹջ */ + li t0, 0x3 + 209e: 428d li t0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:165 + csrw 0x804, t0 + 20a0: 80429073 csrw 0x804,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:166 + li t0, 0x1 + 20a4: 4285 li t0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:167 + csrw 0xbc1, t0 + 20a6: bc129073 csrw 0xbc1,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:169 + + li t0, 0x88 + 20aa: 08800293 li t0,136 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:170 + csrw mstatus, t0 + 20ae: 30029073 csrw mstatus,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:171 + la t0, _vector_base + 20b2: 1fffe297 auipc t0,0x1fffe + 20b6: f4e28293 addi t0,t0,-178 # 20000000 <_highcode_vma_start> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:174 + + /* ģʽΪԵַģʽ */ + ori t0, t0, 3 + 20ba: 0032e293 ori t0,t0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:175 + csrw mtvec, t0 + 20be: 30529073 csrw mtvec,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:177 + + la t0, main + 20c2: 00003297 auipc t0,0x3 + 20c6: e7a28293 addi t0,t0,-390 # 4f3c

+G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:178 + csrw mepc, t0 + 20ca: 34129073 csrw mepc,t0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:180 + + mret + 20ce: 30200073 mret + +000020d2 : +memcpy(): + 20d2: 832a mv t1,a0 + 20d4: ca09 beqz a2,20e6 + 20d6: 00058383 lb t2,0(a1) + 20da: 00730023 sb t2,0(t1) + 20de: 167d addi a2,a2,-1 + 20e0: 0305 addi t1,t1,1 + 20e2: 0585 addi a1,a1,1 + 20e4: fa6d bnez a2,20d6 + 20e6: 8082 ret + +000020e8 : +memset(): + 20e8: 832a mv t1,a0 + 20ea: c611 beqz a2,20f6 + 20ec: 00b30023 sb a1,0(t1) + 20f0: 167d addi a2,a2,-1 + 20f2: 0305 addi t1,t1,1 + 20f4: fe65 bnez a2,20ec + 20f6: 8082 ret + +000020f8 : +memmove(): + 20f8: c215 beqz a2,211c + 20fa: 832a mv t1,a0 + 20fc: 4685 li a3,1 + 20fe: 00b56763 bltu a0,a1,210c + 2102: 56fd li a3,-1 + 2104: fff60713 addi a4,a2,-1 + 2108: 933a add t1,t1,a4 + 210a: 95ba add a1,a1,a4 + 210c: 00058383 lb t2,0(a1) + 2110: 00730023 sb t2,0(t1) + 2114: 167d addi a2,a2,-1 + 2116: 9336 add t1,t1,a3 + 2118: 95b6 add a1,a1,a3 + 211a: fa6d bnez a2,210c + 211c: 8082 ret + +0000211e : +WDT_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:9 +{ + 211e: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:10 + WWDG_ResetCfg(ENABLE); + 2120: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:9 +{ + 2122: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:10 + WWDG_ResetCfg(ENABLE); + 2124: 2d4030ef jal ra,53f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:11 + WWDG_SetCounter(WDT_NUM); + 2128: 400017b7 lui a5,0x40001 + 212c: f9600713 li a4,-106 + 2130: 04e781a3 sb a4,67(a5) # 40001043 <_eusrstack+0x1fffe043> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:12 +} + 2134: 40b2 lw ra,12(sp) + 2136: 0141 addi sp,sp,16 + 2138: 8082 ret + +0000213a : +WDT_Feed(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:15 +{ + 213a: 1141 addi sp,sp,-16 + 213c: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:16 + WWDG_ClearFlag(); + 213e: 312030ef jal ra,5450 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:17 + WWDG_SetCounter(WDT_NUM); + 2142: 400017b7 lui a5,0x40001 + 2146: f9600713 li a4,-106 + 214a: 04e781a3 sb a4,67(a5) # 40001043 <_eusrstack+0x1fffe043> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:18 +} + 214e: 40b2 lw ra,12(sp) + 2150: 0141 addi sp,sp,16 + 2152: 8082 ret + +00002154 <_write>: +_write(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:49 + + +#ifdef DEBUG +int _write(int fd, char *buf, int size) +{ + 2154: 8532 mv a0,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:51 + int i; + for(i = 0; i < size; i++) + 2156: 4781 li a5,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:54 + { +#if DEBUG == Debug_UART0 + while(R8_UART_TFC == UART_FIFO_SIZE); /* ȴݷ */ + 2158: 40003737 lui a4,0x40003 + 215c: 46a1 li a3,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:51 (discriminator 1) + for(i = 0; i < size; i++) + 215e: 00a7c363 blt a5,a0,2164 <_write+0x10> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:59 + R8_UART_THR = *buf++; /* */ +#endif + } + return size; +} + 2162: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:54 (discriminator 1) + while(R8_UART_TFC == UART_FIFO_SIZE); /* ȴݷ */ + 2164: 40b74603 lbu a2,1035(a4) # 4000340b <_eusrstack+0x2000040b> + 2168: fed60ee3 beq a2,a3,2164 <_write+0x10> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:55 (discriminator 2) + R8_UART_THR = *buf++; /* */ + 216c: 00f58633 add a2,a1,a5 + 2170: 2210 lbu a2,0(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:51 (discriminator 2) + for(i = 0; i < size; i++) + 2172: 0785 addi a5,a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:55 (discriminator 2) + R8_UART_THR = *buf++; /* */ + 2174: 40c70423 sb a2,1032(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:51 (discriminator 2) + for(i = 0; i < size; i++) + 2178: b7dd j 215e <_write+0xa> + +0000217a : +Dbg_Println(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:86 + va_end(args); //ɱĻȡ + DBG_Printf("\r\n"); + } +} + +void Dbg_Println(int DbgOptBit, const char *cmd, ...) { + 217a: 7139 addi sp,sp,-64 + 217c: da3e sw a5,52(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:87 + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + 217e: 8c41a783 lw a5,-1852(gp) # 2000127c + 2182: 28a01533 bset a0,zero,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:86 +void Dbg_Println(int DbgOptBit, const char *cmd, ...) { + 2186: ce06 sw ra,28(sp) + 2188: cc22 sw s0,24(sp) + 218a: d432 sw a2,40(sp) + 218c: d636 sw a3,44(sp) + 218e: d83a sw a4,48(sp) + 2190: dc42 sw a6,56(sp) + 2192: de46 sw a7,60(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:87 + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + 2194: 8fe9 and a5,a5,a0 + 2196: cba9 beqz a5,21e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:88 + SysTick_Now = SysTick_1ms; + 2198: 8d81a603 lw a2,-1832(gp) # 20001290 + 219c: 8cc1a823 sw a2,-1840(gp) # 20001288 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:89 + SysTick_Diff = SysTick_Now - SysTick_Last; //һδӡʱ + 21a0: 8cc18793 addi a5,gp,-1844 # 20001284 + 21a4: 4394 lw a3,0(a5) + 21a6: 842e mv s0,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:91 + SysTick_Last = SysTick_Now; + sprintf(Dbg_Buffer, "%8d [%6d]: ", SysTick_Now, SysTick_Diff); + 21a8: aa818513 addi a0,gp,-1368 # 20001460 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:89 + SysTick_Diff = SysTick_Now - SysTick_Last; //һδӡʱ + 21ac: 40d606b3 sub a3,a2,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:91 + sprintf(Dbg_Buffer, "%8d [%6d]: ", SysTick_Now, SysTick_Diff); + 21b0: 00017597 auipc a1,0x17 + 21b4: f9458593 addi a1,a1,-108 # 19144 <_read+0x22> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:89 + SysTick_Diff = SysTick_Now - SysTick_Last; //һδӡʱ + 21b8: 8cd1a423 sw a3,-1848(gp) # 20001280 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:90 + SysTick_Last = SysTick_Now; + 21bc: c390 sw a2,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:91 + sprintf(Dbg_Buffer, "%8d [%6d]: ", SysTick_Now, SysTick_Diff); + 21be: 04e140ef jal ra,1620c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:92 + DBG_Printf("%s", Dbg_Buffer); + 21c2: aa818593 addi a1,gp,-1368 # 20001460 + 21c6: 00017517 auipc a0,0x17 + 21ca: f8a50513 addi a0,a0,-118 # 19150 <_read+0x2e> + 21ce: 01a140ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:94 + va_list args; //һva_list͵ı浥 + va_start(args, cmd); //ʹargsָɱĵһ + 21d2: 102c addi a1,sp,40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:95 + vprintf(cmd, args); //vprintfȴV + 21d4: 8522 mv a0,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:94 + va_start(args, cmd); //ʹargsָɱĵһ + 21d6: c62e sw a1,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:95 + vprintf(cmd, args); //vprintfȴV + 21d8: 169150ef jal ra,17b40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:97 + va_end(args); //ɱĻȡ + DBG_Printf("\r\n"); + 21dc: 00017517 auipc a0,0x17 + 21e0: f6450513 addi a0,a0,-156 # 19140 <_read+0x1e> + 21e4: 050140ef jal ra,16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/debug.c:100 + + } +} + 21e8: 40f2 lw ra,28(sp) + 21ea: 4462 lw s0,24(sp) + 21ec: 6121 addi sp,sp,64 + 21ee: 8082 ret + +000021f0 : +EEPROM_CheckSum(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:97 + +uint8_t EEPROM_CheckSum(uint8_t *data,uint16_t len) +{ + uint8_t data_sum = 0; + + for(uint16_t i = 0;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:101 + { + data_sum += data[i]; + } + return ~data_sum; + 21fc: fff7c513 not a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:102 +} + 2200: 0ff57513 zext.b a0,a0 + 2204: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:99 (discriminator 3) + data_sum += data[i]; + 2206: 00e506b3 add a3,a0,a4 + 220a: 2294 lbu a3,0(a3) + 220c: 0705 addi a4,a4,1 + 220e: 97b6 add a5,a5,a3 + 2210: 0ff7f793 zext.b a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:97 (discriminator 3) + for(uint16_t i = 0;i + +00002216 : +EEPROM_Read_PortInfo(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:106 + +//ȡ豸Ķ˿òϢ +uint8_t EEPROM_Read_PortInfo(void) +{ + 2216: 715d addi sp,sp,-80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:113 + uint16_t read_len = 0x00; + uint8_t read_info[4]; + uint8_t para_data[RD_Len]; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + 2218: 03700613 li a2,55 + 221c: 4581 li a1,0 + 221e: 0028 addi a0,sp,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:106 +{ + 2220: c686 sw ra,76(sp) + 2222: c4a2 sw s0,72(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:112 + memset(read_info,0,sizeof(read_info)); + 2224: c202 sw zero,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:113 + memset(para_data,0,sizeof(para_data)); + 2226: 35c9 jal 20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:115 + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR1,read_info,4); + 2228: 4611 li a2,4 + 222a: 004c addi a1,sp,4 + 222c: 00037537 lui a0,0x37 + 2230: 0c8030ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:117 + + if(read_info[0] == EEPROM_SaveInfo_Flag){ + 2234: 8210 lbu a2,4(sp) + 2236: 05a00793 li a5,90 + 223a: 04f61a63 bne a2,a5,228e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:120 + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 223e: 8300 lbu s0,6(sp) + 2240: 829c lbu a5,5(sp) + 2242: 0422 slli s0,s0,0x8 + 2244: 8c5d or s0,s0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:122 + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + 2246: 6785 lui a5,0x1 + 2248: 17f1 addi a5,a5,-4 # ffc <_sinit-0x4> + 224a: 0087f763 bgeu a5,s0,2258 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:137 + } + }else{ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read Flag Fail:%02x",read_info[0]); + } + + return 0x01; + 224e: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:139 + +} + 2250: 40b6 lw ra,76(sp) + 2252: 4426 lw s0,72(sp) + 2254: 6161 addi sp,sp,80 + 2256: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:123 + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR1+4,para_data,RD_Len); + 2258: 00037537 lui a0,0x37 + 225c: 03700613 li a2,55 + 2260: 002c addi a1,sp,8 + 2262: 0511 addi a0,a0,4 # 37004 <_data_lma+0x1ba48> + 2264: 094030ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:125 + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + 2268: 85a2 mv a1,s0 + 226a: 0028 addi a0,sp,8 + 226c: 3751 jal 21f0 + 226e: 839c lbu a5,7(sp) + 2270: fca79fe3 bne a5,a0,224e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:127 + memcpy(&PortInfo,para_data,read_len); + 2274: 8622 mv a2,s0 + 2276: 002c addi a1,sp,8 + 2278: b0c18513 addi a0,gp,-1268 # 200014c4 + 227c: 3d99 jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:129 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read SUCC"); + 227e: 4505 li a0,1 + 2280: 00017597 auipc a1,0x17 + 2284: ed458593 addi a1,a1,-300 # 19154 <_read+0x32> + 2288: 3dcd jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:130 + return 0x00; + 228a: 4501 li a0,0 + 228c: b7d1 j 2250 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:134 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read Flag Fail:%02x",read_info[0]); + 228e: 00017597 auipc a1,0x17 + 2292: eda58593 addi a1,a1,-294 # 19168 <_read+0x46> + 2296: 4505 li a0,1 + 2298: 35cd jal 217a + 229a: bf55 j 224e + +0000229c : +EEPROM_Default_PortInfo(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:146 +//˿ڲĬϢ +void EEPROM_Default_PortInfo(void) +{ + uint8_t Port_DefaultData[11] = {0x00}; + + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 229c: 4781 li a5,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:162 + Port_DefaultData[5] = (i + 1); //˿ + Port_DefaultData[6] = 0x00; //·ʱ ñ,Ĭϲ + + Port_DefaultData[7] = 0x02; //·ͳʱ + Port_DefaultData[8] = 0x00; + Port_DefaultData[9] = 0x02; //·ͳʱ䵥λ + 229e: 4609 li a2,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:155 + Port_DefaultData[4] = 50; //ͷֵ -> + 22a0: 03200593 li a1,50 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:152 + Port_DefaultData[2] = (i + 1); //ӳ· + 22a4: 4705 li a4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:151 + Port_DefaultData[1] = 0x01; + 22a6: 4685 li a3,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:150 + Port_DefaultData[0] = 0x0A; + 22a8: 4529 li a0,10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:202 + Port_DefaultData[9] = 0x03; + + Port_DefaultData[10] = 20; + } + + memcpy(&PortInfo[i],Port_DefaultData,11); + 22aa: 482d li a6,11 + 22ac: b0c18893 addi a7,gp,-1268 # 200014c4 + 22b0: 4309 li t1,2 + 22b2: 4e51 li t3,20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:146 + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 22b4: 4e95 li t4,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:166 + else if(i == 0x01) //Ŵ + 22b6: 4f05 li t5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:202 (discriminator 2) + memcpy(&PortInfo[i],Port_DefaultData,11); + 22b8: 030787b3 mul a5,a5,a6 + 22bc: 97c6 add a5,a5,a7 + 22be: a388 sb a0,0(a5) + 22c0: b394 sb a3,1(a5) + 22c2: a3b8 sb a4,2(a5) + 22c4: 000781a3 sb zero,3(a5) + 22c8: a3cc sb a1,4(a5) + 22ca: b3d8 sb a4,5(a5) + 22cc: 00078323 sb zero,6(a5) + 22d0: 006783a3 sb t1,7(a5) + 22d4: 00078423 sb zero,8(a5) + 22d8: b790 sb a2,9(a5) + 22da: 01c78523 sb t3,10(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:146 (discriminator 2) + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 22de: 03d70563 beq a4,t4,2308 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:166 + else if(i == 0x01) //Ŵ + 22e2: 01e71763 bne a4,t5,22f0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:180 + Port_DefaultData[9] = 0x02; + 22e6: 4609 li a2,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:173 + Port_DefaultData[4] = 50; + 22e8: 03200593 li a1,50 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:170 + Port_DefaultData[2] = (i + 1); //ӳ· + 22ec: 4689 li a3,2 + 22ee: a801 j 22fe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:187 + Port_DefaultData[2] = (i + 1); //ӳ· + 22f0: 00170693 addi a3,a4,1 + 22f4: 0ff6f693 zext.b a3,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:197 + Port_DefaultData[9] = 0x03; + 22f8: 460d li a2,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:190 + Port_DefaultData[4] = 80; + 22fa: 05000593 li a1,80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:170 (discriminator 2) + Port_DefaultData[2] = (i + 1); //ӳ· + 22fe: 87ba mv a5,a4 + 2300: 4509 li a0,2 + 2302: 8736 mv a4,a3 + 2304: 4681 li a3,0 + 2306: bf4d j 22b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:206 + + } + +} + 2308: 8082 ret + +0000230a : +EEPROM_Write_PortInfo(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:212 + + + +//豸Ķ˿òϢ +uint8_t EEPROM_Write_PortInfo(void) +{ + 230a: 715d addi sp,sp,-80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:221 + uint8_t rev = 0; + if(WR_Len > EEPROM_INFO_Size) return 0x01; + + memset(data_buff,0,(data_len + 4)); + + data_buff[0] = EEPROM_SaveInfo_Flag; + 230c: 05a00793 li a5,90 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:226 + data_buff[1] = data_len & 0xFF; + data_buff[2] = (data_len >> 8) & 0xFF; + data_buff[3] = 0x00; //SumCheck + + memcpy(&data_buff[4],(uint8_t *)PortInfo,data_len); + 2310: 03700613 li a2,55 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:221 + data_buff[0] = EEPROM_SaveInfo_Flag; + 2314: 825c sb a5,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:226 + memcpy(&data_buff[4],(uint8_t *)PortInfo,data_len); + 2316: b0c18593 addi a1,gp,-1268 # 200014c4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:222 + data_buff[1] = data_len & 0xFF; + 231a: 03700793 li a5,55 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:226 + memcpy(&data_buff[4],(uint8_t *)PortInfo,data_len); + 231e: 0028 addi a0,sp,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:222 + data_buff[1] = data_len & 0xFF; + 2320: 82dc sb a5,5(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:212 +{ + 2322: c686 sw ra,76(sp) + 2324: c4a2 sw s0,72(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:219 + memset(data_buff,0,(data_len + 4)); + 2326: 00011323 sh zero,6(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:226 + memcpy(&data_buff[4],(uint8_t *)PortInfo,data_len); + 232a: 3365 jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:227 + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + 232c: 03700593 li a1,55 + 2330: 0028 addi a0,sp,8 + 2332: 3d7d jal 21f0 + 2334: 83c8 sb a0,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:233 + data_len += 4; + + // Dbg_Println(DBG_BIT_PC_COMM, "flag:%02x,len:%d,sum:%02x",EEPROM_SaveInfo_Flag,data_len,data_buff[3]); + + // + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR1,EEPROM_INFO_Size); + 2336: 6685 lui a3,0x1 + 2338: 4601 li a2,0 + 233a: 000375b7 lui a1,0x37 + 233e: 4505 li a0,1 + 2340: 6b6030ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:234 + if(rev == 0x00){ + 2344: 0ff57793 zext.b a5,a0 + 2348: ef85 bnez a5,2380 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:235 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ɹ!"); + 234a: 00017597 auipc a1,0x17 + 234e: e3a58593 addi a1,a1,-454 # 19184 <_read+0x62> + 2352: 4505 li a0,1 + 2354: 351d jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:242 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ʧ %02X!",rev); + return 0x01; + } + + //д + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR1, data_buff, WR_Len); + 2356: 03c00693 li a3,60 + 235a: 0050 addi a2,sp,4 + 235c: 000375b7 lui a1,0x37 + 2360: 4509 li a0,2 + 2362: 694030ef jal ra,59f6 + 2366: 0ff57413 zext.b s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:243 + if(rev == 0x00){ + 236a: c80d beqz s0,239c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:246 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ɹ"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ʧ %02X!",rev); + 236c: 0ff57613 zext.b a2,a0 + 2370: 00017597 auipc a1,0x17 + 2374: e4058593 addi a1,a1,-448 # 191b0 <_read+0x8e> + 2378: 4505 li a0,1 + 237a: 3501 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:247 + return 0x02; + 237c: 4409 li s0,2 + 237e: a811 j 2392 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:237 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ʧ %02X!",rev); + 2380: 0ff57613 zext.b a2,a0 + 2384: 00017597 auipc a1,0x17 + 2388: e0c58593 addi a1,a1,-500 # 19190 <_read+0x6e> + 238c: 4505 li a0,1 + 238e: 33f5 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:238 + return 0x01; + 2390: 4405 li s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:251 + } + + return 0x00; +} + 2392: 40b6 lw ra,76(sp) + 2394: 8522 mv a0,s0 + 2396: 4426 lw s0,72(sp) + 2398: 6161 addi sp,sp,80 + 239a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:244 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "1ɹ"); + 239c: 00017597 auipc a1,0x17 + 23a0: e0458593 addi a1,a1,-508 # 191a0 <_read+0x7e> + 23a4: 4505 li a0,1 + 23a6: 3bd1 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:250 + return 0x00; + 23a8: b7ed j 2392 + +000023aa : +EEPROM_Read_PortGroupData(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:260 +/***************************************> жϲ <********************************************/ + + +//ȡ豸жϲϢ +uint8_t EEPROM_Read_PortGroupData(GroupInfo_t *info) +{ + 23aa: 7135 addi sp,sp,-160 + 23ac: cd22 sw s0,152(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:267 + uint16_t read_len = 0x00; + uint8_t read_info[4]; + uint8_t para_data[RD_Len]; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + 23ae: 08b00613 li a2,139 + 23b2: 4581 li a1,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:260 +{ + 23b4: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:267 + memset(para_data,0,sizeof(para_data)); + 23b6: 0048 addi a0,sp,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:260 +{ + 23b8: cf06 sw ra,156(sp) + 23ba: cb26 sw s1,148(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:266 + memset(read_info,0,sizeof(read_info)); + 23bc: c002 sw zero,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:267 + memset(para_data,0,sizeof(para_data)); + 23be: 332d jal 20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:269 + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2,read_info,4); + 23c0: 4611 li a2,4 + 23c2: 858a mv a1,sp + 23c4: 00038537 lui a0,0x38 + 23c8: 731020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:272 + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%02x,%02x,%02x,%02x",read_info[0],read_info[1],read_info[2],read_info[3]); + if(read_info[0] == EEPROM_SaveInfo_Flag){ + 23cc: 8010 lbu a2,0(sp) + 23ce: 05a00793 li a5,90 + 23d2: 04f61e63 bne a2,a5,242e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:275 + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 23d6: 8104 lbu s1,2(sp) + 23d8: 809c lbu a5,1(sp) + 23da: 04a2 slli s1,s1,0x8 + 23dc: 8cdd or s1,s1,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:277 + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + 23de: 6785 lui a5,0x1 + 23e0: 17f1 addi a5,a5,-4 # ffc <_sinit-0x4> + 23e2: 0097f863 bgeu a5,s1,23f2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:293 + } + }else{ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read Flag Fail2:%02x",read_info[0]); + } + + return 0x01; + 23e6: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:294 +} + 23e8: 40fa lw ra,156(sp) + 23ea: 446a lw s0,152(sp) + 23ec: 44da lw s1,148(sp) + 23ee: 610d addi sp,sp,160 + 23f0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:278 + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR2+4,para_data,read_len); + 23f2: 00038537 lui a0,0x38 + 23f6: 8626 mv a2,s1 + 23f8: 004c addi a1,sp,4 + 23fa: 0511 addi a0,a0,4 # 38004 <_data_lma+0x1ca48> + 23fc: 6fd020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:280 + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + 2400: 85a6 mv a1,s1 + 2402: 0048 addi a0,sp,4 + 2404: 33f5 jal 21f0 + 2406: 819c lbu a5,3(sp) + 2408: fca79fe3 bne a5,a0,23e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:282 + memcpy(info,para_data,sizeof(GroupInfo_t)); + 240c: 08b00613 li a2,139 + 2410: 004c addi a1,sp,4 + 2412: 8522 mv a0,s0 + 2414: 397d jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:284 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use:%d,%d,%d,%d",info->VC_ConNToSGruop,info->VC_ConNToSSubset,info->VC_ConSToNGruop,info->VC_ConSToNSubset); + 2416: 303c lbu a5,3(s0) + 2418: 2038 lbu a4,2(s0) + 241a: 3014 lbu a3,1(s0) + 241c: 2010 lbu a2,0(s0) + 241e: 4505 li a0,1 + 2420: 00017597 auipc a1,0x17 + 2424: da458593 addi a1,a1,-604 # 191c4 <_read+0xa2> + 2428: 3b89 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:286 + return 0x00; + 242a: 4501 li a0,0 + 242c: bf75 j 23e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:290 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read Flag Fail2:%02x",read_info[0]); + 242e: 00017597 auipc a1,0x17 + 2432: da658593 addi a1,a1,-602 # 191d4 <_read+0xb2> + 2436: 4505 li a0,1 + 2438: 3389 jal 217a + 243a: b775 j 23e6 + +0000243c : +EEPROM_Default_PortGroupData(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:299 + +//жĬϢ +void EEPROM_Default_PortGroupData(void) +{ + g_portGp.VC_ConNToSGruop = 0x02; //޿ȡ + 243c: 040607b7 lui a5,0x4060 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:298 +{ + 2440: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:299 + g_portGp.VC_ConNToSGruop = 0x02; //޿ȡ + 2442: 40278793 addi a5,a5,1026 # 4060402 <_data_lma+0x4044e46> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:304 + g_portGp.VC_ConNToSSubset = 0x04; //޿ȡ + g_portGp.VC_ConSToNGruop = 0x06; //() + g_portGp.VC_ConSToNSubset = 0x04; //޿ȡ + + memcpy(&g_portGp.PortGroupInfo,&DefaultGroupInfo,sizeof(DefaultGroupInfo)); + 2446: 08700613 li a2,135 + 244a: 00017597 auipc a1,0x17 + 244e: ee658593 addi a1,a1,-282 # 19330 + 2452: b5818513 addi a0,gp,-1192 # 20001510 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:298 +{ + 2456: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:299 + g_portGp.VC_ConNToSGruop = 0x02; //޿ȡ + 2458: b4f1aa23 sw a5,-1196(gp) # 2000150c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:304 + memcpy(&g_portGp.PortGroupInfo,&DefaultGroupInfo,sizeof(DefaultGroupInfo)); + 245c: 399d jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:306 + +} + 245e: 40b2 lw ra,12(sp) + 2460: 0141 addi sp,sp,16 + 2462: 8082 ret + +00002464 : +EEPROM_Write_PortGroupData(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:310 + +//豸жϢ +uint8_t EEPROM_Write_PortGroupData(GroupInfo_t *info) +{ + 2464: 7135 addi sp,sp,-160 + 2466: cd22 sw s0,152(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:318 + uint8_t data_buff[WR_Len]; + uint8_t rev = 0; + + if(WR_Len > EEPROM_INFO_Size) return 0x01; + + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_GroupData1:%d",data_len); + 2468: 08b00613 li a2,139 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:310 +{ + 246c: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:318 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_GroupData1:%d",data_len); + 246e: 00017597 auipc a1,0x17 + 2472: d8258593 addi a1,a1,-638 # 191f0 <_read+0xce> + 2476: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:310 +{ + 2478: cf06 sw ra,156(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:318 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_GroupData1:%d",data_len); + 247a: 3301 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:319 + memset(data_buff,0x00,WR_Len); + 247c: 08e00613 li a2,142 + 2480: 4581 li a1,0 + 2482: 00210513 addi a0,sp,2 + 2486: 318d jal 20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:321 + + data_buff[0] = EEPROM_SaveInfo_Flag; + 2488: 05a00793 li a5,90 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:326 + data_buff[1] = data_len & 0xFF; + data_buff[2] = (data_len >> 8) & 0xFF; + data_buff[3] = 0x00; //Sum Check + + memcpy(&data_buff[4],(uint8_t *)info,data_len); //ȥز + 248c: 08b00613 li a2,139 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:321 + data_buff[0] = EEPROM_SaveInfo_Flag; + 2490: 805c sb a5,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:326 + memcpy(&data_buff[4],(uint8_t *)info,data_len); //ȥز + 2492: 85a2 mv a1,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:322 + data_buff[1] = data_len & 0xFF; + 2494: f8b00793 li a5,-117 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:326 + memcpy(&data_buff[4],(uint8_t *)info,data_len); //ȥز + 2498: 0048 addi a0,sp,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:322 + data_buff[1] = data_len & 0xFF; + 249a: 80dc sb a5,1(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:326 + memcpy(&data_buff[4],(uint8_t *)info,data_len); //ȥز + 249c: 391d jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:327 + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + 249e: 08b00593 li a1,139 + 24a2: 0048 addi a0,sp,4 + 24a4: 33b1 jal 21f0 + 24a6: 81c8 sb a0,3(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:334 + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupDataW22:%d,%d,%d,%d",data_buff[4],data_buff[5],data_buff[6],data_buff[7]); + // Dbg_Println(DBG_BIT_PC_COMM, "flag:%02x,len:%d,sum:%02x",EEPROM_SaveInfo_Flag,data_len,data_buff[3]); + + // + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR2,EEPROM_INFO_Size); + 24a8: 6685 lui a3,0x1 + 24aa: 4601 li a2,0 + 24ac: 000385b7 lui a1,0x38 + 24b0: 4505 li a0,1 + 24b2: 544030ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:335 + if(rev == 0x00){ + 24b6: 0ff57793 zext.b a5,a0 + 24ba: ef85 bnez a5,24f2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:336 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ɹ!"); + 24bc: 00017597 auipc a1,0x17 + 24c0: d5058593 addi a1,a1,-688 # 1920c <_read+0xea> + 24c4: 4505 li a0,1 + 24c6: 3955 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:343 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ʧ %02X!",rev); + return 0x01; + } + + //д + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR2, data_buff, WR_Len); + 24c8: 09000693 li a3,144 + 24cc: 860a mv a2,sp + 24ce: 000385b7 lui a1,0x38 + 24d2: 4509 li a0,2 + 24d4: 522030ef jal ra,59f6 + 24d8: 0ff57413 zext.b s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:344 + if(rev == 0x00){ + 24dc: c80d beqz s0,250e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:347 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ɹ"); + }else { + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ʧ %02X!",rev); + 24de: 0ff57613 zext.b a2,a0 + 24e2: 00017597 auipc a1,0x17 + 24e6: d5658593 addi a1,a1,-682 # 19238 <_read+0x116> + 24ea: 4505 li a0,1 + 24ec: 3179 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:348 + return 0x02; + 24ee: 4409 li s0,2 + 24f0: a811 j 2504 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:338 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ʧ %02X!",rev); + 24f2: 0ff57613 zext.b a2,a0 + 24f6: 00017597 auipc a1,0x17 + 24fa: d2258593 addi a1,a1,-734 # 19218 <_read+0xf6> + 24fe: 4505 li a0,1 + 2500: 39ad jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:339 + return 0x01; + 2502: 4405 li s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:352 + } + + return 0x00; +} + 2504: 40fa lw ra,156(sp) + 2506: 8522 mv a0,s0 + 2508: 446a lw s0,152(sp) + 250a: 610d addi sp,sp,160 + 250c: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:345 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "2ɹ"); + 250e: 00017597 auipc a1,0x17 + 2512: d1a58593 addi a1,a1,-742 # 19228 <_read+0x106> + 2516: 4505 li a0,1 + 2518: 318d jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:351 + return 0x00; + 251a: b7ed j 2504 + +0000251c : +EEPROM_Read_RARDelayTim(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:394 + * : ȡӳ¼ӳٲϢ + * : RarInfo : ṹ + * ز : + ****************************************************************/ +uint8_t EEPROM_Read_RARDelayTim(RAR_Info *RarInfo) +{ + 251c: 7179 addi sp,sp,-48 + 251e: d422 sw s0,40(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:403 + uint8_t para_data[RD_Len]; + + memset(read_info,0,sizeof(read_info)); + memset(para_data,0,sizeof(para_data)); + + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3,read_info,4); + 2520: 4611 li a2,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:394 +{ + 2522: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:403 + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3,read_info,4); + 2524: 006c addi a1,sp,12 + 2526: 00039537 lui a0,0x39 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:394 +{ + 252a: d606 sw ra,44(sp) + 252c: d226 sw s1,36(sp) + 252e: d04a sw s2,32(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:400 + memset(read_info,0,sizeof(read_info)); + 2530: c602 sw zero,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:401 + memset(para_data,0,sizeof(para_data)); + 2532: c802 sw zero,16(sp) + 2534: ca02 sw zero,20(sp) + 2536: cc02 sw zero,24(sp) + 2538: ce02 sw zero,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:403 + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3,read_info,4); + 253a: 5bf020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:406 + + // Dbg_Println(DBG_BIT_PC_COMM, "GroupData:%02x,%02x,%02x,%02x",read_info[0],read_info[1],read_info[2],read_info[3]); + if(read_info[0] == EEPROM_RARDelayTim_Flag){ + 253e: 8610 lbu a2,12(sp) + 2540: 03a00793 li a5,58 + 2544: 06f61f63 bne a2,a5,25c2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:409 + read_len = read_info[2]; + read_len <<= 8; + read_len |= read_info[1]; + 2548: 8704 lbu s1,14(sp) + 254a: 869c lbu a5,13(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:411 + + if(read_len <= (EEPROM_INFO_Size - 4) ){ + 254c: 6905 lui s2,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:409 + read_len |= read_info[1]; + 254e: 04a2 slli s1,s1,0x8 + 2550: 8cdd or s1,s1,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:411 + if(read_len <= (EEPROM_INFO_Size - 4) ){ + 2552: ffc90793 addi a5,s2,-4 # ffc <_sinit-0x4> + 2556: 0697ec63 bltu a5,s1,25ce +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:412 + FLASH_ROM_READ(EEPROM_INFO_SAVE_ADDR3+4,para_data,read_len); + 255a: 00039537 lui a0,0x39 + 255e: 8626 mv a2,s1 + 2560: 080c addi a1,sp,16 + 2562: 0511 addi a0,a0,4 # 39004 <_data_lma+0x1da48> + 2564: 595020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:413 + if(EEPROM_CheckSum(para_data,read_len) == read_info[3]){ + 2568: 85a6 mv a1,s1 + 256a: 0808 addi a0,sp,16 + 256c: 3151 jal 21f0 + 256e: 879c lbu a5,15(sp) + 2570: 04a79f63 bne a5,a0,25ce +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:415 + // ȡˡ + memcpy(RarInfo,para_data,sizeof(RAR_Info)); + 2574: 4641 li a2,16 + 2576: 080c addi a1,sp,16 + 2578: 8522 mv a0,s0 + 257a: 3ea1 jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:417 + // ȡɹ + Dbg_Println(DBG_BIT_DEVICE_STATUS,"RARDelayTim:%d,%d,%d,%d",RarInfo->Door_RARON_Time,RarInfo->Door_RARFF_TimeOut,RarInfo->BATH_RARON_Time,RarInfo->BATH_RARFF_TimeOut); + 257c: 445c lw a5,12(s0) + 257e: 4418 lw a4,8(s0) + 2580: 4054 lw a3,4(s0) + 2582: 4010 lw a2,0(s0) + 2584: 00017597 auipc a1,0x17 + 2588: cc858593 addi a1,a1,-824 # 1924c <_read+0x12a> + 258c: 4505 li a0,1 + 258e: 36f5 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:424 + if(RarInfo->Door_RARON_Time == 0) + { + + } + + if(RarInfo->Door_RARFF_TimeOut < 5000) + 2590: 4058 lw a4,4(s0) + 2592: 38790793 addi a5,s2,903 + 2596: 00e7e663 bltu a5,a4,25a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:426 + { + RarInfo->Door_RARFF_TimeOut = 5000; + 259a: 38890913 addi s2,s2,904 + 259e: 01242223 sw s2,4(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:434 + if(RarInfo->BATH_RARON_Time == 0) + { + + } + + if(RarInfo->BATH_RARFF_TimeOut < 5000) + 25a2: 4454 lw a3,12(s0) + 25a4: 6785 lui a5,0x1 + 25a6: 38778713 addi a4,a5,903 # 1387 <_einit+0x383> + 25aa: 00d76563 bltu a4,a3,25b4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:436 + { + RarInfo->BATH_RARFF_TimeOut = 5000; + 25ae: 38878793 addi a5,a5,904 + 25b2: c45c sw a5,12(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:439 + } + + return 0x00; + 25b4: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:447 + }else{ + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read RARDelayTim Flag Fail3:%02x",read_info[0]); + } + + return 0x01; +} + 25b6: 50b2 lw ra,44(sp) + 25b8: 5422 lw s0,40(sp) + 25ba: 5492 lw s1,36(sp) + 25bc: 5902 lw s2,32(sp) + 25be: 6145 addi sp,sp,48 + 25c0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:443 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Read RARDelayTim Flag Fail3:%02x",read_info[0]); + 25c2: 00017597 auipc a1,0x17 + 25c6: ca258593 addi a1,a1,-862 # 19264 <_read+0x142> + 25ca: 4505 li a0,1 + 25cc: 367d jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:446 + return 0x01; + 25ce: 4505 li a0,1 + 25d0: b7dd j 25b6 + +000025d2 : +EEPROM_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:39 +{ + 25d2: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:43 + FLASH_ROM_READ(OTA_DATAFLASH_ADD, &p_image_flash, 4); + 25d4: 4611 li a2,4 + 25d6: 8e018593 addi a1,gp,-1824 # 20001298 + 25da: 0003a537 lui a0,0x3a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:39 +{ + 25de: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:43 + FLASH_ROM_READ(OTA_DATAFLASH_ADD, &p_image_flash, 4); + 25e0: 519020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:45 + FLASH_ROM_ERASE(OTA_DATAFLASH_ADD, FLASH_BLOCK_SIZE); + 25e4: 6685 lui a3,0x1 + 25e6: 4601 li a2,0 + 25e8: 0003a5b7 lui a1,0x3a + 25ec: 4505 li a0,1 + 25ee: 408030ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:48 + p_image_flash.Revd[0] = 0; + 25f2: 8e018793 addi a5,gp,-1824 # 20001298 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:50 + if(p_image_flash.ImageFlag != IMAGE_A_FLAG){ + 25f6: 2394 lbu a3,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:48 + p_image_flash.Revd[0] = 0; + 25f8: 8e0180a3 sb zero,-1823(gp) # 20001299 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:50 + if(p_image_flash.ImageFlag != IMAGE_A_FLAG){ + 25fc: 4705 li a4,1 + 25fe: 00e68363 beq a3,a4,2604 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:51 + p_image_flash.ImageFlag = IMAGE_A_FLAG; + 2602: a398 sb a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:54 + FLASH_ROM_WRITE(OTA_DATAFLASH_ADD, &p_image_flash, 4); + 2604: 4691 li a3,4 + 2606: 8e018613 addi a2,gp,-1824 # 20001298 + 260a: 0003a5b7 lui a1,0x3a + 260e: 4509 li a0,2 + 2610: 3e6030ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:56 + memset(&g_portGp,0x00,sizeof(GroupInfo_t)); + 2614: 08b00613 li a2,139 + 2618: 4581 li a1,0 + 261a: b5418513 addi a0,gp,-1196 # 2000150c + 261e: 34e9 jal 20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:57 + memset(&g_rar_info,0x00,sizeof(RAR_Info)); + 2620: b401a223 sw zero,-1212(gp) # 200014fc + 2624: b401a423 sw zero,-1208(gp) # 20001500 + 2628: b401a623 sw zero,-1204(gp) # 20001504 + 262c: b401a823 sw zero,-1200(gp) # 20001508 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:60 + rev = EEPROM_Read_PortInfo(); + 2630: 36dd jal 2216 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:61 + if(rev == 0x00) + 2632: c901 beqz a0,2642 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:66 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default PortInfo"); + 2634: 00017597 auipc a1,0x17 + 2638: c5858593 addi a1,a1,-936 # 1928c <_read+0x16a> + 263c: 4505 li a0,1 + 263e: 3e35 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:67 + EEPROM_Default_PortInfo(); + 2640: 39b1 jal 229c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:71 + rev = EEPROM_Read_PortGroupData(&g_portGp); + 2642: b5418513 addi a0,gp,-1196 # 2000150c + 2646: 3395 jal 23aa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:72 + if(rev == 0x00) + 2648: c901 beqz a0,2658 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:77 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default GroupData"); + 264a: 00017597 auipc a1,0x17 + 264e: c5a58593 addi a1,a1,-934 # 192a4 <_read+0x182> + 2652: 4505 li a0,1 + 2654: 361d jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:78 + EEPROM_Default_PortGroupData(); + 2656: 33dd jal 243c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:81 + rev = EEPROM_Read_RARDelayTim(&g_rar_info); + 2658: b4418513 addi a0,gp,-1212 # 200014fc + 265c: 35c1 jal 251c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:82 + if(rev == 0x00) + 265e: c515 beqz a0,268a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:87 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"Use Default RARDelayTim"); + 2660: 00017597 auipc a1,0x17 + 2664: c5c58593 addi a1,a1,-932 # 192bc <_read+0x19a> + 2668: 4505 li a0,1 + 266a: 3e01 jal 217a +EEPROM_Default_RARDelayTim(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:511 + * : RarInfo : ṹ + * ز : + ****************************************************************/ +void EEPROM_Default_RARDelayTim(RAR_Info *RarInfo) +{ + RarInfo->Door_RARON_Time = 0; + 266c: b401a223 sw zero,-1212(gp) # 200014fc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:512 + RarInfo->Door_RARFF_TimeOut = DOOR_RDR_DELAYTIME; + 2670: 679d lui a5,0x7 + 2672: 53078793 addi a5,a5,1328 # 7530 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:511 + RarInfo->Door_RARON_Time = 0; + 2676: b4418713 addi a4,gp,-1212 # 200014fc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:512 + RarInfo->Door_RARFF_TimeOut = DOOR_RDR_DELAYTIME; + 267a: c35c sw a5,4(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:513 + RarInfo->BATH_RARON_Time = 0; + 267c: b401a623 sw zero,-1204(gp) # 20001504 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:514 + RarInfo->BATH_RARFF_TimeOut = BATH_RDR_DELAYTIME; + 2680: 002dc7b7 lui a5,0x2dc + 2684: 6c078793 addi a5,a5,1728 # 2dc6c0 <_data_lma+0x2c1104> + 2688: c75c sw a5,12(a4) +EEPROM_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:91 +} + 268a: 40b2 lw ra,12(sp) + 268c: 0141 addi sp,sp,16 + 268e: 8082 ret + +00002690 : +EEPROM_Write_RARDelayTim(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:457 +{ + 2690: 7179 addi sp,sp,-48 + 2692: d422 sw s0,40(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:465 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_RARDelayTim:%d",data_len); + 2694: 4641 li a2,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:457 +{ + 2696: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:465 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_RARDelayTim:%d",data_len); + 2698: 00017597 auipc a1,0x17 + 269c: c3c58593 addi a1,a1,-964 # 192d4 <_read+0x1b2> + 26a0: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:457 +{ + 26a2: d606 sw ra,44(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:465 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "EEPROM_Save_RARDelayTim:%d",data_len); + 26a4: 3cd9 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:466 + memset(data_buff,0x00,WR_Len); + 26a6: 4659 li a2,22 + 26a8: 4581 li a1,0 + 26aa: 00a10513 addi a0,sp,10 + 26ae: 3c2d jal 20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:468 + data_buff[0] = EEPROM_RARDelayTim_Flag; + 26b0: 6785 lui a5,0x1 + 26b2: 03a78793 addi a5,a5,58 # 103a <_einit+0x36> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:473 + memcpy(&data_buff[4],(uint8_t *)RarInfo,data_len); //ȥز + 26b6: 4641 li a2,16 + 26b8: 85a2 mv a1,s0 + 26ba: 0068 addi a0,sp,12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:468 + data_buff[0] = EEPROM_RARDelayTim_Flag; + 26bc: 847c sh a5,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:473 + memcpy(&data_buff[4],(uint8_t *)RarInfo,data_len); //ȥز + 26be: 3c11 jal 20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:474 + data_buff[3] = EEPROM_CheckSum(&data_buff[4],data_len); + 26c0: 45c1 li a1,16 + 26c2: 0068 addi a0,sp,12 + 26c4: 3635 jal 21f0 + 26c6: 85c8 sb a0,11(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:481 + rev = FLASH_ROM_ERASE(EEPROM_INFO_SAVE_ADDR3,EEPROM_INFO_Size); + 26c8: 6685 lui a3,0x1 + 26ca: 4601 li a2,0 + 26cc: 000395b7 lui a1,0x39 + 26d0: 4505 li a0,1 + 26d2: 324030ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:482 + if(rev == 0x00){ + 26d6: 0ff57793 zext.b a5,a0 + 26da: eb9d bnez a5,2710 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:483 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ɹ!"); + 26dc: 00017597 auipc a1,0x17 + 26e0: c1458593 addi a1,a1,-1004 # 192f0 <_read+0x1ce> + 26e4: 4505 li a0,1 + 26e6: 3c51 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:490 + rev = FLASH_ROM_WRITE(EEPROM_INFO_SAVE_ADDR3, data_buff, WR_Len); + 26e8: 46e1 li a3,24 + 26ea: 0030 addi a2,sp,8 + 26ec: 000395b7 lui a1,0x39 + 26f0: 4509 li a0,2 + 26f2: 304030ef jal ra,59f6 + 26f6: 0ff57413 zext.b s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:491 + if(rev == 0x00){ + 26fa: c80d beqz s0,272c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:494 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ʧ %02X!",rev); + 26fc: 0ff57613 zext.b a2,a0 + 2700: 00017597 auipc a1,0x17 + 2704: c1c58593 addi a1,a1,-996 # 1931c <_read+0x1fa> + 2708: 4505 li a0,1 + 270a: 3c85 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:495 + return 0x02; + 270c: 4409 li s0,2 + 270e: a811 j 2722 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:485 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ʧ %02X!",rev); + 2710: 0ff57613 zext.b a2,a0 + 2714: 00017597 auipc a1,0x17 + 2718: be858593 addi a1,a1,-1048 # 192fc <_read+0x1da> + 271c: 4505 li a0,1 + 271e: 3cb1 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:486 + return 0x01; + 2720: 4405 li s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:499 +} + 2722: 50b2 lw ra,44(sp) + 2724: 8522 mv a0,s0 + 2726: 5422 lw s0,40(sp) + 2728: 6145 addi sp,sp,48 + 272a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:492 + Dbg_Println(DBG_BIT_DEVICE_STATUS, "3ɹ"); + 272c: 00017597 auipc a1,0x17 + 2730: be058593 addi a1,a1,-1056 # 1930c <_read+0x1ea> + 2734: 4505 li a0,1 + 2736: 3491 jal 217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/flash.c:498 + return 0x00; + 2738: b7ed j 2722 + +0000273a : +simpleProfile_ReadAttrCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:514 + * + * @return Success or Failure + */ +static bStatus_t simpleProfile_ReadAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t *pLen, uint16_t offset, uint16_t maxLen, uint8_t method) +{ + 273a: 8532 mv a0,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:521 + + + // Make sure it's not a blob operation (no attributes in the profile are long) + if(offset > 0) + { + return (ATT_ERR_ATTR_NOT_LONG); + 273c: 462d li a2,11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:519 + if(offset > 0) + 273e: e33d bnez a4,27a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:524 + } + + if(pAttr->type.len == ATT_BT_UUID_SIZE) + 2740: 2190 lbu a2,0(a1) + 2742: 4709 li a4,2 + 2744: 04e61d63 bne a2,a4,279e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:527 + { + // 16-bit UUID + uint16_t uuid = BUILD_UINT16(pAttr->type.uuid[0], pAttr->type.uuid[1]); + 2748: 41d8 lw a4,4(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:514 +{ + 274a: 1141 addi sp,sp,-16 + 274c: c606 sw ra,12(sp) + 274e: 2310 lbu a2,0(a4) + 2750: 3318 lbu a4,1(a4) + 2752: 0722 slli a4,a4,0x8 + 2754: 8f51 or a4,a4,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:528 + switch(uuid) + 2756: 6641 lui a2,0x10 + 2758: fe260813 addi a6,a2,-30 # ffe2 + 275c: 03070863 beq a4,a6,278c + 2760: fe360813 addi a6,a2,-29 + 2764: 03070763 beq a4,a6,2792 + 2768: 1605 addi a2,a2,-31 + 276a: 02c71663 bne a4,a2,2796 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:539 + // characteritisc 3 does not have read permissions; therefore it is not + // included here + // characteristic 4 does not have read permissions, but because it + // can be sent as a notification, it is included here + case SIMPLEPROFILE_CHAR1_UUID: + if(maxLen > SIMPLEPROFILE_CHAR1_LEN) + 276e: 05000713 li a4,80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:571 + } + else + { + *pLen = maxLen; + } + tmos_memcpy(pValue, pAttr->pValue, *pLen); + 2772: 45cc lw a1,12(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:563 + if(maxLen > SIMPLEPROFILE_CHAR4_LEN) + 2774: 0ae7d633 minu a2,a5,a4 + 2778: a292 sh a2,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:571 + tmos_memcpy(pValue, pAttr->pValue, *pLen); + 277a: 1fffe097 auipc ra,0x1fffe + 277e: 0e2080e7 jalr 226(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:515 + bStatus_t status = SUCCESS; + 2782: 4601 li a2,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:601 + *pLen = 0; + status = ATT_ERR_INVALID_HANDLE; + } + + return (status); +} + 2784: 40b2 lw ra,12(sp) + 2786: 8532 mv a0,a2 + 2788: 0141 addi sp,sp,16 + 278a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:563 + if(maxLen > SIMPLEPROFILE_CHAR4_LEN) + 278c: 03c00713 li a4,60 + 2790: b7cd j 2772 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:575 + if(maxLen > SIMPLEPROFILE_CHAR5_LEN) + 2792: 4715 li a4,5 + 2794: bff9 j 2772 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:588 + *pLen = 0; + 2796: 00069023 sh zero,0(a3) # 1000 <_sinit> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:589 + status = ATT_ERR_ATTR_NOT_FOUND; + 279a: 4629 li a2,10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:590 + break; + 279c: b7e5 j 2784 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:596 + *pLen = 0; + 279e: 00069023 sh zero,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:597 + status = ATT_ERR_INVALID_HANDLE; + 27a2: 4605 li a2,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:601 +} + 27a4: 8532 mv a0,a2 + 27a6: 8082 ret + +000027a8 : +simpleProfile_WriteAttrCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:618 + * + * @return Success or Failure + */ +static bStatus_t simpleProfile_WriteAttrCB(uint16_t connHandle, gattAttribute_t *pAttr, + uint8_t *pValue, uint16_t len, uint16_t offset, uint8_t method) +{ + 27a8: 1141 addi sp,sp,-16 + 27aa: c606 sw ra,12(sp) + 27ac: c422 sw s0,8(sp) + 27ae: c226 sw s1,4(sp) + 27b0: c04a sw s2,0(sp) + 27b2: 2580 lbu s0,8(a1) + 27b4: 02047413 andi s0,s0,32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:623 + bStatus_t status = SUCCESS; + uint8_t notifyApp = 0xFF; + + // If attribute permissions require authorization to write, return error + if(gattPermitAuthorWrite(pAttr->permissions)) + 27b8: e059 bnez s0,283e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:629 + { + // Insufficient authorization + return (ATT_ERR_INSUFFICIENT_AUTHOR); + } + + if(pAttr->type.len == ATT_BT_UUID_SIZE) + 27ba: 0005c303 lbu t1,0(a1) + 27be: 4809 li a6,2 + 27c0: 87ae mv a5,a1 + 27c2: 09031063 bne t1,a6,2842 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:632 + { + // 16-bit UUID + uint16_t uuid = BUILD_UINT16(pAttr->type.uuid[0], pAttr->type.uuid[1]); + 27c6: 0045a803 lw a6,4(a1) + 27ca: 00084303 lbu t1,0(a6) + 27ce: 00184803 lbu a6,1(a6) + 27d2: 0822 slli a6,a6,0x8 + 27d4: 00686833 or a6,a6,t1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:633 + switch(uuid) + 27d8: 630d lui t1,0x3 + 27da: 90230313 addi t1,t1,-1790 # 2902 + 27de: 04680163 beq a6,t1,2820 + 27e2: 88ba mv a7,a4 + 27e4: 6741 lui a4,0x10 + 27e6: 1705 addi a4,a4,-31 # ffe1 + 27e8: 04e81f63 bne a6,a4,2846 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:638 + { + case SIMPLEPROFILE_CHAR1_UUID: + //Validate the value + // Make sure it's not a blob oper + if(offset == 0) + 27ec: 04089f63 bnez a7,284a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:640 + { + if(len > SIMPLEPROFILE_CHAR1_LEN) + 27f0: 05000713 li a4,80 + 27f4: 8936 mv s2,a3 + 27f6: 04d76c63 bltu a4,a3,284e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:653 + } + + //Write the value + if(status == SUCCESS) + { + tmos_memcpy(pAttr->pValue, pValue, SIMPLEPROFILE_CHAR1_LEN); + 27fa: 47c8 lw a0,12(a5) + 27fc: 84b2 mv s1,a2 + 27fe: 85a6 mv a1,s1 + 2800: 05000613 li a2,80 + 2804: 1fffe097 auipc ra,0x1fffe + 2808: 058080e7 jalr 88(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:700 + // 128-bit UUID + status = ATT_ERR_INVALID_HANDLE; + } + + // If a charactersitic value changed then callback function to notify application of change + if((notifyApp != 0xFF) && simpleProfile_AppCBs && simpleProfile_AppCBs->pfnSimpleProfileChange) + 280c: 8f41a783 lw a5,-1804(gp) # 200012ac + 2810: e385 bnez a5,2830 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:706 + { + simpleProfile_AppCBs->pfnSimpleProfileChange(notifyApp, pValue, len); + } + + return (status); +} + 2812: 40b2 lw ra,12(sp) + 2814: 8522 mv a0,s0 + 2816: 4422 lw s0,8(sp) + 2818: 4492 lw s1,4(sp) + 281a: 4902 lw s2,0(sp) + 281c: 0141 addi sp,sp,16 + 281e: 8082 ret + 2820: 4422 lw s0,8(sp) + 2822: 40b2 lw ra,12(sp) + 2824: 4492 lw s1,4(sp) + 2826: 4902 lw s2,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:683 + status = GATTServApp_ProcessCCCWriteReq(connHandle, pAttr, pValue, len, + 2828: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:706 +} + 282a: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:683 + status = GATTServApp_ProcessCCCWriteReq(connHandle, pAttr, pValue, len, + 282c: 1e50606f j 9210 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:700 + if((notifyApp != 0xFF) && simpleProfile_AppCBs && simpleProfile_AppCBs->pfnSimpleProfileChange) + 2830: 439c lw a5,0(a5) + 2832: d3e5 beqz a5,2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:702 + simpleProfile_AppCBs->pfnSimpleProfileChange(notifyApp, pValue, len); + 2834: 864a mv a2,s2 + 2836: 85a6 mv a1,s1 + 2838: 4501 li a0,0 + 283a: 9782 jalr a5 + 283c: bfd9 j 2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:626 + return (ATT_ERR_INSUFFICIENT_AUTHOR); + 283e: 4421 li s0,8 + 2840: bfc9 j 2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:696 + status = ATT_ERR_INVALID_HANDLE; + 2842: 4405 li s0,1 + 2844: b7f9 j 2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:633 + switch(uuid) + 2846: 4429 li s0,10 + 2848: b7e9 j 2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:647 + status = ATT_ERR_ATTR_NOT_LONG; + 284a: 442d li s0,11 + 284c: b7d9 j 2812 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:642 + status = ATT_ERR_INVALID_VALUE_SIZE; + 284e: 4435 li s0,13 + 2850: b7c9 j 2812 + +00002852 : +simpleProfile_HandleConnStatusCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:721 + * @return none + */ +static void simpleProfile_HandleConnStatusCB(uint16_t connHandle, uint8_t changeType) +{ + // Make sure this is not loopback connection + if(connHandle != LOOPBACK_CONNHANDLE) + 2852: 67c1 lui a5,0x10 + 2854: 17f9 addi a5,a5,-2 # fffe + 2856: 02f50c63 beq a0,a5,288e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:719 +{ + 285a: 1141 addi sp,sp,-16 + 285c: c422 sw s0,8(sp) + 285e: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:724 + { + // Reset Client Char Config if connection has dropped + if((changeType == LINKDB_STATUS_UPDATE_REMOVED) || + 2860: 4785 li a5,1 + 2862: 842a mv s0,a0 + 2864: 00f59a63 bne a1,a5,2878 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:728 + ((changeType == LINKDB_STATUS_UPDATE_STATEFLAGS) && + (!linkDB_Up(connHandle)))) + { + GATTServApp_InitCharCfg(connHandle, simpleProfileChar4Config); // ӶϿʱCHAR4֪ͨ + 2868: 8522 mv a0,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:731 + } + } +} + 286a: 4422 lw s0,8(sp) + 286c: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:728 + GATTServApp_InitCharCfg(connHandle, simpleProfileChar4Config); // ӶϿʱCHAR4֪ͨ + 286e: 8ec18593 addi a1,gp,-1812 # 200012a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:731 +} + 2872: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:728 + GATTServApp_InitCharCfg(connHandle, simpleProfileChar4Config); // ӶϿʱCHAR4֪ͨ + 2874: 3b40806f j ac28 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:724 (discriminator 1) + if((changeType == LINKDB_STATUS_UPDATE_REMOVED) || + 2878: 4789 li a5,2 + 287a: 00f59663 bne a1,a5,2886 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:726 + (!linkDB_Up(connHandle)))) + 287e: 4585 li a1,1 + 2880: 4b2090ef jal ra,bd32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:725 + ((changeType == LINKDB_STATUS_UPDATE_STATEFLAGS) && + 2884: d175 beqz a0,2868 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:731 +} + 2886: 40b2 lw ra,12(sp) + 2888: 4422 lw s0,8(sp) + 288a: 0141 addi sp,sp,16 + 288c: 8082 ret + 288e: 8082 ret + +00002890 : +SimpleProfile_AddService(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:298 +{ + 2890: 1141 addi sp,sp,-16 + 2892: c422 sw s0,8(sp) + 2894: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:302 + GATTServApp_InitCharCfg(INVALID_CONNHANDLE, simpleProfileChar4Config); //ʼUUID4֪ͨ + 2896: 6541 lui a0,0x10 + 2898: 8ec18593 addi a1,gp,-1812 # 200012a4 + 289c: 157d addi a0,a0,-1 # ffff +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:298 +{ + 289e: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:302 + GATTServApp_InitCharCfg(INVALID_CONNHANDLE, simpleProfileChar4Config); //ʼUUID4֪ͨ + 28a0: 388080ef jal ra,ac28 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:305 + linkDB_Register(simpleProfile_HandleConnStatusCB); //·ݿ⣨Link DBע״̬仯Ļص + 28a4: 00000517 auipc a0,0x0 + 28a8: fae50513 addi a0,a0,-82 # 2852 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:307 + if(services & SIMPLEPROFILE_SERVICE) //ע GATT 񵽷 + 28ac: 8805 andi s0,s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:305 + linkDB_Register(simpleProfile_HandleConnStatusCB); //·ݿ⣨Link DBע״̬仯Ļص + 28ae: 406090ef jal ra,bcb4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:307 + if(services & SIMPLEPROFILE_SERVICE) //ע GATT 񵽷 + 28b2: c005 beqz s0,28d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:317 +} + 28b4: 4422 lw s0,8(sp) + 28b6: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:310 + status = GATTServApp_RegisterService(simpleProfileAttrTbl, //UUIDעԱ + 28b8: 1fffe697 auipc a3,0x1fffe + 28bc: 76068693 addi a3,a3,1888 # 20001018 + 28c0: 4641 li a2,16 + 28c2: 45ad li a1,11 + 28c4: 1fffe517 auipc a0,0x1fffe + 28c8: 76050513 addi a0,a0,1888 # 20001024 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:317 +} + 28cc: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:310 + status = GATTServApp_RegisterService(simpleProfileAttrTbl, //UUIDעԱ + 28ce: 2be0806f j ab8c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:317 +} + 28d2: 40b2 lw ra,12(sp) + 28d4: 4422 lw s0,8(sp) + 28d6: 4501 li a0,0 + 28d8: 0141 addi sp,sp,16 + 28da: 8082 ret + +000028dc : +SimpleProfile_RegisterAppCBs(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:331 + if(appCallbacks) + 28dc: c509 beqz a0,28e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:333 + simpleProfile_AppCBs = appCallbacks; + 28de: 8ea1aa23 sw a0,-1804(gp) # 200012ac +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:335 + return (SUCCESS); + 28e2: 4501 li a0,0 + 28e4: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:339 + return (bleAlreadyInRequestedMode); + 28e6: 4545 li a0,17 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:341 +} + 28e8: 8082 ret + +000028ea : +SimpleProfile_SetParameter(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:360 + switch(param) + 28ea: 4711 li a4,4 + 28ec: 08a76263 bltu a4,a0,2970 + 28f0: 00017697 auipc a3,0x17 + 28f4: ac868693 addi a3,a3,-1336 # 193b8 + 28f8: 20d54533 sh2add a0,a0,a3 + 28fc: 4118 lw a4,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:358 +{ + 28fe: 1141 addi sp,sp,-16 + 2900: 87ae mv a5,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:360 + switch(param) + 2902: 9736 add a4,a4,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:358 +{ + 2904: c606 sw ra,12(sp) + 2906: 85b2 mv a1,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:360 + switch(param) + 2908: 8702 jr a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:363 + if(len == SIMPLEPROFILE_CHAR1_LEN) + 290a: 05000713 li a4,80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:369 + ret = bleInvalidRange; + 290e: 4561 li a0,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:363 + if(len == SIMPLEPROFILE_CHAR1_LEN) + 2910: 00e79b63 bne a5,a4,2926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:365 + tmos_memcpy(simpleProfileChar1, value, SIMPLEPROFILE_CHAR1_LEN); + 2914: 05000613 li a2,80 + 2918: bf818513 addi a0,gp,-1032 # 200015b0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:387 + tmos_memcpy(simpleProfileChar3, value, SIMPLEPROFILE_CHAR3_LEN); + 291c: 1fffe097 auipc ra,0x1fffe + 2920: f40080e7 jalr -192(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:359 + bStatus_t ret = SUCCESS; + 2924: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:423 +} + 2926: 40b2 lw ra,12(sp) + 2928: 0141 addi sp,sp,16 + 292a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:374 + if(len == SIMPLEPROFILE_CHAR2_LEN) + 292c: 4729 li a4,10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:369 + ret = bleInvalidRange; + 292e: 4561 li a0,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:374 + if(len == SIMPLEPROFILE_CHAR2_LEN) + 2930: fee79be3 bne a5,a4,2926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:376 + tmos_memcpy(simpleProfileChar2, value, SIMPLEPROFILE_CHAR2_LEN); + 2934: 4629 li a2,10 + 2936: bec18513 addi a0,gp,-1044 # 200015a4 + 293a: b7cd j 291c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:385 + if(len == SIMPLEPROFILE_CHAR3_LEN) + 293c: 4729 li a4,10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:369 + ret = bleInvalidRange; + 293e: 4561 li a0,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:385 + if(len == SIMPLEPROFILE_CHAR3_LEN) + 2940: fee793e3 bne a5,a4,2926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:387 + tmos_memcpy(simpleProfileChar3, value, SIMPLEPROFILE_CHAR3_LEN); + 2944: 4629 li a2,10 + 2946: be018513 addi a0,gp,-1056 # 20001598 + 294a: bfc9 j 291c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:396 + if(len == SIMPLEPROFILE_CHAR4_LEN) + 294c: 03c00713 li a4,60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:369 + ret = bleInvalidRange; + 2950: 4561 li a0,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:396 + if(len == SIMPLEPROFILE_CHAR4_LEN) + 2952: fce79ae3 bne a5,a4,2926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:398 + tmos_memcpy(simpleProfileChar4, value, SIMPLEPROFILE_CHAR4_LEN); + 2956: 03c00613 li a2,60 + 295a: 8f018513 addi a0,gp,-1808 # 200012a8 + 295e: bf7d j 291c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:407 + if(len == SIMPLEPROFILE_CHAR5_LEN) + 2960: 4715 li a4,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:369 + ret = bleInvalidRange; + 2962: 4561 li a0,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:407 + if(len == SIMPLEPROFILE_CHAR5_LEN) + 2964: fce791e3 bne a5,a4,2926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:409 + tmos_memcpy(simpleProfileChar5, value, SIMPLEPROFILE_CHAR5_LEN); + 2968: 4615 li a2,5 + 296a: 8e418513 addi a0,gp,-1820 # 2000129c + 296e: b77d j 291c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:360 + switch(param) + 2970: 4509 li a0,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:423 +} + 2972: 8082 ret + +00002974 : +simpleProfile_Notify(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:483 +{ + 2974: 1141 addi sp,sp,-16 + 2976: c422 sw s0,8(sp) + 2978: 842e mv s0,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:484 + uint16_t value = GATTServApp_ReadCharCfg(connHandle, simpleProfileChar4Config); + 297a: 8ec18593 addi a1,gp,-1812 # 200012a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:483 +{ + 297e: c226 sw s1,4(sp) + 2980: c606 sw ra,12(sp) + 2982: 84aa mv s1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:484 + uint16_t value = GATTServApp_ReadCharCfg(connHandle, simpleProfileChar4Config); + 2984: 03d060ef jal ra,91c0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:487 + if(value & GATT_CLIENT_CFG_NOTIFY) + 2988: 8905 andi a0,a0,1 + 298a: cd19 beqz a0,29a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:490 + pNoti->handle = simpleProfileAttrTbl[SIMPLEPROFILE_CHAR4_VALUE_POS].handle; + 298c: 1fffe797 auipc a5,0x1fffe + 2990: 6f27d783 lhu a5,1778(a5) # 2000107e + 2994: a01e sh a5,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:493 + return GATT_Notification(connHandle, pNoti, FALSE); + 2996: 85a2 mv a1,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:496 +} + 2998: 4422 lw s0,8(sp) + 299a: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:493 + return GATT_Notification(connHandle, pNoti, FALSE); + 299c: 8526 mv a0,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:496 +} + 299e: 4492 lw s1,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:493 + return GATT_Notification(connHandle, pNoti, FALSE); + 29a0: 4601 li a2,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:496 +} + 29a2: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:493 + return GATT_Notification(connHandle, pNoti, FALSE); + 29a4: 4a80706f j 9e4c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/gattprofile.c:496 +} + 29a8: 40b2 lw ra,12(sp) + 29aa: 4422 lw s0,8(sp) + 29ac: 4492 lw s1,4(sp) + 29ae: 4549 li a0,18 + 29b0: 0141 addi sp,sp,16 + 29b2: 8082 ret + +000029b4 : +peripheralRssiCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:584 + * @return none + */ +static void peripheralRssiCB(uint16_t connHandle, int8_t rssi) +{ + // PRINT("RSSI -%d dB Conn %x \n", -rssi, connHandle); +} + 29b4: 8082 ret + +000029b6 : +peripheralChar4Notify(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:773 + * len - length of data + * + * @return none + */ +static void peripheralChar4Notify(uint8_t *pValue, uint16_t len) +{ + 29b6: 1101 addi sp,sp,-32 + 29b8: ca26 sw s1,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:777 + attHandleValueNoti_t noti; + + //YYW,1008 + if(peripheralConnList.connHandle == GAP_CONNHANDLE_INIT) + 29ba: 90018493 addi s1,gp,-1792 # 200012b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:773 +{ + 29be: cc22 sw s0,24(sp) + 29c0: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:777 + if(peripheralConnList.connHandle == GAP_CONNHANDLE_INIT) + 29c2: 208a lhu a0,0(s1) + 29c4: 67c1 lui a5,0x10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:773 +{ + 29c6: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:777 + if(peripheralConnList.connHandle == GAP_CONNHANDLE_INIT) + 29c8: 17f9 addi a5,a5,-2 # fffe + 29ca: 04f50a63 beq a0,a5,2a1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:782 + { + return; + } + + if(len > (peripheralMTU - 3)) + 29ce: 1fffe797 auipc a5,0x1fffe + 29d2: 7f27d783 lhu a5,2034(a5) # 200011c0 + 29d6: 17f9 addi a5,a5,-2 + 29d8: 862e mv a2,a1 + 29da: 00f5cc63 blt a1,a5,29f2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:797 + if(simpleProfile_Notify(peripheralConnList.connHandle, ¬i) != SUCCESS) + { + GATT_bm_free((gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI); + } + } +} + 29de: 4462 lw s0,24(sp) + 29e0: 40f2 lw ra,28(sp) + 29e2: 44d2 lw s1,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:784 + PRINT("Too large noti\n"); + 29e4: 00017517 auipc a0,0x17 + 29e8: 9e850513 addi a0,a0,-1560 # 193cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:797 +} + 29ec: 6105 addi sp,sp,32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:784 + PRINT("Too large noti\n"); + 29ee: 0471306f j 16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:787 + noti.len = len; + 29f2: 856c sh a1,10(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:788 + noti.pValue = GATT_bm_alloc(peripheralConnList.connHandle, ATT_HANDLE_VALUE_NOTI, noti.len, NULL, 0); + 29f4: 4701 li a4,0 + 29f6: 4681 li a3,0 + 29f8: 45ed li a1,27 + 29fa: 793050ef jal ra,898c + 29fe: c62a sw a0,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:789 + if(noti.pValue) + 2a00: cd19 beqz a0,2a1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:791 + tmos_memcpy(noti.pValue, pValue, noti.len); + 2a02: 8530 lhu a2,10(sp) + 2a04: 85a2 mv a1,s0 + 2a06: 1fffe097 auipc ra,0x1fffe + 2a0a: e56080e7 jalr -426(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:792 + if(simpleProfile_Notify(peripheralConnList.connHandle, ¬i) != SUCCESS) + 2a0e: 208a lhu a0,0(s1) + 2a10: 002c addi a1,sp,8 + 2a12: 378d jal 2974 + 2a14: c509 beqz a0,2a1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:794 + GATT_bm_free((gattMsg_t *)¬i, ATT_HANDLE_VALUE_NOTI); + 2a16: 45ed li a1,27 + 2a18: 0028 addi a0,sp,8 + 2a1a: 0e8060ef jal ra,8b02 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:797 +} + 2a1e: 40f2 lw ra,28(sp) + 2a20: 4462 lw s0,24(sp) + 2a22: 44d2 lw s1,20(sp) + 2a24: 6105 addi sp,sp,32 + 2a26: 8082 ret + +00002a28 : +simpleProfileChangeCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:843 + * len - length of data + * + * @return none + */ +static void simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len) +{ + 2a28: 711d addi sp,sp,-96 + 2a2a: ce86 sw ra,92(sp) + 2a2c: cca2 sw s0,88(sp) + 2a2e: caa6 sw s1,84(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:846 + uint8_t rev = 0xFF; + //洢ֵı + switch(paramID) + 2a30: c909 beqz a0,2a42 + 2a32: 4789 li a5,2 + 2a34: 04f50963 beq a0,a5,2a86 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:882 + + default: + // should not reach here! + break; + } +} + 2a38: 40f6 lw ra,92(sp) + 2a3a: 4466 lw s0,88(sp) + 2a3c: 44d6 lw s1,84(sp) + 2a3e: 6125 addi sp,sp,96 + 2a40: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:851 + tmos_memcpy(newValue, pValue, len); + 2a42: 850a mv a0,sp + 2a44: 84ae mv s1,a1 + 2a46: 8432 mv s0,a2 + 2a48: 1fffe097 auipc ra,0x1fffe + 2a4c: e14080e7 jalr -492(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:852 + tmos_memset(pValue,0,len); + 2a50: 8622 mv a2,s0 + 2a52: 4581 li a1,0 + 2a54: 8526 mv a0,s1 + 2a56: 1fffe097 auipc ra,0x1fffe + 2a5a: e44080e7 jalr -444(ra) # 2000089a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:857 + rev = BLV_DETInfo_Recv_Processing(newValue,len); + 2a5e: 85a2 mv a1,s0 + 2a60: 850a mv a0,sp + 2a62: 15e020ef jal ra,4bc0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:860 + if(BLE_OTA_flag == 0x01) + 2a66: 90c1c703 lbu a4,-1780(gp) # 200012c4 + 2a6a: 4785 li a5,1 + 2a6c: fcf716e3 bne a4,a5,2a38 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:863 + tmos_start_task(Peripheral_TaskID, SBP_PRINTF_BLE_EVT, 800); + 2a70: 32000613 li a2,800 + 2a74: 04000593 li a1,64 + 2a78: 8131c503 lbu a0,-2029(gp) # 200011cb +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:862 + BLE_OTA_flag = 0x00; + 2a7c: 90018623 sb zero,-1780(gp) # 200012c4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:863 + tmos_start_task(Peripheral_TaskID, SBP_PRINTF_BLE_EVT, 800); + 2a80: 4a0030ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:882 +} + 2a84: bf55 j 2a38 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:873 + tmos_memcpy(newValue, pValue, len); + 2a86: 850a mv a0,sp + 2a88: 1fffe097 auipc ra,0x1fffe + 2a8c: dd4080e7 jalr -556(ra) # 2000085c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:874 + PRINT("profile ChangeCB CHAR3..\n"); + 2a90: 00017517 auipc a0,0x17 + 2a94: 94c50513 addi a0,a0,-1716 # 193dc + 2a98: 79c130ef jal ra,16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:882 +} + 2a9c: bf71 j 2a38 + +00002a9e : +peripheralParamUpdateCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:601 + if(connHandle == peripheralConnList.connHandle) + 2a9e: 90018713 addi a4,gp,-1792 # 200012b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:600 +{ + 2aa2: 87ae mv a5,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:601 + if(connHandle == peripheralConnList.connHandle) + 2aa4: 230e lhu a1,0(a4) + 2aa6: 00a59c63 bne a1,a0,2abe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:604 + peripheralConnList.connSlaveLatency = connSlaveLatency; + 2aaa: a352 sh a2,4(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:607 + PRINT("Update11 %x - Int %x,%d \n", connHandle, connInterval,connTimeout); + 2aac: 00017517 auipc a0,0x17 + 2ab0: 94c50513 addi a0,a0,-1716 # 193f8 + 2ab4: 863e mv a2,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:603 + peripheralConnList.connInterval = connInterval; + 2ab6: a33e sh a5,2(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:605 + peripheralConnList.connTimeout = connTimeout; + 2ab8: a376 sh a3,6(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:607 + PRINT("Update11 %x - Int %x,%d \n", connHandle, connInterval,connTimeout); + 2aba: 72e1306f j 161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:611 + PRINT("ERR..\n"); + 2abe: 00017517 auipc a0,0x17 + 2ac2: 95650513 addi a0,a0,-1706 # 19414 + 2ac6: 76e1306f j 16234 + +00002aca : +Peripheral_LinkTerminated(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:543 + if(event->connectionHandle == peripheralConnList.connHandle) + 2aca: 90018713 addi a4,gp,-1792 # 200012b8 + 2ace: 2156 lhu a3,4(a0) + 2ad0: 231e lhu a5,0(a4) + 2ad2: 06f69663 bne a3,a5,2b3e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:540 +{ + 2ad6: 1101 addi sp,sp,-32 + 2ad8: ce06 sw ra,28(sp) + 2ada: cc22 sw s0,24(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:549 + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + 2adc: 81318413 addi s0,gp,-2029 # 200011cb + 2ae0: 2008 lbu a0,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:545 + peripheralConnList.connHandle = GAP_CONNHANDLE_INIT; + 2ae2: 67c1 lui a5,0x10 + 2ae4: 17f9 addi a5,a5,-2 # fffe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:549 + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + 2ae6: 4589 li a1,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:545 + peripheralConnList.connHandle = GAP_CONNHANDLE_INIT; + 2ae8: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:547 + peripheralConnList.connSlaveLatency = 0; + 2aea: 9001a223 sw zero,-1788(gp) # 200012bc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:549 + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + 2aee: 62a030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:550 + tmos_stop_task(Peripheral_TaskID, SBP_READ_RSSI_EVT); + 2af2: 2008 lbu a0,0(s0) + 2af4: 4591 li a1,4 + 2af6: 622030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:553 + tmos_stop_task(Peripheral_TaskID, SBP_PERIODIC_EVT); + 2afa: 2008 lbu a0,0(s0) + 2afc: 4589 li a1,2 + 2afe: 61a030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:554 + tmos_stop_task(Peripheral_TaskID, SBP_READ_RSSI_EVT); + 2b02: 2008 lbu a0,0(s0) + 2b04: 4591 li a1,4 + 2b06: 612030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:555 + tmos_stop_task(Peripheral_TaskID, SBP_PARAM_UPDATE_EVT); + 2b0a: 2008 lbu a0,0(s0) + 2b0c: 45a1 li a1,8 + 2b0e: 60a030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:556 + tmos_stop_task(Peripheral_TaskID, SBP_MTU_DELAY_EVT); + 2b12: 2008 lbu a0,0(s0) + 2b14: 02000593 li a1,32 + 2b18: 600030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:557 + tmos_stop_task(Peripheral_TaskID, SBP_PHY_UPDATE_EVT); + 2b1c: 2008 lbu a0,0(s0) + 2b1e: 45c1 li a1,16 + 2b20: 5f8030ef jal ra,6118 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:561 + uint8_t advertising_enable = TRUE; + 2b24: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:562 + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &advertising_enable); + 2b26: 00f10613 addi a2,sp,15 + 2b2a: 4585 li a1,1 + 2b2c: 30500513 li a0,773 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:561 + uint8_t advertising_enable = TRUE; + 2b30: 87dc sb a5,15(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:562 + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &advertising_enable); + 2b32: 4460f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:569 +} + 2b36: 40f2 lw ra,28(sp) + 2b38: 4462 lw s0,24(sp) + 2b3a: 6105 addi sp,sp,32 + 2b3c: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:567 + PRINT("ERR..\n"); + 2b3e: 00017517 auipc a0,0x17 + 2b42: 8d650513 addi a0,a0,-1834 # 19414 + 2b46: 6ee1306f j 16234 + +00002b4a : +peripheralStateNotificationCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:626 + W13_currentBleState = (newState & GAPROLE_STATE_ADV_MASK); //2026-01-16,ble״̬ + 2b4a: 893d andi a0,a0,15 + 2b4c: 90a1a423 sw a0,-1784(gp) # 200012c0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:628 + switch(newState & GAPROLE_STATE_ADV_MASK) + 2b50: 4795 li a5,5 + 2b52: 157d addi a0,a0,-1 + 2b54: 16a7e063 bltu a5,a0,2cb4 + 2b58: 00017717 auipc a4,0x17 + 2b5c: 97c70713 addi a4,a4,-1668 # 194d4 + 2b60: 20e54533 sh2add a0,a0,a4 + 2b64: 411c lw a5,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:625 +{ + 2b66: 1141 addi sp,sp,-16 + 2b68: c422 sw s0,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:628 + switch(newState & GAPROLE_STATE_ADV_MASK) + 2b6a: 97ba add a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:625 +{ + 2b6c: c606 sw ra,12(sp) + 2b6e: c226 sw s1,4(sp) + 2b70: 842e mv s0,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:628 + switch(newState & GAPROLE_STATE_ADV_MASK) + 2b72: 8782 jr a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:631 + PRINT("Initialized..\n"); + 2b74: 00017517 auipc a0,0x17 + 2b78: 8a850513 addi a0,a0,-1880 # 1941c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:696 +} + 2b7c: 4422 lw s0,8(sp) + 2b7e: 40b2 lw ra,12(sp) + 2b80: 4492 lw s1,4(sp) + 2b82: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:690 + PRINT("Error..\n"); + 2b84: 6b01306f j 16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:635 + if(pEvent->gap.opcode == GAP_LINK_TERMINATED_EVENT) + 2b88: 21bc lbu a5,2(a1) + 2b8a: 4719 li a4,6 + 2b8c: 02e79063 bne a5,a4,2bac +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:637 + Peripheral_LinkTerminated(pEvent); + 2b90: 852e mv a0,a1 + 2b92: 3f25 jal 2aca +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:638 + PRINT("Disconnected.. Reason:%x\n", pEvent->linkTerminate.reason); + 2b94: 206c lbu a1,6(s0) + 2b96: 00017517 auipc a0,0x17 + 2b9a: 89650513 addi a0,a0,-1898 # 1942c + 2b9e: 64a130ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:643 + PRINT("Advertising..\n"); + 2ba2: 00017517 auipc a0,0x17 + 2ba6: 8a650513 addi a0,a0,-1882 # 19448 + 2baa: bfc9 j 2b7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:641 + else if(pEvent->gap.opcode == GAP_MAKE_DISCOVERABLE_DONE_EVENT) + 2bac: 470d li a4,3 + 2bae: fee78ae3 beq a5,a4,2ba2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:696 +} + 2bb2: 40b2 lw ra,12(sp) + 2bb4: 4422 lw s0,8(sp) + 2bb6: 4492 lw s1,4(sp) + 2bb8: 0141 addi sp,sp,16 + 2bba: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:648 + if(pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT) + 2bbc: 21b8 lbu a4,2(a1) + 2bbe: 4795 li a5,5 + 2bc0: fef719e3 bne a4,a5,2bb2 +Peripheral_LinkEstablished(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:501 + if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT) + 2bc4: 90018793 addi a5,gp,-1792 # 200012b8 + 2bc8: 2396 lhu a3,0(a5) + 2bca: 6741 lui a4,0x10 + 2bcc: 1779 addi a4,a4,-2 # fffe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:503 + GAPRole_TerminateLink(pEvent->linkCmpl.connectionHandle); + 2bce: 25aa lhu a0,10(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:501 + if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT) + 2bd0: 00e68f63 beq a3,a4,2bee +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:503 + GAPRole_TerminateLink(pEvent->linkCmpl.connectionHandle); + 2bd4: 56a0f0ef jal ra,1213e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:504 + PRINT("Connection max...\n"); + 2bd8: 00017517 auipc a0,0x17 + 2bdc: 88050513 addi a0,a0,-1920 # 19458 + 2be0: 654130ef jal ra,16234 +peripheralStateNotificationCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:651 + PRINT("Connected..\n"); + 2be4: 00017517 auipc a0,0x17 + 2be8: 89c50513 addi a0,a0,-1892 # 19480 + 2bec: bf41 j 2b7c +Peripheral_LinkEstablished(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:509 + peripheralConnList.connInterval = event->connInterval; + 2bee: 25fa lhu a4,14(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:515 + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + 2bf0: 81318493 addi s1,gp,-2029 # 200011cb +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:508 + peripheralConnList.connHandle = event->connectionHandle; + 2bf4: a38a sh a0,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:509 + peripheralConnList.connInterval = event->connInterval; + 2bf6: a3ba sh a4,2(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:510 + peripheralConnList.connSlaveLatency = event->connLatency; + 2bf8: 299a lhu a4,16(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:515 + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + 2bfa: 2088 lbu a0,0(s1) + 2bfc: 64000613 li a2,1600 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:510 + peripheralConnList.connSlaveLatency = event->connLatency; + 2c00: a3da sh a4,4(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:511 + peripheralConnList.connTimeout = event->connTimeout; + 2c02: 29ba lhu a4,18(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:515 + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + 2c04: 4589 li a1,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:511 + peripheralConnList.connTimeout = event->connTimeout; + 2c06: a3fa sh a4,6(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:512 + peripheralMTU = ATT_MTU_SIZE; + 2c08: 47dd li a5,23 + 2c0a: 1fffe717 auipc a4,0x1fffe + 2c0e: 5af71b23 sh a5,1462(a4) # 200011c0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:515 + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD); + 2c12: 30e030ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:518 + tmos_start_task(Peripheral_TaskID, SBP_PARAM_UPDATE_EVT, SBP_PARAM_UPDATE_DELAY); + 2c16: 2088 lbu a0,0(s1) + 2c18: 6609 lui a2,0x2 + 2c1a: 90060613 addi a2,a2,-1792 # 1900 <_einit+0x8fc> + 2c1e: 45a1 li a1,8 + 2c20: 300030ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:521 + tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD); + 2c24: 2088 lbu a0,0(s1) + 2c26: 6605 lui a2,0x1 + 2c28: c8060613 addi a2,a2,-896 # c80 <_sinit-0x380> + 2c2c: 4591 li a1,4 + 2c2e: 2f2030ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:524 + tmos_start_task(Peripheral_TaskID, SBP_MTU_DELAY_EVT, 2000); + 2c32: 2088 lbu a0,0(s1) + 2c34: 7d000613 li a2,2000 + 2c38: 02000593 li a1,32 + 2c3c: 2e4030ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:526 + PRINT("Conn %x - Int %x \n", event->connectionHandle, event->connInterval); + 2c40: 2472 lhu a2,14(s0) + 2c42: 242e lhu a1,10(s0) + 2c44: 00017517 auipc a0,0x17 + 2c48: 82850513 addi a0,a0,-2008 # 1946c + 2c4c: 59c130ef jal ra,161e8 + 2c50: bf51 j 2be4 +peripheralStateNotificationCB(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:656 + if(pEvent->gap.opcode == GAP_MAKE_DISCOVERABLE_DONE_EVENT) + 2c52: 21b8 lbu a4,2(a1) + 2c54: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:658 + PRINT("Connected Advertising..\n"); + 2c56: 00017517 auipc a0,0x17 + 2c5a: 83650513 addi a0,a0,-1994 # 1948c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:656 + if(pEvent->gap.opcode == GAP_MAKE_DISCOVERABLE_DONE_EVENT) + 2c5e: f4f71ae3 bne a4,a5,2bb2 + 2c62: bf29 j 2b7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:663 + if(pEvent->gap.opcode == GAP_END_DISCOVERABLE_DONE_EVENT) + 2c64: 21ac lbu a1,2(a1) + 2c66: 4791 li a5,4 + 2c68: 00f59763 bne a1,a5,2c76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:665 + PRINT("Waiting for advertising..\n"); + 2c6c: 00017517 auipc a0,0x17 + 2c70: 83850513 addi a0,a0,-1992 # 194a4 + 2c74: b721 j 2b7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:667 + else if(pEvent->gap.opcode == GAP_LINK_TERMINATED_EVENT) + 2c76: 4799 li a5,6 + 2c78: 00f59f63 bne a1,a5,2c96 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:669 + Peripheral_LinkTerminated(pEvent); + 2c7c: 8522 mv a0,s0 + 2c7e: 35b1 jal 2aca +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:670 + PRINT("Disconnected.. Reason:%x\n", pEvent->linkTerminate.reason); + 2c80: 206c lbu a1,6(s0) + 2c82: 00016517 auipc a0,0x16 + 2c86: 7aa50513 addi a0,a0,1962 # 1942c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:696 +} + 2c8a: 4422 lw s0,8(sp) + 2c8c: 40b2 lw ra,12(sp) + 2c8e: 4492 lw s1,4(sp) + 2c90: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:685 + PRINT("Error..%x\n", pEvent->gap.opcode); + 2c92: 5561306f j 161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:672 + else if(pEvent->gap.opcode == GAP_LINK_ESTABLISHED_EVENT) + 2c96: 4795 li a5,5 + 2c98: 00f59963 bne a1,a5,2caa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:674 + if(pEvent->gap.hdr.status != SUCCESS) + 2c9c: 301c lbu a5,1(s0) + 2c9e: f7f9 bnez a5,2c6c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:690 + PRINT("Error..\n"); + 2ca0: 00017517 auipc a0,0x17 + 2ca4: 82050513 addi a0,a0,-2016 # 194c0 + 2ca8: bdd1 j 2b7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:685 + PRINT("Error..%x\n", pEvent->gap.opcode); + 2caa: 00017517 auipc a0,0x17 + 2cae: 81e50513 addi a0,a0,-2018 # 194c8 + 2cb2: bfe1 j 2c8a + 2cb4: 8082 ret + +00002cb6 : +Peripheral_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:207 +{ + 2cb6: 7171 addi sp,sp,-176 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:208 + Peripheral_TaskID = TMOS_ProcessEventRegister(Peripheral_ProcessEvent); + 2cb8: 00000517 auipc a0,0x0 + 2cbc: 20a50513 addi a0,a0,522 # 2ec2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:207 +{ + 2cc0: d706 sw ra,172(sp) + 2cc2: d522 sw s0,168(sp) + 2cc4: d326 sw s1,164(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:208 + Peripheral_TaskID = TMOS_ProcessEventRegister(Peripheral_ProcessEvent); + 2cc6: 72e030ef jal ra,63f4 + 2cca: 81318493 addi s1,gp,-2029 # 200011cb +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:213 + uint16_t desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL; + 2cce: 47a1 li a5,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:212 + uint8_t initial_advertising_enable = TRUE; + 2cd0: 4405 li s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:208 + Peripheral_TaskID = TMOS_ProcessEventRegister(Peripheral_ProcessEvent); + 2cd2: a088 sb a0,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:213 + uint16_t desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL; + 2cd4: 82fc sh a5,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:217 + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable); //㲥ʹ + 2cd6: 0070 addi a2,sp,12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:214 + uint16_t desired_max_interval = DEFAULT_DESIRED_MAX_CONN_INTERVAL; + 2cd8: 02800793 li a5,40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:217 + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable); //㲥ʹ + 2cdc: 4585 li a1,1 + 2cde: 30500513 li a0,773 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:214 + uint16_t desired_max_interval = DEFAULT_DESIRED_MAX_CONN_INTERVAL; + 2ce2: 04f11823 sh a5,80(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:212 + uint8_t initial_advertising_enable = TRUE; + 2ce6: 8640 sb s0,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:217 + GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable); //㲥ʹ + 2ce8: 2900f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:218 + GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof(scanRspData), scanRspData); //㲥 + 2cec: 1fffe617 auipc a2,0x1fffe + 2cf0: 44860613 addi a2,a2,1096 # 20001134 + 2cf4: 45dd li a1,23 + 2cf6: 30700513 li a0,775 + 2cfa: 27e0f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:219 + GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData); // + 2cfe: 1fffe617 auipc a2,0x1fffe + 2d02: 4c660613 addi a2,a2,1222 # 200011c4 + 2d06: 459d li a1,7 + 2d08: 30600513 li a0,774 + 2d0c: 26c0f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:220 + GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t), &desired_min_interval); //СӼ + 2d10: 0850 addi a2,sp,20 + 2d12: 4589 li a1,2 + 2d14: 31100513 li a0,785 + 2d18: 2600f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:221 + GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t), &desired_max_interval); //Ӽ + 2d1c: 0890 addi a2,sp,80 + 2d1e: 4589 li a1,2 + 2d20: 31200513 li a0,786 + 2d24: 2540f0ef jal ra,11f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:228 + GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt); //ù㲥 + 2d28: 0a000593 li a1,160 + 2d2c: 4509 li a0,2 + 2d2e: 675040ef jal ra,7ba2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:229 + GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, 320); //YYW,advInt -> 160 + 2d32: 14000593 li a1,320 + 2d36: 450d li a0,3 + 2d38: 66b040ef jal ra,7ba2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:233 + GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, ENABLE); // ɨ֪ͨ + 2d3c: 4585 li a1,1 + 2d3e: 4529 li a0,10 + 2d40: 663040ef jal ra,7ba2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:238 + uint32_t passkey = 123456; // passkey "000000" // "000000" + 2d44: 67f9 lui a5,0x1e + 2d46: 24078793 addi a5,a5,576 # 1e240 <_data_lma+0x2c84> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:243 + GAPBondMgr_SetParameter(GAPBOND_PERI_DEFAULT_PASSCODE, sizeof(uint32_t), &passkey); + 2d4a: 0890 addi a2,sp,80 + 2d4c: 4591 li a1,4 + 2d4e: 40700513 li a0,1031 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:238 + uint32_t passkey = 123456; // passkey "000000" // "000000" + 2d52: c8be sw a5,80(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:239 + uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ; // ȴģʽ + 2d54: 8540 sb s0,10(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:240 + uint8_t mitm = TRUE; // м˹ + 2d56: 85c0 sb s0,11(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:241 + uint8_t bonding = TRUE; // ð󶨹 + 2d58: 8640 sb s0,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:242 + uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY; // IOʾ룩 + 2d5a: 00010a23 sb zero,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:243 + GAPBondMgr_SetParameter(GAPBOND_PERI_DEFAULT_PASSCODE, sizeof(uint32_t), &passkey); + 2d5e: 55b0d0ef jal ra,10ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:244 + GAPBondMgr_SetParameter(GAPBOND_PERI_PAIRING_MODE, sizeof(uint8_t), &pairMode); + 2d62: 00a10613 addi a2,sp,10 + 2d66: 4585 li a1,1 + 2d68: 40000513 li a0,1024 + 2d6c: 54d0d0ef jal ra,10ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:245 + GAPBondMgr_SetParameter(GAPBOND_PERI_MITM_PROTECTION, sizeof(uint8_t), &mitm); + 2d70: 00b10613 addi a2,sp,11 + 2d74: 4585 li a1,1 + 2d76: 40100513 li a0,1025 + 2d7a: 53f0d0ef jal ra,10ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:246 + GAPBondMgr_SetParameter(GAPBOND_PERI_IO_CAPABILITIES, sizeof(uint8_t), &ioCap); + 2d7e: 0850 addi a2,sp,20 + 2d80: 4585 li a1,1 + 2d82: 40200513 li a0,1026 + 2d86: 5330d0ef jal ra,10ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:247 + GAPBondMgr_SetParameter(GAPBOND_PERI_BONDING_ENABLED, sizeof(uint8_t), &bonding); + 2d8a: 0070 addi a2,sp,12 + 2d8c: 4585 li a1,1 + 2d8e: 40500513 li a0,1029 + 2d92: 5270d0ef jal ra,10ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:251 + GGS_AddService(GATT_ALL_SERVICES); // GAP עͨ÷ʷ + 2d96: 557d li a0,-1 + 2d98: 4550e0ef jal ra,119ec +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:252 + GATTServApp_AddService(GATT_ALL_SERVICES); // GATT attributes עͨԷ + 2d9c: 557d li a0,-1 + 2d9e: 659070ef jal ra,abf6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:253 + SimpleProfile_AddService(GATT_ALL_SERVICES); // Simple GATT Profile עԶSimpleProfile + 2da2: 557d li a0,-1 + 2da4: 34f5 jal 2890 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:256 + GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, attDeviceName); + 2da6: 1fffe617 auipc a2,0x1fffe + 2daa: 37660613 addi a2,a2,886 # 2000111c + 2dae: 45d5 li a1,21 + 2db0: 4501 li a0,0 + 2db2: 3330e0ef jal ra,118e4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:260 + uint8_t charValue1[SIMPLEPROFILE_CHAR1_LEN] = {1}; //ʼĸʼ + 2db6: 04c00613 li a2,76 + 2dba: 4581 li a1,0 + 2dbc: 08c8 addi a0,sp,84 + 2dbe: c8a2 sw s0,80(sp) + 2dc0: b28ff0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:261 + uint8_t charValue4[SIMPLEPROFILE_CHAR4_LEN] = {0x00}; + 2dc4: 03800613 li a2,56 + 2dc8: 4581 li a1,0 + 2dca: 0828 addi a0,sp,24 + 2dcc: ca02 sw zero,20(sp) + 2dce: b1aff0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:262 + uint8_t charValue5[SIMPLEPROFILE_CHAR5_LEN] = {1, 2, 3, 4, 5}; + 2dd2: 040307b7 lui a5,0x4030 + 2dd6: 20178793 addi a5,a5,513 # 4030201 <_data_lma+0x4014c45> + 2dda: c63e sw a5,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:264 + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR1, SIMPLEPROFILE_CHAR1_LEN, charValue1); + 2ddc: 0890 addi a2,sp,80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:262 + uint8_t charValue5[SIMPLEPROFILE_CHAR5_LEN] = {1, 2, 3, 4, 5}; + 2dde: 4795 li a5,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:264 + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR1, SIMPLEPROFILE_CHAR1_LEN, charValue1); + 2de0: 05000593 li a1,80 + 2de4: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:262 + uint8_t charValue5[SIMPLEPROFILE_CHAR5_LEN] = {1, 2, 3, 4, 5}; + 2de6: 00f10823 sb a5,16(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:264 + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR1, SIMPLEPROFILE_CHAR1_LEN, charValue1); + 2dea: 3601 jal 28ea +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:265 + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR4, SIMPLEPROFILE_CHAR4_LEN, charValue4); + 2dec: 0850 addi a2,sp,20 + 2dee: 03c00593 li a1,60 + 2df2: 450d li a0,3 + 2df4: 3cdd jal 28ea +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:266 + SimpleProfile_SetParameter(SIMPLEPROFILE_CHAR5, SIMPLEPROFILE_CHAR5_LEN, charValue5); + 2df6: 0070 addi a2,sp,12 + 2df8: 4595 li a1,5 + 2dfa: 4511 li a0,4 + 2dfc: 34fd jal 28ea +peripheralInitConnItem(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:297 + peripheralConnList->connHandle = GAP_CONNHANDLE_INIT; + 2dfe: 67c1 lui a5,0x10 + 2e00: 90018713 addi a4,gp,-1792 # 200012b8 + 2e04: 17f9 addi a5,a5,-2 # fffe +Peripheral_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:273 + SimpleProfile_RegisterAppCBs(&Peripheral_SimpleProfileCBs); // עԶĻص + 2e06: 1fffe517 auipc a0,0x1fffe + 2e0a: 3b650513 addi a0,a0,950 # 200011bc +peripheralInitConnItem(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:297 + peripheralConnList->connHandle = GAP_CONNHANDLE_INIT; + 2e0e: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:299 + peripheralConnList->connSlaveLatency = 0; + 2e10: 00072223 sw zero,4(a4) +Peripheral_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:273 + SimpleProfile_RegisterAppCBs(&Peripheral_SimpleProfileCBs); // עԶĻص + 2e14: 34e1 jal 28dc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:276 + GAPRole_BroadcasterSetCB(&Broadcaster_BroadcasterCBs); // עɨص + 2e16: 8f818513 addi a0,gp,-1800 # 200012b0 + 2e1a: 31a0f0ef jal ra,12134 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:279 + GATT_InitClient(); + 2e1e: 1b8060ef jal ra,8fd6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:284 +} + 2e22: 542a lw s0,168(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:282 + tmos_set_event(Peripheral_TaskID, SBP_START_DEVICE_EVT); // 豸¼ + 2e24: 2088 lbu a0,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:284 +} + 2e26: 50ba lw ra,172(sp) + 2e28: 549a lw s1,164(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:282 + tmos_set_event(Peripheral_TaskID, SBP_START_DEVICE_EVT); // 豸¼ + 2e2a: 4585 li a1,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:284 +} + 2e2c: 614d addi sp,sp,176 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:282 + tmos_set_event(Peripheral_TaskID, SBP_START_DEVICE_EVT); // 豸¼ + 2e2e: 6161706f j 1a444 + +00002e32 : +Ble_Printfln(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:726 +{ + 2e32: 7139 addi sp,sp,-64 + 2e34: da3e sw a5,52(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:728 + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + 2e36: 8c41a783 lw a5,-1852(gp) # 2000127c + 2e3a: 28a01533 bset a0,zero,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:726 +{ + 2e3e: ce06 sw ra,28(sp) + 2e40: d432 sw a2,40(sp) + 2e42: d636 sw a3,44(sp) + 2e44: d83a sw a4,48(sp) + 2e46: dc42 sw a6,56(sp) + 2e48: de46 sw a7,60(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:728 + if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit))) { + 2e4a: 8d7d and a0,a0,a5 + 2e4c: c50d beqz a0,2e76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:730 + va_start(args, cmd); // ʼɱб + 2e4e: 1034 addi a3,sp,40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:734 + int formatted_len = vsnprintf( + 2e50: 862e mv a2,a1 + 2e52: c5818513 addi a0,gp,-936 # 20001610 + 2e56: 03c00593 li a1,60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:730 + va_start(args, cmd); // ʼɱб + 2e5a: c636 sw a3,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:734 + int formatted_len = vsnprintf( + 2e5c: 573140ef jal ra,17bce +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:744 + if (formatted_len > 0) { // ʽɹ + 2e60: 00a05b63 blez a0,2e76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:746 + formatted_len : (SIMPLEPROFILE_CHAR4_LEN - 1); + 2e64: 03b00793 li a5,59 + 2e68: 0af54533 min a0,a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:751 + peripheralChar4Notify(print_BLE, send_len); + 2e6c: 080545b3 zext.h a1,a0 + 2e70: c5818513 addi a0,gp,-936 # 20001610 + 2e74: 3689 jal 29b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:754 +} + 2e76: 40f2 lw ra,28(sp) + 2e78: 6121 addi sp,sp,64 + 2e7a: 8082 ret + +00002e7c : +Ble_Buff_Print(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:757 + if (len > 0) { + 2e7c: c191 beqz a1,2e80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:758 + peripheralChar4Notify(pValue, len); + 2e7e: be25 j 29b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:760 +} + 2e80: 8082 ret + +00002e82 : +Jump_OTA(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:812 +{ + 2e82: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:817 + FLASH_ROM_READ(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + 2e84: 4611 li a2,4 + 2e86: c4818593 addi a1,gp,-952 # 20001600 + 2e8a: 0003a537 lui a0,0x3a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:812 +{ + 2e8e: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:817 + FLASH_ROM_READ(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + 2e90: 468020ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:820 + FLASH_ROM_ERASE(OTA_DATAFLASH_ADD, FLASH_BLOCK_SIZE); + 2e94: 6685 lui a3,0x1 + 2e96: 4601 li a2,0 + 2e98: 0003a5b7 lui a1,0x3a + 2e9c: 4505 li a0,1 + 2e9e: 359020ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:823 + block_buf[0] = IMAGE_IAP_FLAG; + 2ea2: c4818613 addi a2,gp,-952 # 20001600 + 2ea6: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:826 + FLASH_ROM_WRITE(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + 2ea8: 4691 li a3,4 + 2eaa: 0003a5b7 lui a1,0x3a + 2eae: 4509 li a0,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:823 + block_buf[0] = IMAGE_IAP_FLAG; + 2eb0: a21c sb a5,0(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:826 + FLASH_ROM_WRITE(OTA_DATAFLASH_ADD, (uint32_t *)&block_buf[0], 4); + 2eb2: 345020ef jal ra,59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:830 +} + 2eb6: 40b2 lw ra,12(sp) + 2eb8: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:829 + SYS_ResetExecute(); + 2eba: 1fffd317 auipc t1,0x1fffd + 2ebe: 52a30067 jr 1322(t1) # 200003e4 + +00002ec2 : +Peripheral_ProcessEvent(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:317 +{ + 2ec2: 1101 addi sp,sp,-32 + 2ec4: cc22 sw s0,24(sp) + 2ec6: ce06 sw ra,28(sp) + 2ec8: ca26 sw s1,20(sp) + 2eca: 842e mv s0,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:320 + if(events & SYS_EVENT_MSG) + 2ecc: 60559793 sext.h a5,a1 + 2ed0: 0607d863 bgez a5,2f40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:324 + if((pMsg = tmos_msg_receive(Peripheral_TaskID)) != NULL) + 2ed4: 8131c503 lbu a0,-2029(gp) # 200011cb + 2ed8: 527020ef jal ra,5bfe + 2edc: 84aa mv s1,a0 + 2ede: c90d beqz a0,2f10 +Peripheral_ProcessTMOSMsg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:461 + switch(pMsg->event) + 2ee0: 211c lbu a5,0(a0) + 2ee2: 0b000713 li a4,176 + 2ee6: 02e78c63 beq a5,a4,2f1e + 2eea: 0d000713 li a4,208 + 2eee: 00e79e63 bne a5,a4,2f0a +Peripheral_ProcessGAPMsg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:429 + switch(pEvent->gap.opcode) + 2ef2: 2138 lbu a4,2(a0) + 2ef4: 47c5 li a5,17 + 2ef6: 00f71a63 bne a4,a5,2f0a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:441 + PRINT("Phy update Rx:%x Tx:%x ..\n", pEvent->linkPhyUpdate.connRxPHYS, pEvent->linkPhyUpdate.connTxPHYS); + 2efa: 2170 lbu a2,6(a0) + 2efc: 316c lbu a1,7(a0) + 2efe: 00016517 auipc a0,0x16 + 2f02: 5ee50513 addi a0,a0,1518 # 194ec + 2f06: 2e2130ef jal ra,161e8 +Peripheral_ProcessEvent(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:328 + tmos_msg_deallocate(pMsg); + 2f0a: 8526 mv a0,s1 + 2f0c: 43f020ef jal ra,5b4a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:331 + return (events ^ SYS_EVENT_MSG); + 2f10: 68f41513 binvi a0,s0,0xf +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:416 +} + 2f14: 40f2 lw ra,28(sp) + 2f16: 4462 lw s0,24(sp) + 2f18: 44d2 lw s1,20(sp) + 2f1a: 6105 addi sp,sp,32 + 2f1c: 8082 ret +Peripheral_ProcessTMOSMsg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:474 + if(pMsgEvent->method == ATT_MTU_UPDATED_EVENT) + 2f1e: 2158 lbu a4,4(a0) + 2f20: 07f00793 li a5,127 + 2f24: fef713e3 bne a4,a5,2f0a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:476 + peripheralMTU = pMsgEvent->msg.exchangeMTUReq.clientRxMTU; + 2f28: 250e lhu a1,8(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:477 + PRINT("YYW -- mtu exchange: %d\n", pMsgEvent->msg.exchangeMTUReq.clientRxMTU); + 2f2a: 00016517 auipc a0,0x16 + 2f2e: 5de50513 addi a0,a0,1502 # 19508 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:476 + peripheralMTU = pMsgEvent->msg.exchangeMTUReq.clientRxMTU; + 2f32: 1fffe797 auipc a5,0x1fffe + 2f36: 28b79723 sh a1,654(a5) # 200011c0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:477 + PRINT("YYW -- mtu exchange: %d\n", pMsgEvent->msg.exchangeMTUReq.clientRxMTU); + 2f3a: 2ae130ef jal ra,161e8 + 2f3e: b7f1 j 2f0a +Peripheral_ProcessEvent(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:336 + if(events & SBP_MTU_DELAY_EVT) + 2f40: 0205f793 andi a5,a1,32 + 2f44: cf9d beqz a5,2f82 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:338 + if(peripheralConnList.connHandle != GAP_CONNHANDLE_INIT) + 2f46: 67c1 lui a5,0x10 + 2f48: 9001d503 lhu a0,-1792(gp) # 200012b8 + 2f4c: 17f9 addi a5,a5,-2 # fffe + 2f4e: 02f50763 beq a0,a5,2f7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:344 + mtuReq.clientRxMTU = 120; // MTUС + 2f52: 07800793 li a5,120 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:345 + bStatus_t status = GATT_ExchangeMTU( peripheralConnList.connHandle, &mtuReq, Peripheral_TaskID); + 2f56: 006c addi a1,sp,12 + 2f58: 8131c603 lbu a2,-2029(gp) # 200011cb +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:344 + mtuReq.clientRxMTU = 120; // MTUС + 2f5c: 867c sh a5,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:345 + bStatus_t status = GATT_ExchangeMTU( peripheralConnList.connHandle, &mtuReq, Peripheral_TaskID); + 2f5e: 15b050ef jal ra,88b8 + 2f62: 85aa mv a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:352 + PRINT("MTUЭ̷ʧܣ״̬룺%02x\n", status); + 2f64: 00016517 auipc a0,0x16 + 2f68: 5e050513 addi a0,a0,1504 # 19544 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:346 + if(status == SUCCESS) + 2f6c: e591 bnez a1,2f78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:348 + PRINT("MTUЭ̷ɹС%d\n", mtuReq.clientRxMTU); + 2f6e: 862c lhu a1,12(sp) + 2f70: 00016517 auipc a0,0x16 + 2f74: 5b450513 addi a0,a0,1460 # 19524 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:352 + PRINT("MTUЭ̷ʧܣ״̬룺%02x\n", status); + 2f78: 270130ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:355 + return (events ^ SBP_MTU_DELAY_EVT); + 2f7c: 02044513 xori a0,s0,32 + 2f80: bf51 j 2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:359 + if(events & SBP_START_DEVICE_EVT) + 2f82: 0015f793 andi a5,a1,1 + 2f86: cf91 beqz a5,2fa2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:362 + GAPRole_PeripheralStartDevice(Peripheral_TaskID, &Peripheral_BondMgrCBs, &Peripheral_PeripheralCBs); + 2f88: 1fffe617 auipc a2,0x1fffe + 2f8c: 18860613 addi a2,a2,392 # 20001110 + 2f90: c9418593 addi a1,gp,-876 # 2000164c + 2f94: 8131c503 lbu a0,-2029(gp) # 200011cb + 2f98: 5990e0ef jal ra,11d30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:363 + return (events ^ SBP_START_DEVICE_EVT); + 2f9c: 00144513 xori a0,s0,1 + 2fa0: bf95 j 2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:366 + if(events & SBP_PERIODIC_EVT) // + 2fa2: 0025f793 andi a5,a1,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:375 + return (events ^ SBP_PERIODIC_EVT); + 2fa6: 0025c513 xori a0,a1,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:366 + if(events & SBP_PERIODIC_EVT) // + 2faa: f7ad bnez a5,2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:378 + if(events & SBP_PARAM_UPDATE_EVT) //Ӳ + 2fac: 0085f793 andi a5,a1,8 + 2fb0: c385 beqz a5,2fd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:382 + GAPRole_PeripheralConnParamUpdateReq(peripheralConnList.connHandle, + 2fb2: 8131c783 lbu a5,-2029(gp) # 200011cb + 2fb6: 3e800713 li a4,1000 + 2fba: 4681 li a3,0 + 2fbc: 02800613 li a2,40 + 2fc0: 45a1 li a1,8 + 2fc2: 9001d503 lhu a0,-1792(gp) # 200012b8 + 2fc6: 5210e0ef jal ra,11ce6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:389 + return (events ^ SBP_PARAM_UPDATE_EVT); + 2fca: 00844513 xori a0,s0,8 + 2fce: b799 j 2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:392 + if(events & SBP_PHY_UPDATE_EVT) + 2fd0: 0105f793 andi a5,a1,16 + 2fd4: c39d beqz a5,2ffa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:395 + PRINT("PHY Update %x...\n", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0, + 2fd6: 4701 li a4,0 + 2fd8: 4689 li a3,2 + 2fda: 4609 li a2,2 + 2fdc: 4581 li a1,0 + 2fde: 9001d503 lhu a0,-1792(gp) # 200012b8 + 2fe2: 17e0f0ef jal ra,12160 + 2fe6: 85aa mv a1,a0 + 2fe8: 00016517 auipc a0,0x16 + 2fec: 57c50513 addi a0,a0,1404 # 19564 + 2ff0: 1f8130ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:398 + return (events ^ SBP_PHY_UPDATE_EVT); + 2ff4: 01044513 xori a0,s0,16 + 2ff8: bf31 j 2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:401 + if(events & SBP_READ_RSSI_EVT) + 2ffa: 0045f793 andi a5,a1,4 + 2ffe: c385 beqz a5,301e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:403 + GAPRole_ReadRssiCmd(peripheralConnList.connHandle); + 3000: 9001d503 lhu a0,-1792(gp) # 200012b8 + 3004: 1360f0ef jal ra,1213a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:404 + tmos_start_task(Peripheral_TaskID, SBP_READ_RSSI_EVT, SBP_READ_RSSI_EVT_PERIOD); + 3008: 6605 lui a2,0x1 + 300a: c8060613 addi a2,a2,-896 # c80 <_sinit-0x380> + 300e: 4591 li a1,4 + 3010: 8131c503 lbu a0,-2029(gp) # 200011cb + 3014: 70d020ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:405 + return (events ^ SBP_READ_RSSI_EVT); + 3018: 00444513 xori a0,s0,4 + 301c: bde5 j 2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:408 + if(events & SBP_PRINTF_BLE_EVT) //YYW,20251008,תIAPOTA + 301e: 0405f513 andi a0,a1,64 + 3022: ee0509e3 beqz a0,2f14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:410 + Jump_OTA(); + 3026: 3db1 jal 2e82 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:411 + return (events ^ SBP_PRINTF_BLE_EVT); + 3028: 04044513 xori a0,s0,64 + 302c: b5e5 j 2f14 + +0000302e : +Peripheral_GetBLEState(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/peripheral.c:894 + * @return current BLE state,״̬ + */ +gapRole_States_t Peripheral_GetBLEState(void) +{ + return W13_currentBleState; +} + 302e: 9081a503 lw a0,-1784(gp) # 200012c0 + 3032: 8082 ret + +00003034 : +Sensor_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:16 +uint8_t portBuff[DETECTION_Window_OnlyPort*3] = {0x00}; + + +//1ʼIOṹ +void Sensor_Init(void) +{ + 3034: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:17 + memset(&sensor_info,0,sizeof(SENSORDET_INFO_T)); + 3036: 4661 li a2,24 + 3038: 4581 li a1,0 + 303a: f8018513 addi a0,gp,-128 # 20001938 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:16 +{ + 303e: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:17 + memset(&sensor_info,0,sizeof(SENSORDET_INFO_T)); + 3040: 8a8ff0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:18 + memset(&VCard_Info,0,sizeof(VIRTUALCARD_STRUCT)); + 3044: 0a500613 li a2,165 + 3048: 4581 li a1,0 + 304a: f9818513 addi a0,gp,-104 # 20001950 + 304e: 89aff0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:19 + memset(&condata,0,sizeof(CONDITION_STRUCT)); + 3052: f7018793 addi a5,gp,-144 # 20001928 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:22 + + // + GPIOA_ModeCfg(WashRoom_Pin, GPIO_ModeIN_PU); + 3056: 4585 li a1,1 + 3058: 4511 li a0,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:19 + memset(&condata,0,sizeof(CONDITION_STRUCT)); + 305a: 0007a023 sw zero,0(a5) + 305e: 0007a223 sw zero,4(a5) + 3062: 0007a423 sw zero,8(a5) + 3066: 00079623 sh zero,12(a5) + 306a: 00078723 sb zero,14(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:22 + GPIOA_ModeCfg(WashRoom_Pin, GPIO_ModeIN_PU); + 306e: 2a6020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:23 + GPIOA_ModeCfg(BedRoom_Pin, GPIO_ModeIN_PU); + 3072: 4585 li a1,1 + 3074: 4521 li a0,8 + 3076: 29e020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:24 + GPIOA_ModeCfg(GateWay_Pin, GPIO_ModeIN_PU); + 307a: 4585 li a1,1 + 307c: 4541 li a0,16 + 307e: 296020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:25 + GPIOA_ModeCfg(Retain_Pin, GPIO_ModeIN_PU); + 3082: 4585 li a1,1 + 3084: 02000513 li a0,32 + 3088: 28c020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:28 + + // + GPIOA_ModeCfg(DET_EXIST1, GPIO_ModeOut_PP_5mA); + 308c: 458d li a1,3 + 308e: 04000513 li a0,64 + 3092: 282020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:29 + GPIOA_ModeCfg(DET_EXIST2, GPIO_ModeOut_PP_5mA); + 3096: 458d li a1,3 + 3098: 08000513 li a0,128 + 309c: 278020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:30 + GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeOut_PP_5mA); + 30a0: 458d li a1,3 + 30a2: 10000513 li a0,256 + 30a6: 26e020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:31 + GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA); + 30aa: 458d li a1,3 + 30ac: 20000513 li a0,512 + 30b0: 264020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:32 + GPIOA_ModeCfg(GPIO_Pin_10, GPIO_ModeOut_PP_5mA); + 30b4: 458d li a1,3 + 30b6: 40000513 li a0,1024 + 30ba: 25a020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:33 + GPIOA_ModeCfg(GPIO_Pin_11, GPIO_ModeOut_PP_5mA); + 30be: 458d li a1,3 + 30c0: 28b01513 bseti a0,zero,0xb + 30c4: 250020ef jal ra,5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:37 + + + //ʼΪ + GPIOA_SetBits(DET_EXIST1); + 30c8: 400017b7 lui a5,0x40001 + 30cc: 0b878793 addi a5,a5,184 # 400010b8 <_eusrstack+0x1fffe0b8> + 30d0: 04000713 li a4,64 + 30d4: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:38 + GPIOA_SetBits(DET_EXIST2); + 30d6: 08000713 li a4,128 + 30da: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:39 + GPIOA_SetBits(GPIO_Pin_8); + 30dc: 10000713 li a4,256 + 30e0: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:40 + GPIOA_SetBits(GPIO_Pin_9); + 30e2: 20000713 li a4,512 + 30e6: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:44 + GPIOA_SetBits(GPIO_Pin_10); + GPIOA_SetBits(GPIO_Pin_11); + +} + 30e8: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:41 + GPIOA_SetBits(GPIO_Pin_10); + 30ea: 40000713 li a4,1024 + 30ee: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:42 + GPIOA_SetBits(GPIO_Pin_11); + 30f0: 28b01713 bseti a4,zero,0xb + 30f4: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:44 +} + 30f6: 0141 addi sp,sp,16 + 30f8: 8082 ret + +000030fa : +CRC16(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:50 + +uint16_t CRC16(uint8_t *aStr ,uint16_t len) +{ + uint16_t xda , xdapoly; + uint16_t i,j, xdabit; + xda = 0xFFFF; + 30fa: 67c1 lui a5,0x10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:59 + xda ^= aStr[i]; + for(j=0;j<8;j++) + { + xdabit = (uint8_t)(xda & 0x01); + xda >>= 1; + if( xdabit ) xda ^= xdapoly; + 30fc: 7869 lui a6,0xffffa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:47 +{ + 30fe: 862a mv a2,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:52 + for(i=0;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:59 + if( xdabit ) xda ^= xdapoly; + 3106: 0805 addi a6,a6,1 # ffffa001 <_eusrstack+0xdfff7001> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:52 (discriminator 1) + for(i=0;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:63 + } + } + return xda; +} + 3110: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:54 + xda ^= aStr[i]; + 3112: 00d607b3 add a5,a2,a3 + 3116: 239c lbu a5,0(a5) + 3118: 4721 li a4,8 + 311a: 8d3d xor a0,a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:57 + xdabit = (uint8_t)(xda & 0x01); + 311c: 00157793 andi a5,a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:58 + xda >>= 1; + 3120: 8105 srli a0,a0,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:59 + if( xdabit ) xda ^= xdapoly; + 3122: c789 beqz a5,312c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:59 (discriminator 1) + 3124: 010547b3 xor a5,a0,a6 + 3128: 0807c533 zext.h a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:55 (discriminator 2) + for(j=0;j<8;j++) + 312c: 177d addi a4,a4,-1 + 312e: 08074733 zext.h a4,a4 + 3132: f76d bnez a4,311c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:52 (discriminator 2) + for(i=0;i + 3136: bfc9 j 3108 + +00003138 : +Get_Port_State(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:74 + ******************************************************* */ +uint8_t Get_Port_State(uint8_t ch) +{ + uint8_t state = DET_SER_PRESS; + + switch(ch) + 3138: 478d li a5,3 + 313a: 04f50563 beq a0,a5,3184 + 313e: 00a7ea63 bltu a5,a0,3152 + 3142: 4785 li a5,1 + 3144: 02f50163 beq a0,a5,3166 + 3148: 4789 li a5,2 + 314a: 02f50663 beq a0,a5,3176 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:77 + { + case DET_CH0: //忨ź - + state = DET_SER_LOOSEN; + 314e: 4509 li a0,2 + 3150: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:74 + switch(ch) + 3152: 4791 li a5,4 + 3154: fef51de3 bne a0,a5,314e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:95 + if(GPIOA_ReadPortPin(BedRoom_Pin) != 0x00){ + state = DET_SER_LOOSEN; + } + break; + case DET_CH4: + if(GPIOA_ReadPortPin(GateWay_Pin) != 0x00){ + 3158: 400017b7 lui a5,0x40001 + 315c: 0a47a503 lw a0,164(a5) # 400010a4 <_eusrstack+0x1fffe0a4> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:77 + state = DET_SER_LOOSEN; + 3160: 48455513 bexti a0,a0,0x4 + 3164: a035 j 3190 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:80 + if(GPIOA_ReadPortPin(Retain_Pin) != 0x00) { + 3166: 400017b7 lui a5,0x40001 + 316a: 0a47a783 lw a5,164(a5) # 400010a4 <_eusrstack+0x1fffe0a4> + 316e: 0207f793 andi a5,a5,32 + 3172: fff1 bnez a5,314e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:105 + state = DET_SER_LOOSEN; + break; + } + + return state; +} + 3174: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:85 + if(GPIOA_ReadPortPin(WashRoom_Pin) != 0x00) { + 3176: 400017b7 lui a5,0x40001 + 317a: 0a47a783 lw a5,164(a5) # 400010a4 <_eusrstack+0x1fffe0a4> + 317e: 8b91 andi a5,a5,4 + 3180: cb91 beqz a5,3194 + 3182: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:90 + if(GPIOA_ReadPortPin(BedRoom_Pin) != 0x00){ + 3184: 400017b7 lui a5,0x40001 + 3188: 0a47a503 lw a0,164(a5) # 400010a4 <_eusrstack+0x1fffe0a4> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:77 + state = DET_SER_LOOSEN; + 318c: 48355513 bexti a0,a0,0x3 + 3190: 0505 addi a0,a0,1 + 3192: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:72 + uint8_t state = DET_SER_PRESS; + 3194: 4505 li a0,1 + 3196: bff9 j 3174 + +00003198 : +DIP_ScanTask(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:117 + ******************************************************* */ +void DIP_ScanTask(void) +{ + static uint32_t update_20ms = 0; + + if (SysTick_1ms - update_20ms > DIP_SCAN_Time) + 3198: 8d818693 addi a3,gp,-1832 # 20001290 + 319c: 91818713 addi a4,gp,-1768 # 200012d0 + 31a0: 4310 lw a2,0(a4) + 31a2: 429c lw a5,0(a3) + 31a4: 8f91 sub a5,a5,a2 + 31a6: 4651 li a2,20 + 31a8: 0cf67a63 bgeu a2,a5,327c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:119 + { + update_20ms = SysTick_1ms; + 31ac: 429c lw a5,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:114 +{ + 31ae: 1101 addi sp,sp,-32 + 31b0: cc22 sw s0,24(sp) + 31b2: ca26 sw s1,20(sp) + 31b4: c84a sw s2,16(sp) + 31b6: c64e sw s3,12(sp) + 31b8: c452 sw s4,8(sp) + 31ba: c256 sw s5,4(sp) + 31bc: ce06 sw ra,28(sp) + 31be: f9818493 addi s1,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:119 + update_20ms = SysTick_1ms; + 31c2: c31c sw a5,0(a4) + 31c4: 4901 li s2,0 + 31c6: 8426 mv s0,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:123 + + for (uint8_t i = 0; i < DET_MAX; i++) + { + if (Get_Port_State(i) == DET_SER_PRESS) + 31c8: 4a85 li s5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:139 + } + } + else + { + VCard_Info.g_Dip.delayCnt_ON[i] = 0; + if (VCard_Info.g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 31ca: 4991 li s3,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:121 + for (uint8_t i = 0; i < DET_MAX; i++) + 31cc: 4a15 li s4,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:123 + if (Get_Port_State(i) == DET_SER_PRESS) + 31ce: 0ff97513 zext.b a0,s2 + 31d2: 379d jal 3138 + 31d4: 07551163 bne a0,s5,3236 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:126 + if (VCard_Info.g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 31d8: 0914c783 lbu a5,145(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:125 + VCard_Info.g_Dip.delayCnt_OFF[i] = 0; + 31dc: 08048b23 sb zero,150(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:126 + if (VCard_Info.g_Dip.delayCnt_ON[i] < DIP_DELAY_COUNT) + 31e0: 02f9e263 bltu s3,a5,3204 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:128 + VCard_Info.g_Dip.delayCnt_ON[i]++; + 31e4: 0785 addi a5,a5,1 + 31e6: 08f488a3 sb a5,145(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:121 (discriminator 2) + for (uint8_t i = 0; i < DET_MAX; i++) + 31ea: 0905 addi s2,s2,1 + 31ec: 0485 addi s1,s1,1 + 31ee: ff4910e3 bne s2,s4,31ce +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:151 + VCard_Info.g_Dip.delayCnt_OFF[i] = 0; + } + } + } + } +} + 31f2: 40f2 lw ra,28(sp) + 31f4: 4462 lw s0,24(sp) + 31f6: 44d2 lw s1,20(sp) + 31f8: 4942 lw s2,16(sp) + 31fa: 49b2 lw s3,12(sp) + 31fc: 4a22 lw s4,8(sp) + 31fe: 4a92 lw s5,4(sp) + 3200: 6105 addi sp,sp,32 + 3202: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:132 + VCard_Info.g_Dip.DIP_val |= (DIP_VAL_ON << i); + 3204: 09c42703 lw a4,156(s0) + 3208: 0a044783 lbu a5,160(s0) + 320c: 8321 srli a4,a4,0x8 + 320e: 07e2 slli a5,a5,0x18 + 3210: 8fd9 or a5,a5,a4 + 3212: 292797b3 bset a5,a5,s2 + 3216: 0087d713 srli a4,a5,0x8 + 321a: 08f40ea3 sb a5,157(s0) + 321e: 08e40f23 sb a4,158(s0) + 3222: 0107d713 srli a4,a5,0x10 + 3226: 83e1 srli a5,a5,0x18 + 3228: 08e40fa3 sb a4,159(s0) + 322c: 0af40023 sb a5,160(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:133 + VCard_Info.g_Dip.delayCnt_ON[i] = 0; + 3230: 080488a3 sb zero,145(s1) + 3234: bf5d j 31ea +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:139 + if (VCard_Info.g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 3236: 0964c783 lbu a5,150(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:138 + VCard_Info.g_Dip.delayCnt_ON[i] = 0; + 323a: 080488a3 sb zero,145(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:139 + if (VCard_Info.g_Dip.delayCnt_OFF[i] < DIP_DELAY_COUNT) + 323e: 00f9e663 bltu s3,a5,324a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:141 + VCard_Info.g_Dip.delayCnt_OFF[i]++; + 3242: 0785 addi a5,a5,1 + 3244: 08f48b23 sb a5,150(s1) + 3248: b74d j 31ea +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:145 + VCard_Info.g_Dip.DIP_val &= ~(DIP_VAL_ON << i); + 324a: 09c42703 lw a4,156(s0) + 324e: 0a044783 lbu a5,160(s0) + 3252: 8321 srli a4,a4,0x8 + 3254: 07e2 slli a5,a5,0x18 + 3256: 8fd9 or a5,a5,a4 + 3258: 492797b3 bclr a5,a5,s2 + 325c: 0087d713 srli a4,a5,0x8 + 3260: 08f40ea3 sb a5,157(s0) + 3264: 08e40f23 sb a4,158(s0) + 3268: 0107d713 srli a4,a5,0x10 + 326c: 83e1 srli a5,a5,0x18 + 326e: 08e40fa3 sb a4,159(s0) + 3272: 0af40023 sb a5,160(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:146 + VCard_Info.g_Dip.delayCnt_OFF[i] = 0; + 3276: 08048b23 sb zero,150(s1) + 327a: bf85 j 31ea + 327c: 8082 ret + +0000327e : +Get_DETCH_State(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:163 + ******************************************************* */ +uint8_t Get_DETCH_State(uint8_t ch) +{ + uint8_t state = DET_SER_LOOSEN; + + if( (ch < DET_MAX)&&((VCard_Info.g_Dip.DIP_val&(0x01< +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:163 (discriminator 1) + 3284: f9818793 addi a5,gp,-104 # 20001950 + 3288: 09c7a703 lw a4,156(a5) + 328c: 0a07c783 lbu a5,160(a5) + 3290: 28a01533 bset a0,zero,a0 + 3294: 8321 srli a4,a4,0x8 + 3296: 07e2 slli a5,a5,0x18 + 3298: 8fd9 or a5,a5,a4 + 329a: 8d7d and a0,a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:165 (discriminator 1) + { + state = DET_SER_PRESS; + 329c: 00153513 seqz a0,a0 + 32a0: 0505 addi a0,a0,1 + 32a2: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:161 + uint8_t state = DET_SER_LOOSEN; + 32a4: 4509 li a0,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:169 + } + + return state; +} + 32a6: 8082 ret + +000032a8 : +FZL_CtrlOut(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:181 + * @param : state : ״̬ + ******************************************************* */ +void FZL_CtrlOut(uint8_t state) +{ + + switch(state) + 32a8: 4799 li a5,6 + 32aa: 06a7e963 bltu a5,a0,331c + 32ae: 00016717 auipc a4,0x16 + 32b2: 2ca70713 addi a4,a4,714 # 19578 + 32b6: 20e54533 sh2add a0,a0,a4 + 32ba: 411c lw a5,0(a0) + 32bc: 97ba add a5,a5,a4 + 32be: 8782 jr a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:184 + { + case 0x00: + GPIOA_SetBits(DET_EXIST1); + 32c0: 400017b7 lui a5,0x40001 + 32c4: 0b878793 addi a5,a5,184 # 400010b8 <_eusrstack+0x1fffe0b8> + 32c8: 04000713 li a4,64 + 32cc: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:185 + GPIOA_SetBits(DET_EXIST2); + 32ce: 08000713 li a4,128 + 32d2: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:186 + GPIOA_SetBits(GPIO_Pin_8); + 32d4: 10000713 li a4,256 + 32d8: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:187 + GPIOA_SetBits(GPIO_Pin_9); + 32da: 20000713 li a4,512 + 32de: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:188 + GPIOA_SetBits(GPIO_Pin_10); + 32e0: 40000713 li a4,1024 + 32e4: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:189 + GPIOA_SetBits(GPIO_Pin_11); + 32e6: 28b01713 bseti a4,zero,0xb + 32ea: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:191 + + sensor_info.det_ctrlout_state = 0x00; + 32ec: f8018023 sb zero,-128(gp) # 20001938 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:192 + break; + 32f0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:194 + case 0x01: + GPIOA_ResetBits(DET_EXIST1); + 32f2: 400017b7 lui a5,0x40001 + 32f6: 04000713 li a4,64 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:229 + sensor_info.det_ctrlout_state = 0x01; + sensor_info.det_action_tick = SysTick_1ms; + break; + case 0x06: + + GPIOA_ResetBits(GPIO_Pin_11); + 32fa: 0ae7a623 sw a4,172(a5) # 400010ac <_eusrstack+0x1fffe0ac> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:230 + sensor_info.det_ctrlout_state = 0x01; + 32fe: f8018713 addi a4,gp,-128 # 20001938 + 3302: 4785 li a5,1 + 3304: a31c sb a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:231 + sensor_info.det_action_tick = SysTick_1ms; + 3306: 8d81a783 lw a5,-1832(gp) # 20001290 + 330a: 0087d693 srli a3,a5,0x8 + 330e: b31c sb a5,1(a4) + 3310: a334 sb a3,2(a4) + 3312: 0107d693 srli a3,a5,0x10 + 3316: 83e1 srli a5,a5,0x18 + 3318: b334 sb a3,3(a4) + 331a: a35c sb a5,4(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:238 + + default: + break; + } + +} + 331c: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:202 + GPIOA_ResetBits(DET_EXIST2); + 331e: 400017b7 lui a5,0x40001 + 3322: 08000713 li a4,128 + 3326: bfd1 j 32fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:210 + GPIOA_ResetBits(GPIO_Pin_8); + 3328: 400017b7 lui a5,0x40001 + 332c: 10000713 li a4,256 + 3330: b7e9 j 32fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:216 + GPIOA_ResetBits(GPIO_Pin_9); + 3332: 400017b7 lui a5,0x40001 + 3336: 20000713 li a4,512 + 333a: b7c1 j 32fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:223 + GPIOA_ResetBits(GPIO_Pin_10); + 333c: 400017b7 lui a5,0x40001 + 3340: 40000713 li a4,1024 + 3344: bf5d j 32fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:229 + GPIOA_ResetBits(GPIO_Pin_11); + 3346: 400017b7 lui a5,0x40001 + 334a: 28b01713 bseti a4,zero,0xb + 334e: b775 j 32fa + +00003350 : +DetWin_WriteData(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:255 + if( writetime > DETECTION_Window_OnlyPort ) + { + writetime = DETECTION_Window_OnlyPort; + } + // Dbg_Println(DBG_BIT_Debug_STATUS,"Write Len:%d",writetime); + detaddr = port * DETECTION_Window_OnlyPort; + 3350: 0f000793 li a5,240 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:259 + + for(uint8_t i = 0; i < writetime; i++) + { + portBuff[detaddr+i] = state; + 3354: 02f50533 mul a0,a0,a5 + 3358: 0af65633 minu a2,a2,a5 + 335c: ca018793 addi a5,gp,-864 # 20001658 + 3360: 953e add a0,a0,a5 + 3362: d87fe06f j 20e8 + +00003366 : +DetWin_WriteData_Bit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:272 + uint16_t detaddr = 0; + uint8_t data_val = 0; + uint8_t bit_offset = 0; + uint8_t bit_remian = 0; + + if( port >= 3) return; + 3366: 4789 li a5,2 + 3368: 04a7e463 bltu a5,a0,33b0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:273 + if( idex >= DETECTION_Window_OnlyPort*8) return; //һ˿λ + 336c: 77f00793 li a5,1919 + 3370: 04b7e063 bltu a5,a1,33b0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:275 + + if(idex != 0x00) + 3374: cd9d beqz a1,33b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:277 + { + bit_remian = idex % 8; //ȡ + 3376: 0075f793 andi a5,a1,7 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:278 + bit_offset = idex / 8; //ַƫ + 337a: 818d srli a1,a1,0x3 + 337c: 0ff5f593 zext.b a1,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:288 +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset) + 1; +// }else { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); +// } + + detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); + 3380: 0f000713 li a4,240 + 3384: 02e50533 mul a0,a0,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:289 + data_val = portBuff[detaddr]; + 3388: ca018713 addi a4,gp,-864 # 20001658 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:293 + + if(state == 0x01) + { + data_val |= 0x01 << bit_remian; + 338c: 4805 li a6,1 + 338e: 28f017b3 bset a5,zero,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:288 + detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); + 3392: 95aa add a1,a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:289 + data_val = portBuff[detaddr]; + 3394: 0805c5b3 zext.h a1,a1 + 3398: 00b706b3 add a3,a4,a1 + 339c: 2294 lbu a3,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:295 + }else { + data_val &= ~(0x01 << bit_remian); + 339e: 40f6f533 andn a0,a3,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:291 + if(state == 0x01) + 33a2: 01061563 bne a2,a6,33ac +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:293 + data_val |= 0x01 << bit_remian; + 33a6: 8edd or a3,a3,a5 + 33a8: 0ff6f513 zext.b a0,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:298 + } + + portBuff[detaddr] = data_val; + 33ac: 972e add a4,a4,a1 + 33ae: a308 sb a0,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:299 +} + 33b0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:270 + uint8_t bit_remian = 0; + 33b2: 4781 li a5,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:269 + uint8_t bit_offset = 0; + 33b4: 4581 li a1,0 + 33b6: b7e9 j 3380 + +000033b8 : +DetWin_ReadData_Bit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:316 + uint32_t detaddr = 0; + uint8_t data_val = 0; + uint8_t bit_offset = 0; + uint8_t bit_remian = 0; + + if( port >= 3) return 0x00; + 33b8: 4709 li a4,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:310 +{ + 33ba: 87aa mv a5,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:316 + if( port >= 3) return 0x00; + 33bc: 02a76d63 bltu a4,a0,33f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:317 + if( idex >= DETECTION_Window_OnlyPort*8) return 0x00; + 33c0: 77f00713 li a4,1919 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:316 + if( port >= 3) return 0x00; + 33c4: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:317 + if( idex >= DETECTION_Window_OnlyPort*8) return 0x00; + 33c6: 02b76963 bltu a4,a1,33f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:319 + + if(idex != 0x00) + 33ca: c19d beqz a1,33f0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:321 + { + bit_remian = idex % 8; //ȡ + 33cc: 0075f693 andi a3,a1,7 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:322 + bit_offset = idex / 8; //ַƫ + 33d0: 818d srli a1,a1,0x3 + 33d2: 0ff5f593 zext.b a1,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:332 +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset) + 1; +// }else { +// detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); +// } + + detaddr = (uint16_t)(port * DETECTION_Window_OnlyPort) + (bit_offset); + 33d6: 0f000713 li a4,240 + 33da: 02e787b3 mul a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:333 + data_val = portBuff[detaddr]; + 33de: ca018713 addi a4,gp,-864 # 20001658 + 33e2: 972e add a4,a4,a1 + 33e4: 97ba add a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:335 + + if( (data_val & (0x01 << bit_remian)) != 0x00 ) + 33e6: 2388 lbu a0,0(a5) + 33e8: 40d55533 sra a0,a0,a3 + 33ec: 8905 andi a0,a0,1 + 33ee: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:314 + uint8_t bit_remian = 0; + 33f0: 4681 li a3,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:313 + uint8_t bit_offset = 0; + 33f2: 4581 li a1,0 + 33f4: b7cd j 33d6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:316 + if( port >= 3) return 0x00; + 33f6: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:341 + { + return 0x01; + } + + return 0x00; +} + 33f8: 8082 ret + +000033fa : +Blv_CardlessPower_Tack(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:345 + + +void Blv_CardlessPower_Tack(void) +{ + 33fa: 7119 addi sp,sp,-128 + 33fc: c6ee sw s11,76(sp) + 33fe: de86 sw ra,124(sp) + 3400: dca2 sw s0,120(sp) + 3402: daa6 sw s1,116(sp) + 3404: d8ca sw s2,112(sp) + 3406: d6ce sw s3,108(sp) + 3408: d4d2 sw s4,104(sp) + 340a: d2d6 sw s5,100(sp) + 340c: d0da sw s6,96(sp) + 340e: cede sw s7,92(sp) + 3410: cce2 sw s8,88(sp) + 3412: cae6 sw s9,84(sp) + 3414: c8ea sw s10,80(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:352 + uint32_t temp_jumpe_time = 0x00; + uint32_t temp_tickout = 0x00; + uint32_t temp_init_time = 0x00; + + //1ʼ + if(VCard_Info.PortInit_Flag == 0x00) + 3416: f9818d93 addi s11,gp,-104 # 20001950 + 341a: 004dcc03 lbu s8,4(s11) + 341e: 180c1c63 bnez s8,35b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:356 + { + uint8_t temp[15]; + uint8_t temp_loop = 0; + memset(&temp,0,sizeof(temp)); + 3422: 02010da3 sb zero,59(sp) + 3426: 02010e23 sb zero,60(sp) + 342a: 02010ea3 sb zero,61(sp) + 342e: 02010f23 sb zero,62(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:358 + + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) //ʼӳ˿Ϣ + 3432: b0c18b93 addi s7,gp,-1268 # 200014c4 + 3436: b4318993 addi s3,gp,-1213 # 200014fb +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:363 + { + memcpy(&temp, PortInfo[i], sizeof(VPORT_INFO_STRUCT) ); + // Dbg_Print_Buff(DBG_BIT_PC_COMM,"VPORT_INFO_STRUCT ",temp,sizeof(VPORT_INFO_STRUCT)); + + if( (temp[5] != 0x00) && (temp[5] <= VIRTUAL_PORT_MAX) ) + 343a: 4a91 li s5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:366 + { + temp_loop = temp[5] - 1; + VCard_Info.Port_Info[temp_loop].HPort_Type = temp[0]; + 343c: 4419 li s0,6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:380 + + /*2025-03-07 ж + * 1ֵΪ0 + * 2˿ڿ״̬ + */ + if( VCard_Info.Port_Info[temp_loop].PortEnFlag == 0x01 ) + 343e: 4485 li s1,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:385 + { + VCard_Info.DetNum++; + } + + VCard_Info.PortState[temp_loop] = DET_SER_LOOSEN; + 3440: 4909 li s2,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:393 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = temp[8]; + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] <<= 8; + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + + // Dbg_Println(DBG_BIT_DEVICE_STATUS,"Det1:%d",VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + switch(temp[9]) + 3442: 4b0d li s6,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:429 + VCard_Info.DetInfo.DetWinTrigger[temp_loop] = 0x00; + VCard_Info.ActThreshold[temp_loop] = 0; + + } + WDT_Feed(); + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ʼӳ˿%d ӳ:%d ӳ·:%d ֵ:%d-%d ʹܱ־:%d - %dS",\ + 3444: 00016a17 auipc s4,0x16 + 3448: 150a0a13 addi s4,s4,336 # 19594 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:360 + memcpy(&temp, PortInfo[i], sizeof(VPORT_INFO_STRUCT) ); + 344c: 462d li a2,11 + 344e: 85de mv a1,s7 + 3450: 1808 addi a0,sp,48 + 3452: c81fe0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:363 + if( (temp[5] != 0x00) && (temp[5] <= VIRTUAL_PORT_MAX) ) + 3456: 03514703 lbu a4,53(sp) + 345a: 177d addi a4,a4,-1 + 345c: 0ff77713 zext.b a4,a4 + 3460: 0ceae863 bltu s5,a4,3530 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:366 + VCard_Info.Port_Info[temp_loop].HPort_Type = temp[0]; + 3464: 028707b3 mul a5,a4,s0 + 3468: 03014683 lbu a3,48(sp) + 346c: 97ee add a5,a5,s11 + 346e: b3d4 sb a3,5(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:367 + VCard_Info.Port_Info[temp_loop].HPort_Addr = temp[1]; + 3470: 03114683 lbu a3,49(sp) + 3474: a3f4 sb a3,6(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:372 + VCard_Info.Port_Info[temp_loop].HPort_Loop -= 0x01; + 3476: 03215683 lhu a3,50(sp) + 347a: 16fd addi a3,a3,-1 + 347c: b3f4 sb a3,7(a5) + 347e: 0806c633 zext.h a2,a3 + 3482: 00865693 srli a3,a2,0x8 + 3486: a794 sb a3,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:374 + VCard_Info.Port_Info[temp_loop].PortEnFlag = temp[6]; //·óʱ - ʹܱ־λ + 3488: 03614683 lbu a3,54(sp) + 348c: a7b4 sb a3,10(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:380 + if( VCard_Info.Port_Info[temp_loop].PortEnFlag == 0x01 ) + 348e: 00969763 bne a3,s1,349c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:382 + VCard_Info.DetNum++; + 3492: 085dc783 lbu a5,133(s11) + 3496: 0785 addi a5,a5,1 # 40001001 <_eusrstack+0x1fffe001> + 3498: 08fd82a3 sb a5,133(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:390 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + 349c: 03814603 lbu a2,56(sp) + 34a0: 03714583 lbu a1,55(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:385 + VCard_Info.PortState[temp_loop] = DET_SER_LOOSEN; + 34a4: 00ed87b3 add a5,s11,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:390 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + 34a8: 0622 slli a2,a2,0x8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:385 + VCard_Info.PortState[temp_loop] = DET_SER_LOOSEN; + 34aa: 032781a3 sb s2,35(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:390 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + 34ae: 02070693 addi a3,a4,32 + 34b2: 00b667b3 or a5,a2,a1 + 34b6: 8221 srli a2,a2,0x8 + 34b8: 21b6a6b3 sh1add a3,a3,s11 + 34bc: a6f0 sb a2,14(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:393 + switch(temp[9]) + 34be: 03914603 lbu a2,57(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:390 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] |= temp[7]; + 34c2: b6cc sb a1,13(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:393 + switch(temp[9]) + 34c4: 1b260063 beq a2,s2,3664 + 34c8: 1b660c63 beq a2,s6,3680 + 34cc: 00961d63 bne a2,s1,34e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:396 + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Sec_Max) + 34d0: 661d lui a2,0x7 + 34d2: 07f60613 addi a2,a2,127 # 707f + 34d6: 00f67863 bgeu a2,a5,34e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:398 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] = DETECTION_Window_Sec_Max; + 34da: f8000793 li a5,-128 + 34de: b6dc sb a5,13(a3) + 34e0: 07000793 li a5,112 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:413 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 3600; + 34e4: a6fc sb a5,14(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:417 + VCard_Info.DetInfo.Trigger_Thres[temp_loop] = temp[4]; //ʱж - -> ֵ + 34e6: 03414783 lbu a5,52(sp) + 34ea: 00ed86b3 add a3,s11,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:421 + VCard_Info.DetInfo.FullFlag[temp_loop] = 0x00; + 34ee: 02068f23 sb zero,62(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:417 + VCard_Info.DetInfo.Trigger_Thres[temp_loop] = temp[4]; //ʱж - -> ֵ + 34f2: 04f681a3 sb a5,67(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:418 + VCard_Info.DetInfo.Release_Thres[temp_loop] = temp[10]; //ʱжͷ - -> ֵ + 34f6: 03a14783 lbu a5,58(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:425 + VCard_Info.ActThreshold[temp_loop] = 0; + 34fa: 8c3a mv s8,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:418 + VCard_Info.DetInfo.Release_Thres[temp_loop] = temp[10]; //ʱжͷ - -> ֵ + 34fc: 04f68423 sb a5,72(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:420 + VCard_Info.DetInfo.DetWinIdex[temp_loop] = 0x00; + 3500: 02870793 addi a5,a4,40 + 3504: 21b7a7b3 sh1add a5,a5,s11 + 3508: 000788a3 sb zero,17(a5) + 350c: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:424 + VCard_Info.DetInfo.DetWinTrigger[temp_loop] = 0x00; + 3510: 000783a3 sb zero,7(a5) + 3514: 00078423 sb zero,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:425 + VCard_Info.ActThreshold[temp_loop] = 0; + 3518: 01870793 addi a5,a4,24 + 351c: 21b7c7b3 sh2add a5,a5,s11 + 3520: 000785a3 sb zero,11(a5) + 3524: 00078623 sb zero,12(a5) + 3528: 000786a3 sb zero,13(a5) + 352c: 00078723 sb zero,14(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:428 (discriminator 2) + WDT_Feed(); + 3530: c0bfe0ef jal ra,213a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:435 (discriminator 2) + temp_loop,\ + VCard_Info.Port_Info[temp_loop].HPort_Type,\ + VCard_Info.Port_Info[temp_loop].HPort_Loop,\ + VCard_Info.DetInfo.Trigger_Thres[temp_loop],\ + VCard_Info.DetInfo.Release_Thres[temp_loop],\ + VCard_Info.Port_Info[temp_loop].PortEnFlag,\ + 3534: 028c06b3 mul a3,s8,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:436 (discriminator 2) + VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + 3538: 020c0793 addi a5,s8,32 + 353c: 21b7a7b3 sh1add a5,a5,s11 + 3540: 27ca lhu a0,12(a5) + 3542: 27fc lbu a5,14(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:434 (discriminator 2) + VCard_Info.DetInfo.Release_Thres[temp_loop],\ + 3544: 018d8633 add a2,s11,s8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:436 (discriminator 2) + VCard_Info.DetInfo.DetWinTotalNum[temp_loop]); + 3548: 8121 srli a0,a0,0x8 + 354a: 07a2 slli a5,a5,0x8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:429 (discriminator 2) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ʼӳ˿%d ӳ:%d ӳ·:%d ֵ:%d-%d ʹܱ־:%d - %dS",\ + 354c: 8fc9 or a5,a5,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:358 (discriminator 2) + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) //ʼӳ˿Ϣ + 354e: 0bad addi s7,s7,11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:435 (discriminator 2) + VCard_Info.Port_Info[temp_loop].PortEnFlag,\ + 3550: 96ee add a3,a3,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:432 (discriminator 2) + VCard_Info.Port_Info[temp_loop].HPort_Loop,\ + 3552: 22ee lhu a1,6(a3) + 3554: 2698 lbu a4,8(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:429 (discriminator 2) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ʼӳ˿%d ӳ:%d ӳ·:%d ֵ:%d-%d ʹܱ־:%d - %dS",\ + 3556: c03e sw a5,0(sp) + 3558: 00a6c883 lbu a7,10(a3) + 355c: 04864803 lbu a6,72(a2) + 3560: 04364783 lbu a5,67(a2) + 3564: 32d4 lbu a3,5(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:432 (discriminator 2) + VCard_Info.Port_Info[temp_loop].HPort_Loop,\ + 3566: 81a1 srli a1,a1,0x8 + 3568: 0722 slli a4,a4,0x8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:429 (discriminator 2) + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ʼӳ˿%d ӳ:%d ӳ·:%d ֵ:%d-%d ʹܱ־:%d - %dS",\ + 356a: 8f4d or a4,a4,a1 + 356c: 8662 mv a2,s8 + 356e: 85d2 mv a1,s4 + 3570: 4505 li a0,1 + 3572: c09fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:358 (discriminator 2) + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) //ʼӳ˿Ϣ + 3576: ed3b9be3 bne s7,s3,344c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:441 + } + + VCard_Info.PortInit_Flag = 0x01; //ʼɱע + + VCard_Info.DetInfo.Det1sTime = 0x00; + 357a: fc019523 sh zero,-54(gp) # 20001982 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:439 + VCard_Info.PortInit_Flag = 0x01; //ʼɱע + 357e: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:443 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; + VCard_Info.ExistState = NOONE; + 3580: 4709 li a4,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:447 + VCard_Info.rdrsta_change_flag = 0x01; + VCard_Info.Action = 0x00; + //YYW,20251011,ճʱ仺 + memset(portBuff,0x00,(DETECTION_Window_OnlyPort*3)); + 3582: 2d000613 li a2,720 + 3586: 4581 li a1,0 + 3588: ca018513 addi a0,gp,-864 # 20001658 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:439 + VCard_Info.PortInit_Flag = 0x01; //ʼɱע + 358c: 00fd8223 sb a5,4(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:442 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; + 3590: 08fd80a3 sb a5,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:444 + VCard_Info.rdrsta_change_flag = 0x01; + 3594: 08fd8423 sb a5,136(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:443 + VCard_Info.ExistState = NOONE; + 3598: 06ed8fa3 sb a4,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:445 + VCard_Info.Action = 0x00; + 359c: 00018d23 sb zero,26(gp) # 200019d2 <__global_pointer$+0x1a> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:447 + memset(portBuff,0x00,(DETECTION_Window_OnlyPort*3)); + 35a0: b49fe0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:448 + for(uint8_t i = 0x00;i + 35a8: bdb18713 addi a4,gp,-1061 # 20001593 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:449 (discriminator 3) + g_portGp.PortGroupInfo[i][14]= 0x00; + 35ac: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:448 (discriminator 3) + for(uint8_t i = 0x00;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:457 + } + + + + //2˿ڱ仯 + if((SysTick_1ms - VCard_Info.PortTick >= 50) && (VCard_Info.PortInit_Flag == 0x01)) + 35b6: 8d818c13 addi s8,gp,-1832 # 20001290 + 35ba: 000da703 lw a4,0(s11) + 35be: 000c2783 lw a5,0(s8) + 35c2: 8f99 sub a5,a5,a4 + 35c4: 03100713 li a4,49 + 35c8: 36f77e63 bgeu a4,a5,3944 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:457 (discriminator 1) + 35cc: 004dc703 lbu a4,4(s11) + 35d0: 4785 li a5,1 + 35d2: 36f71963 bne a4,a5,3944 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:459 + { + VCard_Info.PortTick = SysTick_1ms; + 35d6: 000c2783 lw a5,0(s8) + 35da: f9818913 addi s2,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:460 + VCard_Info.DetInfo.Det1sTime++; + 35de: 8bca mv s7,s2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:459 + VCard_Info.PortTick = SysTick_1ms; + 35e0: 00fda023 sw a5,0(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:460 + VCard_Info.DetInfo.Det1sTime++; + 35e4: 032dd783 lhu a5,50(s11) + 35e8: 89ca mv s3,s2 + 35ea: 4d01 li s10,0 + 35ec: 0785 addi a5,a5,1 + 35ee: 02fd9923 sh a5,50(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:465 + + //2.1˿ڱ仯 + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + { + if (Get_DETCH_State(i) == DET_SER_PRESS) + 35f2: 4405 li s0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + } + } + + + //2.2ʱ + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 35f4: 4489 li s1,2 + 35f6: 0ffd7793 zext.b a5,s10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:465 + if (Get_DETCH_State(i) == DET_SER_PRESS) + 35fa: 853e mv a0,a5 + 35fc: ce3e sw a5,28(sp) + 35fe: 3141 jal 327e + 3600: 00190b13 addi s6,s2,1 + 3604: 00298a93 addi s5,s3,2 + 3608: 006b8a13 addi s4,s7,6 + 360c: 1a851a63 bne a0,s0,37c0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:467 + VCard_Info.PortState[i] = DET_SER_PRESS; + 3610: 028901a3 sb s0,35(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:468 + VCard_Info.DetInfo.TriggerNum[i]++; + 3614: 0349d783 lhu a5,52(s3) + 3618: 0785 addi a5,a5,1 + 361a: 02f99a23 sh a5,52(s3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:470 + if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i]) + 361e: 02894783 lbu a5,40(s2) + 3622: 18878163 beq a5,s0,37a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:472 + VCard_Info.rdrsta_change_flag = 0x01; + 3626: 088d8423 sb s0,136(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:474 + if(VCard_Info.PortStateLast[i] == DET_SER_LOOSEN) + 362a: 14979163 bne a5,s1,376c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:476 + if(i == 0x01){ //ŴŹأ˿״̬Ϊͷŵ + 362e: 068d1063 bne s10,s0,368e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 3632: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:486 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 3634: 03ad84a3 sb s10,41(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 3638: 02fd8723 sb a5,46(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:490 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 363c: 4605 li a2,1 + 363e: 00016597 auipc a1,0x16 + 3642: f9e58593 addi a1,a1,-98 # 195dc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:524 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 3646: b35fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 364a: 07fdc783 lbu a5,127(s11) + 364e: 22979663 bne a5,s1,387a + 3652: 081dc783 lbu a5,129(s11) + 3656: 23a79463 bne a5,s10,387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:463 + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 365a: 0d05 addi s10,s10,1 + 365c: 895a mv s2,s6 + 365e: 89d6 mv s3,s5 + 3660: 8bd2 mv s7,s4 + 3662: bf51 j 35f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:402 + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Min_Max) + 3664: 1e000613 li a2,480 + 3668: 0ac7d7b3 minu a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:406 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 60; + 366c: 03c00613 li a2,60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:413 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 3600; + 3670: 02c787b3 mul a5,a5,a2 + 3674: b6dc sb a5,13(a3) + 3676: 0807c633 zext.h a2,a5 + 367a: 00865793 srli a5,a2,0x8 + 367e: b59d j 34e4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:409 + if(VCard_Info.DetInfo.DetWinTotalNum[temp_loop] >= DETECTION_Window_Hour_Max) + 3680: 4621 li a2,8 + 3682: 0ac7d7b3 minu a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:413 + VCard_Info.DetInfo.DetWinTotalNum[temp_loop] *= 3600; + 3686: 6605 lui a2,0x1 + 3688: e1060613 addi a2,a2,-496 # e10 <_sinit-0x1f0> + 368c: b7d5 j 3670 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:479 + }else if(i == 0x02){ //ϴּ״Ӧˣ˿״̬Ϊͷŵ + 368e: 0c9d1f63 bne s10,s1,376c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:482 + sensor_info.bath_rarOn_time = SysTick_1ms; + 3692: 000c2683 lw a3,0(s8) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:481 + sensor_info.bath_rarON_flag = 0x01; + 3696: f8018793 addi a5,gp,-128 # 20001938 + 369a: a3e0 sb s0,6(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:482 + sensor_info.bath_rarOn_time = SysTick_1ms; + 369c: c7d4 sw a3,12(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 369e: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:486 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 36a0: 028d8523 sb s0,42(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 36a4: 02fd87a3 sb a5,47(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:490 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 36a8: 4609 li a2,2 + 36aa: 00016597 auipc a1,0x16 + 36ae: f3258593 addi a1,a1,-206 # 195dc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:524 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 36b2: ac9fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 36b6: 07fdc783 lbu a5,127(s11) + 36ba: 1da79063 bne a5,s10,387a + 36be: 081dc783 lbu a5,129(s11) + 36c2: 1a879e63 bne a5,s0,387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:540 (discriminator 1) + || ( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1)) ) ) + { + if((i > 0x01) && (VCard_Info.Port_Info[i].PortEnFlag == 0x01)) //˿1,2̶Ϊпȡ硢Ŵ豸Ļ·ͳ + 36c6: 00abc783 lbu a5,10(s7) + 36ca: 4685 li a3,1 + 36cc: 1ad79963 bne a5,a3,387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:543 + { + portstate = 0x00; + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15s¼һΣڼ300 + 36d0: 032dd603 lhu a2,50(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:542 + portstate = 0x00; + 36d4: 90018e23 sb zero,-1764(gp) # 200012d4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:543 + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15s¼һΣڼ300 + 36d8: 12c00693 li a3,300 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:542 + portstate = 0x00; + 36dc: 91c18c93 addi s9,gp,-1764 # 200012d4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:543 + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15s¼һΣڼ300 + 36e0: 18d61f63 bne a2,a3,387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:546 + { + /*1S ʱ500ms㴥dzҲ */ + if(VCard_Info.DetInfo.TriggerNum[i] >= 150) + 36e4: 0349d603 lhu a2,52(s3) + 36e8: 09500693 li a3,149 + 36ec: 00c6f663 bgeu a3,a2,36f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:548 + { + VCard_Info.DetInfo.TriggerNum[i] = 0x00; + 36f0: 02099a23 sh zero,52(s3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:549 + portstate = 0x01; + 36f4: 00fc8023 sb a5,0(s9) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:557 + } + + if(VCard_Info.DetInfo.FullFlag[i] == 0x01) + { + //ⴰ + if( DetWin_ReadData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i]) != portstate ) + 36f8: 47f2 lw a5,28(sp) + 36fa: 028d0993 addi s3,s10,40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:554 + if(VCard_Info.DetInfo.FullFlag[i] == 0x01) + 36fe: 03e94803 lbu a6,62(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:557 + if( DetWin_ReadData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i]) != portstate ) + 3702: 17f9 addi a5,a5,-2 + 3704: 0ff7f793 zext.b a5,a5 + 3708: ce3e sw a5,28(sp) + 370a: 21b9a7b3 sh1add a5,s3,s11 + 370e: 2b96 lhu a3,16(a5) + 3710: 2bac lbu a1,18(a5) + 3712: 000cc603 lbu a2,0(s9) + 3716: 82a1 srli a3,a3,0x8 + 3718: 05a2 slli a1,a1,0x8 + 371a: 8dd5 or a1,a1,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:554 + if(VCard_Info.DetInfo.FullFlag[i] == 0x01) + 371c: 4685 li a3,1 + 371e: 020d0b93 addi s7,s10,32 + 3722: 24d81863 bne a6,a3,3972 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:557 + if( DetWin_ReadData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i]) != portstate ) + 3726: 4572 lw a0,28(sp) + 3728: d232 sw a2,36(sp) + 372a: d642 sw a6,44(sp) + 372c: d43e sw a5,40(sp) + 372e: d02e sw a1,32(sp) + 3730: 3161 jal 33b8 + 3732: 5612 lw a2,36(sp) + 3734: 26c50b63 beq a0,a2,39aa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:562 + { + //֮ǰ״̬һ + if(portstate == 0x01) + { + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + 3738: 57a2 lw a5,40(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:560 + if(portstate == 0x01) + 373a: 5832 lw a6,44(sp) + 373c: 5582 lw a1,32(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:562 + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + 373e: 23f6 lhu a3,6(a5) + 3740: 279c lbu a5,8(a5) + 3742: 82a1 srli a3,a3,0x8 + 3744: 07a2 slli a5,a5,0x8 + 3746: 8fd5 or a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:560 + if(portstate == 0x01) + 3748: 23061063 bne a2,a6,3968 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:562 + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + 374c: 21bba6b3 sh1add a3,s7,s11 + 3750: 26ca lhu a0,12(a3) + 3752: 26f4 lbu a3,14(a3) + 3754: 07bd addi a5,a5,15 + 3756: 8121 srli a0,a0,0x8 + 3758: 06a2 slli a3,a3,0x8 + 375a: 8ec9 or a3,a3,a0 + 375c: 00d7d463 bge a5,a3,3764 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:569 + VCard_Info.DetInfo.DetWinTrigger[i] += DETECTION_Window_BitMin; + }else{ + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + } + }else { + if(VCard_Info.DetInfo.DetWinTrigger[i] > DETECTION_Window_BitMin) + 3760: 0807c6b3 zext.h a3,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:566 + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + 3764: 21b9a7b3 sh1add a5,s3,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:588 + { + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + { + VCard_Info.DetInfo.DetWinTrigger[i] += DETECTION_Window_BitMin; + }else{ + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + 3768: b3f4 sb a3,7(a5) + 376a: ac1d j 39a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:486 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 376c: 4c85 li s9,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 376e: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:486 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 3770: 03990423 sb s9,40(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:488 + VCard_Info.PortStateAct[i] = DET_OPENTOCLOSE; + 3774: 02f906a3 sb a5,45(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:490 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 3778: 866a mv a2,s10 + 377a: 00016597 auipc a1,0x16 + 377e: e6258593 addi a1,a1,-414 # 195dc + 3782: 4505 li a0,1 + 3784: 9f7fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:491 + if(i == 0x00) + 3788: 020d1063 bnez s10,37a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 378c: 07fdc783 lbu a5,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:493 + VCard_Info.CardState = DET_SER_PRESS; + 3790: 099d81a3 sb s9,131(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 3794: 4689 li a3,2 + 3796: 0cd79763 bne a5,a3,3864 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:463 + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 379a: 895a mv s2,s6 + 379c: 89d6 mv s3,s5 + 379e: 8bd2 mv s7,s4 + 37a0: 4d05 li s10,1 + 37a2: bd91 j 35f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:497 + VCard_Info.PortStateAct[i] = DET_SER_PRESS; //ƽ״̬ǰ޵ƽ仯 + 37a4: 028906a3 sb s0,45(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 37a8: 07fdc783 lbu a5,127(s11) + 37ac: 0c979763 bne a5,s1,387a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 (discriminator 1) + 37b0: 081dc783 lbu a5,129(s11) + 37b4: 0c879563 bne a5,s0,387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:540 + if((i > 0x01) && (VCard_Info.Port_Info[i].PortEnFlag == 0x01)) //˿1,2̶Ϊпȡ硢Ŵ豸Ļ·ͳ + 37b8: 4785 li a5,1 + 37ba: f1a7e6e3 bltu a5,s10,36c6 + 37be: bd71 j 365a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:500 + else if(Get_DETCH_State(i) == DET_SER_LOOSEN) + 37c0: fe9514e3 bne a0,s1,37a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:504 + if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i]) + 37c4: 02894783 lbu a5,40(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:502 + VCard_Info.PortState[i] = DET_SER_LOOSEN; + 37c8: 029901a3 sb s1,35(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:504 + if(VCard_Info.PortState[i] != VCard_Info.PortStateLast[i]) + 37cc: 08978963 beq a5,s1,385e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:506 + VCard_Info.rdrsta_change_flag = 0x01; + 37d0: 088d8423 sb s0,136(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:508 + if(VCard_Info.PortStateLast[i] == DET_SER_PRESS) + 37d4: 04879b63 bne a5,s0,382a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:510 + if(i == 0x01){ //Ŵſ˿״̬Ϊͷ + 37d8: 028d1563 bne s10,s0,3802 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:513 + sensor_info.door_rarOn_time = SysTick_1ms; + 37dc: 000c2683 lw a3,0(s8) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:512 + sensor_info.door_rarON_flag = 0x01; + 37e0: f8018793 addi a5,gp,-128 # 20001938 + 37e4: 01a782a3 sb s10,5(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:513 + sensor_info.door_rarOn_time = SysTick_1ms; + 37e8: c794 sw a3,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 37ea: 4791 li a5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:521 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 37ec: 029d84a3 sb s1,41(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 37f0: 02fd8723 sb a5,46(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:524 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 37f4: 4605 li a2,1 + 37f6: 00016597 auipc a1,0x16 + 37fa: dfa58593 addi a1,a1,-518 # 195f0 + 37fe: 4505 li a0,1 + 3800: b599 j 3646 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:514 + }else if(i == 0x02){ //ϴּ״Ӧˣ˿״̬Ϊͷ + 3802: 029d1463 bne s10,s1,382a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:517 + sensor_info.bath_rar_deltime = SysTick_1ms; + 3806: 000c2683 lw a3,0(s8) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:516 + sensor_info.bath_rarOFF_flag = 0x01; + 380a: f8018793 addi a5,gp,-128 # 20001938 + 380e: b3e0 sb s0,7(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:517 + sensor_info.bath_rar_deltime = SysTick_1ms; + 3810: cbd4 sw a3,20(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 3812: 4791 li a5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:521 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 3814: 03ad8523 sb s10,42(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 3818: 02fd87a3 sb a5,47(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:524 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 381c: 4609 li a2,2 + 381e: 00016597 auipc a1,0x16 + 3822: dd258593 addi a1,a1,-558 # 195f0 + 3826: 4505 li a0,1 + 3828: b569 j 36b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:521 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 382a: 4c89 li s9,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 382c: 4791 li a5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:521 + VCard_Info.PortStateLast[i] = VCard_Info.PortState[i]; + 382e: 03990423 sb s9,40(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:523 + VCard_Info.PortStateAct[i] = DET_CLOSETOOPEN; + 3832: 02f906a3 sb a5,45(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:524 + Dbg_Println(DBG_BIT_DEVICE_STATUS,"ȡ磬 - CH%d",i); + 3836: 866a mv a2,s10 + 3838: 00016597 auipc a1,0x16 + 383c: db858593 addi a1,a1,-584 # 195f0 + 3840: 4505 li a0,1 + 3842: 939fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:526 + if(i == 0x00) //ο״̬ + 3846: f60d11e3 bnez s10,37a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 384a: 07fdc783 lbu a5,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:528 + VCard_Info.CardState = DET_SER_LOOSEN; + 384e: 099d81a3 sb s9,131(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:537 + if( ( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 3852: f59784e3 beq a5,s9,379a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:538 + || ( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1)) ) ) + 3856: 4685 li a3,1 + 3858: f4d791e3 bne a5,a3,379a + 385c: a031 j 3868 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:531 + VCard_Info.PortStateAct[i] = DET_SER_LOOSEN; //ƽ״̬ǰ޵ƽ仯 + 385e: 029906a3 sb s1,45(s2) + 3862: b799 j 37a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:538 + || ( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1)) ) ) + 3864: f3979be3 bne a5,s9,379a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:538 (discriminator 1) + 3868: b5418793 addi a5,gp,-1196 # 2000150c + 386c: 239c lbu a5,0(a5) + 386e: 081dc683 lbu a3,129(s11) + 3872: 0785 addi a5,a5,1 + 3874: 00f69563 bne a3,a5,387e + 3878: b781 j 37b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:538 + 387a: fe8787e3 beq a5,s0,3868 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:463 (discriminator 2) + for(uint8_t i = 0; i < VIRTUAL_PORT_MAX; i++) + 387e: 0d05 addi s10,s10,1 + 3880: 4795 li a5,5 + 3882: 895a mv s2,s6 + 3884: 89d6 mv s3,s5 + 3886: 8bd2 mv s7,s4 + 3888: d6fd17e3 bne s10,a5,35f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:617 + //Dbg_Println(DBG_BIT_PC_COMM,"·%d ͣʱͳ",i + 1); + } + } + + //2.3ӡϢ + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15sڼ200 + 388c: 032dd703 lhu a4,50(s11) + 3890: 12c00793 li a5,300 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:619 + { + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 3894: 07fdc603 lbu a2,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:617 + if(VCard_Info.DetInfo.Det1sTime == 300) //50msһ״̬ 15sڼ200 + 3898: 0af71663 bne a4,a5,3944 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:621 + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4],\ + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 389c: 01818493 addi s1,gp,24 # 200019d0 <__global_pointer$+0x18> + 38a0: 44dc lw a5,12(s1) + 38a2: 2898 lbu a4,16(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:619 + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 38a4: 8d418413 addi s0,gp,-1836 # 2000128c + 38a8: 4014 lw a3,0(s0) + 38aa: 400c lw a1,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:621 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 38ac: 0087d513 srli a0,a5,0x8 + 38b0: 0762 slli a4,a4,0x18 + 38b2: 8f49 or a4,a4,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:619 + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 38b4: 40e58733 sub a4,a1,a4 + 38b8: c43a sw a4,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:621 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 38ba: 4498 lw a4,8(s1) + 38bc: 07e2 slli a5,a5,0x18 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:619 + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 38be: 00016597 auipc a1,0x16 + 38c2: d7658593 addi a1,a1,-650 # 19634 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:621 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 38c6: 8321 srli a4,a4,0x8 + 38c8: 8fd9 or a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:619 + Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 38ca: 40f687b3 sub a5,a3,a5 + 38ce: c23e sw a5,4(sp) + 38d0: 031dc783 lbu a5,49(s11) + 38d4: 450d li a0,3 + 38d6: c03e sw a5,0(sp) + 38d8: 030dc883 lbu a7,48(s11) + 38dc: 02fdc803 lbu a6,47(s11) + 38e0: 02edc783 lbu a5,46(s11) + 38e4: 02ddc703 lbu a4,45(s11) + 38e8: 081dc683 lbu a3,129(s11) + 38ec: 88ffe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:625 + + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4],\ + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 38f0: 44dc lw a5,12(s1) + 38f2: 2898 lbu a4,16(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:623 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 38f4: 4014 lw a3,0(s0) + 38f6: 4010 lw a2,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:625 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 38f8: 0087d593 srli a1,a5,0x8 + 38fc: 0762 slli a4,a4,0x18 + 38fe: 8f4d or a4,a4,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:623 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 3900: 40e60733 sub a4,a2,a4 + 3904: c43a sw a4,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:625 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 3906: 4498 lw a4,8(s1) + 3908: 07e2 slli a5,a5,0x18 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:623 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 390a: 00016597 auipc a1,0x16 + 390e: d5e58593 addi a1,a1,-674 # 19668 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:625 + (SysTick_1s - VCard_Info.Condition_Trigger_Tick),(SysTick_1s - VCard_Info.Last_Trigger_Tick) ); + 3912: 8321 srli a4,a4,0x8 + 3914: 8fd9 or a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:623 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-״̬:%d:%dж%d,%d,%d,%d,%d,Time:%d-%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + 3916: 40f687b3 sub a5,a3,a5 + 391a: c23e sw a5,4(sp) + 391c: 031dc783 lbu a5,49(s11) + 3920: 4509 li a0,2 + 3922: c03e sw a5,0(sp) + 3924: 02edc783 lbu a5,46(s11) + 3928: 030dc883 lbu a7,48(s11) + 392c: 02fdc803 lbu a6,47(s11) + 3930: 02ddc703 lbu a4,45(s11) + 3934: 081dc683 lbu a3,129(s11) + 3938: 07fdc603 lbu a2,127(s11) + 393c: cf6ff0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:627 + + VCard_Info.DetInfo.Det1sTime = 0x00; + 3940: fc019523 sh zero,-54(gp) # 20001982 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:633 + } + + } + + //3жִпʼ + if(VCard_Info.ExistState == NOONE) + 3944: 07fdcb03 lbu s6,127(s11) + 3948: 4789 li a5,2 + 394a: 4cfb1463 bne s6,a5,3e12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:662 + + //ж - ʱʱ + temp_tickout = condata.Timeout_Time; + if(condata.Timeout_Unit == 0x03) + { + temp_tickout = temp_tickout * 3600; //ʱ + 394e: 6a85 lui s5,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:635 + for(uint8_t j = 0; j < g_portGp.VC_ConNToSSubset; j++) + 3950: 4481 li s1,0 + 3952: b5418993 addi s3,gp,-1196 # 2000150c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:641 + memcpy(&condata, g_portGp.PortGroupInfo[j], sizeof(CONDITION_STRUCT) ); + 3956: f7018413 addi s0,gp,-144 # 20001928 + 395a: 4b3d li s6,15 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:644 + if( (condata.Condi_Gruop == VC_CONDGROUP_Default_StartGroup) || (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + 395c: 4905 li s2,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 + condata.Trigger_Flag = 0x00; + } + } + + //ʱжϣڡһʱʱ"һ" + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 395e: 8d418a13 addi s4,gp,-1836 # 2000128c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:662 + temp_tickout = temp_tickout * 3600; //ʱ + 3962: e10a8a93 addi s5,s5,-496 # e10 <_sinit-0x1f0> + 3966: aec1 j 3d36 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:569 + if(VCard_Info.DetInfo.DetWinTrigger[i] > DETECTION_Window_BitMin) + 3968: 46bd li a3,15 + 396a: 0ad7f7b3 maxu a5,a5,a3 + 396e: 17c5 addi a5,a5,-15 + 3970: bbc5 j 3760 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:582 + if(portstate == 0x01) + 3972: 02d61963 bne a2,a3,39a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:584 + if(VCard_Info.DetInfo.DetWinTrigger[i] + DETECTION_Window_BitMin < VCard_Info.DetInfo.DetWinTotalNum[i]) + 3976: 23f6 lhu a3,6(a5) + 3978: 2788 lbu a0,8(a5) + 397a: 82a1 srli a3,a3,0x8 + 397c: 0522 slli a0,a0,0x8 + 397e: 8d55 or a0,a0,a3 + 3980: 21bba6b3 sh1add a3,s7,s11 + 3984: 00c6d803 lhu a6,12(a3) + 3988: 26f4 lbu a3,14(a3) + 398a: 053d addi a0,a0,15 + 398c: 00885813 srli a6,a6,0x8 + 3990: 06a2 slli a3,a3,0x8 + 3992: 0106e6b3 or a3,a3,a6 + 3996: dcd559e3 bge a0,a3,3768 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:586 + VCard_Info.DetInfo.DetWinTrigger[i] += DETECTION_Window_BitMin; + 399a: b3e8 sb a0,7(a5) + 399c: 080546b3 zext.h a3,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:588 + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + 39a0: 82a1 srli a3,a3,0x8 + 39a2: a794 sb a3,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:592 + DetWin_WriteData_Bit((i-2),VCard_Info.DetInfo.DetWinIdex[i],portstate); + 39a4: 4572 lw a0,28(sp) + 39a6: 9c1ff0ef jal ra,3366 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:595 + if( (VCard_Info.DetInfo.DetWinIdex[i]*DETECTION_Window_BitMin) < VCard_Info.DetInfo.DetWinTotalNum[i]) + 39aa: 21b9a633 sh1add a2,s3,s11 + 39ae: 2a1e lhu a5,16(a2) + 39b0: 2a34 lbu a3,18(a2) + 39b2: 21bbabb3 sh1add s7,s7,s11 + 39b6: 83a1 srli a5,a5,0x8 + 39b8: 06a2 slli a3,a3,0x8 + 39ba: 8edd or a3,a3,a5 + 39bc: 00cbd583 lhu a1,12(s7) + 39c0: 00ebc783 lbu a5,14(s7) + 39c4: 81a1 srli a1,a1,0x8 + 39c6: 07a2 slli a5,a5,0x8 + 39c8: 8fcd or a5,a5,a1 + 39ca: 45bd li a1,15 + 39cc: 02b685b3 mul a1,a3,a1 + 39d0: 06f5dc63 bge a1,a5,3a48 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:597 + VCard_Info.DetInfo.DetWinIdex[i]++; + 39d4: 00168713 addi a4,a3,1 + 39d8: ba18 sb a4,17(a2) + 39da: 080746b3 zext.h a3,a4 + 39de: 0086d713 srli a4,a3,0x8 + 39e2: aa38 sb a4,18(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:605 + VCard_Info.ActThreshold[i] = (VCard_Info.DetInfo.DetWinTrigger[i] * 100) / VCard_Info.DetInfo.DetWinTotalNum[i]; + 39e4: 21b9a9b3 sh1add s3,s3,s11 + 39e8: 0069d683 lhu a3,6(s3) + 39ec: 0089c703 lbu a4,8(s3) + 39f0: 06400513 li a0,100 + 39f4: 82a1 srli a3,a3,0x8 + 39f6: 0722 slli a4,a4,0x8 + 39f8: 8f55 or a4,a4,a3 + 39fa: 02a70533 mul a0,a4,a0 + 39fe: d03a sw a4,32(sp) + 3a00: ce3e sw a5,28(sp) + 3a02: 02f54533 div a0,a0,a5 + 3a06: 046140ef jal ra,17a4c <__floatsisf> + 3a0a: 00855593 srli a1,a0,0x8 + 3a0e: 018d0613 addi a2,s10,24 + 3a12: 21b64633 sh2add a2,a2,s11 + 3a16: 01855693 srli a3,a0,0x18 + 3a1a: a64c sb a1,12(a2) + 3a1c: 01055593 srli a1,a0,0x10 + 3a20: b64c sb a1,13(a2) + 3a22: a674 sb a3,14(a2) + 3a24: b628 sb a0,11(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:606 + Dbg_Println(DBG_BIT_PC_COMM,"˿ %d :%d %d - %d ֵ%d",i + 1,portstate,\ + 3a26: 7d9130ef jal ra,179fe <__fixunssfsi> + 3a2a: 47f2 lw a5,28(sp) + 3a2c: 5702 lw a4,32(sp) + 3a2e: 000cc683 lbu a3,0(s9) + 3a32: 882a mv a6,a0 + 3a34: 001d0613 addi a2,s10,1 + 3a38: 00016597 auipc a1,0x16 + 3a3c: bcc58593 addi a1,a1,-1076 # 19604 + 3a40: 450d li a0,3 + 3a42: f38fe0ef jal ra,217a + 3a46: bd25 j 387e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:599 + VCard_Info.DetInfo.DetWinIdex[i] = 0x00; + 3a48: 000608a3 sb zero,17(a2) + 3a4c: 00060923 sb zero,18(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:600 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 3a50: 4685 li a3,1 + 3a52: 02d90f23 sb a3,62(s2) + 3a56: b779 j 39e4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:641 + memcpy(&condata, g_portGp.PortGroupInfo[j], sizeof(CONDITION_STRUCT) ); + 3a58: 036485b3 mul a1,s1,s6 + 3a5c: 463d li a2,15 + 3a5e: f7018513 addi a0,gp,-144 # 20001928 + 3a62: 95ce add a1,a1,s3 + 3a64: 0591 addi a1,a1,4 + 3a66: e6cfe0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:644 + if( (condata.Condi_Gruop == VC_CONDGROUP_Default_StartGroup) || (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + 3a6a: 3010 lbu a2,1(s0) + 3a6c: 01260663 beq a2,s2,3a78 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:644 (discriminator 1) + 3a70: 081dc783 lbu a5,129(s11) + 3a74: 2ac79e63 bne a5,a2,3d30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:647 + temp_jumpe_time = condata.Judgment_Time; + 3a78: 205c lbu a5,4(s0) + 3a7a: 3038 lbu a4,3(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:648 + if(condata.Judgment_Unit == 0x03) + 3a7c: 468d li a3,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:647 + temp_jumpe_time = condata.Judgment_Time; + 3a7e: 07a2 slli a5,a5,0x8 + 3a80: 8fd9 or a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:648 + if(condata.Judgment_Unit == 0x03) + 3a82: 3058 lbu a4,5(s0) + 3a84: 1cd71463 bne a4,a3,3c4c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:650 + temp_jumpe_time = temp_jumpe_time * 3600; //ʱ + 3a88: 035787b3 mul a5,a5,s5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:659 + temp_tickout = condata.Timeout_Time; + 3a8c: 2458 lbu a4,12(s0) + 3a8e: 3434 lbu a3,11(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:660 + if(condata.Timeout_Unit == 0x03) + 3a90: 458d li a1,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:659 + temp_tickout = condata.Timeout_Time; + 3a92: 0722 slli a4,a4,0x8 + 3a94: 8f55 or a4,a4,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:660 + if(condata.Timeout_Unit == 0x03) + 3a96: 3454 lbu a3,13(s0) + 3a98: 1cb69263 bne a3,a1,3c5c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:662 + temp_tickout = temp_tickout * 3600; //ʱ + 3a9c: 03570733 mul a4,a4,s5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:671 + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + 3aa0: 2074 lbu a3,6(s0) + 3aa2: c689 beqz a3,3aac +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:671 (discriminator 2) + 3aa4: 02ddc583 lbu a1,45(s11) + 3aa8: 26d59e63 bne a1,a3,3d24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:672 (discriminator 3) + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3aac: 3074 lbu a3,7(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:671 (discriminator 3) + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + 3aae: c689 beqz a3,3ab8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:672 + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3ab0: 02edc583 lbu a1,46(s11) + 3ab4: 26d59863 bne a1,a3,3d24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:673 (discriminator 1) + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3ab8: 2414 lbu a3,8(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:672 (discriminator 1) + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3aba: c689 beqz a3,3ac4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:673 + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3abc: 02fdc583 lbu a1,47(s11) + 3ac0: 26d59263 bne a1,a3,3d24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:674 (discriminator 1) + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3ac4: 3414 lbu a3,9(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:673 (discriminator 1) + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3ac6: c689 beqz a3,3ad0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:674 + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3ac8: 030dc583 lbu a1,48(s11) + 3acc: 24d59c63 bne a1,a3,3d24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:675 (discriminator 1) + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + 3ad0: 2434 lbu a3,10(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:674 (discriminator 1) + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3ad2: c689 beqz a3,3adc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:675 + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + 3ad4: 031dc583 lbu a1,49(s11) + 3ad8: 24d59663 bne a1,a3,3d24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:678 + if(condata.Trigger_Flag != 0x01) + 3adc: 2474 lbu a3,14(s0) + 3ade: 4505 li a0,1 + 3ae0: 8d418593 addi a1,gp,-1836 # 2000128c + 3ae4: 18a69463 bne a3,a0,3c6c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:637 + condata_save_flag = 0x00; + 3ae8: 4801 li a6,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3aea: 1ad61463 bne a2,a3,3c92 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:707 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //-> ж1 + + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + }else { + //ʱж£жǷʱ + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 3aee: 4194 lw a3,0(a1) + 3af0: 08cdc703 lbu a4,140(s11) + 3af4: 088da583 lw a1,136(s11) + 3af8: 0762 slli a4,a4,0x18 + 3afa: 81a1 srli a1,a1,0x8 + 3afc: 8f4d or a4,a4,a1 + 3afe: 40e68733 sub a4,a3,a4 + 3b02: 22f76763 bltu a4,a5,3d30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:712 + { + condata_save_flag = 0x01; + + // - ʱ䣬ж + condata.Trigger_Flag = 0x00; + 3b06: f6018f23 sb zero,-130(gp) # 20001936 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:715 + // condata.Trigger_Tick = SysTick_1s; + + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3b0a: 8d418b93 addi s7,gp,-1836 # 2000128c + 3b0e: 000ba783 lw a5,0(s7) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:718 + + /*ֹȴӡϢ*/ + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + 3b12: 081dc683 lbu a3,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:715 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3b16: 0087d713 srli a4,a5,0x8 + 3b1a: 08fd84a3 sb a5,137(s11) + 3b1e: 08ed8523 sb a4,138(s11) + 3b22: 0107d713 srli a4,a5,0x10 + 3b26: 83e1 srli a5,a5,0x18 + 3b28: 08ed85a3 sb a4,139(s11) + 3b2c: 08fd8623 sb a5,140(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:718 + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + 3b30: 2ad61d63 bne a2,a3,3dea +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:720 + { + Dbg_Println(DBG_BIT_PC_COMM," %d %d",condata.Condi_Gruop,VCard_Info.ConGroupIndx); + 3b34: 86b2 mv a3,a2 + 3b36: 00016597 auipc a1,0x16 + 3b3a: b8658593 addi a1,a1,-1146 # 196bc + 3b3e: 450d li a0,3 + 3b40: e3afe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:723 + //Dbg_Println(DBG_BIT_PC_COMM,"- ״̬:%d :%d ж-%d,%d,%d,%d,%d",VCard_Info.ExistState,VCard_Info.ConGroupIndx,\ + VCard_Info.PortStateAct[0],VCard_Info.PortStateAct[1],VCard_Info.PortStateAct[2],VCard_Info.PortStateAct[3],VCard_Info.PortStateAct[4]); + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d",condata.Condi_Gruop,VCard_Info.ConGroupIndx); + 3b44: 081dc683 lbu a3,129(s11) + 3b48: 3010 lbu a2,1(s0) + 3b4a: 00016597 auipc a1,0x16 + 3b4e: b7258593 addi a1,a1,-1166 # 196bc + 3b52: 4509 li a0,2 + 3b54: adeff0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:733 + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + } + + + //л飬ͬʱ¼ʱ䣬һʱжʹ + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3b58: 000ba783 lw a5,0(s7) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:734 + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + 3b5c: 3010 lbu a2,1(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:733 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3b5e: 0087d713 srli a4,a5,0x8 + 3b62: 08fd86a3 sb a5,141(s11) + 3b66: 08ed8723 sb a4,142(s11) + 3b6a: 0107d713 srli a4,a5,0x10 + 3b6e: 83e1 srli a5,a5,0x18 + 3b70: 08fd8823 sb a5,144(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:735 + VCard_Info.Last_ConGroupType = 0x00; + 3b74: 00018f23 sb zero,30(gp) # 200019d6 <__global_pointer$+0x1e> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:733 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3b78: 08ed87a3 sb a4,143(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:737 + + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConNToSGruop ) + 3b7c: 0009c783 lbu a5,0(s3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:734 + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + 3b80: 00160713 addi a4,a2,1 + 3b84: 0ff77713 zext.b a4,a4 + 3b88: 08ed80a3 sb a4,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:737 + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConNToSGruop ) + 3b8c: 18e7f363 bgeu a5,a4,3d12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:740 + { + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 3b90: 2034 lbu a3,2(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:739 + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + 3b92: 0785 addi a5,a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:740 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 3b94: 00016597 auipc a1,0x16 + 3b98: b6458593 addi a1,a1,-1180 # 196f8 + 3b9c: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:739 + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + 3b9e: 08fd80a3 sb a5,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:740 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 3ba2: dd8fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:741 + VCard_Info.ExistState = SOMEONE; + 3ba6: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:743 + VCard_Info.rdrsta_change_flag = 0x01; + Dbg_Println(DBG_BIT_PC_COMM,"-¼:Ž--"); + 3ba8: 00016597 auipc a1,0x16 + 3bac: b6858593 addi a1,a1,-1176 # 19710 + 3bb0: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:741 + VCard_Info.ExistState = SOMEONE; + 3bb2: 06fd8fa3 sb a5,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:742 + VCard_Info.rdrsta_change_flag = 0x01; + 3bb6: 08fd8423 sb a5,136(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:743 + Dbg_Println(DBG_BIT_PC_COMM,"-¼:Ž--"); + 3bba: dc0fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:744 + VCard_Info.Action |= VC_Event_PersonDet_Flag; + 3bbe: 082dc783 lbu a5,130(s11) + 3bc2: f9818c13 addi s8,gp,-104 # 20001950 + 3bc6: 8ce2 mv s9,s8 + 3bc8: 0017e793 ori a5,a5,1 + 3bcc: 08fd8123 sb a5,130(s11) + 3bd0: 4b81 li s7,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:747 + + /*ջ·ijʱ״̬ - ע·1ĬDz忨ȡ磬볤ʱͳ*/ + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 3bd2: 4d0d li s10,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:749 + { + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + 3bd4: 011c4783 lbu a5,17(s8) + 3bd8: c7a5 beqz a5,3c40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:751 + { + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + 3bda: 022b8793 addi a5,s7,34 + 3bde: 21b7a7b3 sh1add a5,a5,s11 + 3be2: 27d6 lhu a3,12(a5) + 3be4: 27f8 lbu a4,14(a5) + 3be6: 02ab8793 addi a5,s7,42 + 3bea: 82a1 srli a3,a3,0x8 + 3bec: 0722 slli a4,a4,0x8 + 3bee: 00d76633 or a2,a4,a3 + 3bf2: 8321 srli a4,a4,0x8 + 3bf4: 21b7a7b3 sh1add a5,a5,s11 + 3bf8: b3f4 sb a3,7(a5) + 3bfa: a798 sb a4,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:752 + VCard_Info.ActThreshold[i] = 100; + 3bfc: fc800693 li a3,-56 + 3c00: 01ab8713 addi a4,s7,26 + 3c04: 21b74733 sh2add a4,a4,s11 + 3c08: b754 sb a3,13(a4) + 3c0a: 04200693 li a3,66 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:753 + VCard_Info.DetInfo.DetWinIdex[i] = 0; + 3c0e: 000788a3 sb zero,17(a5) + 3c12: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:752 + VCard_Info.ActThreshold[i] = 100; + 3c16: 000705a3 sb zero,11(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:754 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 3c1a: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:752 + VCard_Info.ActThreshold[i] = 100; + 3c1c: 00070623 sb zero,12(a4) + 3c20: a774 sb a3,14(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:754 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 3c22: 04fc8023 sb a5,64(s9) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:755 + DetWin_WriteData((i - 2), 0xFF, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + 3c26: 07800793 li a5,120 + 3c2a: 02f65633 divu a2,a2,a5 + 3c2e: 0ff00593 li a1,255 + 3c32: 0ffbf513 zext.b a0,s7 + 3c36: 0605 addi a2,a2,1 + 3c38: 08064633 zext.h a2,a2 + 3c3c: f14ff0ef jal ra,3350 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:747 (discriminator 2) + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 3c40: 0b85 addi s7,s7,1 + 3c42: 0c19 addi s8,s8,6 + 3c44: 0c85 addi s9,s9,1 + 3c46: f9ab97e3 bne s7,s10,3bd4 + 3c4a: a0e1 j 3d12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:651 + }else if(condata.Judgment_Unit == 0x02) + 3c4c: 4689 li a3,2 + 3c4e: e2d71fe3 bne a4,a3,3a8c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:653 + temp_jumpe_time = temp_jumpe_time * 60; // + 3c52: 03c00713 li a4,60 + 3c56: 02e787b3 mul a5,a5,a4 + 3c5a: bd0d j 3a8c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:663 + }else if(condata.Timeout_Unit == 0x02) + 3c5c: 4589 li a1,2 + 3c5e: e4b691e3 bne a3,a1,3aa0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:665 + temp_tickout = temp_tickout * 60; // + 3c62: 03c00693 li a3,60 + 3c66: 02d70733 mul a4,a4,a3 + 3c6a: bd1d j 3aa0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:683 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3c6c: 4194 lw a3,0(a1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:681 + condata.Trigger_Flag = 0x01; + 3c6e: a468 sb a0,14(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:683 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3c70: 0086d813 srli a6,a3,0x8 + 3c74: 090d8523 sb a6,138(s11) + 3c78: 0106d813 srli a6,a3,0x10 + 3c7c: 090d85a3 sb a6,139(s11) + 3c80: 0186d813 srli a6,a3,0x18 + 3c84: 08dd84a3 sb a3,137(s11) + 3c88: 090d8623 sb a6,140(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3c8c: 06a60f63 beq a2,a0,3d0a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:680 + condata_save_flag = 0x01; + 3c90: 4805 li a6,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 (discriminator 1) + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3c92: 08cda683 lw a3,140(s11) + 3c96: 090dc583 lbu a1,144(s11) + 3c9a: 000a2503 lw a0,0(s4) + 3c9e: 0086d893 srli a7,a3,0x8 + 3ca2: 05e2 slli a1,a1,0x18 + 3ca4: 0115e5b3 or a1,a1,a7 + 3ca8: 40b505b3 sub a1,a0,a1 + 3cac: 10e5ef63 bltu a1,a4,3dca +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:698 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3cb0: 000a2783 lw a5,0(s4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:704 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3cb4: 2034 lbu a3,2(s0) + 3cb6: 00016597 auipc a1,0x16 + 3cba: 9e258593 addi a1,a1,-1566 # 19698 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:698 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3cbe: 0087d713 srli a4,a5,0x8 + 3cc2: 08fd86a3 sb a5,141(s11) + 3cc6: 08ed8723 sb a4,142(s11) + 3cca: 0107d713 srli a4,a5,0x10 + 3cce: 83e1 srli a5,a5,0x18 + 3cd0: 08fd8823 sb a5,144(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:699 + condata.Trigger_Flag = 0x00; + 3cd4: f6018f23 sb zero,-130(gp) # 20001936 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:701 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3cd8: 000a2783 lw a5,0(s4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:698 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3cdc: 08ed87a3 sb a4,143(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:704 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3ce0: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:701 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3ce2: 0087d713 srli a4,a5,0x8 + 3ce6: 08fd84a3 sb a5,137(s11) + 3cea: 08ed8523 sb a4,138(s11) + 3cee: 0107d713 srli a4,a5,0x10 + 3cf2: 83e1 srli a5,a5,0x18 + 3cf4: 08ed85a3 sb a4,139(s11) + 3cf8: 08fd8623 sb a5,140(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:704 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3cfc: 4705 li a4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:702 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //-> ж1 + 3cfe: 4785 li a5,1 + 3d00: 08fd80a3 sb a5,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:704 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3d04: c76fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:762 + } + } + } + } + + if(condata_save_flag == 0x01) + 3d08: a029 j 3d12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:707 + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 3d0a: 4198 lw a4,0(a1) + 3d0c: 8f15 sub a4,a4,a3 + 3d0e: def77ce3 bgeu a4,a5,3b06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:764 + { + memcpy(g_portGp.PortGroupInfo[j],&condata , sizeof(CONDITION_STRUCT) ); + 3d12: 03648533 mul a0,s1,s6 + 3d16: 463d li a2,15 + 3d18: 85a2 mv a1,s0 + 3d1a: 954e add a0,a0,s3 + 3d1c: 0511 addi a0,a0,4 + 3d1e: bb4fe0ef jal ra,20d2 + 3d22: a039 j 3d30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:687 + if(condata.Trigger_Flag != 0x00) + 3d24: 00e44803 lbu a6,14(s0) + 3d28: 08081c63 bnez a6,3dc0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3d2c: f72613e3 bne a2,s2,3c92 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:635 (discriminator 2) + for(uint8_t j = 0; j < g_portGp.VC_ConNToSSubset; j++) + 3d30: 0485 addi s1,s1,1 + 3d32: 0ff4f493 zext.b s1,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:635 (discriminator 1) + 3d36: 0019c783 lbu a5,1(s3) + 3d3a: d0f4efe3 bltu s1,a5,3a58 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:930 + /*жִн*/ + + + + /*ֵж˿ʼ - ֵж߼ жϷǵһʱЧ */ + if( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 3d3e: 07fdc783 lbu a5,127(s11) + 3d42: 4709 li a4,2 + 3d44: 58e79c63 bne a5,a4,42dc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:930 (discriminator 1) + 3d48: 081dc703 lbu a4,129(s11) + 3d4c: 4785 li a5,1 + 3d4e: 46f70163 beq a4,a5,41b0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1002 + /*ֵж˽*/ + + + + //˿ڱ仯״ֻ̬һΣ仯״̬ + if( (VCard_Info.PortStateAct[0] != VCard_Info.PortState[0]) \ + 3d52: 023dc583 lbu a1,35(s11) + 3d56: 02ddc503 lbu a0,45(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1003 + || (VCard_Info.PortStateAct[1] != VCard_Info.PortState[1]) \ + 3d5a: 024dc603 lbu a2,36(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1004 + || (VCard_Info.PortStateAct[2] != VCard_Info.PortState[2]) \ + 3d5e: 025dc683 lbu a3,37(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1005 + || (VCard_Info.PortStateAct[3] != VCard_Info.PortState[3]) \ + 3d62: 026dc703 lbu a4,38(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1006 + || (VCard_Info.PortStateAct[4] != VCard_Info.PortState[4]) ) + 3d66: 027dc783 lbu a5,39(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1002 + if( (VCard_Info.PortStateAct[0] != VCard_Info.PortState[0]) \ + 3d6a: 02b51263 bne a0,a1,3d8e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1003 + || (VCard_Info.PortStateAct[1] != VCard_Info.PortState[1]) \ + 3d6e: 02edc503 lbu a0,46(s11) + 3d72: 00c51e63 bne a0,a2,3d8e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1004 + || (VCard_Info.PortStateAct[2] != VCard_Info.PortState[2]) \ + 3d76: 02fdc503 lbu a0,47(s11) + 3d7a: 00d51a63 bne a0,a3,3d8e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1005 + || (VCard_Info.PortStateAct[3] != VCard_Info.PortState[3]) \ + 3d7e: 030dc503 lbu a0,48(s11) + 3d82: 00e51663 bne a0,a4,3d8e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1006 + || (VCard_Info.PortStateAct[4] != VCard_Info.PortState[4]) ) + 3d86: 031dc503 lbu a0,49(s11) + 3d8a: 00f50c63 beq a0,a5,3da2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1009 + { + + VCard_Info.PortStateAct[0] = VCard_Info.PortState[0]; + 3d8e: 02bd86a3 sb a1,45(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1010 + VCard_Info.PortStateAct[1] = VCard_Info.PortState[1]; + 3d92: 02cd8723 sb a2,46(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1011 + VCard_Info.PortStateAct[2] = VCard_Info.PortState[2]; + 3d96: 02dd87a3 sb a3,47(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1012 + VCard_Info.PortStateAct[3] = VCard_Info.PortState[3]; + 3d9a: 02ed8823 sb a4,48(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1013 + VCard_Info.PortStateAct[4] = VCard_Info.PortState[4]; + 3d9e: 02fd88a3 sb a5,49(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1016 + } + +} + 3da2: 50f6 lw ra,124(sp) + 3da4: 5466 lw s0,120(sp) + 3da6: 54d6 lw s1,116(sp) + 3da8: 5946 lw s2,112(sp) + 3daa: 59b6 lw s3,108(sp) + 3dac: 5a26 lw s4,104(sp) + 3dae: 5a96 lw s5,100(sp) + 3db0: 5b06 lw s6,96(sp) + 3db2: 4bf6 lw s7,92(sp) + 3db4: 4c66 lw s8,88(sp) + 3db6: 4cd6 lw s9,84(sp) + 3db8: 4d46 lw s10,80(sp) + 3dba: 4db6 lw s11,76(sp) + 3dbc: 6109 addi sp,sp,128 + 3dbe: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:690 + condata.Trigger_Flag = 0x00; + 3dc0: f6018f23 sb zero,-130(gp) # 20001936 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:695 + if( (condata.Condi_Gruop != VC_CONDGROUP_Default_StartGroup) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3dc4: ed2616e3 bne a2,s2,3c90 + 3dc8: b7a9 j 3d12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:707 + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 3dca: 2478 lbu a4,14(s0) + 3dcc: 01271c63 bne a4,s2,3de4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:707 (discriminator 1) + 3dd0: 088da583 lw a1,136(s11) + 3dd4: 000a2703 lw a4,0(s4) + 3dd8: 06e2 slli a3,a3,0x18 + 3dda: 81a1 srli a1,a1,0x8 + 3ddc: 8ecd or a3,a3,a1 + 3dde: 8f15 sub a4,a4,a3 + 3de0: d2f773e3 bgeu a4,a5,3b06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:762 + if(condata_save_flag == 0x01) + 3de4: f52816e3 bne a6,s2,3d30 + 3de8: b72d j 3d12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:725 + Dbg_Println(DBG_BIT_PC_COMM," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + 3dea: 8726 mv a4,s1 + 3dec: 00016597 auipc a1,0x16 + 3df0: 8ec58593 addi a1,a1,-1812 # 196d8 + 3df4: 450d li a0,3 + 3df6: b84fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:728 + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + 3dfa: 081dc683 lbu a3,129(s11) + 3dfe: 3010 lbu a2,1(s0) + 3e00: 8726 mv a4,s1 + 3e02: 00016597 auipc a1,0x16 + 3e06: 8d658593 addi a1,a1,-1834 # 196d8 + 3e0a: 4509 li a0,2 + 3e0c: 826ff0ef jal ra,2e32 + 3e10: b3a1 j 3b58 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:769 + else if(VCard_Info.ExistState == SOMEONE) + 3e12: 4785 li a5,1 + 3e14: f2fb15e3 bne s6,a5,3d3e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:799 + temp_tickout = temp_tickout * 3600; + 3e18: 6a85 lui s5,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:772 + for(uint8_t j = 0; j < g_portGp.VC_ConSToNSubset; j++) + 3e1a: 4481 li s1,0 + 3e1c: b5418913 addi s2,gp,-1196 # 2000150c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:777 + memcpy(&condata, g_portGp.PortGroupInfo[j + g_portGp.VC_ConNToSSubset], sizeof(CONDITION_STRUCT) ); + 3e20: f7018413 addi s0,gp,-144 # 20001928 + 3e24: 4bbd li s7,15 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:785 + if(condata.Judgment_Unit == 0x03) //ʱ + 3e26: 498d li s3,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3e28: 8d418a13 addi s4,gp,-1836 # 2000128c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:799 + temp_tickout = temp_tickout * 3600; + 3e2c: e10a8a93 addi s5,s5,-496 # e10 <_sinit-0x1f0> + 3e30: a201 j 3f30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:788 + }else if(condata.Judgment_Unit == 0x02) // + 3e32: 4589 li a1,2 + 3e34: 14b69163 bne a3,a1,3f76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:790 + temp_jumpe_time = temp_jumpe_time * 60; + 3e38: 03c00693 li a3,60 + 3e3c: 02d787b3 mul a5,a5,a3 + 3e40: aa1d j 3f76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:800 + }else if(condata.Timeout_Unit == 0x02) // + 3e42: 4509 li a0,2 + 3e44: 14a59263 bne a1,a0,3f88 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:802 + temp_tickout = temp_tickout * 60; + 3e48: 03c00593 li a1,60 + 3e4c: 02b686b3 mul a3,a3,a1 + 3e50: aa25 j 3f88 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:817 + }else if( ( VCard_Info.Last_ConGroupType == VC_CONDGROUP_LongTermLeaving_Type ) && (condata.Exist_Flag != VCard_Info.Last_ConGroupType) ) + 3e52: 4511 li a0,4 + 3e54: 14a59963 bne a1,a0,3fa6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:817 (discriminator 1) + 3e58: 2008 lbu a0,0(s0) + 3e5a: 14b51463 bne a0,a1,3fa2 + 3e5e: a2a1 j 3fa6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:835 + condata.Trigger_Flag = 0x01; + 3e60: a46c sb a1,14(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:837 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3e62: 410c lw a1,0(a0) + 3e64: 0085d813 srli a6,a1,0x8 + 3e68: 090d8523 sb a6,138(s11) + 3e6c: 0105d813 srli a6,a1,0x10 + 3e70: 090d85a3 sb a6,139(s11) + 3e74: 0185d813 srli a6,a1,0x18 + 3e78: 08bd84a3 sb a1,137(s11) + 3e7c: 090d8623 sb a6,140(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3e80: 06e60f63 beq a2,a4,3efe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:834 + condata_save_flag = 0x01; + 3e84: 88da mv a7,s6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 (discriminator 1) + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3e86: 08cda583 lw a1,140(s11) + 3e8a: 090dc503 lbu a0,144(s11) + 3e8e: 000a2803 lw a6,0(s4) + 3e92: 0085de13 srli t3,a1,0x8 + 3e96: 0562 slli a0,a0,0x18 + 3e98: 01c56533 or a0,a0,t3 + 3e9c: 40a80533 sub a0,a6,a0 + 3ea0: 2cd56263 bltu a0,a3,4164 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:853 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3ea4: 000a2783 lw a5,0(s4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:857 + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; //-> жĵһ + 3ea8: 08ed80a3 sb a4,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:859 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3eac: 00015597 auipc a1,0x15 + 3eb0: 7ec58593 addi a1,a1,2028 # 19698 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:853 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3eb4: 0087d693 srli a3,a5,0x8 + 3eb8: 08fd86a3 sb a5,141(s11) + 3ebc: 08dd8723 sb a3,142(s11) + 3ec0: 0107d693 srli a3,a5,0x10 + 3ec4: 83e1 srli a5,a5,0x18 + 3ec6: 08fd8823 sb a5,144(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:854 + condata.Trigger_Flag = 0x01; //־λ + 3eca: 4785 li a5,1 + 3ecc: a47c sb a5,14(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:856 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3ece: 000a2783 lw a5,0(s4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:853 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 3ed2: 08dd87a3 sb a3,143(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:859 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3ed6: 0ff77713 zext.b a4,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:856 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3eda: 0087d693 srli a3,a5,0x8 + 3ede: 08dd8523 sb a3,138(s11) + 3ee2: 0107d693 srli a3,a5,0x10 + 3ee6: 08dd85a3 sb a3,139(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:859 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3eea: 2034 lbu a3,2(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:856 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3eec: 08fd84a3 sb a5,137(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:859 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3ef0: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:856 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 3ef2: 83e1 srli a5,a5,0x18 + 3ef4: 08fd8623 sb a5,140(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:859 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d жʱ %d-",condata.Condi_Gruop,condata.Condi_Subset,VCard_Info.ConGroupIndx); + 3ef8: a82fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:918 + if(condata_save_flag == 0x01) + 3efc: a029 j 3f06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:862 + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 3efe: 4118 lw a4,0(a0) + 3f00: 8f0d sub a4,a4,a1 + 3f02: 10f77663 bgeu a4,a5,400e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:920 + memcpy(g_portGp.PortGroupInfo[j + g_portGp.VC_ConNToSSubset],&condata , sizeof(CONDITION_STRUCT) ); + 3f06: 00194503 lbu a0,1(s2) + 3f0a: 463d li a2,15 + 3f0c: 85a2 mv a1,s0 + 3f0e: 9526 add a0,a0,s1 + 3f10: 03750533 mul a0,a0,s7 + 3f14: 954a add a0,a0,s2 + 3f16: 0511 addi a0,a0,4 + 3f18: 9bafe0ef jal ra,20d2 + 3f1c: a039 j 3f2a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:841 + if(condata.Trigger_Flag != 0x00) + 3f1e: 00e44883 lbu a7,14(s0) + 3f22: 22089c63 bnez a7,415a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3f26: f6e610e3 bne a2,a4,3e86 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:772 (discriminator 2) + for(uint8_t j = 0; j < g_portGp.VC_ConSToNSubset; j++) + 3f2a: 0485 addi s1,s1,1 + 3f2c: 0ff4f493 zext.b s1,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:772 (discriminator 1) + 3f30: 00394783 lbu a5,3(s2) + 3f34: e0f4f5e3 bgeu s1,a5,3d3e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:777 + memcpy(&condata, g_portGp.PortGroupInfo[j + g_portGp.VC_ConNToSSubset], sizeof(CONDITION_STRUCT) ); + 3f38: 00194583 lbu a1,1(s2) + 3f3c: 463d li a2,15 + 3f3e: f7018513 addi a0,gp,-144 # 20001928 + 3f42: 95a6 add a1,a1,s1 + 3f44: 037585b3 mul a1,a1,s7 + 3f48: 95ca add a1,a1,s2 + 3f4a: 0591 addi a1,a1,4 + 3f4c: 986fe0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:780 + if( (condata.Condi_Gruop == (g_portGp.VC_ConNToSGruop + 1) ) || (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + 3f50: 00094703 lbu a4,0(s2) + 3f54: 3010 lbu a2,1(s0) + 3f56: 0705 addi a4,a4,1 + 3f58: 00e60663 beq a2,a4,3f64 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:780 (discriminator 1) + 3f5c: 081dc783 lbu a5,129(s11) + 3f60: fcc795e3 bne a5,a2,3f2a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:784 + temp_jumpe_time = condata.Judgment_Time; + 3f64: 205c lbu a5,4(s0) + 3f66: 3034 lbu a3,3(s0) + 3f68: 07a2 slli a5,a5,0x8 + 3f6a: 8fd5 or a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:785 + if(condata.Judgment_Unit == 0x03) //ʱ + 3f6c: 3054 lbu a3,5(s0) + 3f6e: ed3692e3 bne a3,s3,3e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:787 + temp_jumpe_time = temp_jumpe_time * 3600; + 3f72: 035787b3 mul a5,a5,s5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:796 + temp_tickout = condata.Timeout_Time; + 3f76: 2454 lbu a3,12(s0) + 3f78: 342c lbu a1,11(s0) + 3f7a: 06a2 slli a3,a3,0x8 + 3f7c: 8ecd or a3,a3,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:797 + if(condata.Timeout_Unit == 0x03) //ʱ + 3f7e: 344c lbu a1,13(s0) + 3f80: ed3591e3 bne a1,s3,3e42 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:799 + temp_tickout = temp_tickout * 3600; + 3f84: 035686b3 mul a3,a3,s5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:808 + if( (condata.Condi_Gruop != (g_portGp.VC_ConNToSGruop + 1) ) && (condata.Condi_Gruop == VCard_Info.ConGroupIndx) ) + 3f88: 00e60f63 beq a2,a4,3fa6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:808 (discriminator 1) + 3f8c: 081dc583 lbu a1,129(s11) + 3f90: 00c59b63 bne a1,a2,3fa6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:810 + if( ( VCard_Info.Last_ConGroupType == VC_CONDGROUP_BrieflyLeaving_Type ) && (condata.Exist_Flag != VCard_Info.Last_ConGroupType) ) + 3f94: 086dc583 lbu a1,134(s11) + 3f98: eb359de3 bne a1,s3,3e52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:810 (discriminator 1) + 3f9c: 200c lbu a1,0(s0) + 3f9e: 01358463 beq a1,s3,3fa6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:814 + VCard_Info.Last_ConGroupType = 0x00; + 3fa2: 00018f23 sb zero,30(gp) # 200019d6 <__global_pointer$+0x1e> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:825 + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + 3fa6: 206c lbu a1,6(s0) + 3fa8: c589 beqz a1,3fb2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:825 (discriminator 2) + 3faa: 02ddc503 lbu a0,45(s11) + 3fae: f6b518e3 bne a0,a1,3f1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:826 (discriminator 3) + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3fb2: 306c lbu a1,7(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:825 (discriminator 3) + if(((condata.Port_State[0] == 0x00) || (condata.Port_State[0] == VCard_Info.PortStateAct[0])) && \ + 3fb4: c589 beqz a1,3fbe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:826 + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3fb6: 02edc503 lbu a0,46(s11) + 3fba: f6b512e3 bne a0,a1,3f1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:827 (discriminator 1) + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3fbe: 240c lbu a1,8(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:826 (discriminator 1) + ((condata.Port_State[1] == 0x00) || (condata.Port_State[1] == VCard_Info.PortStateAct[1])) && \ + 3fc0: c589 beqz a1,3fca +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:827 + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3fc2: 02fdc503 lbu a0,47(s11) + 3fc6: f4b51ce3 bne a0,a1,3f1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:828 (discriminator 1) + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3fca: 340c lbu a1,9(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:827 (discriminator 1) + ((condata.Port_State[2] == 0x00) || (condata.Port_State[2] == VCard_Info.PortStateAct[2])) && \ + 3fcc: c589 beqz a1,3fd6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:828 + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3fce: 030dc503 lbu a0,48(s11) + 3fd2: f4b516e3 bne a0,a1,3f1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:829 (discriminator 1) + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + 3fd6: 242c lbu a1,10(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:828 (discriminator 1) + ((condata.Port_State[3] == 0x00) || (condata.Port_State[3] == VCard_Info.PortStateAct[3])) && \ + 3fd8: c589 beqz a1,3fe2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:829 + ((condata.Port_State[4] == 0x00) || (condata.Port_State[4] == VCard_Info.PortStateAct[4])) ) + 3fda: 031dc503 lbu a0,49(s11) + 3fde: f4b510e3 bne a0,a1,3f1e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:832 + if(condata.Trigger_Flag != 0x01) + 3fe2: 00e44803 lbu a6,14(s0) + 3fe6: 4585 li a1,1 + 3fe8: 8d418513 addi a0,gp,-1836 # 2000128c + 3fec: e6b81ae3 bne a6,a1,3e60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:774 + condata_save_flag = 0x00; + 3ff0: 4881 li a7,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 3ff2: e8e61ae3 bne a2,a4,3e86 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:862 + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 3ff6: 088da583 lw a1,136(s11) + 3ffa: 08cdc703 lbu a4,140(s11) + 3ffe: 4114 lw a3,0(a0) + 4000: 81a1 srli a1,a1,0x8 + 4002: 0762 slli a4,a4,0x18 + 4004: 8f4d or a4,a4,a1 + 4006: 40e68733 sub a4,a3,a4 + 400a: f2f760e3 bltu a4,a5,3f2a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:866 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 400e: 8d418c13 addi s8,gp,-1836 # 2000128c + 4012: 000c2783 lw a5,0(s8) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:870 + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + 4016: 081dc683 lbu a3,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:866 + VCard_Info.Condition_Trigger_Tick = SysTick_1s; + 401a: 0087d713 srli a4,a5,0x8 + 401e: 08fd84a3 sb a5,137(s11) + 4022: 08ed8523 sb a4,138(s11) + 4026: 0107d713 srli a4,a5,0x10 + 402a: 83e1 srli a5,a5,0x18 + 402c: 08fd8623 sb a5,140(s11) + 4030: 08ed85a3 sb a4,139(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:867 + condata.Trigger_Flag = 0x00; + 4034: f6018f23 sb zero,-130(gp) # 20001936 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:870 + if( condata.Condi_Gruop == VCard_Info.ConGroupIndx ) + 4038: 14d61863 bne a2,a3,4188 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:872 + Dbg_Println(DBG_BIT_PC_COMM," %d ",condata.Condi_Gruop); + 403c: 00015597 auipc a1,0x15 + 4040: 6e858593 addi a1,a1,1768 # 19724 + 4044: 450d li a0,3 + 4046: 934fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:873 + Ble_Printfln(DBG_BIT_BLE_STATUS," %d ",condata.Condi_Gruop); + 404a: 3010 lbu a2,1(s0) + 404c: 00015597 auipc a1,0x15 + 4050: 6d858593 addi a1,a1,1752 # 19724 + 4054: 4509 li a0,2 + 4056: dddfe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:880 + VCard_Info.Last_ConGroupType = condata.Exist_Flag; //YYW,20251009,ǰͱڴ"""ʱ" + 405a: 201c lbu a5,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:883 + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + 405c: 3010 lbu a2,1(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:880 + VCard_Info.Last_ConGroupType = condata.Exist_Flag; //YYW,20251009,ǰͱڴ"""ʱ" + 405e: 08fd8323 sb a5,134(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:882 + VCard_Info.Last_Trigger_Tick = SysTick_1s; + 4062: 000c2783 lw a5,0(s8) + 4066: 0087d713 srli a4,a5,0x8 + 406a: 08fd86a3 sb a5,141(s11) + 406e: 08ed8723 sb a4,142(s11) + 4072: 0107d713 srli a4,a5,0x10 + 4076: 83e1 srli a5,a5,0x18 + 4078: 08ed87a3 sb a4,143(s11) + 407c: 08fd8823 sb a5,144(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:885 + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConSToNGruop ) + 4080: 00294703 lbu a4,2(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:883 + VCard_Info.ConGroupIndx = condata.Condi_Gruop + 1; + 4084: 00160793 addi a5,a2,1 + 4088: 0ff7f793 zext.b a5,a5 + 408c: 08fd80a3 sb a5,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:885 + if( VCard_Info.ConGroupIndx > g_portGp.VC_ConSToNGruop ) + 4090: e6f77be3 bgeu a4,a5,3f06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:891 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 4094: 2034 lbu a3,2(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:887 + VCard_Info.ExistState = NOONE; + 4096: 4789 li a5,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:888 + VCard_Info.rdrsta_change_flag = 0x01; + 4098: 4c05 li s8,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:891 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 409a: 00015597 auipc a1,0x15 + 409e: 6c658593 addi a1,a1,1734 # 19760 + 40a2: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:887 + VCard_Info.ExistState = NOONE; + 40a4: 06fd8fa3 sb a5,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:888 + VCard_Info.rdrsta_change_flag = 0x01; + 40a8: 098d8423 sb s8,136(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:889 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //жϵĵһ + 40ac: 098d80a3 sb s8,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:891 + Dbg_Println(DBG_BIT_PC_COMM,"-%d-%d ж-",condata.Condi_Gruop,condata.Condi_Subset); + 40b0: 8cafe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:893 + if(VCard_Info.CardState == 0x01) + 40b4: 083dc783 lbu a5,131(s11) + 40b8: 01878f63 beq a5,s8,40d6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:898 + Dbg_Println(DBG_BIT_PC_COMM,"-¼:޿--"); + 40bc: 00015597 auipc a1,0x15 + 40c0: 6bc58593 addi a1,a1,1724 # 19778 + 40c4: 450d li a0,3 + 40c6: 8b4fe0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:899 + VCard_Info.Action |= VC_Event_NoPersonDet_Flag; + 40ca: 082dc783 lbu a5,130(s11) + 40ce: 0027e793 ori a5,a5,2 + 40d2: 08fd8123 sb a5,130(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:903 + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 40d6: f9818c93 addi s9,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:774 + condata_save_flag = 0x00; + 40da: 8d66 mv s10,s9 + 40dc: 4c01 li s8,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:910 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 40de: 4685 li a3,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:911 + DetWin_WriteData((i - 2), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + 40e0: 07800813 li a6,120 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:903 + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 40e4: 488d li a7,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:905 + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + 40e6: 011cc783 lbu a5,17(s9) + 40ea: c3b5 beqz a5,414e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:907 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 40ec: 02ac0793 addi a5,s8,42 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:908 + VCard_Info.ActThreshold[i] = 0; + 40f0: 01ac0713 addi a4,s8,26 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:907 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 40f4: 21b7a7b3 sh1add a5,a5,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:908 + VCard_Info.ActThreshold[i] = 0; + 40f8: 21b74733 sh2add a4,a4,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:907 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 40fc: 000783a3 sb zero,7(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:908 + VCard_Info.ActThreshold[i] = 0; + 4100: 000705a3 sb zero,11(a4) + 4104: 00070623 sb zero,12(a4) + 4108: 000706a3 sb zero,13(a4) + 410c: 00070723 sb zero,14(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:907 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 4110: 00078423 sb zero,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:909 + VCard_Info.DetInfo.DetWinIdex[i] = 0; + 4114: 000788a3 sb zero,17(a5) + 4118: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:910 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 411c: 04dd0023 sb a3,64(s10) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:911 + DetWin_WriteData((i - 2), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + 4120: 022c0793 addi a5,s8,34 + 4124: 21b7a7b3 sh1add a5,a5,s11 + 4128: 27da lhu a4,12(a5) + 412a: 27f0 lbu a2,14(a5) + 412c: 4581 li a1,0 + 412e: 8321 srli a4,a4,0x8 + 4130: 0622 slli a2,a2,0x8 + 4132: 8e59 or a2,a2,a4 + 4134: 03065633 divu a2,a2,a6 + 4138: 0ffc7513 zext.b a0,s8 + 413c: 0605 addi a2,a2,1 + 413e: 08064633 zext.h a2,a2 + 4142: a0eff0ef jal ra,3350 + 4146: 488d li a7,3 + 4148: 4685 li a3,1 + 414a: 07800813 li a6,120 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:903 (discriminator 2) + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 414e: 0c05 addi s8,s8,1 + 4150: 0c99 addi s9,s9,6 + 4152: 0d05 addi s10,s10,1 + 4154: f91c19e3 bne s8,a7,40e6 + 4158: b37d j 3f06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:844 + condata.Trigger_Flag = 0x00; + 415a: f6018f23 sb zero,-130(gp) # 20001936 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:849 + if( (condata.Condi_Gruop != g_portGp.VC_ConNToSGruop + 1) && (SysTick_1s - VCard_Info.Last_Trigger_Tick >= temp_tickout) ) + 415e: d2e613e3 bne a2,a4,3e84 + 4162: b355 j 3f06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:862 + if( ( condata.Trigger_Flag == 0x01 ) && ( SysTick_1s - VCard_Info.Condition_Trigger_Tick >= temp_jumpe_time ) ) + 4164: 2474 lbu a3,14(s0) + 4166: 4705 li a4,1 + 4168: 00e69c63 bne a3,a4,4180 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:862 (discriminator 1) + 416c: 088da683 lw a3,136(s11) + 4170: 000a2703 lw a4,0(s4) + 4174: 05e2 slli a1,a1,0x18 + 4176: 82a1 srli a3,a3,0x8 + 4178: 8dd5 or a1,a1,a3 + 417a: 8f0d sub a4,a4,a1 + 417c: e8f779e3 bgeu a4,a5,400e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:918 + if(condata_save_flag == 0x01) + 4180: 4785 li a5,1 + 4182: daf894e3 bne a7,a5,3f2a + 4186: b341 j 3f06 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:876 + Dbg_Println(DBG_BIT_PC_COMM," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + 4188: 8726 mv a4,s1 + 418a: 00015597 auipc a1,0x15 + 418e: 5b658593 addi a1,a1,1462 # 19740 + 4192: 450d li a0,3 + 4194: fe7fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:877 + Ble_Printfln(DBG_BIT_BLE_STATUS," %d %d,%d",condata.Condi_Gruop,VCard_Info.ConGroupIndx,j); + 4198: 081dc683 lbu a3,129(s11) + 419c: 3010 lbu a2,1(s0) + 419e: 8726 mv a4,s1 + 41a0: 00015597 auipc a1,0x15 + 41a4: 5a058593 addi a1,a1,1440 # 19740 + 41a8: 4509 li a0,2 + 41aa: c89fe0ef jal ra,2e32 + 41ae: b575 j 405a + 41b0: f9818493 addi s1,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:930 + if( (VCard_Info.ExistState == NOONE) && (VCard_Info.ConGroupIndx == VC_CONDGROUP_Default_StartGroup) ) + 41b4: 8926 mv s2,s1 + 41b6: 89a6 mv s3,s1 + 41b8: 4b85 li s7,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:935 + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Trigger_Thres[i] != 0x00) ) + 41ba: 4c05 li s8,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:933 + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + 41bc: 4c95 li s9,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:935 + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Trigger_Thres[i] != 0x00) ) + 41be: 0109c783 lbu a5,16(s3) + 41c2: 11879763 bne a5,s8,42d0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:935 (discriminator 1) + 41c6: 04494b03 lbu s6,68(s2) + 41ca: 100b0363 beqz s6,42d0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:937 + if(VCard_Info.ActThreshold[i] >= VCard_Info.DetInfo.Trigger_Thres[i]) + 41ce: 018b8413 addi s0,s7,24 + 41d2: 21b44433 sh2add s0,s0,s11 + 41d6: 445c lw a5,12(s0) + 41d8: 01000a37 lui s4,0x1000 + 41dc: 3438 lbu a4,11(s0) + 41de: 1a7d addi s4,s4,-1 # ffffff <_data_lma+0xfe4a43> + 41e0: 0147f7b3 and a5,a5,s4 + 41e4: 07a2 slli a5,a5,0x8 + 41e6: 855a mv a0,s6 + 41e8: 00e7eab3 or s5,a5,a4 + 41ec: 061130ef jal ra,17a4c <__floatsisf> + 41f0: 85aa mv a1,a0 + 41f2: 8556 mv a0,s5 + 41f4: 6dc130ef jal ra,178d0 <__gesf2> + 41f8: 0c054c63 bltz a0,42d0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:941 + VCard_Info.Last_ConGroupType = 0x00; //YYW,20251009 + 41fc: 00018f23 sb zero,30(gp) # 200019d6 <__global_pointer$+0x1e> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:943 + VCard_Info.ConGroupIndx = g_portGp.VC_ConNToSGruop + 1; + 4200: b541c783 lbu a5,-1196(gp) # 2000150c + 4204: 0785 addi a5,a5,1 + 4206: 08fd80a3 sb a5,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:942 + VCard_Info.ExistState = SOMEONE; + 420a: 078d8fa3 sb s8,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:945 + Dbg_Println(DBG_BIT_PC_COMM,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Trigger_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + 420e: 8556 mv a0,s5 + 4210: 7ee130ef jal ra,179fe <__fixunssfsi> + 4214: 872a mv a4,a0 + 4216: 86da mv a3,s6 + 4218: 865e mv a2,s7 + 421a: 00015597 auipc a1,0x15 + 421e: 57258593 addi a1,a1,1394 # 1978c + 4222: 450d li a0,3 + 4224: f57fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:946 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Trigger_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + 4228: 445c lw a5,12(s0) + 422a: 3428 lbu a0,11(s0) + 422c: f9818913 addi s2,gp,-104 # 20001950 + 4230: 0147f7b3 and a5,a5,s4 + 4234: 07a2 slli a5,a5,0x8 + 4236: 8d5d or a0,a0,a5 + 4238: 7c6130ef jal ra,179fe <__fixunssfsi> + 423c: 017d87b3 add a5,s11,s7 + 4240: 0437c683 lbu a3,67(a5) + 4244: 872a mv a4,a0 + 4246: 865e mv a2,s7 + 4248: 00015597 auipc a1,0x15 + 424c: 54458593 addi a1,a1,1348 # 1978c + 4250: 4509 li a0,2 + 4252: be1fe0ef jal ra,2e32 + 4256: 4401 li s0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:947 + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 4258: 498d li s3,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:949 + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + 425a: 389c lbu a5,17(s1) + 425c: c7a5 beqz a5,42c4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:951 + VCard_Info.DetInfo.DetWinTrigger[i] = VCard_Info.DetInfo.DetWinTotalNum[i]; + 425e: 02240793 addi a5,s0,34 + 4262: 21b7a7b3 sh1add a5,a5,s11 + 4266: 27d6 lhu a3,12(a5) + 4268: 27f8 lbu a4,14(a5) + 426a: 02a40793 addi a5,s0,42 + 426e: 82a1 srli a3,a3,0x8 + 4270: 0722 slli a4,a4,0x8 + 4272: 00d76633 or a2,a4,a3 + 4276: 8321 srli a4,a4,0x8 + 4278: 21b7a7b3 sh1add a5,a5,s11 + 427c: b3f4 sb a3,7(a5) + 427e: a798 sb a4,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:952 + VCard_Info.ActThreshold[i] = 100; + 4280: fc800693 li a3,-56 + 4284: 01a40713 addi a4,s0,26 + 4288: 21b74733 sh2add a4,a4,s11 + 428c: b754 sb a3,13(a4) + 428e: 04200693 li a3,66 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:953 + VCard_Info.DetInfo.DetWinIdex[i] = 0; + 4292: 000788a3 sb zero,17(a5) + 4296: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:952 + VCard_Info.ActThreshold[i] = 100; + 429a: 000705a3 sb zero,11(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:954 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 429e: 4785 li a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:952 + VCard_Info.ActThreshold[i] = 100; + 42a0: 00070623 sb zero,12(a4) + 42a4: a774 sb a3,14(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:954 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 42a6: 04f90023 sb a5,64(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:955 + DetWin_WriteData((i - 2), 0xFF, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + 42aa: 07800793 li a5,120 + 42ae: 02f65633 divu a2,a2,a5 + 42b2: 0ff00593 li a1,255 + 42b6: 0ff47513 zext.b a0,s0 + 42ba: 0605 addi a2,a2,1 + 42bc: 08064633 zext.h a2,a2 + 42c0: 890ff0ef jal ra,3350 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:947 (discriminator 2) + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 42c4: 0405 addi s0,s0,1 + 42c6: 0499 addi s1,s1,6 + 42c8: 0905 addi s2,s2,1 + 42ca: f93418e3 bne s0,s3,425a + 42ce: b451 j 3d52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:933 (discriminator 2) + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + 42d0: 0b85 addi s7,s7,1 + 42d2: 0999 addi s3,s3,6 + 42d4: 0905 addi s2,s2,1 + 42d6: ef9b94e3 bne s7,s9,41be + 42da: bca5 j 3d52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:963 + }else if( (VCard_Info.ExistState == SOMEONE) && (VCard_Info.ConGroupIndx == (g_portGp.VC_ConNToSGruop + 1) ) ) + 42dc: 4705 li a4,1 + 42de: a6e79ae3 bne a5,a4,3d52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:963 (discriminator 1) + 42e2: 081dc703 lbu a4,129(s11) + 42e6: b541c783 lbu a5,-1196(gp) # 2000150c + 42ea: 0785 addi a5,a5,1 + 42ec: a6f713e3 bne a4,a5,3d52 + 42f0: f9818493 addi s1,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:963 + 42f4: 8926 mv s2,s1 + 42f6: 89a6 mv s3,s1 + 42f8: 4a85 li s5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:968 + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Release_Thres[i] < 100) ) + 42fa: 4c05 li s8,1 + 42fc: 06300d13 li s10,99 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:966 + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + 4300: 4c95 li s9,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:968 + if( (VCard_Info.Port_Info[i].PortEnFlag == 0x01) && (VCard_Info.DetInfo.Release_Thres[i] < 100) ) + 4302: 0109c783 lbu a5,16(s3) + 4306: 11879063 bne a5,s8,4406 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:968 (discriminator 1) + 430a: 04994b83 lbu s7,73(s2) + 430e: 0f7d6c63 bltu s10,s7,4406 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:970 + if(VCard_Info.ActThreshold[i] <= VCard_Info.DetInfo.Release_Thres[i]) + 4312: 018a8413 addi s0,s5,24 + 4316: 21b44433 sh2add s0,s0,s11 + 431a: 445c lw a5,12(s0) + 431c: 01000b37 lui s6,0x1000 + 4320: 3438 lbu a4,11(s0) + 4322: 1b7d addi s6,s6,-1 # ffffff <_data_lma+0xfe4a43> + 4324: 0167f7b3 and a5,a5,s6 + 4328: 07a2 slli a5,a5,0x8 + 432a: 855e mv a0,s7 + 432c: 00e7ea33 or s4,a5,a4 + 4330: 71c130ef jal ra,17a4c <__floatsisf> + 4334: 85aa mv a1,a0 + 4336: 8552 mv a0,s4 + 4338: 62e130ef jal ra,17966 <__lesf2> + 433c: 0ca04563 bgtz a0,4406 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:975 + VCard_Info.ExistState = NOONE; + 4340: 4789 li a5,2 + 4342: 06fd8fa3 sb a5,127(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:976 + VCard_Info.ConGroupIndx = VC_CONDGROUP_Default_StartGroup; //жϵĵһ + 4346: 098d80a3 sb s8,129(s11) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:978 + Dbg_Println(DBG_BIT_PC_COMM,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Release_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + 434a: 8552 mv a0,s4 + 434c: 6b2130ef jal ra,179fe <__fixunssfsi> + 4350: 872a mv a4,a0 + 4352: 86de mv a3,s7 + 4354: 8656 mv a2,s5 + 4356: 00015597 auipc a1,0x15 + 435a: 45e58593 addi a1,a1,1118 # 197b4 + 435e: 450d li a0,3 + 4360: e1bfd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:979 + Ble_Printfln(DBG_BIT_BLE_STATUS,"-ʱ ·%d %d - %d ж-",i,VCard_Info.DetInfo.Release_Thres[i],(uint32_t)VCard_Info.ActThreshold[i]); + 4364: 445c lw a5,12(s0) + 4366: 3428 lbu a0,11(s0) + 4368: f9818913 addi s2,gp,-104 # 20001950 + 436c: 0167f7b3 and a5,a5,s6 + 4370: 07a2 slli a5,a5,0x8 + 4372: 8d5d or a0,a0,a5 + 4374: 68a130ef jal ra,179fe <__fixunssfsi> + 4378: 015d87b3 add a5,s11,s5 + 437c: 0487c683 lbu a3,72(a5) + 4380: 872a mv a4,a0 + 4382: 8656 mv a2,s5 + 4384: 00015597 auipc a1,0x15 + 4388: 43058593 addi a1,a1,1072 # 197b4 + 438c: 4509 li a0,2 + 438e: aa5fe0ef jal ra,2e32 + 4392: 4401 li s0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:980 + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 4394: 498d li s3,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:982 + if(VCard_Info.Port_Info[i].HPort_Type != 0x00) + 4396: 389c lbu a5,17(s1) + 4398: c3ad beqz a5,43fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:984 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 439a: 02a40793 addi a5,s0,42 + 439e: 21b7a7b3 sh1add a5,a5,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:985 + VCard_Info.ActThreshold[i] = 0; + 43a2: 01a40713 addi a4,s0,26 + 43a6: 21b74733 sh2add a4,a4,s11 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:984 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 43aa: 000783a3 sb zero,7(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:985 + VCard_Info.ActThreshold[i] = 0; + 43ae: 000705a3 sb zero,11(a4) + 43b2: 00070623 sb zero,12(a4) + 43b6: 000706a3 sb zero,13(a4) + 43ba: 00070723 sb zero,14(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:984 + VCard_Info.DetInfo.DetWinTrigger[i] = 0x00; + 43be: 00078423 sb zero,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:986 + VCard_Info.DetInfo.DetWinIdex[i] = 0; + 43c2: 000788a3 sb zero,17(a5) + 43c6: 00078923 sb zero,18(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:987 + VCard_Info.DetInfo.FullFlag[i] = 0x01; + 43ca: 4785 li a5,1 + 43cc: 04f90023 sb a5,64(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:988 + DetWin_WriteData((i - 2), 0x00, ((VCard_Info.DetInfo.DetWinTotalNum[i] / (8*DETECTION_Window_BitMin)) + 1 ) ); + 43d0: 02240793 addi a5,s0,34 + 43d4: 21b7a7b3 sh1add a5,a5,s11 + 43d8: 27da lhu a4,12(a5) + 43da: 27f0 lbu a2,14(a5) + 43dc: 07800793 li a5,120 + 43e0: 8321 srli a4,a4,0x8 + 43e2: 0622 slli a2,a2,0x8 + 43e4: 8e59 or a2,a2,a4 + 43e6: 02f65633 divu a2,a2,a5 + 43ea: 4581 li a1,0 + 43ec: 0ff47513 zext.b a0,s0 + 43f0: 0605 addi a2,a2,1 + 43f2: 08064633 zext.h a2,a2 + 43f6: f5bfe0ef jal ra,3350 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:980 (discriminator 2) + for(uint8_t i= 2; i < VIRTUAL_PORT_MAX; i++) + 43fa: 0405 addi s0,s0,1 + 43fc: 0499 addi s1,s1,6 + 43fe: 0905 addi s2,s2,1 + 4400: f9341be3 bne s0,s3,4396 + 4404: b2b9 j 3d52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:966 (discriminator 2) + for(uint8_t i = 1; i < VIRTUAL_PORT_MAX; i++) + 4406: 0a85 addi s5,s5,1 + 4408: 0999 addi s3,s3,6 + 440a: 0905 addi s2,s2,1 + 440c: ef9a9be3 bne s5,s9,4302 + 4410: b289 j 3d52 + +00004412 : +Dev_VirtualCard_InType_Get(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1023 +//ȡǰ¼״̬ +uint8_t Dev_VirtualCard_InType_Get(void) +{ + uint8_t Ret = 0; //Ч + + if((VCard_Info.Action&0x3F) != 0x00) + 4412: f9818613 addi a2,gp,-104 # 20001950 + 4416: 08264783 lbu a5,130(a2) + 441a: 03f7f513 andi a0,a5,63 + 441e: c91d beqz a0,4454 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1027 + { + for(uint8_t i = 0x00; i < 8; i++) + { + if( ( VCard_Info.Action & (0x01 << i) ) != 0x00 ) + 4420: 0017f513 andi a0,a5,1 + 4424: c505 beqz a0,444c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1025 + for(uint8_t i = 0x00; i < 8; i++) + 4426: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1027 + if( ( VCard_Info.Action & (0x01 << i) ) != 0x00 ) + 4428: 4681 li a3,0 + 442a: a809 j 443c + 442c: 86ba mv a3,a4 + 442e: 48d7d833 bext a6,a5,a3 + 4432: 0705 addi a4,a4,1 + 4434: 00080e63 beqz a6,4450 + 4438: 0ff6f513 zext.b a0,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1031 + { + //Dbg_Println(DBG_BIT_PC_COMM,"- ޿ȡ ¼: %02x - %d ",VCard_Info.Action,i); + VCard_Info.Action &= ~(0x01 << i); + Ret = (i + 1); //Ч + 443c: 0505 addi a0,a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1030 + VCard_Info.Action &= ~(0x01 << i); + 443e: 48d797b3 bclr a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1031 + Ret = (i + 1); //Ч + 4442: 0ff57513 zext.b a0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1030 + VCard_Info.Action &= ~(0x01 << i); + 4446: 08f60123 sb a5,130(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1032 + break; + 444a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1023 + if((VCard_Info.Action&0x3F) != 0x00) + 444c: 4705 li a4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1025 + for(uint8_t i = 0x00; i < 8; i++) + 444e: 45a1 li a1,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1025 (discriminator 2) + 4450: fcb71ee3 bne a4,a1,442c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1038 + } + } + } + + return Ret; +} + 4454: 8082 ret + +00004456 : +Action_Task(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1043 + + +//¼ +void Action_Task(void) +{ + 4456: 1101 addi sp,sp,-32 + 4458: cc22 sw s0,24(sp) + 445a: ca26 sw s1,20(sp) + 445c: ce06 sw ra,28(sp) + 445e: c84a sw s2,16(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1049 + uint8_t rev = 0x00; + static uint32_t scan_tisk = 0x00; + + // Ŵӳٿ + //if((VCard_Info.PortState[1] == DET_SER_LOOSEN)&&(sensor_info.door_rarON_flag == 0x01)) + if(sensor_info.door_rarON_flag == 0x01) + 4460: f8018413 addi s0,gp,-128 # 20001938 + 4464: 305c lbu a5,5(s0) + 4466: 4705 li a4,1 + 4468: 8d818493 addi s1,gp,-1832 # 20001290 + 446c: 12e79263 bne a5,a4,4590 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1051 + { + if(SysTick_1ms - sensor_info.door_rarOn_time >= g_rar_info.Door_RARON_Time) + 4470: 4418 lw a4,8(s0) + 4472: 409c lw a5,0(s1) + 4474: 8f99 sub a5,a5,a4 + 4476: b441a703 lw a4,-1212(gp) # 200014fc + 447a: 02e7ee63 bltu a5,a4,44b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1053 + { + Dbg_Println(DBG_BIT_PC_COMM,"Ŵſ¼"); + 447e: 00015597 auipc a1,0x15 + 4482: 35e58593 addi a1,a1,862 # 197dc + 4486: 450d li a0,3 + 4488: cf3fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1054 + Ble_Printfln(DBG_BIT_BLE_STATUS, "Ŵſ¼"); + 448c: 00015597 auipc a1,0x15 + 4490: 35058593 addi a1,a1,848 # 197dc + 4494: 4509 li a0,2 + 4496: 99dfe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1056 + + sensor_info.door_rarOn_time = SysTick_1ms; + 449a: 409c lw a5,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1060 + sensor_info.door_rar_deltime = SysTick_1ms; + sensor_info.door_rarON_flag = 0x02; + + VCard_Info.Action |= VC_Event_DoorSensorOpen_Flag; + 449c: f9818713 addi a4,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1056 + sensor_info.door_rarOn_time = SysTick_1ms; + 44a0: c41c sw a5,8(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1057 + sensor_info.door_rar_deltime = SysTick_1ms; + 44a2: 409c lw a5,0(s1) + 44a4: c81c sw a5,16(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1058 + sensor_info.door_rarON_flag = 0x02; + 44a6: 4789 li a5,2 + 44a8: b05c sb a5,5(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1060 + VCard_Info.Action |= VC_Event_DoorSensorOpen_Flag; + 44aa: 08274783 lbu a5,130(a4) + 44ae: 0047e793 ori a5,a5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1072 + Ble_Printfln(DBG_BIT_BLE_STATUS,"ŴŹأ¼"); + + sensor_info.door_rar_deltime = SysTick_1ms; + sensor_info.door_rarON_flag = 0x00; + + VCard_Info.Action |= VC_Event_DoorSensorClose_Flag; + 44b2: 08f70123 sb a5,130(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1077 + } + } + + // ӳٿ + if(sensor_info.bath_rarON_flag == 0x01) + 44b6: 207c lbu a5,6(s0) + 44b8: 4705 li a4,1 + 44ba: 10e79e63 bne a5,a4,45d6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1079 + { + sensor_info.bath_rar_deltime = SysTick_1ms; + 44be: 4098 lw a4,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1080 + if(SysTick_1ms - sensor_info.bath_rarOn_time >= g_rar_info.BATH_RARON_Time) + 44c0: 4454 lw a3,12(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1079 + sensor_info.bath_rar_deltime = SysTick_1ms; + 44c2: c858 sw a4,20(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1080 + if(SysTick_1ms - sensor_info.bath_rarOn_time >= g_rar_info.BATH_RARON_Time) + 44c4: 4098 lw a4,0(s1) + 44c6: 8f15 sub a4,a4,a3 + 44c8: b4c1a683 lw a3,-1204(gp) # 20001504 + 44cc: 04d76063 bltu a4,a3,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1082 + { + if(VCard_Info.ExistState == SOMEONE){ // ˵£ԡ״↑ԡҵ¼ʹ + 44d0: f9818913 addi s2,gp,-104 # 20001950 + 44d4: 07f94703 lbu a4,127(s2) + 44d8: 02f71a63 bne a4,a5,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1084 + + sensor_info.bath_rarOn_time = SysTick_1ms; + 44dc: 409c lw a5,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1087 + sensor_info.bath_rarON_flag = 0x02; + + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣ¼"); + 44de: 00015597 auipc a1,0x15 + 44e2: 32658593 addi a1,a1,806 # 19804 + 44e6: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1084 + sensor_info.bath_rarOn_time = SysTick_1ms; + 44e8: c45c sw a5,12(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1085 + sensor_info.bath_rarON_flag = 0x02; + 44ea: 4789 li a5,2 + 44ec: a07c sb a5,6(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1087 + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣ¼"); + 44ee: c8dfd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1088 + Ble_Printfln(DBG_BIT_BLE_STATUS,"ϴּˣ¼"); + 44f2: 00015597 auipc a1,0x15 + 44f6: 31258593 addi a1,a1,786 # 19804 + 44fa: 4509 li a0,2 + 44fc: 937fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1089 + VCard_Info.Action |= VC_Event_BathroomRadarOn_Flag; + 4500: 08294783 lbu a5,130(s2) + 4504: 0107e793 ori a5,a5,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1105 + sensor_info.bath_rarOFF_flag = 0x00; + + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣص¼"); + Ble_Printfln(DBG_BIT_BLE_STATUS,"ϴּˣص¼"); + + VCard_Info.Action |= VC_Event_BathroomRadarOFF_Flag; + 4508: 08f90123 sb a5,130(s2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1114 + + + + + //1¼ + if(SysTick_1ms - scan_tisk >= 500){ + 450c: 91418713 addi a4,gp,-1772 # 200012cc + 4510: 4314 lw a3,0(a4) + 4512: 409c lw a5,0(s1) + 4514: 8f95 sub a5,a5,a3 + 4516: 1f300693 li a3,499 + 451a: 02f6f163 bgeu a3,a5,453c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1115 + scan_tisk = SysTick_1ms; + 451e: 409c lw a5,0(s1) + 4520: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1116 + rev = Dev_VirtualCard_InType_Get(); + 4522: 3dc5 jal 4412 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1118 + + if(rev != 0x00) + 4524: cd01 beqz a0,453c + 4526: c62a sw a0,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1120 + { + FZL_CtrlOut(rev); + 4528: d81fe0ef jal ra,32a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1122 + + Dbg_Println(DBG_BIT_PC_COMM,"- ¼: %d ",rev); + 452c: 4632 lw a2,12(sp) + 452e: 00015597 auipc a1,0x15 + 4532: 30658593 addi a1,a1,774 # 19834 + 4536: 450d li a0,3 + 4538: c43fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1128 + rev = 0x00; + } + } + + //2 + if(sensor_info.det_ctrlout_state != 0x00) { + 453c: 201c lbu a5,0(s0) + 453e: c3b9 beqz a5,4584 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1129 + if(SysTick_1ms - sensor_info.det_action_tick >= 200){ + 4540: 4014 lw a3,0(s0) + 4542: 205c lbu a5,4(s0) + 4544: 4098 lw a4,0(s1) + 4546: 82a1 srli a3,a3,0x8 + 4548: 07e2 slli a5,a5,0x18 + 454a: 8fd5 or a5,a5,a3 + 454c: 40f707b3 sub a5,a4,a5 + 4550: 0c700713 li a4,199 + 4554: 02f77863 bgeu a4,a5,4584 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1130 + sensor_info.det_action_tick = SysTick_1ms; + 4558: 409c lw a5,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1132 + + Dbg_Println(DBG_BIT_PC_COMM," FZL Close"); + 455a: 00015597 auipc a1,0x15 + 455e: 2ea58593 addi a1,a1,746 # 19844 + 4562: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1130 + sensor_info.det_action_tick = SysTick_1ms; + 4564: 0087d713 srli a4,a5,0x8 + 4568: b01c sb a5,1(s0) + 456a: a038 sb a4,2(s0) + 456c: 0107d713 srli a4,a5,0x10 + 4570: 83e1 srli a5,a5,0x18 + 4572: a05c sb a5,4(s0) + 4574: b038 sb a4,3(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1132 + Dbg_Println(DBG_BIT_PC_COMM," FZL Close"); + 4576: c05fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1133 + FZL_CtrlOut(0x00); + 457a: 4501 li a0,0 + 457c: d2dfe0ef jal ra,32a8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1134 + sensor_info.det_ctrlout_state = 0x00; + 4580: f8018023 sb zero,-128(gp) # 20001938 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1138 + } + } + +} + 4584: 40f2 lw ra,28(sp) + 4586: 4462 lw s0,24(sp) + 4588: 44d2 lw s1,20(sp) + 458a: 4942 lw s2,16(sp) + 458c: 6105 addi sp,sp,32 + 458e: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1062 + }else if((sensor_info.door_rarON_flag == 0x02)) + 4590: 4709 li a4,2 + 4592: f2e792e3 bne a5,a4,44b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1064 + if(SysTick_1ms - sensor_info.door_rar_deltime >= g_rar_info.Door_RARFF_TimeOut) + 4596: 4818 lw a4,16(s0) + 4598: 409c lw a5,0(s1) + 459a: 8f99 sub a5,a5,a4 + 459c: b481a703 lw a4,-1208(gp) # 20001500 + 45a0: f0e7ebe3 bltu a5,a4,44b6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1066 + Dbg_Println(DBG_BIT_PC_COMM,"ŴŹأ¼"); + 45a4: 00015597 auipc a1,0x15 + 45a8: 24c58593 addi a1,a1,588 # 197f0 + 45ac: 450d li a0,3 + 45ae: bcdfd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1067 + Ble_Printfln(DBG_BIT_BLE_STATUS,"ŴŹأ¼"); + 45b2: 00015597 auipc a1,0x15 + 45b6: 23e58593 addi a1,a1,574 # 197f0 + 45ba: 4509 li a0,2 + 45bc: 877fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1069 + sensor_info.door_rar_deltime = SysTick_1ms; + 45c0: 409c lw a5,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1072 + VCard_Info.Action |= VC_Event_DoorSensorClose_Flag; + 45c2: f9818713 addi a4,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1069 + sensor_info.door_rar_deltime = SysTick_1ms; + 45c6: c81c sw a5,16(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1070 + sensor_info.door_rarON_flag = 0x00; + 45c8: f80182a3 sb zero,-123(gp) # 2000193d +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1072 + VCard_Info.Action |= VC_Event_DoorSensorClose_Flag; + 45cc: 08274783 lbu a5,130(a4) + 45d0: 0087e793 ori a5,a5,8 + 45d4: bdf9 j 44b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1092 + }else if(VCard_Info.PortState[2] == DET_SER_LOOSEN) + 45d6: f9818913 addi s2,gp,-104 # 20001950 + 45da: 02594683 lbu a3,37(s2) + 45de: 4609 li a2,2 + 45e0: f2c696e3 bne a3,a2,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1094 + if((sensor_info.bath_rarON_flag == 0x02)&&(sensor_info.bath_rarOFF_flag == 0x01)) + 45e4: f2d794e3 bne a5,a3,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1094 (discriminator 1) + 45e8: 307c lbu a5,7(s0) + 45ea: f2e791e3 bne a5,a4,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1096 + if(SysTick_1ms - sensor_info.bath_rar_deltime >= g_rar_info.BATH_RARFF_TimeOut) + 45ee: 4858 lw a4,20(s0) + 45f0: 409c lw a5,0(s1) + 45f2: 8f99 sub a5,a5,a4 + 45f4: b501a703 lw a4,-1200(gp) # 20001508 + 45f8: f0e7eae3 bltu a5,a4,450c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1098 + sensor_info.bath_rar_deltime = SysTick_1ms; + 45fc: 409c lw a5,0(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1102 + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣص¼"); + 45fe: 00015597 auipc a1,0x15 + 4602: 21e58593 addi a1,a1,542 # 1981c + 4606: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1098 + sensor_info.bath_rar_deltime = SysTick_1ms; + 4608: c85c sw a5,20(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1099 + sensor_info.bath_rarON_flag = 0x00; + 460a: f8019323 sh zero,-122(gp) # 2000193e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1102 + Dbg_Println(DBG_BIT_PC_COMM,"ϴּˣص¼"); + 460e: b6dfd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1103 + Ble_Printfln(DBG_BIT_BLE_STATUS,"ϴּˣص¼"); + 4612: 00015597 auipc a1,0x15 + 4616: 20a58593 addi a1,a1,522 # 1981c + 461a: 4509 li a0,2 + 461c: 817fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1105 + VCard_Info.Action |= VC_Event_BathroomRadarOFF_Flag; + 4620: 08294783 lbu a5,130(s2) + 4624: 0207e793 ori a5,a5,32 + 4628: b5c5 j 4508 + +0000462a : +NetCRC16_Data(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1156 + *******************************************************************************/ +uint16_t NetCRC16_Data(uint8_t *aStr ,uint16_t len,uint16_t crc_id) +{ + uint16_t xda , xdapoly ; + uint16_t i,j, xdabit ; + xda = 0xFFFF ; + 462a: 67c1 lui a5,0x10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1171 + + for(j=0;j<8;j++) + { + xdabit = (uint8_t )(xda & 0x01) ; + xda >>= 1 ; + if( xdabit ) xda ^= xdapoly ; + 462c: 78e9 lui a7,0xffffa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1153 +{ + 462e: 882a mv a6,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1158 + for(i=0;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1160 + if((i == crc_id) || (i == (crc_id + 1))) + 4636: 00160313 addi t1,a2,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1171 + if( xdabit ) xda ^= xdapoly ; + 463a: 0885 addi a7,a7,1 # ffffa001 <_eusrstack+0xdfff7001> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1158 (discriminator 1) + for(i=0;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1176 + } + } + + return xda; +} + 4644: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1160 + if((i == crc_id) || (i == (crc_id + 1))) + 4646: 00f60863 beq a2,a5,4656 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1160 (discriminator 1) + 464a: 00e30663 beq t1,a4,4656 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1164 + xda ^= aStr[i]; + 464e: 00e807b3 add a5,a6,a4 + 4652: 239c lbu a5,0(a5) + 4654: 8d3d xor a0,a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1153 +{ + 4656: 46a1 li a3,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1169 + xdabit = (uint8_t )(xda & 0x01) ; + 4658: 00157793 andi a5,a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1170 + xda >>= 1 ; + 465c: 8105 srli a0,a0,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1171 + if( xdabit ) xda ^= xdapoly ; + 465e: c789 beqz a5,4668 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1171 (discriminator 1) + 4660: 011547b3 xor a5,a0,a7 + 4664: 0807c533 zext.h a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1167 (discriminator 2) + for(j=0;j<8;j++) + 4668: 16fd addi a3,a3,-1 + 466a: 0806c6b3 zext.h a3,a3 + 466e: f6ed bnez a3,4658 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1158 (discriminator 2) + for(i=0;i + +00004674 : +NoCard_Reply_Packing_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1182 + + + +void NoCard_Reply_Packing_Processing(uint8_t *data,uint16_t len,uint8_t state) +{ + if(len < 11) return; + 4674: 47a9 li a5,10 + 4676: 04b7f763 bgeu a5,a1,46c4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1181 +{ + 467a: 1101 addi sp,sp,-32 + 467c: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1188 + + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + + SdData[Sdlen++] = data[0]; + 467e: 211c lbu a5,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1208 + SdData[Sdlen++] = state; + + SdData[2] = (Sdlen&0xFF); + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + 4680: 45b1 li a1,12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1203 + SdData[Sdlen++] = state; + 4682: 85d0 sb a2,11(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1188 + SdData[Sdlen++] = data[0]; + 4684: 805c sb a5,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1189 + SdData[Sdlen++] = data[1]; + 4686: 311c lbu a5,1(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1194 + SdData[Sdlen++] = 0x00; + 4688: 00011223 sh zero,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1189 + SdData[Sdlen++] = data[1]; + 468c: 80dc sb a5,1(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1197 + SdData[Sdlen++] = data[6]; + 468e: 217c lbu a5,6(a0) + 4690: 835c sb a5,6(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1198 + SdData[Sdlen++] = data[7]; + 4692: 317c lbu a5,7(a0) + 4694: 83dc sb a5,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1199 + SdData[Sdlen++] = data[8]; + 4696: 251c lbu a5,8(a0) + 4698: 845c sb a5,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1200 + SdData[Sdlen++] = data[9]; + 469a: 351c lbu a5,9(a0) + 469c: 84dc sb a5,9(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1201 + SdData[Sdlen++] = data[10]; + 469e: 253c lbu a5,10(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1208 + CRC_Check = CRC16(SdData,Sdlen); + 46a0: 850a mv a0,sp +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1201 + SdData[Sdlen++] = data[10]; + 46a2: 855c sb a5,10(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1205 + SdData[2] = (Sdlen&0xFF); + 46a4: 47b1 li a5,12 + 46a6: 817c sh a5,2(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1208 + CRC_Check = CRC16(SdData,Sdlen); + 46a8: a53fe0ef jal ra,30fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1209 + SdData[4] = (CRC_Check&0xFF); + 46ac: 8268 sh a0,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1212 + SdData[5] = ((CRC_Check >> 8)&0xFF); + + UART_SendString(SdData,Sdlen); + 46ae: 45b1 li a1,12 + 46b0: 850a mv a0,sp + 46b2: 683000ef jal ra,5534 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1213 + Ble_Buff_Print(SdData,Sdlen); + 46b6: 850a mv a0,sp + 46b8: 45b1 li a1,12 + 46ba: fc2fe0ef jal ra,2e7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1215 + +} + 46be: 40f2 lw ra,28(sp) + 46c0: 6105 addi sp,sp,32 + 46c2: 8082 ret + 46c4: 8082 ret + +000046c6 : +NoCard_Set_PortInfo_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1224 +//޿ȡ˿ڲ +//ڲ˿ڹ̶1忨״̬ 2Ŵ 3-5 +//Ӳ˿ڣŴ + 3 +uint8_t NoCard_Set_PortInfo_Processing(uint8_t* data,uint16_t lens) +{ + if(lens < 22) return 0x01; + 46c6: 47d5 li a5,21 + 46c8: 0cb7f363 bgeu a5,a1,478e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1223 +{ + 46cc: 7179 addi sp,sp,-48 + 46ce: d422 sw s0,40(sp) + 46d0: d226 sw s1,36(sp) + 46d2: d04a sw s2,32(sp) + 46d4: d606 sw ra,44(sp) + 46d6: ce4e sw s3,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1228 + + uint8_t para = 0x0B; + uint8_t para_len = 11; + uint8_t port_id = data[para+5];//(data[para+2] + (data[para+3] << 8)); + 46d8: 01054983 lbu s3,16(a0) + 46dc: 84aa mv s1,a0 + 46de: 892e mv s2,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1231 + uint8_t revdata[11]; + + memcpy(revdata,&data[para],para_len); + 46e0: 462d li a2,11 + 46e2: 00b50593 addi a1,a0,11 + 46e6: 0048 addi a0,sp,4 + 46e8: 9ebfd0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1233 + + if(port_id != 0x00 && port_id <= VIRTUAL_PORT_MAX) //1-5 + 46ec: fff98413 addi s0,s3,-1 + 46f0: 0ff47713 zext.b a4,s0 + 46f4: 4791 li a5,4 + 46f6: 08e7e063 bltu a5,a4,4776 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1235 + { + if(revdata[4] > 100 ) + 46fa: 8418 lbu a4,8(sp) + 46fc: 06400793 li a5,100 + 4700: 00e7f363 bgeu a5,a4,4706 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1237 + { + revdata[4] = 100; + 4704: 845c sb a5,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1239 + } + if(revdata[10] > 100 ) + 4706: 8718 lbu a4,14(sp) + 4708: 06400793 li a5,100 + 470c: 00e7f363 bgeu a5,a4,4712 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1241 + { + revdata[10] = 100; + 4710: 875c sb a5,14(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1244 + } + + if(memcmp(&PortInfo[port_id-1],revdata,para_len) != 0x00 ) + 4712: 47ad li a5,11 + 4714: 02f40433 mul s0,s0,a5 + 4718: b0c18793 addi a5,gp,-1268 # 200014c4 + 471c: 462d li a2,11 + 471e: 004c addi a1,sp,4 + 4720: 943e add s0,s0,a5 + 4722: 8522 mv a0,s0 + 4724: 3e8130ef jal ra,17b0c + 4728: cd1d beqz a0,4766 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1246 + { + memcpy(&PortInfo[port_id-1],revdata,para_len); + 472a: 462d li a2,11 + 472c: 004c addi a1,sp,4 + 472e: 8522 mv a0,s0 + 4730: 9a3fd0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1248 + VCard_Info.PortInit_Flag = 0x00;//˿ڳʼ + Dbg_Println(DBG_BIT_PC_COMM, "Set_PortInfo Succ:%d",port_id); + 4734: 864e mv a2,s3 + 4736: 00015597 auipc a1,0x15 + 473a: 11a58593 addi a1,a1,282 # 19850 + 473e: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1247 + VCard_Info.PortInit_Flag = 0x00;//˿ڳʼ + 4740: f8018e23 sb zero,-100(gp) # 20001954 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1248 + Dbg_Println(DBG_BIT_PC_COMM, "Set_PortInfo Succ:%d",port_id); + 4744: a37fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1249 + Ble_Printfln(DBG_BIT_BLE_STATUS,"Set Succ"); + 4748: 00015597 auipc a1,0x15 + 474c: 12058593 addi a1,a1,288 # 19868 + 4750: 4509 li a0,2 + 4752: ee0fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1250 + EEPROM_Write_PortInfo(); + 4756: bb5fd0ef jal ra,230a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1260 + }else{ + NoCard_Reply_Packing_Processing(data,lens,0x02); + return 0x02; + } + + NoCard_Reply_Packing_Processing(data,lens,0x01); + 475a: 8526 mv a0,s1 + 475c: 4605 li a2,1 + 475e: 85ca mv a1,s2 + 4760: 3f11 jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1261 + return 0x00; + 4762: 4501 li a0,0 + 4764: a831 j 4780 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1253 + Dbg_Println(DBG_BIT_PC_COMM, "No Need Save"); + 4766: 00015597 auipc a1,0x15 + 476a: 10e58593 addi a1,a1,270 # 19874 + 476e: 450d li a0,3 + 4770: a0bfd0ef jal ra,217a + 4774: b7dd j 475a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1256 + NoCard_Reply_Packing_Processing(data,lens,0x02); + 4776: 8526 mv a0,s1 + 4778: 4609 li a2,2 + 477a: 85ca mv a1,s2 + 477c: 3de5 jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1257 + return 0x02; + 477e: 4509 li a0,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1262 +} + 4780: 50b2 lw ra,44(sp) + 4782: 5422 lw s0,40(sp) + 4784: 5492 lw s1,36(sp) + 4786: 5902 lw s2,32(sp) + 4788: 49f2 lw s3,28(sp) + 478a: 6145 addi sp,sp,48 + 478c: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1224 + if(lens < 22) return 0x01; + 478e: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1262 +} + 4790: 8082 ret + +00004792 : +NoCard_Read_Version_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1268 + + + +//ȡ汾ŵĻظ +uint8_t NoCard_Read_Version_Processing(uint8_t* data,uint16_t lens) +{ + 4792: 1101 addi sp,sp,-32 + 4794: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1273 + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + + SdData[Sdlen++] = data[0]; + 4796: 211c lbu a5,0(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1276 + SdData[Sdlen++] = data[1]; + // + SdData[Sdlen++] = 0x00; + 4798: 00011123 sh zero,2(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1279 + SdData[Sdlen++] = 0x00; + //CRC + SdData[Sdlen++] = 0x00; + 479c: 00011223 sh zero,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1273 + SdData[Sdlen++] = data[0]; + 47a0: 805c sb a5,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1274 + SdData[Sdlen++] = data[1]; + 47a2: 311c lbu a5,1(a0) + 47a4: 80dc sb a5,1(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1283 + SdData[Sdlen++] = 0x00; + + //֡ + SdData[Sdlen++] = data[6]; + 47a6: 217c lbu a5,6(a0) + 47a8: 835c sb a5,6(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1284 + SdData[Sdlen++] = data[7]; + 47aa: 317c lbu a5,7(a0) + 47ac: 83dc sb a5,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1285 + SdData[Sdlen++] = data[8]; + 47ae: 251c lbu a5,8(a0) + 47b0: 845c sb a5,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1286 + SdData[Sdlen++] = data[9]; + 47b2: 351c lbu a5,9(a0) + 47b4: 84dc sb a5,9(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1289 + + // + SdData[Sdlen++] = 0x01; + 47b6: 40100793 li a5,1025 + 47ba: 857c sh a5,10(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1292 + + SdData[Sdlen++] = FW_Version; //汾 + SdData[Sdlen++] = EE_Version; //Ӳ汾 + 47bc: 4791 li a5,4 + 47be: 865c sb a5,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1293 + SdData[Sdlen++] = Peripheral_GetBLEState(); + 47c0: 86ffe0ef jal ra,302e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1295 + + SdData[2] = (Sdlen&0xFF); + 47c4: 47b9 li a5,14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1293 + SdData[Sdlen++] = Peripheral_GetBLEState(); + 47c6: 86c8 sb a0,13(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1298 + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + 47c8: 45b9 li a1,14 + 47ca: 850a mv a0,sp +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1295 + SdData[2] = (Sdlen&0xFF); + 47cc: 817c sh a5,2(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1298 + CRC_Check = CRC16(SdData,Sdlen); + 47ce: 92dfe0ef jal ra,30fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1299 + SdData[4] = (CRC_Check&0xFF); + 47d2: 8268 sh a0,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1302 + SdData[5] = ((CRC_Check >> 8)&0xFF); + + UART_SendString(SdData,Sdlen); + 47d4: 45b9 li a1,14 + 47d6: 850a mv a0,sp + 47d8: 55d000ef jal ra,5534 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1303 + Ble_Buff_Print(SdData,Sdlen); + 47dc: 850a mv a0,sp + 47de: 45b9 li a1,14 + 47e0: e9cfe0ef jal ra,2e7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1306 + + return 0x00; +} + 47e4: 40f2 lw ra,28(sp) + 47e6: 4501 li a0,0 + 47e8: 6105 addi sp,sp,32 + 47ea: 8082 ret + +000047ec : +NoCard_Set_CondGpJd_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1313 + + +//޿ȡ +uint8_t NoCard_Set_CondGpJd_Processing(uint8_t* data,uint16_t lens) +{ + if(lens < 25) return 0x01; + 47ec: 47e1 li a5,24 + 47ee: 0cb7f863 bgeu a5,a1,48be +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1312 +{ + 47f2: 1101 addi sp,sp,-32 + 47f4: cc22 sw s0,24(sp) + 47f6: ca26 sw s1,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1323 + uint8_t rev = 0x02; + + uint8_t Gp_num = 0x00; //ţ + uint8_t Gp2_num = 0x00; // + + memcpy(revdata,&data[para],para_len); + 47f8: 4639 li a2,14 + 47fa: 842a mv s0,a0 + 47fc: 84ae mv s1,a1 + 47fe: 00b50593 addi a1,a0,11 + 4802: 850a mv a0,sp +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1312 +{ + 4804: ce06 sw ra,28(sp) + 4806: c84a sw s2,16(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1323 + memcpy(revdata,&data[para],para_len); + 4808: 8cbfd0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1324 + Gp_num = revdata[1]; + 480c: 8094 lbu a3,1(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1328 + Gp2_num = revdata[2]; + + //֤Ƿȷ֤Ͳflash + if((Gp_num != 0x00)&&(Gp_num <= VC_NONE_Default_StartGroup)) //1-5 + 480e: 4715 li a4,5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1318 + uint8_t rev = 0x02; + 4810: 4609 li a2,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1328 + if((Gp_num != 0x00)&&(Gp_num <= VC_NONE_Default_StartGroup)) //1-5 + 4812: fff68793 addi a5,a3,-1 + 4816: 0ff7f793 zext.b a5,a5 + 481a: 06f76a63 bltu a4,a5,488e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1325 + Gp2_num = revdata[2]; + 481e: 810c lbu a1,2(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1332 + { + for(uint8_t i = 0x00;i + 4826: 4781 li a5,0 + 4828: 893a mv s2,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1330 + for(uint8_t i = 0x00;i + 4834: 00574803 lbu a6,5(a4) + 4838: 06d81d63 bne a6,a3,48b2 + 483c: 00674803 lbu a6,6(a4) + 4840: 06b81963 bne a6,a1,48b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1334 + { + if(memcmp(&g_portGp.PortGroupInfo[i],revdata,para_len) != 0x00) + 4844: 473d li a4,15 + 4846: 02e787b3 mul a5,a5,a4 + 484a: 4639 li a2,14 + 484c: 858a mv a1,sp + 484e: 0791 addi a5,a5,4 + 4850: 993e add s2,s2,a5 + 4852: 854a mv a0,s2 + 4854: 2b8130ef jal ra,17b0c + 4858: c529 beqz a0,48a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1336 + { + memcpy(&g_portGp.PortGroupInfo[i],revdata,para_len); + 485a: 4639 li a2,14 + 485c: 858a mv a1,sp + 485e: 854a mv a0,s2 + 4860: 873fd0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1339 + + VCard_Info.PortInit_Flag = 0x00;//˿ڳʼ + Dbg_Println(DBG_BIT_PC_COMM, "Set_CondGp Succ"); + 4864: 00015597 auipc a1,0x15 + 4868: 02058593 addi a1,a1,32 # 19884 + 486c: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1338 + VCard_Info.PortInit_Flag = 0x00;//˿ڳʼ + 486e: f8018e23 sb zero,-100(gp) # 20001954 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1339 + Dbg_Println(DBG_BIT_PC_COMM, "Set_CondGp Succ"); + 4872: 909fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1340 + Ble_Printfln(DBG_BIT_BLE_STATUS,"Set Succ"); + 4876: 4509 li a0,2 + 4878: 00015597 auipc a1,0x15 + 487c: ff058593 addi a1,a1,-16 # 19868 + 4880: db2fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1341 + EEPROM_Write_PortGroupData(&g_portGp); + 4884: b5418513 addi a0,gp,-1196 # 2000150c + 4888: bddfd0ef jal ra,2464 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1347 + rev = 0x01; + break; + }else{ + + Dbg_Println(DBG_BIT_PC_COMM, "the same"); + rev = 0x01; + 488c: 4605 li a2,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1356 + } + }else{ + // NoCard_Reply_Packing_Processing(data,lens,0x02); + } + + NoCard_Reply_Packing_Processing(data,lens,rev); + 488e: 8522 mv a0,s0 + 4890: 85a6 mv a1,s1 + 4892: 33cd jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1359 + + return 0x00; +} + 4894: 40f2 lw ra,28(sp) + 4896: 4462 lw s0,24(sp) + 4898: 44d2 lw s1,20(sp) + 489a: 4942 lw s2,16(sp) + 489c: 4501 li a0,0 + 489e: 6105 addi sp,sp,32 + 48a0: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1346 + Dbg_Println(DBG_BIT_PC_COMM, "the same"); + 48a2: 00015597 auipc a1,0x15 + 48a6: ff258593 addi a1,a1,-14 # 19894 + 48aa: 450d li a0,3 + 48ac: 8cffd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1348 + break; + 48b0: bff1 j 488c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1330 + for(uint8_t i = 0x00;i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1318 + uint8_t rev = 0x02; + 48ba: 4609 li a2,2 + 48bc: bfc9 j 488e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1313 + if(lens < 25) return 0x01; + 48be: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1359 +} + 48c0: 8082 ret + +000048c2 : +NoCard_Set_Printf_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1365 + + + +//޿ȡӡ +uint8_t NoCard_Set_Printf_Processing(uint8_t *data,uint16_t lens) +{ + 48c2: 1141 addi sp,sp,-16 + 48c4: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1366 + if(Dbg_Switch != (data[11]&0x1F) ) + 48c6: 353c lbu a5,11(a0) + 48c8: 8c418713 addi a4,gp,-1852 # 2000127c + 48cc: 4314 lw a3,0(a4) + 48ce: 8bfd andi a5,a5,31 + 48d0: 00d78363 beq a5,a3,48d6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1368 + { + Dbg_Switch = (data[11]&0x1F); + 48d4: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1372 + // NoCard_Reply_Packing_Processing(data,lens,0x01); + } + + NoCard_Reply_Packing_Processing(data,lens,0x01); + 48d6: 4605 li a2,1 + 48d8: 3b71 jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1374 + return 0x00; +} + 48da: 40b2 lw ra,12(sp) + 48dc: 4501 li a0,0 + 48de: 0141 addi sp,sp,16 + 48e0: 8082 ret + +000048e2 : +NoCard_Set_RDR_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1384 + * @name : NoCard_Set_RDR_Processing + * @brief : ָƴ״ӡ + * @param : data : ջ, lens : ճ + ******************************************************* */ +uint8_t NoCard_Set_RDR_Processing(uint8_t *data,uint16_t lens) +{ + 48e2: 1141 addi sp,sp,-16 + 48e4: c422 sw s0,8(sp) + 48e6: c226 sw s1,4(sp) + 48e8: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1385 + if(data[11] == 0x01) + 48ea: 353c lbu a5,11(a0) + 48ec: 4705 li a4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1384 +{ + 48ee: 842a mv s0,a0 + 48f0: 84ae mv s1,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1385 + if(data[11] == 0x01) + 48f2: 04e79563 bne a5,a4,493c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1387 + { + if((Dbg_Switch&0x04) != 0x00 ) + 48f6: 8c418713 addi a4,gp,-1852 # 2000127c + 48fa: 431c lw a5,0(a4) + 48fc: 0047f693 andi a3,a5,4 + 4900: c691 beqz a3,490c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1389 + { + Dbg_Switch &= 0x3B; //رӡ + 4902: 03b7f793 andi a5,a5,59 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1390 + Dbg_Switch |= 0x20; + 4906: 0207e793 ori a5,a5,32 + 490a: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1392 + } + Dbg_Println(DBG_BIT_PC_COMM, "RDR_Sta Start"); + 490c: 00015597 auipc a1,0x15 + 4910: f9458593 addi a1,a1,-108 # 198a0 + 4914: 450d li a0,3 + 4916: 865fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1393 + VCard_Info.rdrsta_change_flag = 0x01; + 491a: f9818793 addi a5,gp,-104 # 20001950 + 491e: 4705 li a4,1 + 4920: 08e78423 sb a4,136(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1394 + VCard_Info.print_rdrsta_flag = 0x01; + 4924: 08e783a3 sb a4,135(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1402 + else if(data[11] == 0x02) + { + Dbg_Switch &= (~0x20); + Dbg_Println(DBG_BIT_PC_COMM, "RDR_Sta End"); + VCard_Info.print_rdrsta_flag = 0x00; + NoCard_Reply_Packing_Processing(data,lens,0x01); + 4928: 4605 li a2,1 + 492a: 85a6 mv a1,s1 + 492c: 8522 mv a0,s0 + 492e: 3399 jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1406 + } + + return 0x00; +} + 4930: 40b2 lw ra,12(sp) + 4932: 4422 lw s0,8(sp) + 4934: 4492 lw s1,4(sp) + 4936: 4501 li a0,0 + 4938: 0141 addi sp,sp,16 + 493a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1397 + else if(data[11] == 0x02) + 493c: 4709 li a4,2 + 493e: fee799e3 bne a5,a4,4930 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1399 + Dbg_Switch &= (~0x20); + 4942: 8c418713 addi a4,gp,-1852 # 2000127c + 4946: 431c lw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1400 + Dbg_Println(DBG_BIT_PC_COMM, "RDR_Sta End"); + 4948: 00015597 auipc a1,0x15 + 494c: f6858593 addi a1,a1,-152 # 198b0 + 4950: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1399 + Dbg_Switch &= (~0x20); + 4952: fdf7f793 andi a5,a5,-33 + 4956: c31c sw a5,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1400 + Dbg_Println(DBG_BIT_PC_COMM, "RDR_Sta End"); + 4958: 823fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1401 + VCard_Info.print_rdrsta_flag = 0x00; + 495c: 00018fa3 sb zero,31(gp) # 200019d7 <__global_pointer$+0x1f> + 4960: b7e1 j 4928 + +00004962 : +NoCard_Set_RDRPara_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1413 + + +//Ŵšԡ״ +uint8_t NoCard_Set_RDRPara_Processing(uint8_t* data,uint16_t lens) +{ + if(lens < 20) return 0x01; + 4962: 47cd li a5,19 + 4964: 12b7f263 bgeu a5,a1,4a88 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1412 +{ + 4968: 1101 addi sp,sp,-32 + 496a: cc22 sw s0,24(sp) + 496c: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1418 + uint8_t rev = 0x00; + uint8_t temp_tim_unit = 0x00; + uint32_t temp_tim = 0x00; + + if( (data[11]&0x01) != 0x00 ) + 496e: 3534 lbu a3,11(a0) + 4970: 842a mv s0,a0 + 4972: 0016f713 andi a4,a3,1 + 4976: 8a89 andi a3,a3,2 + 4978: eb11 bnez a4,498c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1455 + g_rar_info.Door_RARFF_TimeOut = temp_tim; + rev = 0x01; + } + } + + if( (data[11]&0x02) != 0x00 ) + 497a: eec9 bnez a3,4a14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1498 + if(rev != 0x00) + { + EEPROM_Write_RARDelayTim(&g_rar_info); + } + + NoCard_Reply_Packing_Processing(data,lens,0x01); + 497c: 8522 mv a0,s0 + 497e: 4605 li a2,1 + 4980: 39d5 jal 4674 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1501 + + return 0x00; +} + 4982: 40f2 lw ra,28(sp) + 4984: 4462 lw s0,24(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1498 + NoCard_Reply_Packing_Processing(data,lens,0x01); + 4986: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1501 +} + 4988: 6105 addi sp,sp,32 + 498a: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1420 + temp_tim = data[12]; + 498c: 255c lbu a5,12(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1422 + if(temp_tim_unit == 2){ + 498e: 3548 lbu a0,13(a0) + 4990: 4609 li a2,2 + 4992: 06c51963 bne a0,a2,4a04 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1423 + temp_tim = (temp_tim*60*1000); + 4996: 663d lui a2,0xf + 4998: a6060613 addi a2,a2,-1440 # ea60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1425 + temp_tim = (temp_tim*1000); + 499c: 02c787b3 mul a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1427 + if(temp_tim > 1800000){ + 49a0: 001b7637 lui a2,0x1b7 + 49a4: 74060613 addi a2,a2,1856 # 1b7740 <_data_lma+0x19c184> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1414 + uint8_t rev = 0x00; + 49a8: 4501 li a0,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1427 + if(temp_tim > 1800000){ + 49aa: 0ac7d7b3 minu a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1430 + if(temp_tim != g_rar_info.Door_RARON_Time){ + 49ae: b4418613 addi a2,gp,-1212 # 200014fc + 49b2: 00062803 lw a6,0(a2) + 49b6: 01078463 beq a5,a6,49be +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1431 + g_rar_info.Door_RARON_Time = temp_tim; + 49ba: c21c sw a5,0(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1432 + rev = 0x01; + 49bc: 853a mv a0,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1438 + if(temp_tim_unit == 2){ + 49be: 00f44883 lbu a7,15(s0) + 49c2: 4809 li a6,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1436 + temp_tim = data[14]; + 49c4: 247c lbu a5,14(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1438 + if(temp_tim_unit == 2){ + 49c6: 05089263 bne a7,a6,4a0a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1439 + temp_tim = (temp_tim*60*1000); + 49ca: 683d lui a6,0xf + 49cc: a6080813 addi a6,a6,-1440 # ea60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1441 + temp_tim = (temp_tim*1000); + 49d0: 030787b3 mul a5,a5,a6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1446 + if(temp_tim < 5000){ //ʱعܱ5s + 49d4: 6805 lui a6,0x1 + 49d6: 38880813 addi a6,a6,904 # 1388 <_einit+0x384> + 49da: 0b07f7b3 maxu a5,a5,a6 + 49de: 001b7837 lui a6,0x1b7 + 49e2: 74080813 addi a6,a6,1856 # 1b7740 <_data_lma+0x19c184> + 49e6: 0b07d7b3 minu a5,a5,a6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1449 + if(temp_tim != g_rar_info.Door_RARFF_TimeOut){ + 49ea: 00462803 lw a6,4(a2) + 49ee: 03078163 beq a5,a6,4a10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1450 + g_rar_info.Door_RARFF_TimeOut = temp_tim; + 49f2: c25c sw a5,4(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1455 + if( (data[11]&0x02) != 0x00 ) + 49f4: e285 bnez a3,4a14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1495 + EEPROM_Write_RARDelayTim(&g_rar_info); + 49f6: b4418513 addi a0,gp,-1212 # 200014fc + 49fa: c62e sw a1,12(sp) + 49fc: c95fd0ef jal ra,2690 + 4a00: 45b2 lw a1,12(sp) + 4a02: bfad j 497c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1425 + temp_tim = (temp_tim*1000); + 4a04: 3e800613 li a2,1000 + 4a08: bf51 j 499c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1441 + temp_tim = (temp_tim*1000); + 4a0a: 3e800813 li a6,1000 + 4a0e: b7c9 j 49d0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1455 + if( (data[11]&0x02) != 0x00 ) + 4a10: 872a mv a4,a0 + 4a12: caa5 beqz a3,4a82 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1459 + if(temp_tim_unit == 2){ + 4a14: 3810 lbu a2,17(s0) + 4a16: 4689 li a3,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1457 + temp_tim = data[16]; + 4a18: 281c lbu a5,16(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1459 + if(temp_tim_unit == 2){ + 4a1a: 04d61e63 bne a2,a3,4a76 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1460 + temp_tim = (temp_tim*60*1000); + 4a1e: 66bd lui a3,0xf + 4a20: a6068693 addi a3,a3,-1440 # ea60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1462 + temp_tim = (temp_tim*1000); + 4a24: 02d787b3 mul a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1464 + if(temp_tim > 1800000){ + 4a28: 001b76b7 lui a3,0x1b7 + 4a2c: 74068693 addi a3,a3,1856 # 1b7740 <_data_lma+0x19c184> + 4a30: 0ad7d7b3 minu a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1467 + if(temp_tim != g_rar_info.BATH_RARON_Time){ + 4a34: b4418693 addi a3,gp,-1212 # 200014fc + 4a38: 4690 lw a2,8(a3) + 4a3a: 00c78463 beq a5,a2,4a42 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1468 + g_rar_info.BATH_RARON_Time = temp_tim; + 4a3e: c69c sw a5,8(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1469 + rev = 0x01; + 4a40: 4705 li a4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1475 + if(temp_tim_unit == 2){ + 4a42: 3828 lbu a0,19(s0) + 4a44: 4609 li a2,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1473 + temp_tim = data[18]; + 4a46: 283c lbu a5,18(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1475 + if(temp_tim_unit == 2){ + 4a48: 02c51a63 bne a0,a2,4a7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1476 + temp_tim = (temp_tim*60*1000); + 4a4c: 663d lui a2,0xf + 4a4e: a6060613 addi a2,a2,-1440 # ea60 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1478 + temp_tim = (temp_tim*1000); + 4a52: 02c787b3 mul a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1483 + if(temp_tim < 5000){ //ʱعܱ5s + 4a56: 6605 lui a2,0x1 + 4a58: 38860613 addi a2,a2,904 # 1388 <_einit+0x384> + 4a5c: 0ac7f7b3 maxu a5,a5,a2 + 4a60: 001b7637 lui a2,0x1b7 + 4a64: 74060613 addi a2,a2,1856 # 1b7740 <_data_lma+0x19c184> + 4a68: 0ac7d7b3 minu a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1486 + if(temp_tim != g_rar_info.BATH_RARFF_TimeOut){ + 4a6c: 46d0 lw a2,12(a3) + 4a6e: 00c78a63 beq a5,a2,4a82 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1487 + g_rar_info.BATH_RARFF_TimeOut = temp_tim; + 4a72: c6dc sw a5,12(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1493 + if(rev != 0x00) + 4a74: b749 j 49f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1462 + temp_tim = (temp_tim*1000); + 4a76: 3e800693 li a3,1000 + 4a7a: b76d j 4a24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1478 + temp_tim = (temp_tim*1000); + 4a7c: 3e800613 li a2,1000 + 4a80: bfc9 j 4a52 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1493 + if(rev != 0x00) + 4a82: ee070de3 beqz a4,497c + 4a86: bf85 j 49f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1413 + if(lens < 20) return 0x01; + 4a88: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1501 +} + 4a8a: 8082 ret + +00004a8c : +print_RDRSta_Changw(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1517 + uint8_t SdData[15]; + uint16_t Sdlen = 0x00; + uint16_t CRC_Check = 0x00; + uint8_t RDR_Sta = 0x00; + + SdData[Sdlen++] = 0xCC; + 4a8c: 77f1 lui a5,0xffffc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1511 +{ + 4a8e: 1101 addi sp,sp,-32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1517 + SdData[Sdlen++] = 0xCC; + 4a90: 0cc78793 addi a5,a5,204 # ffffc0cc <_eusrstack+0xdfff90cc> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1511 +{ + 4a94: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1534 + SdData[Sdlen++] = 0x00; + SdData[Sdlen++] = 0x11; + + //data + SdData[Sdlen++] = 0x04; //Ч˿ + SdData[Sdlen++] = VCard_Info.ExistState; //״̬ + 4a96: f9818713 addi a4,gp,-104 # 20001950 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1517 + SdData[Sdlen++] = 0xCC; + 4a9a: 807c sh a5,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1528 + SdData[Sdlen++] = 0x00; + 4a9c: 041107b7 lui a5,0x4110 + 4aa0: c43e sw a5,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1534 + SdData[Sdlen++] = VCard_Info.ExistState; //״̬ + 4aa2: 07f74783 lbu a5,127(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1540 + + if((VCard_Info.PortStateAct[1] == 1)||(VCard_Info.PortStateAct[1] == 3)){ + RDR_Sta |= 0x01; + } + + if((VCard_Info.PortStateAct[2] == 1)||(VCard_Info.PortStateAct[2] == 3)){ + 4aa6: 02f74683 lbu a3,47(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1521 + SdData[Sdlen++] = 0x00; + 4aaa: 000101a3 sb zero,3(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1534 + SdData[Sdlen++] = VCard_Info.ExistState; //״̬ + 4aae: 865c sb a5,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1536 + if((VCard_Info.PortStateAct[1] == 1)||(VCard_Info.PortStateAct[1] == 3)){ + 4ab0: 02e74783 lbu a5,46(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1523 + SdData[Sdlen++] = 0x00; + 4ab4: c202 sw zero,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1540 + if((VCard_Info.PortStateAct[2] == 1)||(VCard_Info.PortStateAct[2] == 3)){ + 4ab6: 0fd6f693 andi a3,a3,253 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1536 + if((VCard_Info.PortStateAct[1] == 1)||(VCard_Info.PortStateAct[1] == 3)){ + 4aba: 0fd7f793 andi a5,a5,253 + 4abe: 17fd addi a5,a5,-1 # 410ffff <_data_lma+0x40f4a43> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1540 + if((VCard_Info.PortStateAct[2] == 1)||(VCard_Info.PortStateAct[2] == 3)){ + 4ac0: 4605 li a2,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1536 + if((VCard_Info.PortStateAct[1] == 1)||(VCard_Info.PortStateAct[1] == 3)){ + 4ac2: 0017b793 seqz a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1540 + if((VCard_Info.PortStateAct[2] == 1)||(VCard_Info.PortStateAct[2] == 3)){ + 4ac6: 00c69463 bne a3,a2,4ace +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1541 + RDR_Sta |= 0x02; + 4aca: 0027e793 ori a5,a5,2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1544 + } + + if((VCard_Info.PortStateAct[3] == 1)||(VCard_Info.PortStateAct[3] == 3)){ + 4ace: 03074683 lbu a3,48(a4) + 4ad2: 4605 li a2,1 + 4ad4: 0fd6f693 andi a3,a3,253 + 4ad8: 00c69463 bne a3,a2,4ae0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1545 + RDR_Sta |= 0x04; + 4adc: 0047e793 ori a5,a5,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1548 + } + + if((VCard_Info.PortStateAct[4] == 1)||(VCard_Info.PortStateAct[4] == 3)){ + 4ae0: 03174703 lbu a4,49(a4) + 4ae4: 4685 li a3,1 + 4ae6: 0fd77713 andi a4,a4,253 + 4aea: 00d71463 bne a4,a3,4af2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1549 + RDR_Sta |= 0x08; + 4aee: 0087e793 ori a5,a5,8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1551 + } + SdData[Sdlen++] = RDR_Sta; + 4af2: 86dc sb a5,13(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1556 + + SdData[2] = (Sdlen&0xFF); + SdData[3] = ( (Sdlen >> 8)&0xFF); + + CRC_Check = CRC16(SdData,Sdlen); + 4af4: 45b9 li a1,14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1553 + SdData[2] = (Sdlen&0xFF); + 4af6: 47b9 li a5,14 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1556 + CRC_Check = CRC16(SdData,Sdlen); + 4af8: 850a mv a0,sp +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1553 + SdData[2] = (Sdlen&0xFF); + 4afa: 815c sb a5,2(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1556 + CRC_Check = CRC16(SdData,Sdlen); + 4afc: dfefe0ef jal ra,30fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1557 + SdData[4] = (CRC_Check&0xFF); + 4b00: 8268 sh a0,4(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1561 + SdData[5] = ((CRC_Check >> 8)&0xFF); + + + Ble_Buff_Print(SdData,Sdlen); + 4b02: 45b9 li a1,14 + 4b04: 850a mv a0,sp + 4b06: b76fe0ef jal ra,2e7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1562 +} + 4b0a: 40f2 lw ra,28(sp) + 4b0c: 6105 addi sp,sp,32 + 4b0e: 8082 ret + +00004b10 : +print_RDRsta_Tack(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1573 + * @name : print_RDRsta_Tack + * @brief : 200ms ״״̬ + * @param : + ******************************************************* */ +void print_RDRsta_Tack(void) +{ + 4b10: 1141 addi sp,sp,-16 + 4b12: c422 sw s0,8(sp) + 4b14: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1576 + static uint32_t print_rdrsta_tisk = 0x00; + + if(VCard_Info.print_rdrsta_flag == 0x01) + 4b16: f9818413 addi s0,gp,-104 # 20001950 + 4b1a: 08744703 lbu a4,135(s0) + 4b1e: 4785 li a5,1 + 4b20: 02f71063 bne a4,a5,4b40 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1578 + { + VCard_Info.print_rdrsta_flag = 0x02; + 4b24: 4789 li a5,2 + 4b26: 08f403a3 sb a5,135(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1580 + print_rdrsta_tisk = SysTick_1ms; + Dbg_Println(DBG_BIT_PC_COMM,"print RAR_sta init"); + 4b2a: 00015597 auipc a1,0x15 + 4b2e: d9258593 addi a1,a1,-622 # 198bc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1579 + print_rdrsta_tisk = SysTick_1ms; + 4b32: 8d81a783 lw a5,-1832(gp) # 20001290 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1580 + Dbg_Println(DBG_BIT_PC_COMM,"print RAR_sta init"); + 4b36: 450d li a0,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1579 + print_rdrsta_tisk = SysTick_1ms; + 4b38: 90f1a823 sw a5,-1776(gp) # 200012c8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1580 + Dbg_Println(DBG_BIT_PC_COMM,"print RAR_sta init"); + 4b3c: e3efd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1585 + } + + + //ϿԶشӡ + if((VCard_Info.print_rdrsta_flag != 0x00)&&((Peripheral_GetBLEState() != GAPROLE_CONNECTED)&&(Peripheral_GetBLEState() != GAPROLE_CONNECTED_ADV)) ) + 4b40: 08744783 lbu a5,135(s0) + 4b44: cb85 beqz a5,4b74 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1585 (discriminator 1) + 4b46: ce8fe0ef jal ra,302e + 4b4a: 4791 li a5,4 + 4b4c: 02f50463 beq a0,a5,4b74 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1585 (discriminator 2) + 4b50: cdefe0ef jal ra,302e + 4b54: 4795 li a5,5 + 4b56: 00f50f63 beq a0,a5,4b74 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1587 + { + Dbg_Println(DBG_BIT_PC_COMM,"Stop print RAR_sta"); + 4b5a: 00015597 auipc a1,0x15 + 4b5e: d7658593 addi a1,a1,-650 # 198d0 + 4b62: 450d li a0,3 + 4b64: e16fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1589 + + VCard_Info.print_rdrsta_flag = 0x00; + 4b68: 00018fa3 sb zero,31(gp) # 200019d7 <__global_pointer$+0x1f> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1590 + print_rdrsta_tisk = SysTick_1ms; + 4b6c: 8d81a783 lw a5,-1832(gp) # 20001290 + 4b70: 90f1a823 sw a5,-1776(gp) # 200012c8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1593 + } + + if((VCard_Info.rdrsta_change_flag != 0x00)&&(SysTick_1ms - print_rdrsta_tisk >= 200)) //˿״̬ı״̬ı + 4b74: 08844783 lbu a5,136(s0) + 4b78: c3a1 beqz a5,4bb8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1593 (discriminator 1) + 4b7a: 8d818613 addi a2,gp,-1832 # 20001290 + 4b7e: 91018693 addi a3,gp,-1776 # 200012c8 + 4b82: 428c lw a1,0(a3) + 4b84: 4218 lw a4,0(a2) + 4b86: 8f0d sub a4,a4,a1 + 4b88: 0c700593 li a1,199 + 4b8c: 02e5f663 bgeu a1,a4,4bb8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1595 + { + print_rdrsta_tisk = SysTick_1ms; + 4b90: 4218 lw a4,0(a2) + 4b92: c298 sw a4,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1596 + if(VCard_Info.rdrsta_change_flag <= 0x03){ + 4b94: 468d li a3,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1599 + VCard_Info.rdrsta_change_flag++; + }else{ + VCard_Info.rdrsta_change_flag = 0x00; + 4b96: 4701 li a4,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1596 + if(VCard_Info.rdrsta_change_flag <= 0x03){ + 4b98: 00f6e563 bltu a3,a5,4ba2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1597 + VCard_Info.rdrsta_change_flag++; + 4b9c: 0785 addi a5,a5,1 + 4b9e: 0ff7f713 zext.b a4,a5 + 4ba2: 08e40423 sb a4,136(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1602 + } + + if(VCard_Info.print_rdrsta_flag == 0x02) + 4ba6: 08744703 lbu a4,135(s0) + 4baa: 4789 li a5,2 + 4bac: 00f71663 bne a4,a5,4bb8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1608 + { + //ӡ״״̬ + print_RDRSta_Changw(); + } + } +} + 4bb0: 4422 lw s0,8(sp) + 4bb2: 40b2 lw ra,12(sp) + 4bb4: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1605 + print_RDRSta_Changw(); + 4bb6: bdd9 j 4a8c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1608 +} + 4bb8: 40b2 lw ra,12(sp) + 4bba: 4422 lw s0,8(sp) + 4bbc: 0141 addi sp,sp,16 + 4bbe: 8082 ret + +00004bc0 : +BLV_DETInfo_Recv_Processing(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1613 + + +//մ +uint8_t BLV_DETInfo_Recv_Processing(uint8_t* RecvData,uint16_t RecvLen) +{ + 4bc0: 1101 addi sp,sp,-32 + 4bc2: ce06 sw ra,28(sp) + 4bc4: cc22 sw s0,24(sp) + 4bc6: ca26 sw s1,20(sp) + 4bc8: c84a sw s2,16(sp) + 4bca: c64e sw s3,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1616 + uint16_t crc_temp = 0; + + if(RecvLen < 11) //2024-11-11 ӳж,ⳤȴ¿ڣãңУѭտŹλ + 4bcc: 47a9 li a5,10 + 4bce: 02b7e863 bltu a5,a1,4bfe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1618 + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro MAXLens Err"); + 4bd2: 00015597 auipc a1,0x15 + 4bd6: d1258593 addi a1,a1,-750 # 198e4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1626 + } + + + if( ((RecvData[3]<<8) + RecvData[2])!= RecvLen) + { + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro Lens Err"); + 4bda: 450d li a0,3 + 4bdc: d9efd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1627 + Ble_Printfln(DBG_BIT_BLE_STATUS, "Lens Err"); + 4be0: 4509 li a0,2 + 4be2: 00015597 auipc a1,0x15 + 4be6: d0e58593 addi a1,a1,-754 # 198f0 + 4bea: a48fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1620 + return 0x01; + 4bee: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1694 + break; + } + + + return 0x00; +} + 4bf0: 40f2 lw ra,28(sp) + 4bf2: 4462 lw s0,24(sp) + 4bf4: 44d2 lw s1,20(sp) + 4bf6: 4942 lw s2,16(sp) + 4bf8: 49b2 lw s3,12(sp) + 4bfa: 6105 addi sp,sp,32 + 4bfc: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1624 + if( ((RecvData[3]<<8) + RecvData[2])!= RecvLen) + 4bfe: 00354983 lbu s3,3(a0) + 4c02: 213c lbu a5,2(a0) + 4c04: 842a mv s0,a0 + 4c06: 09a2 slli s3,s3,0x8 + 4c08: 00f9e9b3 or s3,s3,a5 + 4c0c: 84ae mv s1,a1 + 4c0e: 00b98763 beq s3,a1,4c1c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1626 + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro Lens Err"); + 4c12: 00015597 auipc a1,0x15 + 4c16: cea58593 addi a1,a1,-790 # 198fc + 4c1a: b7c1 j 4bda +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1631 + if((RecvData[0] != 0xCC) || (RecvData[1] != 0xC0)) + 4c1c: 2118 lbu a4,0(a0) + 4c1e: 0cc00793 li a5,204 + 4c22: 00f71763 bne a4,a5,4c30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1631 (discriminator 1) + 4c26: 3118 lbu a4,1(a0) + 4c28: 0c000793 li a5,192 + 4c2c: 02f70263 beq a4,a5,4c50 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1633 + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro Head Err"); + 4c30: 00015597 auipc a1,0x15 + 4c34: ce058593 addi a1,a1,-800 # 19910 + 4c38: 450d li a0,3 + 4c3a: d40fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1634 + Ble_Printfln(DBG_BIT_BLE_STATUS, "Head Err"); + 4c3e: 4509 li a0,2 + 4c40: 00015597 auipc a1,0x15 + 4c44: ce458593 addi a1,a1,-796 # 19924 + 4c48: 9eafe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1635 + return 0x02; + 4c4c: 4509 li a0,2 + 4c4e: b74d j 4bf0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1638 + crc_temp = (RecvData[5]<<8) + RecvData[4]; + 4c50: 00554903 lbu s2,5(a0) + 4c54: 215c lbu a5,4(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1639 + if(crc_temp != NetCRC16_Data(RecvData,RecvLen,4)) + 4c56: 4611 li a2,4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1638 + crc_temp = (RecvData[5]<<8) + RecvData[4]; + 4c58: 0922 slli s2,s2,0x8 + 4c5a: 00f96933 or s2,s2,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1639 + if(crc_temp != NetCRC16_Data(RecvData,RecvLen,4)) + 4c5e: 9cdff0ef jal ra,462a + 4c62: 86aa mv a3,a0 + 4c64: 03250a63 beq a0,s2,4c98 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1641 + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro CRC Err: %04X,%04X",crc_temp,NetCRC16_Data(RecvData,RecvLen,4)); + 4c68: 864a mv a2,s2 + 4c6a: 00015597 auipc a1,0x15 + 4c6e: cc658593 addi a1,a1,-826 # 19930 + 4c72: 450d li a0,3 + 4c74: d06fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1642 + Ble_Printfln(DBG_BIT_BLE_STATUS, "CRC Err: %04X,%04X",crc_temp,NetCRC16_Data(RecvData,RecvLen,4)); + 4c78: 4611 li a2,4 + 4c7a: 85ce mv a1,s3 + 4c7c: 8522 mv a0,s0 + 4c7e: 9adff0ef jal ra,462a + 4c82: 86aa mv a3,a0 + 4c84: 864a mv a2,s2 + 4c86: 4509 li a0,2 + 4c88: 00015597 auipc a1,0x15 + 4c8c: cc458593 addi a1,a1,-828 # 1994c + 4c90: 9a2fe0ef jal ra,2e32 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1643 + return 0x03; + 4c94: 450d li a0,3 + 4c96: bfa9 j 4bf0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1646 + Dbg_Println(DBG_BIT_PC_COMM, "Recv_Pro ACK: %02X",RecvData[10]); + 4c98: 2430 lbu a2,10(s0) + 4c9a: 00015597 auipc a1,0x15 + 4c9e: cc658593 addi a1,a1,-826 # 19960 + 4ca2: 450d li a0,3 + 4ca4: cd6fd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1647 + switch(RecvData[10]) + 4ca8: 243c lbu a5,10(s0) + 4caa: 4755 li a4,21 + 4cac: 17fd addi a5,a5,-1 + 4cae: 0ff7f793 zext.b a5,a5 + 4cb2: 00f76f63 bltu a4,a5,4cd0 + 4cb6: 00015717 auipc a4,0x15 + 4cba: cce70713 addi a4,a4,-818 # 19984 + 4cbe: 20e7c7b3 sh2add a5,a5,a4 + 4cc2: 439c lw a5,0(a5) + 4cc4: 97ba add a5,a5,a4 + 4cc6: 8782 jr a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1650 + NoCard_Read_Version_Processing(RecvData,RecvLen); + 4cc8: 85a6 mv a1,s1 + 4cca: 8522 mv a0,s0 + 4ccc: ac7ff0ef jal ra,4792 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1693 + return 0x00; + 4cd0: 4501 li a0,0 + 4cd2: bf39 j 4bf0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1654 + NoCard_Set_CondGpJd_Processing(RecvData,RecvLen); + 4cd4: 85a6 mv a1,s1 + 4cd6: 8522 mv a0,s0 + 4cd8: b15ff0ef jal ra,47ec +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1655 + break; + 4cdc: bfd5 j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1657 + NoCard_Set_PortInfo_Processing(RecvData,RecvLen); + 4cde: 85a6 mv a1,s1 + 4ce0: 8522 mv a0,s0 + 4ce2: 9e5ff0ef jal ra,46c6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1658 + break; + 4ce6: b7ed j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1660 + if(RecvData[11] == 0x01) + 4ce8: 3420 lbu s0,11(s0) + 4cea: 4785 li a5,1 + 4cec: fef412e3 bne s0,a5,4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1662 + PRINT("OTA Up Start\n"); + 4cf0: 00015517 auipc a0,0x15 + 4cf4: c8450513 addi a0,a0,-892 # 19974 + 4cf8: 53c110ef jal ra,16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1664 + BLE_OTA_flag = 0x01; + 4cfc: 90818623 sb s0,-1780(gp) # 200012c4 + 4d00: bfc1 j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1668 + NoCard_Set_Printf_Processing(RecvData,RecvLen); + 4d02: 85a6 mv a1,s1 + 4d04: 8522 mv a0,s0 + 4d06: bbdff0ef jal ra,48c2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1669 + break; + 4d0a: b7d9 j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1671 + NoCard_Set_RDR_Processing(RecvData,RecvLen); + 4d0c: 85a6 mv a1,s1 + 4d0e: 8522 mv a0,s0 + 4d10: bd3ff0ef jal ra,48e2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1672 + break; + 4d14: bf75 j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1674 + if(RecvData[11] == 0x01) + 4d16: 3438 lbu a4,11(s0) + 4d18: 4785 li a5,1 + 4d1a: faf71be3 bne a4,a5,4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1676 + if(RecvData[12] != 0x00) + 4d1e: 245c lbu a5,12(s0) + 4d20: cb81 beqz a5,4d30 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1678 + VCard_Info.Action |= RecvData[12]; + 4d22: f9818713 addi a4,gp,-104 # 20001950 + 4d26: 08274683 lbu a3,130(a4) + 4d2a: 8fd5 or a5,a5,a3 + 4d2c: 08f70123 sb a5,130(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1681 + NoCard_Reply_Packing_Processing(RecvData,RecvLen,0x01); + 4d30: 4605 li a2,1 + 4d32: 85a6 mv a1,s1 + 4d34: 8522 mv a0,s0 + 4d36: 93fff0ef jal ra,4674 + 4d3a: bf59 j 4cd0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1685 + NoCard_Set_RDRPara_Processing(RecvData,RecvLen); + 4d3c: 85a6 mv a1,s1 + 4d3e: 8522 mv a0,s0 + 4d40: c23ff0ef jal ra,4962 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/sensor_scan.c:1686 + break; + 4d44: b771 j 4cd0 + +00004d46 : +Set_Uart_recvTimeout(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:74 + if(baud == 115200) + 4d46: 6771 lui a4,0x1c + 4d48: 20070713 addi a4,a4,512 # 1c200 <_data_lma+0xc44> + 4d4c: 478d li a5,3 + 4d4e: 00e58e63 beq a1,a4,4d6a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:77 + }else if(baud == 9600) + 4d52: 6709 lui a4,0x2 + 4d54: 58070713 addi a4,a4,1408 # 2580 + 4d58: 00e58963 beq a1,a4,4d6a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:80 + }else if(baud == 2400) + 4d5c: 6705 lui a4,0x1 + 4d5e: 96070713 addi a4,a4,-1696 # 960 <_sinit-0x6a0> + 4d62: 47d1 li a5,20 + 4d64: 00e59363 bne a1,a4,4d6a + 4d68: 478d li a5,3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:76 + set_uart->RecvTimeout = Recv_115200_TimeOut; + 4d6a: 04f509a3 sb a5,83(a0) + 4d6e: 04050a23 sb zero,84(a0) + 4d72: 04050aa3 sb zero,85(a0) + 4d76: 04050b23 sb zero,86(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:87 +} + 4d7a: 8082 ret + +00004d7c : +UARTx_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:30 + switch (uart_id) { + 4d7c: e945 bnez a0,4e2c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:37 + R16_PIN_ALTERNATE &= ~(1<<14); //PA0,PA1UART + 4d7e: 400017b7 lui a5,0x40001 + 4d82: 2f9a lhu a4,24(a5) + 4d84: 76f1 lui a3,0xffffc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:29 +{ + 4d86: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:37 + R16_PIN_ALTERNATE &= ~(1<<14); //PA0,PA1UART + 4d88: 16fd addi a3,a3,-1 # ffffbfff <_eusrstack+0xdfff8fff> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:29 +{ + 4d8a: c606 sw ra,12(sp) + 4d8c: c422 sw s0,8(sp) + 4d8e: c226 sw s1,4(sp) + 4d90: c04a sw s2,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:37 + R16_PIN_ALTERNATE &= ~(1<<14); //PA0,PA1UART + 4d92: 8f75 and a4,a4,a3 + 4d94: af9a sh a4,24(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:39 + GPIOA_SetBits(bTXD_2); + 4d96: 0b878793 addi a5,a5,184 # 400010b8 <_eusrstack+0x1fffe0b8> + 4d9a: 4709 li a4,2 + 4d9c: c398 sw a4,0(a5) + 4d9e: 892e mv s2,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:40 + GPIOA_ModeCfg(bRXD_2, GPIO_ModeIN_PU); // RXD- + 4da0: 4505 li a0,1 + 4da2: 4585 li a1,1 + 4da4: 8432 mv s0,a2 + 4da6: 23bd jal 5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:41 + GPIOA_ModeCfg(bTXD_2, GPIO_ModeOut_PP_5mA); // TXD-עIOߵƽ + 4da8: 458d li a1,3 + 4daa: 4509 li a0,2 + 4dac: 23a5 jal 5314 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:42 + UART_Remap(ENABLE, UART_TX_REMAP_PA1, UART_RX_REMAP_PA0); + 4dae: 4609 li a2,2 + 4db0: 4589 li a1,2 + 4db2: 4505 li a0,1 + 4db4: 7c4000ef jal ra,5578 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:50 + UART_BaudRateCfg(buad); + 4db8: 854a mv a0,s2 + 4dba: 2721 jal 54c2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:51 + R8_UART_FCR = RB_FCR_FIFO_EN;//(2 << 6) | RB_FCR_FIFO_EN; // FIFO򿪣1 0 4ֽ + 4dbc: 400037b7 lui a5,0x40003 + 4dc0: 4705 li a4,1 + 4dc2: 40e78123 sb a4,1026(a5) # 40003402 <_eusrstack+0x20000402> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:52 + R8_UART_LCR = RB_LCR_WORD_SZ; + 4dc6: 468d li a3,3 + 4dc8: 40d781a3 sb a3,1027(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:53 + R8_UART_IER = RB_IER_TXD_EN; + 4dcc: 04000693 li a3,64 + 4dd0: 40d780a3 sb a3,1025(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:54 + R8_UART_DIV = 1; + 4dd4: 40e78723 sb a4,1038(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:56 + UART_ByteTrigCfg( UART_7BYTE_TRIG ); + 4dd8: 450d li a0,3 + 4dda: 2f21 jal 54f2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:57 + UART_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT ); + 4ddc: 4595 li a1,5 + 4dde: 4505 li a0,1 + 4de0: 72c000ef jal ra,550c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:61 + memset(&g_uart[UART_0],0,sizeof(UART_t)); + 4de4: 09018493 addi s1,gp,144 # 20001a48 +PFIC_EnableIRQ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:173 + PFIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); + 4de8: e000e7b7 lui a5,0xe000e + 4dec: 08000737 lui a4,0x8000 + 4df0: 10e7a023 sw a4,256(a5) # e000e100 <_eusrstack+0xc000b100> +UARTx_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:61 + 4df4: 05c00613 li a2,92 + 4df8: 4581 li a1,0 + 4dfa: 8526 mv a0,s1 + 4dfc: aecfd0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:62 + Set_Uart_recvTimeout(&g_uart[UART_0],buad); + 4e00: 85ca mv a1,s2 + 4e02: 8526 mv a0,s1 + 4e04: 3789 jal 4d46 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:63 + g_uart[UART_0].processing_cf = prt_cf; + 4e06: 00845793 srli a5,s0,0x8 + 4e0a: 04848da3 sb s0,91(s1) + 4e0e: 04f48e23 sb a5,92(s1) + 4e12: 01045793 srli a5,s0,0x10 + 4e16: 8061 srli s0,s0,0x18 + 4e18: 04848f23 sb s0,94(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:69 +} + 4e1c: 40b2 lw ra,12(sp) + 4e1e: 4422 lw s0,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:63 + g_uart[UART_0].processing_cf = prt_cf; + 4e20: 04f48ea3 sb a5,93(s1) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:69 +} + 4e24: 4902 lw s2,0(sp) + 4e26: 4492 lw s1,4(sp) + 4e28: 0141 addi sp,sp,16 + 4e2a: 8082 ret + 4e2c: 8082 ret + +00004e2e : +UART_RECEIVE(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:134 + * @brief UART0 + * + * @return none + */ +void UART_RECEIVE(void) +{ + 4e2e: 1101 addi sp,sp,-32 + 4e30: cc22 sw s0,24(sp) + 4e32: ce06 sw ra,28(sp) + 4e34: ca26 sw s1,20(sp) + 4e36: c84a sw s2,16(sp) + 4e38: c64e sw s3,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:137 + uint8_t rev = 0xFF; + uint16_t i = 0; + if(g_uart[UART_0].Receiving == 1) + 4e3a: 09018413 addi s0,gp,144 # 20001a48 + 4e3e: 05044703 lbu a4,80(s0) + 4e42: 4785 li a5,1 + 4e44: 08f71d63 bne a4,a5,4ede +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:139 + { + if(SysTick_1ms - g_uart[UART_0].RecvIdleTiming > g_uart[UART_0].RecvTimeout) + 4e48: 4c38 lw a4,88(s0) + 4e4a: 487c lw a5,84(s0) + 4e4c: 01000937 lui s2,0x1000 + 4e50: 197d addi s2,s2,-1 # ffffff <_data_lma+0xfe4a43> + 4e52: 8d818613 addi a2,gp,-1832 # 20001290 + 4e56: 4214 lw a3,0(a2) + 4e58: 4824 lw s1,80(s0) + 4e5a: 01277733 and a4,a4,s2 + 4e5e: 0187d593 srli a1,a5,0x18 + 4e62: 0722 slli a4,a4,0x8 + 4e64: 8f4d or a4,a4,a1 + 4e66: 0127f7b3 and a5,a5,s2 + 4e6a: 40e68733 sub a4,a3,a4 + 4e6e: 07a2 slli a5,a5,0x8 + 4e70: 0184d693 srli a3,s1,0x18 + 4e74: 8fd5 or a5,a5,a3 + 4e76: 06e7f463 bgeu a5,a4,4ede +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:141 + { + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 4e7a: 421c lw a5,0(a2) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:146 + /*жRX FIFOǷû*/ + if(UART_GetLinSTA() & 0x01) + { + i = R8_UART_RFC; + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + 4e7c: 80a1 srli s1,s1,0x8 + 4e7e: 0804c4b3 zext.h s1,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:141 + g_uart[UART_0].RecvIdleTiming = SysTick_1ms; + 4e82: 0087d713 srli a4,a5,0x8 + 4e86: 04f40ba3 sb a5,87(s0) + 4e8a: 04e40c23 sb a4,88(s0) + 4e8e: 0107d713 srli a4,a5,0x10 + 4e92: 83e1 srli a5,a5,0x18 + 4e94: 04e40ca3 sb a4,89(s0) + 4e98: 04f40d23 sb a5,90(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:143 + if(UART_GetLinSTA() & 0x01) + 4e9c: 40003737 lui a4,0x40003 + 4ea0: 40574783 lbu a5,1029(a4) # 40003405 <_eusrstack+0x20000405> + 4ea4: 8b85 andi a5,a5,1 + 4ea6: c3b9 beqz a5,4eec +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:145 + i = R8_UART_RFC; + 4ea8: 40a74783 lbu a5,1034(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:146 + if((g_uart[UART_0].RecvLen + i) >= USART_BUFFER_SIZE) g_uart[UART_0].RecvLen = 0; + 4eac: 94be add s1,s1,a5 + 4eae: 04f00793 li a5,79 + 4eb2: 0097d663 bge a5,s1,4ebe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:146 (discriminator 1) + 4eb6: 0e0180a3 sb zero,225(gp) # 20001a99 + 4eba: 0e018123 sb zero,226(gp) # 20001a9a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:147 + i = UART_RecvString(&g_uart[UART_0].RecvBuffer[g_uart[UART_0].RecvLen]); + 4ebe: 4828 lw a0,80(s0) + 4ec0: 8121 srli a0,a0,0x8 + 4ec2: 08054533 zext.h a0,a0 + 4ec6: 9522 add a0,a0,s0 + 4ec8: 2d41 jal 5558 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:148 + g_uart[UART_0].RecvLen += i; + 4eca: 483c lw a5,80(s0) + 4ecc: 83a1 srli a5,a5,0x8 + 4ece: 953e add a0,a0,a5 + 4ed0: 080547b3 zext.h a5,a0 + 4ed4: 83a1 srli a5,a5,0x8 + 4ed6: 04a408a3 sb a0,81(s0) + 4eda: 04f40923 sb a5,82(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:173 + memset(g_Dealbuf,0x00,g_DealLen); + g_DealLen = 0x00; + + } + } +} + 4ede: 40f2 lw ra,28(sp) + 4ee0: 4462 lw s0,24(sp) + 4ee2: 44d2 lw s1,20(sp) + 4ee4: 4942 lw s2,16(sp) + 4ee6: 49b2 lw s3,12(sp) + 4ee8: 6105 addi sp,sp,32 + 4eea: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:157 + memcpy(g_Dealbuf,g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + 4eec: 8626 mv a2,s1 + 4eee: 85a2 mv a1,s0 + 4ef0: 04018513 addi a0,gp,64 # 200019f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:158 + g_DealLen = g_uart[UART_0].RecvLen; + 4ef4: 91e18993 addi s3,gp,-1762 # 200012d6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:154 + g_uart[UART_0].Receiving = 0; + 4ef8: 0e018023 sb zero,224(gp) # 20001a98 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:157 + memcpy(g_Dealbuf,g_uart[UART_0].RecvBuffer,g_uart[UART_0].RecvLen); + 4efc: 9d6fd0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:158 + g_DealLen = g_uart[UART_0].RecvLen; + 4f00: 00999023 sh s1,0(s3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:161 + if(g_uart[UART_0].processing_cf != NULL){ + 4f04: 4c7c lw a5,92(s0) + 4f06: 05b44703 lbu a4,91(s0) + 4f0a: 0127f7b3 and a5,a5,s2 + 4f0e: 07a2 slli a5,a5,0x8 + 4f10: 8fd9 or a5,a5,a4 + 4f12: c789 beqz a5,4f1c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:162 + rev = g_uart[UART_0].processing_cf(g_Dealbuf,g_DealLen); + 4f14: 85a6 mv a1,s1 + 4f16: 04018513 addi a0,gp,64 # 200019f8 + 4f1a: 9782 jalr a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:168 + memset(g_Dealbuf,0x00,g_DealLen); + 4f1c: 0009d603 lhu a2,0(s3) + 4f20: 4581 li a1,0 + 4f22: 04018513 addi a0,gp,64 # 200019f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:165 + g_uart[UART_0].RecvLen = 0; + 4f26: 0e0180a3 sb zero,225(gp) # 20001a99 + 4f2a: 0e018123 sb zero,226(gp) # 20001a9a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:166 + g_uart[UART_0].Receiving = 0; + 4f2e: 0e018023 sb zero,224(gp) # 20001a98 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:168 + memset(g_Dealbuf,0x00,g_DealLen); + 4f32: 9b6fd0ef jal ra,20e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User_Drivers/uart.c:169 + g_DealLen = 0x00; + 4f36: 90019f23 sh zero,-1762(gp) # 200012d6 + 4f3a: b755 j 4ede + +00004f3c
: +main(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:32 + * @fn main + * @brief + * @return none + */ +int main(void) +{ + 4f3c: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:33 + HSECFG_Capacitance(HSECap_18p); + 4f3e: 4519 li a0,6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:32 +{ + 4f40: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:33 + HSECFG_Capacitance(HSECap_18p); + 4f42: 2051 jal 4fc6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:34 + SetSysClock(CLK_SOURCE_HSE_PLL_100MHz); + 4f44: 04600513 li a0,70 + 4f48: 1fffb097 auipc ra,0x1fffb + 4f4c: 25c080e7 jalr 604(ra) # 200001a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:38 +#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) + GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU); +#endif + WDT_Init(); + 4f50: 9cefd0ef jal ra,211e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:40 + + UARTx_Init(UART_0,115200,BLV_DETInfo_Recv_Processing); //RS485ͨѶ + 4f54: 65f1 lui a1,0x1c + 4f56: 00000617 auipc a2,0x0 + 4f5a: c6a60613 addi a2,a2,-918 # 4bc0 + 4f5e: 20058593 addi a1,a1,512 # 1c200 <_data_lma+0xc44> + 4f62: 4501 li a0,0 + 4f64: 3d21 jal 4d7c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:42 + + CH57x_BLEInit(); //ʼ BLE Эջײ + 4f66: 2f31 jal 5682 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:43 + HAL_Init(); //ʼӲ㣨HALоƬ衣 + 4f68: 073000ef jal ra,57da +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:44 + GAPRole_PeripheralInit(); //ʼ裨Peripheralɫ GAP + 4f6c: 1f80d0ef jal ra,12164 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:46 + + EEPROM_Init(); + 4f70: e62fd0ef jal ra,25d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:47 + Peripheral_Init(); //ӦòԶʼ + 4f74: d43fd0ef jal ra,2cb6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:48 + Sensor_Init(); //IOɨʼ + 4f78: 8bcfe0ef jal ra,3034 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:50 + + Dbg_Println(DBG_BIT_DEVICE_STATUS,"MCU Start:%s",VER_LIB); + 4f7c: 00015597 auipc a1,0x15 + 4f80: a6058593 addi a1,a1,-1440 # 199dc + 4f84: 4505 li a0,1 + 4f86: 00015617 auipc a2,0x15 + 4f8a: c8a60613 addi a2,a2,-886 # 19c10 + 4f8e: 9ecfd0ef jal ra,217a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:51 + PRINT("MCU_Rst:%04x\n", R8_RESET_STATUS); + 4f92: 400017b7 lui a5,0x40001 + 4f96: 0447c583 lbu a1,68(a5) # 40001044 <_eusrstack+0x1fffe044> + 4f9a: 00015517 auipc a0,0x15 + 4f9e: a5250513 addi a0,a0,-1454 # 199ec + 4fa2: 246110ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:55 (discriminator 1) + + while(1) + { + WDT_Feed(); + 4fa6: 994fd0ef jal ra,213a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:57 (discriminator 1) + + UART_RECEIVE(); + 4faa: 3551 jal 4e2e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:59 (discriminator 1) + + DIP_ScanTask(); + 4fac: 9ecfe0ef jal ra,3198 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:61 (discriminator 1) + + TMOS_SystemProcess(); + 4fb0: 1fffc097 auipc ra,0x1fffc + 4fb4: 976080e7 jalr -1674(ra) # 20000926 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:63 (discriminator 1) + + Blv_CardlessPower_Tack(); + 4fb8: c42fe0ef jal ra,33fa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:65 (discriminator 1) + + print_RDRsta_Tack(); + 4fbc: b55ff0ef jal ra,4b10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:67 (discriminator 1) + + Action_Task(); + 4fc0: c96ff0ef jal ra,4456 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../User/main.c:53 (discriminator 1) + while(1) + 4fc4: b7cd j 4fa6 + +00004fc6 : +HSECFG_Capacitance(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:81 + */ +void HSECFG_Capacitance(HSECapTypeDef c) +{ + uint8_t x32M_c; + + x32M_c = R8_XT32M_TUNE; + 4fc6: 40001737 lui a4,0x40001 + 4fca: 04e74783 lbu a5,78(a4) # 4000104e <_eusrstack+0x1fffe04e> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:82 + x32M_c = (x32M_c & 0x0f) | (c << 4); + 4fce: 0512 slli a0,a0,0x4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:78 +{ + 4fd0: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:82 + x32M_c = (x32M_c & 0x0f) | (c << 4); + 4fd2: 8bbd andi a5,a5,15 + 4fd4: 8fc9 or a5,a5,a0 + 4fd6: 0ff7f793 zext.b a5,a5 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 4fda: 08800693 li a3,136 + 4fde: 8006b6f3 csrrc a3,0x800,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 4fe2: 0886f693 andi a3,a3,136 +HSECFG_Capacitance(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:84 + + sys_safe_access_enable(); + 4fe6: c636 sw a3,12(sp) + 4fe8: 0000100f fence.i + 4fec: 05700693 li a3,87 + 4ff0: 04d70023 sb a3,64(a4) + 4ff4: fa800693 li a3,-88 + 4ff8: 04d70023 sb a3,64(a4) + 4ffc: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:85 + R8_XT32M_TUNE = x32M_c; + 5000: 04f70723 sb a5,78(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:86 + sys_safe_access_disable(); + 5004: 04070023 sb zero,64(a4) + 5008: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 500a: 8007a7f3 csrrs a5,0x800,a5 +HSECFG_Capacitance(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:86 + 500e: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:87 +} + 5012: 0141 addi sp,sp,16 + 5014: 8082 ret + +00005016 : +RTC_InitClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:99 + * @param cnt - the total number of cycles captured by the oscillator + * + * @return RTCʱ, 24~42KHz + */ +uint32_t RTC_InitClock(RTC_OSCCntTypeDef cnt) +{ + 5016: 1101 addi sp,sp,-32 + 5018: ca26 sw s1,20(sp) + 501a: ce06 sw ra,28(sp) + 501c: cc22 sw s0,24(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:106 + uint32_t cyc; + uint32_t last_ov_cnt = 0; + uint32_t new_ov_cnt = 0; + uint32_t ov_cnt_ov_cnt = 0; + + if(cnt +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:110 + } + else if(cnt +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:112 + { + cyc = 1<<(cnt+2); + 502e: 00250493 addi s1,a0,2 + 5032: 289014b3 bset s1,zero,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:122 + } + else + { + cyc = 2047; + } + R16_OSC_CAL_CNT |= RB_OSC_CAL_OV_CLR | RB_OSC_CAL_IF; + 5036: 400017b7 lui a5,0x40001 + 503a: 0507d703 lhu a4,80(a5) # 40001050 <_eusrstack+0x1fffe050> + 503e: 66b1 lui a3,0xc + 5040: 8f55 or a4,a4,a3 + 5042: 04e79823 sh a4,80(a5) +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 5046: 08800713 li a4,136 + 504a: 80073773 csrrc a4,0x800,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 504e: 08877713 andi a4,a4,136 +RTC_InitClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:123 + sys_safe_access_enable(); + 5052: c63a sw a4,12(sp) + 5054: 0000100f fence.i + 5058: 05700713 li a4,87 + 505c: 04e78023 sb a4,64(a5) + 5060: fa800713 li a4,-88 + 5064: 04e78023 sb a4,64(a5) + 5068: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:124 + R8_OSC_CAL_CTRL |= RB_CNT_CLR; + 506c: 0537c703 lbu a4,83(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:125 + R8_OSC_CAL_CTRL = cnt; + 5070: 0ff57513 zext.b a0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:124 + R8_OSC_CAL_CTRL |= RB_CNT_CLR; + 5074: 08076713 ori a4,a4,128 + 5078: 04e789a3 sb a4,83(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:125 + R8_OSC_CAL_CTRL = cnt; + 507c: 04a789a3 sb a0,83(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:126 + R8_OSC_CAL_CTRL |= RB_OSC_CNT_EN; + 5080: 0537c703 lbu a4,83(a5) + 5084: 02076713 ori a4,a4,32 + 5088: 04e789a3 sb a4,83(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:127 + sys_safe_access_disable(); + 508c: 04078023 sb zero,64(a5) + 5090: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5092: 8007a7f3 csrrs a5,0x800,a5 +RTC_InitClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:127 + 5096: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:104 + uint32_t ov_cnt_ov_cnt = 0; + 509a: 4781 li a5,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:102 + uint32_t last_ov_cnt = 0; + 509c: 4601 li a2,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:128 + while(!(R16_OSC_CAL_CNT&RB_OSC_CAL_IF)) + 509e: 400016b7 lui a3,0x40001 + 50a2: 0506d703 lhu a4,80(a3) # 40001050 <_eusrstack+0x1fffe050> + 50a6: 60571713 sext.h a4,a4 + 50aa: 04075263 bgez a4,50ee +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:137 + { + ov_cnt_ov_cnt++; + } + last_ov_cnt = new_ov_cnt; + } + count = ((uint32_t)R16_OSC_CAL_CNT&RB_OSC_CAL_CNT) + ((uint32_t)R8_OSC_CAL_OV_CNT+ov_cnt_ov_cnt*256)*16384; + 50ae: 0506d703 lhu a4,80(a3) + 50b2: 0526c683 lbu a3,82(a3) + 50b6: 00879413 slli s0,a5,0x8 + 50ba: 01271793 slli a5,a4,0x12 + 50be: 9436 add s0,s0,a3 + 50c0: 83c9 srli a5,a5,0x12 + 50c2: 043a slli s0,s0,0xe + 50c4: 943e add s0,s0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:138 + Freq_LSI = GetSysClock()/(count/cyc); + 50c6: 2cc1 jal 5396 + 50c8: 02945433 divu s0,s0,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:140 + return Freq_LSI; +} + 50cc: 40f2 lw ra,28(sp) + 50ce: 44d2 lw s1,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:138 + Freq_LSI = GetSysClock()/(count/cyc); + 50d0: 02855533 divu a0,a0,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:140 +} + 50d4: 4462 lw s0,24(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:138 + Freq_LSI = GetSysClock()/(count/cyc); + 50d6: 92a1a023 sw a0,-1760(gp) # 200012d8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:140 +} + 50da: 6105 addi sp,sp,32 + 50dc: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:114 + else if(cnt +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:120 + cyc = 2047; + 50e8: 7ff00493 li s1,2047 + 50ec: b7a9 j 5036 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:130 + new_ov_cnt = R8_OSC_CAL_OV_CNT; + 50ee: 0526c703 lbu a4,82(a3) + 50f2: 0ff77593 zext.b a1,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:131 + if(new_ov_cnt +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:133 + ov_cnt_ov_cnt++; + 50fa: 0785 addi a5,a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:120 + cyc = 2047; + 50fc: 862e mv a2,a1 + 50fe: b755 j 50a2 + +00005100 : +RTC_InitTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:157 + * @param s - 룬MAX_S = 59 + * + * @return none + */ +void RTC_InitTime(uint16_t y, uint16_t mon, uint16_t d, uint16_t h, uint16_t m, uint16_t s) +{ + 5100: 1141 addi sp,sp,-16 + 5102: 8e3a mv t3,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:165 + uint32_t t32k; + volatile uint8_t clk_pin; + uint32_t temp,temp1,temp2,temp3; + uint32_t tmp,tmp1,tmp2; + + year = y; + 5104: 832a mv t1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:167 + month = mon; + day = 0; + 5106: 4881 li a7,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:168 + while(year > BEGYEAR) + 5108: 7e400e93 li t4,2020 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:170 + { + day += YearLength(year - 1); + 510c: 19000f13 li t5,400 + 5110: 06400f93 li t6,100 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:168 + while(year > BEGYEAR) + 5114: 146eef63 bltu t4,t1,5272 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 + year--; + } + while(month > 1) + { + day += monthLength(IsLeapYear(y), month - 2); + 5118: 19000713 li a4,400 + 511c: 02e57733 remu a4,a0,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:173 + while(month > 1) + 5120: 4e85 li t4,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 + day += monthLength(IsLeapYear(y), month - 2); + 5122: 4f0d li t5,3 + 5124: 4f99 li t6,6 + 5126: 42fd li t0,31 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:173 + while(month > 1) + 5128: 18bee163 bltu t4,a1,52aa +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:180 + month--; + } + + day += d - 1; + sec2 = (h % 24) * 1800 + m * 30 + s / 2; + 512c: 4761 li a4,24 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:179 + day += d - 1; + 512e: 167d addi a2,a2,-1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:181 + t32k = (s & 1) ? (Freq_LSI) : (0); + 5130: 9201a503 lw a0,-1760(gp) # 200012d8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:179 + day += d - 1; + 5134: 9646 add a2,a2,a7 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:181 + t32k = (s & 1) ? (Freq_LSI) : (0); + 5136: 85aa mv a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:180 + sec2 = (h % 24) * 1800 + m * 30 + s / 2; + 5138: 02e6f6b3 remu a3,a3,a4 + 513c: 70800713 li a4,1800 + 5140: 02e68733 mul a4,a3,a4 + 5144: 46f9 li a3,30 + 5146: 02de0e33 mul t3,t3,a3 + 514a: 0017d693 srli a3,a5,0x1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:181 + t32k = (s & 1) ? (Freq_LSI) : (0); + 514e: 8b85 andi a5,a5,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:180 + sec2 = (h % 24) * 1800 + m * 30 + s / 2; + 5150: 9772 add a4,a4,t3 + 5152: 9736 add a4,a4,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:181 + t32k = (s & 1) ? (Freq_LSI) : (0); + 5154: e391 bnez a5,5158 + 5156: 4581 li a1,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:185 (discriminator 4) + t = sec2; + t = t << 16 | t32k; + + temp = day * Freq_LSI; + 5158: 02a607b3 mul a5,a2,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:186 (discriminator 4) + temp1 = temp % 32768; // + 515c: 66a1 lui a3,0x8 + 515e: 16fd addi a3,a3,-1 # 7fff +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:189 (discriminator 4) + temp = temp / 32768; // + + temp2 = temp1 * 675; // temp1 / 32768 * 2831155200 / 65536 + 5160: 2a300613 li a2,675 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:187 (discriminator 4) + temp = temp / 32768; // + 5164: 00f7d813 srli a6,a5,0xf +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:186 (discriminator 4) + temp1 = temp % 32768; // + 5168: 8ff5 and a5,a5,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:189 (discriminator 4) + temp2 = temp1 * 675; // temp1 / 32768 * 2831155200 / 65536 + 516a: 02c787b3 mul a5,a5,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:201 (discriminator 4) + tmp1 = tmp % 32768; // 2s + tmp = tmp / 32768; // 2s + + tmp2 = tmp1 * 2 ; // 2sΪλ ת // tmp1 / 32768 * 65536 + + t32k = (t32k * Freq_LSI + 16384) / 32768; // + 516e: 6611 lui a2,0x4 + 5170: 02a585b3 mul a1,a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:195 (discriminator 4) + tmp = sec2 * Freq_LSI; + 5174: 02a70733 mul a4,a4,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:201 (discriminator 4) + t32k = (t32k * Freq_LSI + 16384) / 32768; // + 5178: 95b2 add a1,a1,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:190 (discriminator 4) + temp3 = temp2 % 512; // ת2sΪλ + 517a: 1ff7f613 andi a2,a5,511 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:193 (discriminator 4) + temp1 = temp3 * 128; // 2sΪλ ת temp3 / 512 * 65536 + 517e: 061e slli a2,a2,0x7 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:201 (discriminator 4) + t32k = (t32k * Freq_LSI + 16384) / 32768; // + 5180: 81bd srli a1,a1,0xf +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:191 (discriminator 4) + temp2 = temp2 / 512; // ת2sΪλ + 5182: 83a5 srli a5,a5,0x9 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:196 (discriminator 4) + tmp1 = tmp % 32768; // 2s + 5184: 8ef9 and a3,a3,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:203 (discriminator 4) + + t32k += tmp2 + temp1; // + 5186: 20c6a6b3 sh1add a3,a3,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:197 (discriminator 4) + tmp = tmp / 32768; // 2s + 518a: 833d srli a4,a4,0xf +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:203 (discriminator 4) + t32k += tmp2 + temp1; // + 518c: 96ae add a3,a3,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:204 (discriminator 4) + tmp += (t32k/65536) + temp2; // 2s + 518e: 97ba add a5,a5,a4 + 5190: 0106d713 srli a4,a3,0x10 + 5194: 97ba add a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:205 (discriminator 4) + temp += (tmp/43200); // + 5196: 672d lui a4,0xb + 5198: 8c070713 addi a4,a4,-1856 # a8c0 + 519c: 02e7d633 divu a2,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:207 (discriminator 4) + + t32k %= 65536; // + 51a0: 0806c6b3 zext.h a3,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:208 (discriminator 4) + tmp %= 43200; // 2s + 51a4: 02e7f733 remu a4,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:205 (discriminator 4) + temp += (tmp/43200); // + 51a8: 9642 add a2,a2,a6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:211 (discriminator 4) + + t = tmp; // 64000 + t = t << 16 | t32k; // 1 + 51aa: 0742 slli a4,a4,0x10 + 51ac: 8f55 or a4,a4,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:216 (discriminator 4) + + + do + { + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + 51ae: 400016b7 lui a3,0x40001 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:216 (discriminator 1) + 51b2: 02f6c783 lbu a5,47(a3) # 4000102f <_eusrstack+0x1fffe02f> + 51b6: 0807f793 andi a5,a5,128 + 51ba: 83dc sb a5,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:217 (discriminator 1) + } while(clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)); + 51bc: 838c lbu a1,7(sp) + 51be: 02f6c783 lbu a5,47(a3) + 51c2: 0807f793 andi a5,a5,128 + 51c6: fef596e3 bne a1,a5,51b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:218 + if(!clk_pin) + 51ca: 839c lbu a5,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:224 + { + while(!clk_pin) + { + do + { + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + 51cc: 400016b7 lui a3,0x40001 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:218 + if(!clk_pin) + 51d0: 12078163 beqz a5,52f2 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 51d4: 08800793 li a5,136 + 51d8: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 51dc: 0887f793 andi a5,a5,136 +RTC_InitTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:229 + } while(clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)); + } + } + + sys_safe_access_enable(); + 51e0: c43e sw a5,8(sp) + 51e2: 0000100f fence.i + 51e6: 400017b7 lui a5,0x40001 + 51ea: 05700693 li a3,87 + 51ee: 04d78023 sb a3,64(a5) # 40001040 <_eusrstack+0x1fffe040> + 51f2: fa800693 li a3,-88 + 51f6: 04d78023 sb a3,64(a5) + 51fa: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:230 + R32_RTC_TRIG = temp; + 51fe: dbd0 sw a2,52(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:231 + R8_RTC_MODE_CTRL |= RB_RTC_LOAD_HI; + 5200: 0317c683 lbu a3,49(a5) + 5204: 0806e693 ori a3,a3,128 + 5208: 02d788a3 sb a3,49(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:232 + sys_safe_access_disable(); + 520c: 04078023 sb zero,64(a5) + 5210: 47a2 lw a5,8(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5212: 8007a7f3 csrrs a5,0x800,a5 +RTC_InitTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:232 + 5216: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:233 + while((R32_RTC_TRIG & 0x3FFF) != (R32_RTC_CNT_DIV2 & 0x3FFF)); + 521a: 6611 lui a2,0x4 + 521c: 400017b7 lui a5,0x40001 + 5220: 167d addi a2,a2,-1 # 3fff +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:233 (discriminator 1) + 5222: 5bd4 lw a3,52(a5) + 5224: 5fcc lw a1,60(a5) + 5226: 8ead xor a3,a3,a1 + 5228: 8ef1 and a3,a3,a2 + 522a: fee5 bnez a3,5222 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 522c: 08800693 li a3,136 + 5230: 8006b6f3 csrrc a3,0x800,a3 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 5234: 0886f693 andi a3,a3,136 +RTC_InitTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:234 + sys_safe_access_enable(); + 5238: c636 sw a3,12(sp) + 523a: 0000100f fence.i + 523e: 05700693 li a3,87 + 5242: 04d78023 sb a3,64(a5) # 40001040 <_eusrstack+0x1fffe040> + 5246: fa800693 li a3,-88 + 524a: 04d78023 sb a3,64(a5) + 524e: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:235 + R32_RTC_TRIG = t; + 5252: dbd8 sw a4,52(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:236 + R8_RTC_MODE_CTRL |= RB_RTC_LOAD_LO; + 5254: 0317c703 lbu a4,49(a5) + 5258: 04076713 ori a4,a4,64 + 525c: 02e788a3 sb a4,49(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:237 + sys_safe_access_disable(); + 5260: 04078023 sb zero,64(a5) + 5264: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5266: 8007a7f3 csrrs a5,0x800,a5 +RTC_InitTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:237 + 526a: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:238 +} + 526e: 0141 addi sp,sp,16 + 5270: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:170 + day += YearLength(year - 1); + 5272: 137d addi t1,t1,-1 + 5274: 03e37733 remu a4,t1,t5 + 5278: 16e00813 li a6,366 + 527c: cf01 beqz a4,5294 + 527e: 03f37733 remu a4,t1,t6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:170 (discriminator 2) + 5282: 16d00813 li a6,365 + 5286: c719 beqz a4,5294 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:170 (discriminator 3) + 5288: 00337813 andi a6,t1,3 + 528c: 00183813 seqz a6,a6 + 5290: 16d80813 addi a6,a6,365 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:170 (discriminator 8) + 5294: 98c2 add a7,a7,a6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:171 (discriminator 8) + year--; + 5296: bdbd j 5114 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 2) + day += monthLength(IsLeapYear(y), month - 2); + 5298: 0015f813 andi a6,a1,1 + 529c: 15f9 addi a1,a1,-2 + 529e: 02bffb63 bgeu t6,a1,52d4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 + 52a2: 01e80593 addi a1,a6,30 + 52a6: 98ae add a7,a7,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:176 + month--; + 52a8: 859a mv a1,t1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 + day += monthLength(IsLeapYear(y), month - 2); + 52aa: fff58313 addi t1,a1,-1 + 52ae: ffe595e3 bne a1,t5,5298 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 1) + 52b2: 4585 li a1,1 + 52b4: cf01 beqz a4,52cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 4) + 52b6: 06400813 li a6,100 + 52ba: 03057833 remu a6,a0,a6 + 52be: 4581 li a1,0 + 52c0: 00080663 beqz a6,52cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 5) + 52c4: 00357593 andi a1,a0,3 + 52c8: 0015b593 seqz a1,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 10) + 52cc: 05f1 addi a1,a1,28 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:175 (discriminator 24) + 52ce: 98ae add a7,a7,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:176 (discriminator 24) + month--; + 52d0: 859a mv a1,t1 + 52d2: bd99 j 5128 + 52d4: 410285b3 sub a1,t0,a6 + 52d8: bfdd j 52ce +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:224 (discriminator 1) + clk_pin = (R8_LSI_CONFIG & RB_LSI_CLK_PIN); + 52da: 02f6c783 lbu a5,47(a3) # 4000102f <_eusrstack+0x1fffe02f> + 52de: 0807f793 andi a5,a5,128 + 52e2: 83dc sb a5,7(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:225 (discriminator 1) + } while(clk_pin != (R8_LSI_CONFIG & RB_LSI_CLK_PIN)); + 52e4: 838c lbu a1,7(sp) + 52e6: 02f6c783 lbu a5,47(a3) + 52ea: 0807f793 andi a5,a5,128 + 52ee: fef596e3 bne a1,a5,52da +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_clk.c:220 + while(!clk_pin) + 52f2: 839c lbu a5,7(sp) + 52f4: d3fd beqz a5,52da + 52f6: bdf9 j 51d4 + +000052f8 : +FLASH_ROM_READ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:43 + * + * @return none + */ +void FLASH_ROM_READ(uint32_t StartAddr, void *Buffer, uint32_t len) +{ + uint32_t i, Length = (len + 3) >> 2; + 52f8: 060d addi a2,a2,3 + 52fa: 9a71 andi a2,a2,-4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:47 + uint32_t *pCode = (uint32_t *)StartAddr; + uint32_t *pBuf = (uint32_t *)Buffer; + + for(i = 0; i < Length; i++) + 52fc: 4781 li a5,0 + 52fe: 00f50733 add a4,a0,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:47 (discriminator 1) + 5302: 00c79363 bne a5,a2,5308 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:51 + { + *pBuf++ = *pCode++; + } +} + 5306: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:49 (discriminator 3) + *pBuf++ = *pCode++; + 5308: 4314 lw a3,0(a4) + 530a: 00f58733 add a4,a1,a5 + 530e: 0791 addi a5,a5,4 + 5310: c314 sw a3,0(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_flash.c:47 (discriminator 3) + for(i = 0; i < Length; i++) + 5312: b7f5 j 52fe + +00005314 : +GPIOA_ModeCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:27 + * + * @return none + */ +void GPIOA_ModeCfg(uint32_t pin, GPIOModeTypeDef mode) +{ + switch(mode) + 5314: 4791 li a5,4 + 5316: 04b7ec63 bltu a5,a1,536e + 531a: 00014797 auipc a5,0x14 + 531e: 6e278793 addi a5,a5,1762 # 199fc + 5322: 20f5c5b3 sh2add a1,a1,a5 + 5326: 4198 lw a4,0(a1) + 5328: 973e add a4,a4,a5 + 532a: 400017b7 lui a5,0x40001 + 532e: 0b478793 addi a5,a5,180 # 400010b4 <_eusrstack+0x1fffe0b4> + 5332: 8702 jr a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:30 + { + case GPIO_ModeIN_Floating: + R32_PA_PD_DRV &= ~pin; + 5334: 4394 lw a3,0(a5) + 5336: 40001737 lui a4,0x40001 + 533a: 40a6f6b3 andn a3,a3,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:42 + R32_PA_PU |= pin; + R32_PA_DIR &= ~pin; + break; + + case GPIO_ModeIN_PD: + R32_PA_PD_DRV |= pin; + 533e: c394 sw a3,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:43 + R32_PA_PU &= ~pin; + 5340: 0b070693 addi a3,a4,176 # 400010b0 <_eusrstack+0x1fffe0b0> + 5344: 429c lw a5,0(a3) + 5346: 40a7f7b3 andn a5,a5,a0 + 534a: a819 j 5360 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:36 + R32_PA_PD_DRV &= ~pin; + 534c: 4394 lw a3,0(a5) + 534e: 40001737 lui a4,0x40001 + 5352: 40a6f6b3 andn a3,a3,a0 + 5356: c394 sw a3,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:37 + R32_PA_PU |= pin; + 5358: 0b070693 addi a3,a4,176 # 400010b0 <_eusrstack+0x1fffe0b0> + 535c: 429c lw a5,0(a3) + 535e: 8fc9 or a5,a5,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:43 + R32_PA_PU &= ~pin; + 5360: c29c sw a5,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:44 + R32_PA_DIR &= ~pin; + 5362: 0a070793 addi a5,a4,160 + 5366: 4398 lw a4,0(a5) + 5368: 40a77733 andn a4,a4,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:54 + R32_PA_DIR |= pin; + break; + + case GPIO_ModeOut_PP_20mA: + R32_PA_PD_DRV |= pin; + R32_PA_DIR |= pin; + 536c: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:60 + break; + + default: + break; + } +} + 536e: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:42 + R32_PA_PD_DRV |= pin; + 5370: 4394 lw a3,0(a5) + 5372: 40001737 lui a4,0x40001 + 5376: 8ec9 or a3,a3,a0 + 5378: b7d9 j 533e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:48 + R32_PA_PD_DRV &= ~pin; + 537a: 4398 lw a4,0(a5) + 537c: 40a77733 andn a4,a4,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:53 + R32_PA_PD_DRV |= pin; + 5380: c398 sw a4,0(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:54 + R32_PA_DIR |= pin; + 5382: 400017b7 lui a5,0x40001 + 5386: 0a078793 addi a5,a5,160 # 400010a0 <_eusrstack+0x1fffe0a0> + 538a: 4398 lw a4,0(a5) + 538c: 8f49 or a4,a4,a0 + 538e: bff9 j 536c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_gpio.c:53 + R32_PA_PD_DRV |= pin; + 5390: 4398 lw a4,0(a5) + 5392: 8f49 or a4,a4,a0 + 5394: b7f5 j 5380 + +00005396 : +GetSysClock(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:101 + if((R8_CLK_SYS_CFG & RB_CLK_SYS_MOD) == RB_CLK_SYS_MOD) + 5396: 400017b7 lui a5,0x40001 + 539a: 2798 lbu a4,8(a5) + 539c: 0c000693 li a3,192 + 53a0: 0c077713 andi a4,a4,192 + 53a4: 00d71563 bne a4,a3,53ae +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:103 + return (Freq_LSI); + 53a8: 9201a503 lw a0,-1760(gp) # 200012d8 + 53ac: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:105 + else if((R8_CLK_SYS_CFG & RB_CLK_SYS_MOD) == 0x40) + 53ae: 2798 lbu a4,8(a5) + 53b0: 04000693 li a3,64 + 53b4: 0c077713 andi a4,a4,192 + 53b8: 02d71063 bne a4,a3,53d8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:107 + return (600000000 / ((R8_CLK_SYS_CFG & 0x1f)?(R8_CLK_SYS_CFG & 0x1f):32)); + 53bc: 2794 lbu a3,8(a5) + 53be: 02000713 li a4,32 + 53c2: 8afd andi a3,a3,31 + 53c4: c299 beqz a3,53ca +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:107 (discriminator 1) + 53c6: 2798 lbu a4,8(a5) + 53c8: 8b7d andi a4,a4,31 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:107 (discriminator 4) + 53ca: 23c34537 lui a0,0x23c34 + 53ce: 60050513 addi a0,a0,1536 # 23c34600 <_eusrstack+0x3c31600> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:111 (discriminator 4) + return (32000000 / ((R8_CLK_SYS_CFG & 0x1f)?(R8_CLK_SYS_CFG & 0x1f):32)); + 53d2: 02e54533 div a0,a0,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:113 (discriminator 4) +} + 53d6: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:111 + return (32000000 / ((R8_CLK_SYS_CFG & 0x1f)?(R8_CLK_SYS_CFG & 0x1f):32)); + 53d8: 2794 lbu a3,8(a5) + 53da: 02000713 li a4,32 + 53de: 8afd andi a3,a3,31 + 53e0: c299 beqz a3,53e6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:111 (discriminator 1) + 53e2: 2798 lbu a4,8(a5) + 53e4: 8b7d andi a4,a4,31 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:111 (discriminator 4) + 53e6: 01e85537 lui a0,0x1e85 + 53ea: 80050513 addi a0,a0,-2048 # 1e84800 <_data_lma+0x1e69244> + 53ee: b7d5 j 53d2 + +000053f0 : +SYS_GetSysTickCnt(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:197 + return SysTick->CNTL; + 53f0: e000f7b7 lui a5,0xe000f + 53f4: 4788 lw a0,8(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:198 +} + 53f6: 8082 ret + +000053f8 : +WWDG_ResetCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:238 + uint8_t ctrl = R8_RST_WDOG_CTRL; + 53f8: 400017b7 lui a5,0x40001 + 53fc: 0467c783 lbu a5,70(a5) # 40001046 <_eusrstack+0x1fffe046> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:237 +{ + 5400: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:238 + uint8_t ctrl = R8_RST_WDOG_CTRL; + 5402: 0ff7f793 zext.b a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:242 + ctrl &= ~RB_WDOG_RST_EN; + 5406: 0fd7f713 andi a4,a5,253 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:240 + if(s == DISABLE) + 540a: c119 beqz a0,5410 + 540c: 0027e713 ori a4,a5,2 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 5410: 08800793 li a5,136 + 5414: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 5418: 0887f793 andi a5,a5,136 +WWDG_ResetCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:249 + sys_safe_access_enable(); + 541c: c63e sw a5,12(sp) + 541e: 0000100f fence.i + 5422: 400017b7 lui a5,0x40001 + 5426: 05700693 li a3,87 + 542a: 04d78023 sb a3,64(a5) # 40001040 <_eusrstack+0x1fffe040> + 542e: fa800693 li a3,-88 + 5432: 04d78023 sb a3,64(a5) + 5436: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:250 + R8_RST_WDOG_CTRL = ctrl; + 543a: 04e78323 sb a4,70(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:251 + sys_safe_access_disable(); + 543e: 04078023 sb zero,64(a5) + 5442: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5444: 8007a7f3 csrrs a5,0x800,a5 +WWDG_ResetCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:251 + 5448: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:252 +} + 544c: 0141 addi sp,sp,16 + 544e: 8082 ret + +00005450 : +WWDG_ClearFlag(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:264 +{ + 5450: 1141 addi sp,sp,-16 +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 5452: 08800793 li a5,136 + 5456: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 545a: 0887f793 andi a5,a5,136 +WWDG_ClearFlag(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:265 + sys_safe_access_enable(); + 545e: c63e sw a5,12(sp) + 5460: 0000100f fence.i + 5464: 400017b7 lui a5,0x40001 + 5468: 05700713 li a4,87 + 546c: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> + 5470: fa800713 li a4,-88 + 5474: 04e78023 sb a4,64(a5) + 5478: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:266 + R8_RST_WDOG_CTRL |= RB_WDOG_INT_FLAG; + 547c: 0467c703 lbu a4,70(a5) + 5480: 01076713 ori a4,a4,16 + 5484: 04e78323 sb a4,70(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:267 + sys_safe_access_disable(); + 5488: 04078023 sb zero,64(a5) + 548c: 47b2 lw a5,12(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 548e: 8007a7f3 csrrs a5,0x800,a5 +WWDG_ClearFlag(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:267 + 5492: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:268 +} + 5496: 0141 addi sp,sp,16 + 5498: 8082 ret + +0000549a <_sbrk>: +_sbrk(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:402 +void *_sbrk(ptrdiff_t incr) +{ + extern char _end[]; + static char *curbrk = _end; + + if ((curbrk + incr < _end) || ((uint32_t)curbrk + incr > (__get_SP() - 64))) + 549a: 81418693 addi a3,gp,-2028 # 200011cc +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:398 +{ + 549e: 87aa mv a5,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:402 + if ((curbrk + incr < _end) || ((uint32_t)curbrk + incr > (__get_SP() - 64))) + 54a0: 4288 lw a0,0(a3) + 54a2: 1fffd717 auipc a4,0x1fffd + 54a6: 6c670713 addi a4,a4,1734 # 20002b68 <_ebss> + 54aa: 97aa add a5,a5,a0 + 54ac: 00e7e963 bltu a5,a4,54be <_sbrk+0x24> +__get_SP(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:630 (discriminator 1) + */ +__attribute__((always_inline)) RV_STATIC_INLINE uint32_t __get_SP(void) +{ + uint32_t result; + + __ASM volatile("mv %0," "sp" : "=r"(result) :); + 54b0: 870a mv a4,sp +_sbrk(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:402 (discriminator 1) + 54b2: fc070713 addi a4,a4,-64 + 54b6: 00f76463 bltu a4,a5,54be <_sbrk+0x24> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:405 + return NULL - 1; + + curbrk += incr; + 54ba: c29c sw a5,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:406 + return curbrk - incr; + 54bc: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:403 + return NULL - 1; + 54be: 557d li a0,-1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_sys.c:407 +} + 54c0: 8082 ret + +000054c2 : +UART_BaudRateCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:43 + * @param baudrate - + * + * @return none + */ +void UART_BaudRateCfg(uint32_t baudrate) +{ + 54c2: 1141 addi sp,sp,-16 + 54c4: c422 sw s0,8(sp) + 54c6: c606 sw ra,12(sp) + 54c8: 842a mv s0,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:46 + uint32_t x; + + x = 10 * GetSysClock() / 8 / baudrate; + 54ca: 35f1 jal 5396 + 54cc: 4729 li a4,10 + 54ce: 02e507b3 mul a5,a0,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:49 + x = (x + 5) / 10; + R16_UART_DL = (uint16_t)x; +} + 54d2: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:46 + x = 10 * GetSysClock() / 8 / baudrate; + 54d4: 838d srli a5,a5,0x3 + 54d6: 0287d7b3 divu a5,a5,s0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:49 +} + 54da: 4422 lw s0,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:47 + x = (x + 5) / 10; + 54dc: 0795 addi a5,a5,5 + 54de: 02e7d7b3 divu a5,a5,a4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:48 + R16_UART_DL = (uint16_t)x; + 54e2: 40003737 lui a4,0x40003 + 54e6: 0807c7b3 zext.h a5,a5 + 54ea: 40f71623 sh a5,1036(a4) # 4000340c <_eusrstack+0x2000040c> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:49 +} + 54ee: 0141 addi sp,sp,16 + 54f0: 8082 ret + +000054f2 : +UART_ByteTrigCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:62 + * + * @return none + */ +void UART_ByteTrigCfg(UARTByteTRIGTypeDef b) +{ + R8_UART_FCR = (R8_UART_FCR & ~RB_FCR_FIFO_TRIG) | (b << 6); + 54f2: 40003737 lui a4,0x40003 + 54f6: 40274783 lbu a5,1026(a4) # 40003402 <_eusrstack+0x20000402> + 54fa: 051a slli a0,a0,0x6 + 54fc: 03f7f793 andi a5,a5,63 + 5500: 8fc9 or a5,a5,a0 + 5502: 0ff7f793 zext.b a5,a5 + 5506: 40f70123 sb a5,1026(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:63 +} + 550a: 8082 ret + +0000550c : +UART_INTCfg(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:83 + */ +void UART_INTCfg(FunctionalState s, uint8_t i) +{ + if(s) + { + R8_UART_IER |= i; + 550c: 400037b7 lui a5,0x40003 + 5510: 4017c703 lbu a4,1025(a5) # 40003401 <_eusrstack+0x20000401> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:81 + if(s) + 5514: c919 beqz a0,552a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:83 + R8_UART_IER |= i; + 5516: 8f4d or a4,a4,a1 + 5518: 40e780a3 sb a4,1025(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:84 + R8_UART_MCR |= RB_MCR_INT_OE; + 551c: 4007c703 lbu a4,1024(a5) + 5520: 00876713 ori a4,a4,8 + 5524: 40e78023 sb a4,1024(a5) + 5528: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:88 + } + else + { + R8_UART_IER &= ~i; + 552a: 40b775b3 andn a1,a4,a1 + 552e: 40b780a3 sb a1,1025(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:90 + } +} + 5532: 8082 ret + +00005534 : +UART_SendString(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:106 + */ +void UART_SendString(uint8_t *buf, uint16_t l) +{ + uint16_t len = l; + + while(len) + 5534: 95aa add a1,a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:108 + { + if(R8_UART_TFC != UART_FIFO_SIZE) + 5536: 400037b7 lui a5,0x40003 + 553a: 4721 li a4,8 + 553c: 400036b7 lui a3,0x40003 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:106 + while(len) + 5540: 00b51363 bne a0,a1,5546 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:114 + { + R8_UART_THR = *buf++; + len--; + } + } +} + 5544: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:108 + if(R8_UART_TFC != UART_FIFO_SIZE) + 5546: 40b7c603 lbu a2,1035(a5) # 4000340b <_eusrstack+0x2000040b> + 554a: fee60be3 beq a2,a4,5540 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:110 + R8_UART_THR = *buf++; + 554e: 2110 lbu a2,0(a0) + 5550: 0505 addi a0,a0,1 + 5552: 40c68423 sb a2,1032(a3) # 40003408 <_eusrstack+0x20000408> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:111 + len--; + 5556: b7ed j 5540 + +00005558 : +UART_RecvString(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:129 + */ +uint16_t UART_RecvString(uint8_t *buf) +{ + uint16_t len = 0; + + while(R8_UART_RFC) + 5558: 4781 li a5,0 + 555a: 40003737 lui a4,0x40003 + 555e: 40a74683 lbu a3,1034(a4) # 4000340a <_eusrstack+0x2000040a> + 5562: e681 bnez a3,556a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:136 + *buf++ = R8_UART_RBR; + len++; + } + + return (len); +} + 5564: 0807c533 zext.h a0,a5 + 5568: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:131 + *buf++ = R8_UART_RBR; + 556a: 40874603 lbu a2,1032(a4) + 556e: 00f506b3 add a3,a0,a5 + 5572: 0785 addi a5,a5,1 + 5574: a290 sb a2,0(a3) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:132 + len++; + 5576: b7e5 j 555e + +00005578 : +UART_Remap(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:153 + */ +void UART_Remap(FunctionalState s, UARTTxPinRemapDef u_tx, UARTRxPinRemapDef u_rx) +{ + if(s) + { + R16_PIN_ALTERNATE_H &= ~(RB_UART_TXD | RB_UART_RXD); // üĴϵ縴λShutDown˯ʱ0 + 5578: 40001737 lui a4,0x40001 + 557c: 2f3e lhu a5,26(a4) + 557e: 0807c7b3 zext.h a5,a5 + 5582: fc07f793 andi a5,a5,-64 + 5586: 0807c7b3 zext.h a5,a5 + 558a: af3e sh a5,26(a4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:151 + if(s) + 558c: c909 beqz a0,559e +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:154 + R16_PIN_ALTERNATE_H |= (u_tx << 3) | u_rx; + 558e: 2f3e lhu a5,26(a4) + 5590: 058e slli a1,a1,0x3 + 5592: 8e5d or a2,a2,a5 + 5594: 8dd1 or a1,a1,a2 + 5596: 0805c5b3 zext.h a1,a1 + 559a: af2e sh a1,26(a4) + 559c: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../StdPeriphDriver/CH57x_uart.c:160 + } + else + { + R16_PIN_ALTERNATE_H &= ~(RB_UART_TXD | RB_UART_RXD); + } +} + 559e: 8082 ret + +000055a0 : +Lib_Read_Flash(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:33 + * @param pBuf - Buffer to store read data + * + * @return None. + */ +uint32_t Lib_Read_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf) +{ + 55a0: 87b2 mv a5,a2 + 55a2: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:34 + FLASH_ROM_READ(addr, pBuf, num * 4); + 55a4: 00259613 slli a2,a1,0x2 + 55a8: 85be mv a1,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:33 +{ + 55aa: c606 sw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:34 + FLASH_ROM_READ(addr, pBuf, num * 4); + 55ac: d4dff0ef jal ra,52f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:36 + return 0; +} + 55b0: 40b2 lw ra,12(sp) + 55b2: 4501 li a0,0 + 55b4: 0141 addi sp,sp,16 + 55b6: 8082 ret + +000055b8 : +Lib_Write_Flash(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:50 + * @param pBuf - Buffer with data to be written + * + * @return None. + */ +uint32_t Lib_Write_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf) +{ + 55b8: 1101 addi sp,sp,-32 + 55ba: cc22 sw s0,24(sp) + 55bc: ca26 sw s1,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:51 + FLASH_ROM_ERASE(addr, num * 4); + 55be: 00259693 slli a3,a1,0x2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:50 +{ + 55c2: 842a mv s0,a0 + 55c4: 84b2 mv s1,a2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:51 + FLASH_ROM_ERASE(addr, num * 4); + 55c6: 85aa mv a1,a0 + 55c8: 4601 li a2,0 + 55ca: 4505 li a0,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:50 +{ + 55cc: ce06 sw ra,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:51 + FLASH_ROM_ERASE(addr, num * 4); + 55ce: c636 sw a3,12(sp) + 55d0: 211d jal 59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:52 + FLASH_ROM_WRITE(addr, pBuf, num * 4); + 55d2: 46b2 lw a3,12(sp) + 55d4: 8626 mv a2,s1 + 55d6: 85a2 mv a1,s0 + 55d8: 4509 li a0,2 + 55da: 2931 jal 59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:54 + return 0; +} + 55dc: 40f2 lw ra,28(sp) + 55de: 4462 lw s0,24(sp) + 55e0: 44d2 lw s1,20(sp) + 55e2: 4501 li a0,0 + 55e4: 6105 addi sp,sp,32 + 55e6: 8082 ret + +000055e8 : +HAL_ProcessEvent(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:148 + * contain more than one event. + * + * @return events. + */ +tmosEvents HAL_ProcessEvent(tmosTaskID task_id, tmosEvents events) +{ + 55e8: 715d addi sp,sp,-80 + 55ea: c4a2 sw s0,72(sp) + 55ec: c686 sw ra,76(sp) + 55ee: 842e mv s0,a1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:151 + uint8_t *msgPtr; + + if(events & SYS_EVENT_MSG) + 55f0: 60559793 sext.h a5,a1 + 55f4: 0007db63 bgez a5,560a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:153 + { // HALϢtmos_msg_receiveȡϢɺɾϢ + msgPtr = tmos_msg_receive(task_id); + 55f8: 2519 jal 5bfe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:154 + if(msgPtr) + 55fa: c111 beqz a0,55fe +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:157 + { + /* De-allocate */ + tmos_msg_deallocate(msgPtr); + 55fc: 23b9 jal 5b4a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:159 + } + return events ^ SYS_EVENT_MSG; + 55fe: 68f41513 binvi a0,s0,0xf +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:198 (discriminator 1) + PRINT("* \n"); + tmos_start_task(halTaskID, HAL_TEST_EVENT, MS1_TO_SYSTEM_TIME(1000)); + return events ^ HAL_TEST_EVENT; + } + return 0; +} + 5602: 40b6 lw ra,76(sp) + 5604: 4426 lw s0,72(sp) + 5606: 6161 addi sp,sp,80 + 5608: 8082 ret +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:161 + if(events & LED_BLINK_EVENT) + 560a: 0015f793 andi a5,a1,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:166 + return events ^ LED_BLINK_EVENT; + 560e: 0015c513 xori a0,a1,1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:161 + if(events & LED_BLINK_EVENT) + 5612: fbe5 bnez a5,5602 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:176 + if(events & HAL_REG_INIT_EVENT) + 5614: 6789 lui a5,0x2 + 5616: 8fed and a5,a5,a1 + 5618: c3b1 beqz a5,565c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:182 + BLE_RegInit(); // У׼RFرRFıRFؼĴʹRFշעУ׼ + 561a: 6df080ef jal ra,e4f8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:183 + lsiFrq = RTC_InitClock( Count_1024 ); + 561e: 4519 li a0,6 + 5620: 9f7ff0ef jal ra,5016 + 5624: 85aa mv a1,a0 + 5626: 92a1a623 sw a0,-1748(gp) # 200012e4 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:184 + conf = BLE_ClockConfig(lsiFrq); + 562a: 850a mv a0,sp + 562c: 2ae1 jal 5804 + 562e: 4651 li a2,20 + 5630: 858a mv a1,sp + 5632: 1068 addi a0,sp,44 + 5634: a9ffc0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:185 + state = TMOS_TimerSet(&conf); + 5638: 1068 addi a0,sp,44 + 563a: 03e010ef jal ra,6678 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:186 + LSIWakeup_MaxTime = GET_WakeUpLSIMaxTime(); + 563e: 24fd jal 592c +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:187 + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, MS1_TO_SYSTEM_TIME(BLE_CALIBRATION_PERIOD)); + 5640: 0002f637 lui a2,0x2f +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:186 + LSIWakeup_MaxTime = GET_WakeUpLSIMaxTime(); + 5644: 92a19a23 sh a0,-1740(gp) # 200012ec +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:187 + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, MS1_TO_SYSTEM_TIME(BLE_CALIBRATION_PERIOD)); + 5648: e0060613 addi a2,a2,-512 # 2ee00 <_data_lma+0x13844> + 564c: 6589 lui a1,0x2 + 564e: 9281c503 lbu a0,-1752(gp) # 200012e0 + 5652: 0cf000ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:188 + return events ^ HAL_REG_INIT_EVENT; + 5656: 68d41513 binvi a0,s0,0xd + 565a: b765 j 5602 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:191 + if(events & HAL_TEST_EVENT) + 565c: 6511 lui a0,0x4 + 565e: 8d6d and a0,a0,a1 + 5660: d14d beqz a0,5602 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:193 + PRINT("* \n"); + 5662: 00014517 auipc a0,0x14 + 5666: 3ae50513 addi a0,a0,942 # 19a10 + 566a: 3cb100ef jal ra,16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:194 + tmos_start_task(halTaskID, HAL_TEST_EVENT, MS1_TO_SYSTEM_TIME(1000)); + 566e: 64000613 li a2,1600 + 5672: 6591 lui a1,0x4 + 5674: 9281c503 lbu a0,-1752(gp) # 200012e0 + 5678: 0a9000ef jal ra,5f20 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:195 + return events ^ HAL_TEST_EVENT; + 567c: 68e41513 binvi a0,s0,0xe + 5680: b749 j 5602 + +00005682 : +CH57x_BLEInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:67 +{ + 5682: 715d addi sp,sp,-80 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:70 + if(tmos_memcmp(VER_LIB, VER_FILE, strlen(VER_FILE)) == FALSE) + 5684: 465d li a2,23 + 5686: 00014597 auipc a1,0x14 + 568a: 38e58593 addi a1,a1,910 # 19a14 + 568e: 00014517 auipc a0,0x14 + 5692: 58250513 addi a0,a0,1410 # 19c10 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:67 +{ + 5696: c686 sw ra,76(sp) + 5698: c4a2 sw s0,72(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:70 + if(tmos_memcmp(VER_LIB, VER_FILE, strlen(VER_FILE)) == FALSE) + 569a: 1fffb097 auipc ra,0x1fffb + 569e: 240080e7 jalr 576(ra) # 200008da + 56a2: e901 bnez a0,56b2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:72 + PRINT("head file error...\n"); + 56a4: 00014517 auipc a0,0x14 + 56a8: 38850513 addi a0,a0,904 # 19a2c + 56ac: 389100ef jal ra,16234 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:73 (discriminator 1) + while(1); + 56b0: a001 j 56b0 +SysTick_Config(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:667 +{ + if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) + return (1); /* Reload value impossible */ + + // SysTick->CNTL = 0; + SysTick->CMP = ticks - 1; /* set reload register */ + 56b2: 6789 lui a5,0x2 + 56b4: e000f737 lui a4,0xe000f + 56b8: 70f78793 addi a5,a5,1807 # 270f + 56bc: cb1c sw a5,16(a4) +PFIC_EnableIRQ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:173 + PFIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); + 56be: e000e637 lui a2,0xe000e + 56c2: 6405 lui s0,0x1 + 56c4: 10862023 sw s0,256(a2) # e000e100 <_eusrstack+0xc000b100> +SysTick_Config(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:669 + PFIC_EnableIRQ(SysTick_IRQn); + SysTick->CTLR = SysTick_CTLR_INIT | // + 56c8: 02f00793 li a5,47 + 56cc: c31c sw a5,0(a4) +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 56ce: 08800793 li a5,136 + 56d2: 8007b7f3 csrrc a5,0x800,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 56d6: 0887f793 andi a5,a5,136 +CH57x_BLEInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:79 + sys_safe_access_enable( ); + 56da: c03e sw a5,0(sp) + 56dc: 0000100f fence.i + 56e0: 400017b7 lui a5,0x40001 + 56e4: 05700713 li a4,87 + 56e8: 04e78023 sb a4,64(a5) # 40001040 <_eusrstack+0x1fffe040> + 56ec: fa800713 li a4,-88 + 56f0: 04e78023 sb a4,64(a5) + 56f4: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:80 + R32_MISC_CTRL = (R32_MISC_CTRL&(~(0x3f<<24)))|(0xe<<24); + 56f8: 47b8 lw a4,72(a5) + 56fa: c10006b7 lui a3,0xc1000 + 56fe: 16fd addi a3,a3,-1 # c0ffffff <_eusrstack+0xa0ffcfff> + 5700: 8f75 and a4,a4,a3 + 5702: 0e0006b7 lui a3,0xe000 + 5706: 8f55 or a4,a4,a3 + 5708: c7b8 sw a4,72(a5) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:81 + sys_safe_access_disable( ); + 570a: 04078023 sb zero,64(a5) + 570e: 4782 lw a5,0(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5710: 8007a7f3 csrrs a5,0x800,a5 +CH57x_BLEInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:81 + 5714: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:82 + g_LLE_IRQLibHandlerLocation = (uint32_t)LLE_IRQLibHandler; + 5718: 1fffb797 auipc a5,0x1fffb + 571c: 67a78793 addi a5,a5,1658 # 20000d92 + 5720: 92f1a223 sw a5,-1756(gp) # 200012dc +PFIC_SetPriority(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:268 + PFIC->IPRIOR[(uint32_t)(IRQn)] = priority ? 0x80 : 0; + 5724: f8000793 li a5,-128 + 5728: 40f60aa3 sb a5,1045(a2) +CH57x_BLEInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:84 + tmos_memset(&cfg, 0, sizeof(bleConfig_t)); + 572c: 4581 li a1,0 + 572e: 03400613 li a2,52 + 5732: 0068 addi a0,sp,12 + 5734: 1fffb097 auipc ra,0x1fffb + 5738: 166080e7 jalr 358(ra) # 2000089a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:85 + cfg.MEMAddr = (uint32_t)MEM_BUF; + 573c: 1fffc797 auipc a5,0x1fffc + 5740: 36c78793 addi a5,a5,876 # 20001aa8 + 5744: c63e sw a5,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:86 + cfg.MEMLen = (uint32_t)BLE_MEMHEAP_SIZE; + 5746: e0040793 addi a5,s0,-512 # e00 <_sinit-0x200> + 574a: 80fc sh a5,16(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:90 + cfg.TxPower = (uint32_t)BLE_TX_POWER; + 574c: 77e1 lui a5,0xffff8 + 574e: 8127c793 xori a5,a5,-2030 + 5752: 02f11023 sh a5,32(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:98 + cfg.SNVAddr = (uint32_t)BLE_SNV_ADDR; + 5756: 0003b7b7 lui a5,0x3b + 575a: ca3e sw a5,20(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:99 + cfg.SNVBlock = (uint32_t)BLE_SNV_BLOCK; + 575c: 030107b7 lui a5,0x3010 + 5760: 10078793 addi a5,a5,256 # 3010100 <_data_lma+0x2ff4b44> + 5764: cc3e sw a5,24(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:87 + cfg.BufMaxLen = (uint32_t)BLE_BUFF_MAX_LEN; + 5766: 08000793 li a5,128 + 576a: 86fc sh a5,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:89 + cfg.TxNumEvent = (uint32_t)BLE_TX_NUM_EVENT; + 576c: 4785 li a5,1 + 576e: 00f10f23 sb a5,30(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:101 + cfg.readFlashCB = Lib_Read_Flash; + 5772: 00000797 auipc a5,0x0 + 5776: e2e78793 addi a5,a5,-466 # 55a0 + 577a: dc3e sw a5,56(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:116 + GetMACAddress(MacAddr); + 577c: 0003f5b7 lui a1,0x3f +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:102 + cfg.writeFlashCB = Lib_Write_Flash; + 5780: 00000797 auipc a5,0x0 + 5784: e3878793 addi a5,a5,-456 # 55b8 + 5788: de3e sw a5,60(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:116 + GetMACAddress(MacAddr); + 578a: 4681 li a3,0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:104 + cfg.srandCB = SYS_GetSysTickCnt; + 578c: 00000797 auipc a5,0x0 + 5790: c6478793 addi a5,a5,-924 # 53f0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:116 + GetMACAddress(MacAddr); + 5794: 0050 addi a2,sp,4 + 5796: 05e1 addi a1,a1,24 # 3f018 <_data_lma+0x23a5c> + 5798: 4519 li a0,6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:104 + cfg.srandCB = SYS_GetSysTickCnt; + 579a: d63e sw a5,44(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:116 + GetMACAddress(MacAddr); + 579c: 2ca9 jal 59f6 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:119 + cfg.MacAddr[i] = MacAddr[i]; // ʹоƬmacַ + 579e: 4619 li a2,6 + 57a0: 004c addi a1,sp,4 + 57a2: 02310513 addi a0,sp,35 + 57a6: 92dfc0ef jal ra,20d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:123 + if(!cfg.MEMAddr || cfg.MEMLen < 3 * 1024) + 57aa: 47b2 lw a5,12(sp) + 57ac: c791 beqz a5,57b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:123 (discriminator 1) + 57ae: 80bc lhu a5,16(sp) + 57b0: bff40413 addi s0,s0,-1025 + 57b4: 00f46363 bltu s0,a5,57ba +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:125 (discriminator 3) + while(1); + 57b8: a001 j 57b8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:128 + i = BLE_LibInit(&cfg); + 57ba: 0068 addi a0,sp,12 + 57bc: 463000ef jal ra,641e + 57c0: 85aa mv a1,a0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:129 + if(i) + 57c2: c901 beqz a0,57d2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:131 + PRINT("LIB init error code: %x ...\n", i); + 57c4: 00014517 auipc a0,0x14 + 57c8: 27c50513 addi a0,a0,636 # 19a40 + 57cc: 21d100ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:132 (discriminator 4) + while(1); + 57d0: a001 j 57d0 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:134 +} + 57d2: 40b6 lw ra,76(sp) + 57d4: 4426 lw s0,72(sp) + 57d6: 6161 addi sp,sp,80 + 57d8: 8082 ret + +000057da : +HAL_Init(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:210 + * @param None. + * + * @return None. + */ +void HAL_Init() +{ + 57da: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:211 + halTaskID = TMOS_ProcessEventRegister(HAL_ProcessEvent); + 57dc: 00000517 auipc a0,0x0 + 57e0: e0c50513 addi a0,a0,-500 # 55e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:210 +{ + 57e4: c606 sw ra,12(sp) + 57e6: c422 sw s0,8(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:211 + halTaskID = TMOS_ProcessEventRegister(HAL_ProcessEvent); + 57e8: 40d000ef jal ra,63f4 + 57ec: 92818413 addi s0,gp,-1752 # 200012e0 + 57f0: a008 sb a0,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:212 + HAL_TimeInit(); + 57f2: 2825 jal 582a +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:223 +#endif +#if(defined HAL_KEY) && (HAL_KEY == TRUE) + HAL_KeyInit(); +#endif +#if(defined BLE_CALIBRATION_ENABLE) && (BLE_CALIBRATION_ENABLE == TRUE) + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, 800); // У׼500msУ׼ʱС10ms + 57f4: 2008 lbu a0,0(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:226 +#endif +// tmos_start_task( halTaskID, HAL_TEST_EVENT, 1600 ); // һ +} + 57f6: 4422 lw s0,8(sp) + 57f8: 40b2 lw ra,12(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:223 + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, 800); // У׼500msУ׼ʱС10ms + 57fa: 32000613 li a2,800 + 57fe: 6589 lui a1,0x2 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:226 +} + 5800: 0141 addi sp,sp,16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/MCU.c:223 + tmos_start_task(halTaskID, HAL_REG_INIT_EVENT, 800); // У׼500msУ׼ʱС10ms + 5802: af39 j 5f20 + +00005804 : +BLE_ClockConfig(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:96 + conf.ClockFrequency = lsifreq; + conf.ClockMaxCount = RTC_MAX_COUNT; + conf.getClockValue = SYS_GetClockValue; + conf.SetPendingIRQ = SYS_SetPendingIRQ; + + return conf; + 5804: 1fffb717 auipc a4,0x1fffb + 5808: cc270713 addi a4,a4,-830 # 200004c6 + 580c: c118 sw a4,0(a0) + 580e: a8c00737 lui a4,0xa8c00 + 5812: c158 sw a4,4(a0) + 5814: 6705 lui a4,0x1 + 5816: 9c470713 addi a4,a4,-1596 # 9c4 <_sinit-0x63c> + 581a: a53a sh a4,10(a0) + 581c: 1fffb717 auipc a4,0x1fffb + 5820: cc270713 addi a4,a4,-830 # 200004de +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:91 + conf.ClockFrequency = lsifreq; + 5824: a50e sh a1,8(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:96 + return conf; + 5826: c918 sw a4,16(a0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:97 +} + 5828: 8082 ret + +0000582a : +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:109 + * @param None. + * + * @return None. + */ +void HAL_TimeInit(void) +{ + 582a: 7139 addi sp,sp,-64 + 582c: da26 sw s1,52(sp) + 582e: de06 sw ra,60(sp) + 5830: dc22 sw s0,56(sp) + 5832: d84a sw s2,48(sp) + 5834: d64e sw s3,44(sp) + 5836: d452 sw s4,40(sp) +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 5838: 08800493 li s1,136 + 583c: 8004b7f3 csrrc a5,0x800,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 5840: 0887f793 andi a5,a5,136 +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:112 + bleClockConfig_t conf; + + sys_safe_access_enable(); + 5844: c23e sw a5,4(sp) + 5846: 0000100f fence.i + 584a: 40001437 lui s0,0x40001 + 584e: 05700993 li s3,87 + 5852: 05340023 sb s3,64(s0) # 40001040 <_eusrstack+0x1fffe040> + 5856: fa800913 li s2,-88 + 585a: 05240023 sb s2,64(s0) + 585e: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:113 + R8_LSI_CONFIG |= RB_CLK_LSI_PON; + 5862: 02f44783 lbu a5,47(s0) + 5866: 0017e793 ori a5,a5,1 + 586a: 02f407a3 sb a5,47(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:114 + sys_safe_access_disable(); + 586e: 04040023 sb zero,64(s0) + 5872: 4792 lw a5,4(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5874: 8007a7f3 csrrs a5,0x800,a5 +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:114 + 5878: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:116 + + lsiFrq = RTC_InitClock( Count_1024 ); + 587c: 4519 li a0,6 + 587e: f98ff0ef jal ra,5016 + 5882: 92c18a13 addi s4,gp,-1748 # 200012e4 + 5886: 85aa mv a1,a0 + 5888: 00aa2023 sw a0,0(s4) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:118 + + PRINT("lsiFrq = %d\n",lsiFrq); + 588c: 00014517 auipc a0,0x14 + 5890: 1d450513 addi a0,a0,468 # 19a60 + 5894: 155100ef jal ra,161e8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:120 + + RTC_InitTime( 2021,1,28,0,0,0 ); + 5898: 4681 li a3,0 + 589a: 4671 li a2,28 + 589c: 4585 li a1,1 + 589e: 4781 li a5,0 + 58a0: 4701 li a4,0 + 58a2: 7e500513 li a0,2021 + 58a6: 85bff0ef jal ra,5100 +BLE_ClockConfig(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:91 + conf.ClockFrequency = lsifreq; + 58aa: 000a5783 lhu a5,0(s4) +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:122 + + conf = BLE_ClockConfig(lsiFrq); + 58ae: 1fffb717 auipc a4,0x1fffb + 58b2: c1870713 addi a4,a4,-1000 # 200004c6 + 58b6: c63a sw a4,12(sp) + 58b8: 82fc sh a5,20(sp) + 58ba: 6785 lui a5,0x1 + 58bc: 9c478793 addi a5,a5,-1596 # 9c4 <_sinit-0x63c> + 58c0: a8c00737 lui a4,0xa8c00 + 58c4: 83fc sh a5,22(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:123 + TMOS_TimerInit( &conf ); + 58c6: 0068 addi a0,sp,12 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:122 + conf = BLE_ClockConfig(lsiFrq); + 58c8: 1fffb797 auipc a5,0x1fffb + 58cc: c1678793 addi a5,a5,-1002 # 200004de + 58d0: c83a sw a4,16(sp) + 58d2: ce3e sw a5,28(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:123 + TMOS_TimerInit( &conf ); + 58d4: 5d7000ef jal ra,66aa +__risc_v_disable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:154 + __asm volatile("csrrc %0, 0x800, %1" : \ + 58d8: 8004b4f3 csrrc s1,0x800,s1 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:156 + return result & 0x88; + 58dc: 0884f493 andi s1,s1,136 +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:125 + + sys_safe_access_enable(); + 58e0: c426 sw s1,8(sp) + 58e2: 0000100f fence.i + 58e6: 05340023 sb s3,64(s0) + 58ea: 05240023 sb s2,64(s0) + 58ee: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:126 + __nop();__nop(); + 58f2: 0001 nop + 58f4: 0001 nop +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:127 + R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // ģʽ + 58f6: 03144783 lbu a5,49(s0) + 58fa: 0207e793 ori a5,a5,32 + 58fe: 02f408a3 sb a5,49(s0) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:128 + sys_safe_access_disable(); + 5902: 04040023 sb zero,64(s0) + 5906: 47a2 lw a5,8(sp) +__risc_v_enable_irq(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:138 + __asm volatile("csrrs %0, 0x800, %1" : \ + 5908: 8007a7f3 csrrs a5,0x800,a5 +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:128 + 590c: 0000100f fence.i +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:130 + PFIC_EnableIRQ(RTC_IRQn); +} + 5910: 50f2 lw ra,60(sp) + 5912: 5462 lw s0,56(sp) +PFIC_EnableIRQ(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h:173 + PFIC->IENR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); + 5914: e000e7b7 lui a5,0xe000e + 5918: 10000737 lui a4,0x10000 + 591c: 10e7a023 sw a4,256(a5) # e000e100 <_eusrstack+0xc000b100> +HAL_TimeInit(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/RTC.c:130 + 5920: 54d2 lw s1,52(sp) + 5922: 5942 lw s2,48(sp) + 5924: 59b2 lw s3,44(sp) + 5926: 5a22 lw s4,40(sp) + 5928: 6121 addi sp,sp,64 + 592a: 8082 ret + +0000592c : +GET_WakeUpLSIMaxTime(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:85 + * @brief ȡǰǰʱ + * + * @param none + */ +uint16_t GET_WakeUpLSIMaxTime(void) +{ + 592c: 1141 addi sp,sp,-16 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:88 + uint16_t pre_time; + + pre_time = RTC_TO_US(45)+200; + 592e: 9201a503 lw a0,-1760(gp) # 200012d8 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:85 +{ + 5932: c606 sw ra,12(sp) + 5934: c422 sw s0,8(sp) + 5936: c226 sw s1,4(sp) + 5938: c04a sw s2,0(sp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:88 + pre_time = RTC_TO_US(45)+200; + 593a: 745110ef jal ra,1787e <__floatunsidf> + 593e: 1fffc917 auipc s2,0x1fffc + 5942: 8ba90913 addi s2,s2,-1862 # 200011f8 <_impure_ptr+0x8> + 5946: 862a mv a2,a0 + 5948: 86ae mv a3,a1 + 594a: 00092503 lw a0,0(s2) + 594e: 00492583 lw a1,4(s2) + 5952: 1fffc417 auipc s0,0x1fffc + 5956: 8ae40413 addi s0,s0,-1874 # 20001200 <_impure_ptr+0x10> + 595a: 3e8110ef jal ra,16d42 <__divdf3> + 595e: 4010 lw a2,0(s0) + 5960: 4054 lw a3,4(s0) + 5962: 14f110ef jal ra,172b0 <__muldf3> + 5966: 4010 lw a2,0(s0) + 5968: 4054 lw a3,4(s0) + 596a: 147110ef jal ra,172b0 <__muldf3> + 596e: 862a mv a2,a0 + 5970: 86ae mv a3,a1 + 5972: 00092503 lw a0,0(s2) + 5976: 00492583 lw a1,4(s2) + 597a: 3c8110ef jal ra,16d42 <__divdf3> + 597e: 84aa mv s1,a0 + 5980: 842e mv s0,a1 + 5982: 862a mv a2,a0 + 5984: 86ae mv a3,a1 + 5986: 00092503 lw a0,0(s2) + 598a: 00492583 lw a1,4(s2) + 598e: 1fffc917 auipc s2,0x1fffc + 5992: 88290913 addi s2,s2,-1918 # 20001210 <_impure_ptr+0x20> + 5996: 3ac110ef jal ra,16d42 <__divdf3> + 599a: 1fffc797 auipc a5,0x1fffc + 599e: 86e78793 addi a5,a5,-1938 # 20001208 <_impure_ptr+0x18> + 59a2: 4390 lw a2,0(a5) + 59a4: 43d4 lw a3,4(a5) + 59a6: 10b110ef jal ra,172b0 <__muldf3> + 59aa: 00092603 lw a2,0(s2) + 59ae: 00492683 lw a3,4(s2) + 59b2: 48b100ef jal ra,1663c <__adddf3> + 59b6: 603110ef jal ra,177b8 <__fixunsdfsi> + 59ba: 0c850793 addi a5,a0,200 + 59be: 0807c7b3 zext.h a5,a5 +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:90 + pre_time = pre_time > 1600 ? pre_time:1600; + pre_time = US_TO_RTC(pre_time); + 59c2: 64000513 li a0,1600 + 59c6: 0aa7f533 maxu a0,a5,a0 + 59ca: 645110ef jal ra,1780e <__floatsidf> + 59ce: 8626 mv a2,s1 + 59d0: 86a2 mv a3,s0 + 59d2: 0df110ef jal ra,172b0 <__muldf3> + 59d6: 00092603 lw a2,0(s2) + 59da: 00492683 lw a3,4(s2) + 59de: 45f100ef jal ra,1663c <__adddf3> + 59e2: 5d7110ef jal ra,177b8 <__fixunsdfsi> +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../HAL/SLEEP.c:93 + + return pre_time; +} + 59e6: 40b2 lw ra,12(sp) + 59e8: 4422 lw s0,8(sp) + 59ea: 08054533 zext.h a0,a0 + 59ee: 4492 lw s1,4(sp) + 59f0: 4902 lw s2,0(sp) + 59f2: 0141 addi sp,sp,16 + 59f4: 8082 ret + +000059f6 : +FLASH_EEPROM_CMD(): + 59f6: 1101 addi sp,sp,-32 + 59f8: 872a mv a4,a0 + 59fa: ce06 sw ra,28(sp) + 59fc: 852e mv a0,a1 + 59fe: cc26 sw s1,24(sp) + 5a00: 85b2 mv a1,a2 + 5a02: ca4a sw s2,20(sp) + 5a04: 8636 mv a2,a3 + 5a06: c622 sw s0,12(sp) + 5a08: 40002437 lui s0,0x40002 + 5a0c: e000e7b7 lui a5,0xe000e + 5a10: 56fd li a3,-1 + 5a12: 0007a903 lw s2,0(a5) # e000e000 <_eusrstack+0xc000b000> + 5a16: 43c4 lw s1,4(a5) + 5a18: 18d7a023 sw a3,384(a5) + 5a1c: 18d7a223 sw a3,388(a5) + 5a20: fff70793 addi a5,a4,-1 # fffffff <_data_lma+0xffe4a43> + 5a24: 0ff7f793 zext.b a5,a5 + 5a28: 4689 li a3,2 + 5a2a: 0af6e063 bltu a3,a5,5aca + 5a2e: 400017b7 lui a5,0x40001 + 5a32: 0457c783 lbu a5,69(a5) # 40001045 <_eusrstack+0x1fffe045> + 5a36: 000406b7 lui a3,0x40 + 5a3a: 0207f793 andi a5,a5,32 + 5a3e: e399 bnez a5,5a44 + 5a40: 0003c6b7 lui a3,0x3c + 5a44: 57f9 li a5,-2 + 5a46: 04d57563 bgeu a0,a3,5a90 + 5a4a: 00c50833 add a6,a0,a2 + 5a4e: 0506e163 bltu a3,a6,5a90 + 5a52: 4789 li a5,2 + 5a54: 04f71463 bne a4,a5,5a9c + 5a58: 8209 srli a2,a2,0x2 + 5a5a: 1fffb097 auipc ra,0x1fffb + 5a5e: bd0080e7 jalr -1072(ra) # 2000062a + 5a62: 87aa mv a5,a0 + 5a64: 40001737 lui a4,0x40001 + 5a68: 05700693 li a3,87 + 5a6c: 04d70023 sb a3,64(a4) # 40001040 <_eusrstack+0x1fffe040> + 5a70: fa800693 li a3,-88 + 5a74: 04d70023 sb a3,64(a4) + 5a78: 04474683 lbu a3,68(a4) + 5a7c: 8ac1 andi a3,a3,16 + 5a7e: 04d70223 sb a3,68(a4) + 5a82: e000e737 lui a4,0xe000e + 5a86: 11272023 sw s2,256(a4) # e000e100 <_eusrstack+0xc000b100> + 5a8a: 10972223 sw s1,260(a4) + 5a8e: 4432 lw s0,12(sp) + 5a90: 40f2 lw ra,28(sp) + 5a92: 44e2 lw s1,24(sp) + 5a94: 4952 lw s2,20(sp) + 5a96: 853e mv a0,a5 + 5a98: 6105 addi sp,sp,32 + 5a9a: 8082 ret + 5a9c: 4785 li a5,1 + 5a9e: 00f71f63 bne a4,a5,5abc + 5aa2: 6785 lui a5,0x1 + 5aa4: 17fd addi a5,a5,-1 # fff <_sinit-0x1> + 5aa6: 963e add a2,a2,a5 + 5aa8: 8fe9 and a5,a5,a0 + 5aaa: 963e add a2,a2,a5 + 5aac: 77fd lui a5,0xfffff + 5aae: 8e7d and a2,a2,a5 + 5ab0: 8d7d and a0,a0,a5 + 5ab2: 1fffb097 auipc ra,0x1fffb + 5ab6: bd8080e7 jalr -1064(ra) # 2000068a + 5aba: b765 j 5a62 + 5abc: 1fffb097 auipc ra,0x1fffb + 5ac0: c40080e7 jalr -960(ra) # 200006fc + 5ac4: 00150793 addi a5,a0,1 + 5ac8: bf71 j 5a64 + 5aca: 47b5 li a5,13 + 5acc: 00f71a63 bne a4,a5,5ae0 + 5ad0: 0b900513 li a0,185 + 5ad4: 1fffb097 auipc ra,0x1fffb + 5ad8: c78080e7 jalr -904(ra) # 2000074c + 5adc: 4781 li a5,0 + 5ade: b759 j 5a64 + 5ae0: 47b1 li a5,12 + 5ae2: 00f71563 bne a4,a5,5aec + 5ae6: 0ab00513 li a0,171 + 5aea: b7ed j 5ad4 + 5aec: 4799 li a5,6 + 5aee: 00f71763 bne a4,a5,5afc + 5af2: 1fffb097 auipc ra,0x1fffb + 5af6: c6c080e7 jalr -916(ra) # 2000075e + 5afa: b7cd j 5adc + 5afc: 479d li a5,7 + 5afe: 00f71b63 bne a4,a5,5b14 + 5b02: 0005a023 sw zero,0(a1) # 2000 <_einit+0xffc> + 5b06: 0005a223 sw zero,4(a1) + 5b0a: 1fffb097 auipc ra,0x1fffb + 5b0e: cb4080e7 jalr -844(ra) # 200007be + 5b12: b7e9 j 5adc + 5b14: 4791 li a5,4 + 5b16: 00f71763 bne a4,a5,5b24 + 5b1a: 1fffb097 auipc ra,0x1fffb + 5b1e: ce2080e7 jalr -798(ra) # 200007fc + 5b22: bf6d j 5adc + 5b24: 4781 li a5,0 + 5b26: df1d beqz a4,5a64 + 5b28: 57f1 li a5,-4 + 5b2a: bf2d j 5a64 + +00005b2c : +tmos_msg_enqueue(): + 5b2c: fe05ac23 sw zero,-8(a1) + 5b30: 411c lw a5,0(a0) + 5b32: e789 bnez a5,5b3c + 5b34: 0001 nop + 5b36: 0001 nop + 5b38: c10c sw a1,0(a0) + 5b3a: 8082 ret + 5b3c: 873e mv a4,a5 + 5b3e: ff87a783 lw a5,-8(a5) # ffffeff8 <_eusrstack+0xdfffbff8> + 5b42: ffed bnez a5,5b3c + 5b44: feb72c23 sw a1,-8(a4) + 5b48: 8082 ret + +00005b4a : +tmos_msg_deallocate(): + 5b4a: 1141 addi sp,sp,-16 + 5b4c: c422 sw s0,8(sp) + 5b4e: e000e437 lui s0,0xe000e + 5b52: c226 sw s1,4(sp) + 5b54: 4004 lw s1,0(s0) + 5b56: 00200737 lui a4,0x200 + 5b5a: c606 sw ra,12(sp) + 5b5c: 8cf9 and s1,s1,a4 + 5b5e: 18e42023 sw a4,384(s0) # e000e180 <_eusrstack+0xc000b180> + 5b62: 0000100f fence.i + 5b66: e909 bnez a0,5b78 + 5b68: 10942023 sw s1,256(s0) + 5b6c: 4515 li a0,5 + 5b6e: 40b2 lw ra,12(sp) + 5b70: 4422 lw s0,8(sp) + 5b72: 4492 lw s1,4(sp) + 5b74: 0141 addi sp,sp,16 + 5b76: 8082 ret + 5b78: ffe54703 lbu a4,-2(a0) + 5b7c: 0ff00793 li a5,255 + 5b80: 00f70663 beq a4,a5,5b8c + 5b84: 10942023 sw s1,256(s0) + 5b88: 4511 li a0,4 + 5b8a: b7d5 j 5b6e + 5b8c: 1fffb097 auipc ra,0x1fffb + 5b90: 334080e7 jalr 820(ra) # 20000ec0 + 5b94: 4501 li a0,0 + 5b96: 10942023 sw s1,256(s0) + 5b9a: bfd1 j 5b6e + +00005b9c : +tmos_msg_allocate(): + 5b9c: 1141 addi sp,sp,-16 + 5b9e: c226 sw s1,4(sp) + 5ba0: e000e4b7 lui s1,0xe000e + 5ba4: c04a sw s2,0(sp) + 5ba6: 0004a903 lw s2,0(s1) # e000e000 <_eusrstack+0xc000b000> + 5baa: 002007b7 lui a5,0x200 + 5bae: c606 sw ra,12(sp) + 5bb0: c422 sw s0,8(sp) + 5bb2: 00f97933 and s2,s2,a5 + 5bb6: 18f4a023 sw a5,384(s1) + 5bba: 0000100f fence.i + 5bbe: e509 bnez a0,5bc8 + 5bc0: 1124a023 sw s2,256(s1) + 5bc4: 4501 li a0,0 + 5bc6: a035 j 5bf2 + 5bc8: 6595 lui a1,0x5 + 5bca: d0058593 addi a1,a1,-768 # 4d00 + 5bce: 8dc9 or a1,a1,a0 + 5bd0: 842a mv s0,a0 + 5bd2: 0521 addi a0,a0,8 + 5bd4: 0805c5b3 zext.h a1,a1 + 5bd8: 08054533 zext.h a0,a0 + 5bdc: 311140ef jal ra,1a6ec + 5be0: d165 beqz a0,5bc0 + 5be2: 57fd li a5,-1 + 5be4: 00052023 sw zero,0(a0) + 5be8: a142 sh s0,4(a0) + 5bea: a17c sb a5,6(a0) + 5bec: 1124a023 sw s2,256(s1) + 5bf0: 0521 addi a0,a0,8 + 5bf2: 40b2 lw ra,12(sp) + 5bf4: 4422 lw s0,8(sp) + 5bf6: 4492 lw s1,4(sp) + 5bf8: 4902 lw s2,0(sp) + 5bfa: 0141 addi sp,sp,16 + 5bfc: 8082 ret + +00005bfe : +tmos_msg_receive(): + 5bfe: 1141 addi sp,sp,-16 + 5c00: e000e7b7 lui a5,0xe000e + 5c04: c226 sw s1,4(sp) + 5c06: 4384 lw s1,0(a5) + 5c08: 00200737 lui a4,0x200 + 5c0c: c606 sw ra,12(sp) + 5c0e: c422 sw s0,8(sp) + 5c10: 8cf9 and s1,s1,a4 + 5c12: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 5c16: 0000100f fence.i + 5c1a: 93818693 addi a3,gp,-1736 # 200012f0 + 5c1e: 4290 lw a2,0(a3) + 5c20: 4401 li s0,0 + 5c22: 4701 li a4,0 + 5c24: 87b2 mv a5,a2 + 5c26: ef99 bnez a5,5c44 + 5c28: c819 beqz s0,5c3e + 5c2a: ff842783 lw a5,-8(s0) + 5c2e: 06c41163 bne s0,a2,5c90 + 5c32: c29c sw a5,0(a3) + 5c34: 57fd li a5,-1 + 5c36: fe042c23 sw zero,-8(s0) + 5c3a: fef40f23 sb a5,-2(s0) + 5c3e: 65a1 lui a1,0x8 + 5c40: 29e1 jal 6118 + 5c42: a01d j 5c68 + 5c44: ffe7c583 lbu a1,-2(a5) + 5c48: 02a59d63 bne a1,a0,5c82 + 5c4c: c021 beqz s0,5c8c + 5c4e: ff842783 lw a5,-8(s0) + 5c52: 02c41563 bne s0,a2,5c7c + 5c56: c29c sw a5,0(a3) + 5c58: 57fd li a5,-1 + 5c5a: fe042c23 sw zero,-8(s0) + 5c5e: fef40f23 sb a5,-2(s0) + 5c62: 65a1 lui a1,0x8 + 5c64: 7e0140ef jal ra,1a444 + 5c68: 40b2 lw ra,12(sp) + 5c6a: 8522 mv a0,s0 + 5c6c: 4422 lw s0,8(sp) + 5c6e: e000e7b7 lui a5,0xe000e + 5c72: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5c76: 4492 lw s1,4(sp) + 5c78: 0141 addi sp,sp,16 + 5c7a: 8082 ret + 5c7c: fef72c23 sw a5,-8(a4) # 1ffff8 <_data_lma+0x1e4a3c> + 5c80: bfe1 j 5c58 + 5c82: e011 bnez s0,5c86 + 5c84: 873e mv a4,a5 + 5c86: ff87a783 lw a5,-8(a5) + 5c8a: bf71 j 5c26 + 5c8c: 843e mv s0,a5 + 5c8e: bfe5 j 5c86 + 5c90: fef72c23 sw a5,-8(a4) + 5c94: b745 j 5c34 + +00005c96 : +tmos_msg_send(): + 5c96: 1141 addi sp,sp,-16 + 5c98: c04a sw s2,0(sp) + 5c9a: e000e937 lui s2,0xe000e + 5c9e: c422 sw s0,8(sp) + 5ca0: 00092403 lw s0,0(s2) # e000e000 <_eusrstack+0xc000b000> + 5ca4: 002007b7 lui a5,0x200 + 5ca8: c606 sw ra,12(sp) + 5caa: c226 sw s1,4(sp) + 5cac: 8c7d and s0,s0,a5 + 5cae: 18f92023 sw a5,384(s2) + 5cb2: 0000100f fence.i + 5cb6: e589 bnez a1,5cc0 + 5cb8: 10892023 sw s0,256(s2) + 5cbc: 4515 li a0,5 + 5cbe: a015 j 5ce2 + 5cc0: 84aa mv s1,a0 + 5cc2: 1fffd797 auipc a5,0x1fffd + 5cc6: be77c783 lbu a5,-1049(a5) # 200028a9 + 5cca: 852e mv a0,a1 + 5ccc: 00f4f563 bgeu s1,a5,5cd6 + 5cd0: 4785 li a5,1 + 5cd2: 0097ee63 bltu a5,s1,5cee + 5cd6: 3d95 jal 5b4a + 5cd8: e000e7b7 lui a5,0xe000e + 5cdc: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5ce0: 450d li a0,3 + 5ce2: 40b2 lw ra,12(sp) + 5ce4: 4422 lw s0,8(sp) + 5ce6: 4492 lw s1,4(sp) + 5ce8: 4902 lw s2,0(sp) + 5cea: 0141 addi sp,sp,16 + 5cec: 8082 ret + 5cee: ff85a783 lw a5,-8(a1) # 7ff8 + 5cf2: e799 bnez a5,5d00 + 5cf4: ffe5c703 lbu a4,-2(a1) + 5cf8: 0ff00793 li a5,255 + 5cfc: 00f70863 beq a4,a5,5d0c + 5d00: 35a9 jal 5b4a + 5d02: e000e7b7 lui a5,0xe000e + 5d06: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5d0a: bf4d j 5cbc + 5d0c: fe958f23 sb s1,-2(a1) + 5d10: 93818513 addi a0,gp,-1736 # 200012f0 + 5d14: e19ff0ef jal ra,5b2c + 5d18: 65a1 lui a1,0x8 + 5d1a: 8526 mv a0,s1 + 5d1c: 728140ef jal ra,1a444 + 5d20: 4501 li a0,0 + 5d22: 10892023 sw s0,256(s2) + 5d26: bf75 j 5ce2 + +00005d28 : +tmos_msg_init(): + 5d28: 9201ac23 sw zero,-1736(gp) # 200012f0 + 5d2c: 8082 ret + +00005d2e : +TMOS_CB_ProcessEvent(): + 5d2e: 872a mv a4,a0 + 5d30: 0ff5f513 zext.b a0,a1 + 5d34: c12d beqz a0,5d96 + 5d36: 1141 addi sp,sp,-16 + 5d38: c422 sw s0,8(sp) + 5d3a: c226 sw s1,4(sp) + 5d3c: c606 sw ra,12(sp) + 5d3e: c04a sw s2,0(sp) + 5d40: 0015f413 andi s0,a1,1 + 5d44: 84ae mv s1,a1 + 5d46: c019 beqz s0,5d4c + 5d48: 4781 li a5,0 + 5d4a: a809 j 5d5c + 5d4c: 4781 li a5,0 + 5d4e: 46a1 li a3,8 + 5d50: 0785 addi a5,a5,1 + 5d52: 02d78a63 beq a5,a3,5d86 + 5d56: 48f4d633 bext a2,s1,a5 + 5d5a: da7d beqz a2,5d50 + 5d5c: 46b1 li a3,12 + 5d5e: 20f76733 sh3add a4,a4,a5 + 5d62: 02d70733 mul a4,a4,a3 + 5d66: 9541a903 lw s2,-1708(gp) # 2000130c + 5d6a: 28f017b3 bset a5,zero,a5 + 5d6e: 0807c433 zext.h s0,a5 + 5d72: 993a add s2,s2,a4 + 5d74: 00092783 lw a5,0(s2) + 5d78: 00492503 lw a0,4(s2) + 5d7c: 9782 jalr a5 + 5d7e: 00092023 sw zero,0(s2) + 5d82: 00092223 sw zero,4(s2) + 5d86: 00944533 xor a0,s0,s1 + 5d8a: 40b2 lw ra,12(sp) + 5d8c: 4422 lw s0,8(sp) + 5d8e: 4492 lw s1,4(sp) + 5d90: 4902 lw s2,0(sp) + 5d92: 0141 addi sp,sp,16 + 5d94: 8082 ret + 5d96: 8082 ret + +00005d98 : +tmos_memdup(): + 5d98: 1101 addi sp,sp,-32 + 5d9a: e000e7b7 lui a5,0xe000e + 5d9e: ca26 sw s1,20(sp) + 5da0: 4384 lw s1,0(a5) + 5da2: c84a sw s2,16(sp) + 5da4: 00200737 lui a4,0x200 + 5da8: ce06 sw ra,28(sp) + 5daa: cc22 sw s0,24(sp) + 5dac: 892a mv s2,a0 + 5dae: 862e mv a2,a1 + 5db0: 8cf9 and s1,s1,a4 + 5db2: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 5db6: 0000100f fence.i + 5dba: 04f00593 li a1,79 + 5dbe: c632 sw a2,12(sp) + 5dc0: 08064533 zext.h a0,a2 + 5dc4: 129140ef jal ra,1a6ec + 5dc8: 842a mv s0,a0 + 5dca: c519 beqz a0,5dd8 + 5dcc: 4632 lw a2,12(sp) + 5dce: 85ca mv a1,s2 + 5dd0: 1fffb097 auipc ra,0x1fffb + 5dd4: a8c080e7 jalr -1396(ra) # 2000085c + 5dd8: 40f2 lw ra,28(sp) + 5dda: 8522 mv a0,s0 + 5ddc: 4462 lw s0,24(sp) + 5dde: e000e7b7 lui a5,0xe000e + 5de2: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5de6: 4942 lw s2,16(sp) + 5de8: 44d2 lw s1,20(sp) + 5dea: 6105 addi sp,sp,32 + 5dec: 8082 ret + +00005dee : +tmos_get_periodic_task_time(): + 5dee: 1141 addi sp,sp,-16 + 5df0: 00757593 andi a1,a0,7 + 5df4: 4501 li a0,0 + 5df6: c606 sw ra,12(sp) + 5df8: 28b015b3 bset a1,zero,a1 + 5dfc: 0805c5b3 zext.h a1,a1 + 5e00: 3f6140ef jal ra,1a1f6 + 5e04: c509 beqz a0,5e0e + 5e06: 4508 lw a0,8(a0) + 5e08: 40b2 lw ra,12(sp) + 5e0a: 0141 addi sp,sp,16 + 5e0c: 8082 ret + 5e0e: 4501 li a0,0 + 5e10: bfe5 j 5e08 + +00005e12 : +tmos_clear_event(): + 5e12: e000e7b7 lui a5,0xe000e + 5e16: 4398 lw a4,0(a5) + 5e18: 002006b7 lui a3,0x200 + 5e1c: 18d7a023 sw a3,384(a5) # e000e180 <_eusrstack+0xc000b180> + 5e20: 8f75 and a4,a4,a3 + 5e22: 0000100f fence.i + 5e26: 1fffd697 auipc a3,0x1fffd + 5e2a: a836c683 lbu a3,-1405(a3) # 200028a9 + 5e2e: 00d57e63 bgeu a0,a3,5e4a + 5e32: 9501a683 lw a3,-1712(gp) # 20001308 + 5e36: 20d52533 sh1add a0,a0,a3 + 5e3a: 2116 lhu a3,0(a0) + 5e3c: 40b6f5b3 andn a1,a3,a1 + 5e40: a10e sh a1,0(a0) + 5e42: 10e7a023 sw a4,256(a5) + 5e46: 4501 li a0,0 + 5e48: 8082 ret + 5e4a: 10e7a023 sw a4,256(a5) + 5e4e: 450d li a0,3 + 5e50: 8082 ret + +00005e52 : +tmos_update_callback_timer(): + 5e52: 7179 addi sp,sp,-48 + 5e54: e000e7b7 lui a5,0xe000e + 5e58: d226 sw s1,36(sp) + 5e5a: 4384 lw s1,0(a5) + 5e5c: 00200737 lui a4,0x200 + 5e60: d606 sw ra,44(sp) + 5e62: d422 sw s0,40(sp) + 5e64: d04a sw s2,32(sp) + 5e66: ce4e sw s3,28(sp) + 5e68: cc52 sw s4,24(sp) + 5e6a: 8cf9 and s1,s1,a4 + 5e6c: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 5e70: 0000100f fence.i + 5e74: ff850793 addi a5,a0,-8 + 5e78: 0ff7f793 zext.b a5,a5 + 5e7c: 471d li a4,7 + 5e7e: 08f76b63 bltu a4,a5,5f14 + 5e82: 4731 li a4,12 + 5e84: 02e50733 mul a4,a0,a4 + 5e88: 9541a783 lw a5,-1708(gp) # 2000130c + 5e8c: 97ba add a5,a5,a4 + 5e8e: 439c lw a5,0(a5) + 5e90: c3d1 beqz a5,5f14 + 5e92: 891d andi a0,a0,7 + 5e94: 28a01533 bset a0,zero,a0 + 5e98: 89ae mv s3,a1 + 5e9a: 080545b3 zext.h a1,a0 + 5e9e: 4505 li a0,1 + 5ea0: c62e sw a1,12(sp) + 5ea2: 354140ef jal ra,1a1f6 + 5ea6: 892a mv s2,a0 + 5ea8: c929 beqz a0,5efa + 5eaa: 45b2 lw a1,12(sp) + 5eac: 4505 li a0,1 + 5eae: 1fffda17 auipc s4,0x1fffd + 5eb2: a4ea0a13 addi s4,s4,-1458 # 200028fc + 5eb6: 3fb1 jal 5e12 + 5eb8: 9481a783 lw a5,-1720(gp) # 20001300 + 5ebc: 9782 jalr a5 + 5ebe: 008a5783 lhu a5,8(s4) + 5ec2: 842a mv s0,a0 + 5ec4: 4681 li a3,0 + 5ec6: 03378733 mul a4,a5,s3 + 5eca: 64000613 li a2,1600 + 5ece: 0337b7b3 mulhu a5,a5,s3 + 5ed2: 32070513 addi a0,a4,800 # 200320 <_data_lma+0x1e4d64> + 5ed6: 00e535b3 sltu a1,a0,a4 + 5eda: 95be add a1,a1,a5 + 5edc: 3c6100ef jal ra,162a2 <__udivdi3> + 5ee0: 008507b3 add a5,a0,s0 + 5ee4: 004a2683 lw a3,4(s4) + 5ee8: 873e mv a4,a5 + 5eea: 00a7e463 bltu a5,a0,5ef2 + 5eee: 00d7e463 bltu a5,a3,5ef6 + 5ef2: 40d78733 sub a4,a5,a3 + 5ef6: 00e92423 sw a4,8(s2) + 5efa: e000e7b7 lui a5,0xe000e + 5efe: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5f02: 4501 li a0,0 + 5f04: 50b2 lw ra,44(sp) + 5f06: 5422 lw s0,40(sp) + 5f08: 5492 lw s1,36(sp) + 5f0a: 5902 lw s2,32(sp) + 5f0c: 49f2 lw s3,28(sp) + 5f0e: 4a62 lw s4,24(sp) + 5f10: 6145 addi sp,sp,48 + 5f12: 8082 ret + 5f14: e000e7b7 lui a5,0xe000e + 5f18: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5f1c: 4509 li a0,2 + 5f1e: b7dd j 5f04 + +00005f20 : +tmos_start_task(): + 5f20: 7179 addi sp,sp,-48 + 5f22: d422 sw s0,40(sp) + 5f24: e000e437 lui s0,0xe000e + 5f28: d04a sw s2,32(sp) + 5f2a: 00042903 lw s2,0(s0) # e000e000 <_eusrstack+0xc000b000> + 5f2e: 002007b7 lui a5,0x200 + 5f32: d606 sw ra,44(sp) + 5f34: d226 sw s1,36(sp) + 5f36: ce4e sw s3,28(sp) + 5f38: cc52 sw s4,24(sp) + 5f3a: ca56 sw s5,20(sp) + 5f3c: c85a sw s6,16(sp) + 5f3e: c65e sw s7,12(sp) + 5f40: 00f97933 and s2,s2,a5 + 5f44: 18f42023 sw a5,384(s0) + 5f48: 0000100f fence.i + 5f4c: 1fffd797 auipc a5,0x1fffd + 5f50: 95d7c783 lbu a5,-1699(a5) # 200028a9 + 5f54: 00f57663 bgeu a0,a5,5f60 + 5f58: 9481ab83 lw s7,-1720(gp) # 20001300 + 5f5c: 000b9763 bnez s7,5f6a + 5f60: e000e7b7 lui a5,0xe000e + 5f64: 1127a023 sw s2,256(a5) # e000e100 <_eusrstack+0xc000b100> + 5f68: a099 j 5fae + 5f6a: 1fffda97 auipc s5,0x1fffd + 5f6e: 992a8a93 addi s5,s5,-1646 # 200028fc + 5f72: 004aab03 lw s6,4(s5) + 5f76: fe3647b7 lui a5,0xfe364 + 5f7a: c8078793 addi a5,a5,-896 # fe363c80 <_eusrstack+0xde360c80> + 5f7e: 9b3e add s6,s6,a5 + 5f80: 008ad783 lhu a5,8(s5) + 5f84: 8a2e mv s4,a1 + 5f86: 84aa mv s1,a0 + 5f88: 02c785b3 mul a1,a5,a2 + 5f8c: 89b2 mv s3,a2 + 5f8e: 4681 li a3,0 + 5f90: 02c7b7b3 mulhu a5,a5,a2 + 5f94: 32058513 addi a0,a1,800 # 8320 + 5f98: 00b535b3 sltu a1,a0,a1 + 5f9c: 64000613 li a2,1600 + 5fa0: 95be add a1,a1,a5 + 5fa2: 300100ef jal ra,162a2 <__udivdi3> + 5fa6: 02ab7063 bgeu s6,a0,5fc6 + 5faa: 11242023 sw s2,256(s0) + 5fae: 4501 li a0,0 + 5fb0: 50b2 lw ra,44(sp) + 5fb2: 5422 lw s0,40(sp) + 5fb4: 5492 lw s1,36(sp) + 5fb6: 5902 lw s2,32(sp) + 5fb8: 49f2 lw s3,28(sp) + 5fba: 4a62 lw s4,24(sp) + 5fbc: 4ad2 lw s5,20(sp) + 5fbe: 4b42 lw s6,16(sp) + 5fc0: 4bb2 lw s7,12(sp) + 5fc2: 6145 addi sp,sp,48 + 5fc4: 8082 ret + 5fc6: 9b82 jalr s7 + 5fc8: 008ad783 lhu a5,8(s5) + 5fcc: 842a mv s0,a0 + 5fce: 64000613 li a2,1600 + 5fd2: 033785b3 mul a1,a5,s3 + 5fd6: 4681 li a3,0 + 5fd8: 0337b7b3 mulhu a5,a5,s3 + 5fdc: 32058513 addi a0,a1,800 + 5fe0: 00b535b3 sltu a1,a0,a1 + 5fe4: 95be add a1,a1,a5 + 5fe6: 2bc100ef jal ra,162a2 <__udivdi3> + 5fea: 008507b3 add a5,a0,s0 + 5fee: 004aa703 lw a4,4(s5) + 5ff2: 843e mv s0,a5 + 5ff4: 00a7e463 bltu a5,a0,5ffc + 5ff8: 00e7e463 bltu a5,a4,6000 + 5ffc: 40e78433 sub s0,a5,a4 + 6000: 85d2 mv a1,s4 + 6002: 8526 mv a0,s1 + 6004: 1f2140ef jal ra,1a1f6 + 6008: c901 beqz a0,6018 + 600a: c500 sw s0,8(a0) + 600c: e000e7b7 lui a5,0xe000e + 6010: 1127a023 sw s2,256(a5) # e000e100 <_eusrstack+0xc000b100> + 6014: 4505 li a0,1 + 6016: bf69 j 5fb0 + 6018: f004e593 ori a1,s1,-256 + 601c: 4541 li a0,16 + 601e: 0805c5b3 zext.h a1,a1 + 6022: 6ca140ef jal ra,1a6ec + 6026: e911 bnez a0,603a + 6028: 1fffd797 auipc a5,0x1fffd + 602c: 8c87a783 lw a5,-1848(a5) # 200028f0 + 6030: db85 beqz a5,5f60 + 6032: 85a6 mv a1,s1 + 6034: 4511 li a0,4 + 6036: 9782 jalr a5 + 6038: b725 j 5f60 + 603a: 93c18713 addi a4,gp,-1732 # 200012f4 + 603e: 431c lw a5,0(a4) + 6040: eb99 bnez a5,6056 + 6042: c308 sw a0,0(a4) + 6044: 00052623 sw zero,12(a0) + 6048: c500 sw s0,8(a0) + 604a: 01451123 sh s4,2(a0) + 604e: a104 sb s1,0(a0) + 6050: 00052223 sw zero,4(a0) + 6054: bf65 j 600c + 6056: 873e mv a4,a5 + 6058: 47dc lw a5,12(a5) + 605a: fff5 bnez a5,6056 + 605c: c748 sw a0,12(a4) + 605e: b7dd j 6044 + +00006060 : +tmos_start_callback_task(): + 6060: 7179 addi sp,sp,-48 + 6062: e000e7b7 lui a5,0xe000e + 6066: d226 sw s1,36(sp) + 6068: 4384 lw s1,0(a5) + 606a: 00200737 lui a4,0x200 + 606e: d606 sw ra,44(sp) + 6070: d422 sw s0,40(sp) + 6072: d04a sw s2,32(sp) + 6074: ce4e sw s3,28(sp) + 6076: cc52 sw s4,24(sp) + 6078: ca56 sw s5,20(sp) + 607a: c85a sw s6,16(sp) + 607c: c65e sw s7,12(sp) + 607e: c462 sw s8,8(sp) + 6080: c266 sw s9,4(sp) + 6082: 8cf9 and s1,s1,a4 + 6084: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 6088: 0000100f fence.i + 608c: cd29 beqz a0,60e6 + 608e: 892a mv s2,a0 + 6090: 8a2e mv s4,a1 + 6092: 8ab2 mv s5,a2 + 6094: 89b6 mv s3,a3 + 6096: 4421 li s0,8 + 6098: 4cb1 li s9,12 + 609a: 95418b13 addi s6,gp,-1708 # 2000130c + 609e: 4c41 li s8,16 + 60a0: 03940bb3 mul s7,s0,s9 + 60a4: 000b2783 lw a5,0(s6) + 60a8: 97de add a5,a5,s7 + 60aa: 439c lw a5,0(a5) + 60ac: efa9 bnez a5,6106 + 60ae: 00747593 andi a1,s0,7 + 60b2: 8656 mv a2,s5 + 60b4: 4505 li a0,1 + 60b6: 28b015b3 bset a1,zero,a1 + 60ba: 0805c5b3 zext.h a1,a1 + 60be: e63ff0ef jal ra,5f20 + 60c2: c131 beqz a0,6106 + 60c4: 000b2783 lw a5,0(s6) + 60c8: 97de add a5,a5,s7 + 60ca: 0127a023 sw s2,0(a5) + 60ce: 0147a223 sw s4,4(a5) + 60d2: 00098463 beqz s3,60da + 60d6: 00898023 sb s0,0(s3) + 60da: e000e7b7 lui a5,0xe000e + 60de: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 60e2: 4501 li a0,0 + 60e4: a021 j 60ec + 60e6: 1097a023 sw s1,256(a5) + 60ea: 4509 li a0,2 + 60ec: 50b2 lw ra,44(sp) + 60ee: 5422 lw s0,40(sp) + 60f0: 5492 lw s1,36(sp) + 60f2: 5902 lw s2,32(sp) + 60f4: 49f2 lw s3,28(sp) + 60f6: 4a62 lw s4,24(sp) + 60f8: 4ad2 lw s5,20(sp) + 60fa: 4b42 lw s6,16(sp) + 60fc: 4bb2 lw s7,12(sp) + 60fe: 4c22 lw s8,8(sp) + 6100: 4c92 lw s9,4(sp) + 6102: 6145 addi sp,sp,48 + 6104: 8082 ret + 6106: 0405 addi s0,s0,1 + 6108: f9841ce3 bne s0,s8,60a0 + 610c: e000e7b7 lui a5,0xe000e + 6110: 1097a023 sw s1,256(a5) # e000e100 <_eusrstack+0xc000b100> + 6114: 4521 li a0,8 + 6116: bfd9 j 60ec + +00006118 : +tmos_stop_task(): + 6118: 1101 addi sp,sp,-32 + 611a: ca26 sw s1,20(sp) + 611c: e000e4b7 lui s1,0xe000e + 6120: c64e sw s3,12(sp) + 6122: 0004a983 lw s3,0(s1) # e000e000 <_eusrstack+0xc000b000> + 6126: cc22 sw s0,24(sp) + 6128: c452 sw s4,8(sp) + 612a: 002007b7 lui a5,0x200 + 612e: ce06 sw ra,28(sp) + 6130: c84a sw s2,16(sp) + 6132: 8a2a mv s4,a0 + 6134: 842e mv s0,a1 + 6136: 00f9f9b3 and s3,s3,a5 + 613a: 18f4a023 sw a5,384(s1) + 613e: 0000100f fence.i + 6142: 0b4140ef jal ra,1a1f6 + 6146: 1fffc917 auipc s2,0x1fffc + 614a: 76290913 addi s2,s2,1890 # 200028a8 + 614e: e505 bnez a0,6176 + 6150: 85a2 mv a1,s0 + 6152: 8552 mv a0,s4 + 6154: cbfff0ef jal ra,5e12 + 6158: 00094783 lbu a5,0(s2) + 615c: 05478163 beq a5,s4,619e + 6160: 1134a023 sw s3,256(s1) + 6164: 4519 li a0,6 + 6166: 40f2 lw ra,28(sp) + 6168: 4462 lw s0,24(sp) + 616a: 44d2 lw s1,20(sp) + 616c: 4942 lw s2,16(sp) + 616e: 49b2 lw s3,12(sp) + 6170: 4a22 lw s4,8(sp) + 6172: 6105 addi sp,sp,32 + 6174: 8082 ret + 6176: 00051123 sh zero,2(a0) + 617a: 85a2 mv a1,s0 + 617c: 8552 mv a0,s4 + 617e: c95ff0ef jal ra,5e12 + 6182: 00094783 lbu a5,0(s2) + 6186: 01478663 beq a5,s4,6192 + 618a: 1134a023 sw s3,256(s1) + 618e: 4501 li a0,0 + 6190: bfd9 j 6166 + 6192: 00695783 lhu a5,6(s2) + 6196: 8fc1 or a5,a5,s0 + 6198: 00f91323 sh a5,6(s2) + 619c: b7fd j 618a + 619e: 00695783 lhu a5,6(s2) + 61a2: 8c5d or s0,s0,a5 + 61a4: 00891323 sh s0,6(s2) + 61a8: bf65 j 6160 + +000061aa : +tmos_stop_callback_task(): + 61aa: 1101 addi sp,sp,-32 + 61ac: c84a sw s2,16(sp) + 61ae: e000e937 lui s2,0xe000e + 61b2: cc22 sw s0,24(sp) + 61b4: 00092403 lw s0,0(s2) # e000e000 <_eusrstack+0xc000b000> + 61b8: 002007b7 lui a5,0x200 + 61bc: ce06 sw ra,28(sp) + 61be: ca26 sw s1,20(sp) + 61c0: c64e sw s3,12(sp) + 61c2: 8c7d and s0,s0,a5 + 61c4: 18f92023 sw a5,384(s2) + 61c8: 0000100f fence.i + 61cc: 47bd li a5,15 + 61ce: 04a7e563 bltu a5,a0,6218 + 61d2: 44b1 li s1,12 + 61d4: 029504b3 mul s1,a0,s1 + 61d8: 95418993 addi s3,gp,-1708 # 2000130c + 61dc: 0009a783 lw a5,0(s3) + 61e0: 97a6 add a5,a5,s1 + 61e2: 439c lw a5,0(a5) + 61e4: cb95 beqz a5,6218 + 61e6: 00757593 andi a1,a0,7 + 61ea: 810d srli a0,a0,0x3 + 61ec: 28b015b3 bset a1,zero,a1 + 61f0: 0805c5b3 zext.h a1,a1 + 61f4: 3715 jal 6118 + 61f6: 0009a783 lw a5,0(s3) + 61fa: 4501 li a0,0 + 61fc: 97a6 add a5,a5,s1 + 61fe: 0007a023 sw zero,0(a5) # 200000 <_data_lma+0x1e4a44> + 6202: 0007a223 sw zero,4(a5) + 6206: 10892023 sw s0,256(s2) + 620a: 40f2 lw ra,28(sp) + 620c: 4462 lw s0,24(sp) + 620e: 44d2 lw s1,20(sp) + 6210: 4942 lw s2,16(sp) + 6212: 49b2 lw s3,12(sp) + 6214: 6105 addi sp,sp,32 + 6216: 8082 ret + 6218: e000e7b7 lui a5,0xe000e + 621c: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 6220: 4509 li a0,2 + 6222: b7e5 j 620a + +00006224 : +tmos_idle(): + 6224: 1141 addi sp,sp,-16 + 6226: c04a sw s2,0(sp) + 6228: 1fffc917 auipc s2,0x1fffc + 622c: 68090913 addi s2,s2,1664 # 200028a8 + 6230: 00892703 lw a4,8(s2) + 6234: c606 sw ra,12(sp) + 6236: c422 sw s0,8(sp) + 6238: c226 sw s1,4(sp) + 623a: c345 beqz a4,62da + 623c: 00194683 lbu a3,1(s2) + 6240: 9501a603 lw a2,-1712(gp) # 20001308 + 6244: 4781 li a5,0 + 6246: 0ad7c063 blt a5,a3,62e6 + 624a: 1fffc697 auipc a3,0x1fffc + 624e: 7c76c683 lbu a3,1991(a3) # 20002a11 + 6252: 4795 li a5,5 + 6254: 1fffc497 auipc s1,0x1fffc + 6258: 7b848493 addi s1,s1,1976 # 20002a0c + 625c: 06d7ef63 bltu a5,a3,62da + 6260: 9ec1c783 lbu a5,-1556(gp) # 200013a4 + 6264: ebbd bnez a5,62da + 6266: 1fffc417 auipc s0,0x1fffc + 626a: 69640413 addi s0,s0,1686 # 200028fc + 626e: 4054 lw a3,4(s0) + 6270: 9481a783 lw a5,-1720(gp) # 20001300 + 6274: 06d71f63 bne a4,a3,62f2 + 6278: 9782 jalr a5 + 627a: 4054 lw a3,4(s0) + 627c: fe364737 lui a4,0xfe364 + 6280: c8070713 addi a4,a4,-896 # fe363c80 <_eusrstack+0xde360c80> + 6284: 9736 add a4,a4,a3 + 6286: 00a707b3 add a5,a4,a0 + 628a: 853e mv a0,a5 + 628c: 00e7e463 bltu a5,a4,6294 + 6290: 00d7e463 bltu a5,a3,6298 + 6294: 40d78533 sub a0,a5,a3 + 6298: 48dc lw a5,20(s1) + 629a: cb89 beqz a5,62ac + 629c: a001a683 lw a3,-1536(gp) # 200013b8 + 62a0: 469c lw a5,8(a3) + 62a2: ffcd0737 lui a4,0xffcd0 + 62a6: 177d addi a4,a4,-1 # ffccffff <_eusrstack+0xdfcccfff> + 62a8: 8ff9 and a5,a5,a4 + 62aa: c69c sw a5,8(a3) + 62ac: e111 bnez a0,62b0 + 62ae: 4048 lw a0,4(s0) + 62b0: 1fffc797 auipc a5,0x1fffc + 62b4: 63c7a783 lw a5,1596(a5) # 200028ec + 62b8: 9782 jalr a5 + 62ba: e519 bnez a0,62c8 + 62bc: 48dc lw a5,20(s1) + 62be: cf91 beqz a5,62da + 62c0: 617140ef jal ra,1b0d6 + 62c4: 57d140ef jal ra,1b040 + 62c8: 48dc lw a5,20(s1) + 62ca: cb81 beqz a5,62da + 62cc: a001a703 lw a4,-1536(gp) # 200013b8 + 62d0: 471c lw a5,8(a4) + 62d2: 003306b7 lui a3,0x330 + 62d6: 8fd5 or a5,a5,a3 + 62d8: c71c sw a5,8(a4) + 62da: 40b2 lw ra,12(sp) + 62dc: 4422 lw s0,8(sp) + 62de: 4492 lw s1,4(sp) + 62e0: 4902 lw s2,0(sp) + 62e2: 0141 addi sp,sp,16 + 62e4: 8082 ret + 62e6: 20c7a5b3 sh1add a1,a5,a2 + 62ea: 218e lhu a1,0(a1) + 62ec: f5fd bnez a1,62da + 62ee: 0785 addi a5,a5,1 + 62f0: bf99 j 6246 + 62f2: 9782 jalr a5 + 62f4: 00892683 lw a3,8(s2) + 62f8: 4058 lw a4,4(s0) + 62fa: 00a687b3 add a5,a3,a0 + 62fe: 853e mv a0,a5 + 6300: 00d7e463 bltu a5,a3,6308 + 6304: f8e7eae3 bltu a5,a4,6298 + 6308: 40e78533 sub a0,a5,a4 + 630c: b771 j 6298 + +0000630e : +TMOS_TimerRegister(): + 630e: 1141 addi sp,sp,-16 + 6310: c606 sw ra,12(sp) + 6312: 94a1a223 sw a0,-1724(gp) # 200012fc + 6316: 9502 jalr a0 + 6318: 40b2 lw ra,12(sp) + 631a: 1fffc797 auipc a5,0x1fffc + 631e: 58a7af23 sw a0,1438(a5) # 200028b8 + 6322: 4501 li a0,0 + 6324: 0141 addi sp,sp,16 + 6326: 8082 ret + +00006328 : +TMOS_ClockRegister(): + 6328: 94a1a423 sw a0,-1720(gp) # 20001300 + 632c: 4501 li a0,0 + 632e: 8082 ret + +00006330 : +TMOS_Init(): + 6330: 1141 addi sp,sp,-16 + 6332: 4611 li a2,4 + 6334: 4581 li a1,0 + 6336: 94018513 addi a0,gp,-1728 # 200012f8 + 633a: c606 sw ra,12(sp) + 633c: c422 sw s0,8(sp) + 633e: c226 sw s1,4(sp) + 6340: 9201ae23 sw zero,-1732(gp) # 200012f4 + 6344: 9401a223 sw zero,-1724(gp) # 200012fc + 6348: 9401a423 sw zero,-1720(gp) # 20001300 + 634c: 1fffa097 auipc ra,0x1fffa + 6350: 54e080e7 jalr 1358(ra) # 2000089a + 6354: 02000613 li a2,32 + 6358: 4581 li a1,0 + 635a: 1fffc517 auipc a0,0x1fffc + 635e: 54e50513 addi a0,a0,1358 # 200028a8 + 6362: 1fffa097 auipc ra,0x1fffa + 6366: 538080e7 jalr 1336(ra) # 2000089a + 636a: 6870b0ef jal ra,121f0 + 636e: 47c1 li a5,16 + 6370: 1fffc417 auipc s0,0x1fffc + 6374: 53840413 addi s0,s0,1336 # 200028a8 + 6378: 4585 li a1,1 + 637a: 12000513 li a0,288 + 637e: a03c sb a5,2(s0) + 6380: 95418493 addi s1,gp,-1708 # 2000130c + 6384: 368140ef jal ra,1a6ec + 6388: c088 sw a0,0(s1) + 638a: c125 beqz a0,63ea + 638c: 2030 lbu a2,2(s0) + 638e: 4799 li a5,6 + 6390: 4581 li a1,0 + 6392: 02f60633 mul a2,a2,a5 + 6396: 0c060613 addi a2,a2,192 + 639a: 1fffa097 auipc ra,0x1fffa + 639e: 500080e7 jalr 1280(ra) # 2000089a + 63a2: 409c lw a5,0(s1) + 63a4: 2038 lbu a4,2(s0) + 63a6: 94c18493 addi s1,gp,-1716 # 20001304 + 63aa: 0c078793 addi a5,a5,192 + 63ae: c09c sw a5,0(s1) + 63b0: 20f747b3 sh2add a5,a4,a5 + 63b4: 94f1a823 sw a5,-1712(gp) # 20001308 + 63b8: 971ff0ef jal ra,5d28 + 63bc: 2e6d jal 6776 + 63be: 301c lbu a5,1(s0) + 63c0: 4098 lw a4,0(s1) + 63c2: 00014617 auipc a2,0x14 + 63c6: e4e60613 addi a2,a2,-434 # 1a210 + 63ca: 20e7c6b3 sh2add a3,a5,a4 + 63ce: c290 sw a2,0(a3) + 63d0: 00278693 addi a3,a5,2 + 63d4: 0785 addi a5,a5,1 + 63d6: 0ff7f793 zext.b a5,a5 + 63da: 20e7c7b3 sh2add a5,a5,a4 + 63de: b014 sb a3,1(s0) + 63e0: 00000717 auipc a4,0x0 + 63e4: 94e70713 addi a4,a4,-1714 # 5d2e + 63e8: c398 sw a4,0(a5) + 63ea: 40b2 lw ra,12(sp) + 63ec: 4422 lw s0,8(sp) + 63ee: 4492 lw s1,4(sp) + 63f0: 0141 addi sp,sp,16 + 63f2: 8082 ret + +000063f4 : +TMOS_ProcessEventRegister(): + 63f4: 1fffc697 auipc a3,0x1fffc + 63f8: 4b468693 addi a3,a3,1204 # 200028a8 + 63fc: 872a mv a4,a0 + 63fe: 22bc lbu a5,2(a3) + 6400: 3288 lbu a0,1(a3) + 6402: 00f57b63 bgeu a0,a5,6418 + 6406: 00150613 addi a2,a0,1 + 640a: 94c1a783 lw a5,-1716(gp) # 20001304 + 640e: b290 sb a2,1(a3) + 6410: 20f547b3 sh2add a5,a0,a5 + 6414: c398 sw a4,0(a5) + 6416: 8082 ret + 6418: 0ff00513 li a0,255 + 641c: 8082 ret + +0000641e : +BLE_LibInit(): + 641e: 411c lw a5,0(a0) + 6420: c7f9 beqz a5,64ee + 6422: f0000737 lui a4,0xf0000 + 6426: 8f7d and a4,a4,a5 + 6428: 200006b7 lui a3,0x20000 + 642c: 4789 li a5,2 + 642e: 0cd71163 bne a4,a3,64f0 + 6432: 215a lhu a4,4(a0) + 6434: 1141 addi sp,sp,-16 + 6436: c422 sw s0,8(sp) + 6438: c606 sw ra,12(sp) + 643a: 842a mv s0,a0 + 643c: c745 beqz a4,64e4 + 643e: 4619 li a2,6 + 6440: 0ff00593 li a1,255 + 6444: 055d addi a0,a0,23 + 6446: 6c1130ef jal ra,1a306 + 644a: 4705 li a4,1 + 644c: 478d li a5,3 + 644e: 08e50b63 beq a0,a4,64e4 + 6452: 441c lw a5,8(s0) + 6454: c791 beqz a5,6460 + 6456: 5458 lw a4,44(s0) + 6458: 4799 li a5,6 + 645a: c749 beqz a4,64e4 + 645c: 5818 lw a4,48(s0) + 645e: c359 beqz a4,64e4 + 6460: 03400613 li a2,52 + 6464: 4581 li a1,0 + 6466: 1fffc517 auipc a0,0x1fffc + 646a: 46250513 addi a0,a0,1122 # 200028c8 + 646e: 1fffa097 auipc ra,0x1fffa + 6472: 42c080e7 jalr 1068(ra) # 2000089a + 6476: 03400613 li a2,52 + 647a: 85a2 mv a1,s0 + 647c: 1fffc517 auipc a0,0x1fffc + 6480: 44c50513 addi a0,a0,1100 # 200028c8 + 6484: 1fffa097 auipc ra,0x1fffa + 6488: 3d8080e7 jalr 984(ra) # 2000085c + 648c: 1fffc797 auipc a5,0x1fffc + 6490: 43c78793 addi a5,a5,1084 # 200028c8 + 6494: 27da lhu a4,12(a5) + 6496: e701 bnez a4,649e + 6498: 10000713 li a4,256 + 649c: a7da sh a4,12(a5) + 649e: 27f8 lbu a4,14(a5) + 64a0: e319 bnez a4,64a6 + 64a2: 4705 li a4,1 + 64a4: a7f8 sb a4,14(a5) + 64a6: 2b9a lhu a4,16(a5) + 64a8: e319 bnez a4,64ae + 64aa: 476d li a4,27 + 64ac: ab9a sh a4,16(a5) + 64ae: 37f8 lbu a4,15(a5) + 64b0: e319 bnez a4,64b6 + 64b2: 470d li a4,3 + 64b4: b7f8 sb a4,15(a5) + 64b6: 2bb8 lbu a4,18(a5) + 64b8: e319 bnez a4,64be + 64ba: 4705 li a4,1 + 64bc: abb8 sb a4,18(a5) + 64be: 3bb8 lbu a4,19(a5) + 64c0: e319 bnez a4,64c6 + 64c2: 37f8 lbu a4,15(a5) + 64c4: bbb8 sb a4,19(a5) + 64c6: 2bd8 lbu a4,20(a5) + 64c8: e319 bnez a4,64ce + 64ca: 4749 li a4,18 + 64cc: abd8 sb a4,20(a5) + 64ce: 3858 lbu a4,21(s0) + 64d0: e701 bnez a4,64d8 + 64d2: 06400713 li a4,100 + 64d6: bbd8 sb a4,21(a5) + 64d8: 57fd li a5,-1 + 64da: a6f18623 sb a5,-1428(gp) # 20001424 + 64de: e53ff0ef jal ra,6330 + 64e2: 4781 li a5,0 + 64e4: 40b2 lw ra,12(sp) + 64e6: 4422 lw s0,8(sp) + 64e8: 853e mv a0,a5 + 64ea: 0141 addi sp,sp,16 + 64ec: 8082 ret + 64ee: 4789 li a5,2 + 64f0: 853e mv a0,a5 + 64f2: 8082 ret + +000064f4 : +clockGetTickValve(): + 64f4: 7179 addi sp,sp,-48 + 64f6: ce4e sw s3,28(sp) + 64f8: 1fffc997 auipc s3,0x1fffc + 64fc: 40498993 addi s3,s3,1028 # 200028fc + 6500: 0009a783 lw a5,0(s3) + 6504: d606 sw ra,44(sp) + 6506: d422 sw s0,40(sp) + 6508: d226 sw s1,36(sp) + 650a: d04a sw s2,32(sp) + 650c: cc52 sw s4,24(sp) + 650e: 9782 jalr a5 + 6510: 64000913 li s2,1600 + 6514: 032535b3 mulhu a1,a0,s2 + 6518: 0089d603 lhu a2,8(s3) + 651c: 4681 li a3,0 + 651e: 1fffca17 auipc s4,0x1fffc + 6522: 38aa0a13 addi s4,s4,906 # 200028a8 + 6526: c632 sw a2,12(sp) + 6528: 03250533 mul a0,a0,s2 + 652c: 5770f0ef jal ra,162a2 <__udivdi3> + 6530: 010a2483 lw s1,16(s4) + 6534: 842a mv s0,a0 + 6536: 4501 li a0,0 + 6538: 02848663 beq s1,s0,6564 + 653c: 4632 lw a2,12(sp) + 653e: 40940533 sub a0,s0,s1 + 6542: 0084ef63 bltu s1,s0,6560 + 6546: 0049a503 lw a0,4(s3) + 654a: 4681 li a3,0 + 654c: 02a935b3 mulhu a1,s2,a0 + 6550: 02a90533 mul a0,s2,a0 + 6554: 54f0f0ef jal ra,162a2 <__udivdi3> + 6558: 409507b3 sub a5,a0,s1 + 655c: 00878533 add a0,a5,s0 + 6560: 008a2823 sw s0,16(s4) + 6564: 50b2 lw ra,44(sp) + 6566: 5422 lw s0,40(sp) + 6568: 5492 lw s1,36(sp) + 656a: 5902 lw s2,32(sp) + 656c: 49f2 lw s3,28(sp) + 656e: 4a62 lw s4,24(sp) + 6570: 6145 addi sp,sp,48 + 6572: 8082 ret + +00006574 : +ll_get_sca_divisor(): + 6574: 1101 addi sp,sp,-32 + 6576: cc22 sw s0,24(sp) + 6578: 850a mv a0,sp + 657a: 842e mv s0,a1 + 657c: 4641 li a2,16 + 657e: 00013597 auipc a1,0x13 + 6582: bb258593 addi a1,a1,-1102 # 19130 <_read+0xe> + 6586: ce06 sw ra,28(sp) + 6588: b4bfb0ef jal ra,20d2 + 658c: 0818 addi a4,sp,16 + 658e: 20e42433 sh1add s0,s0,a4 + 6592: ff045703 lhu a4,-16(s0) + 6596: 40f2 lw ra,28(sp) + 6598: 4462 lw s0,24(sp) + 659a: 1fffc797 auipc a5,0x1fffc + 659e: 36c7d783 lhu a5,876(a5) # 20002906 + 65a2: 000f4537 lui a0,0xf4 + 65a6: 97ba add a5,a5,a4 + 65a8: 24050513 addi a0,a0,576 # f4240 <_data_lma+0xd8c84> + 65ac: 02f55533 divu a0,a0,a5 + 65b0: 6105 addi sp,sp,32 + 65b2: 8082 ret + +000065b4 : +ll_get_sca_own(): + 65b4: 1fffc797 auipc a5,0x1fffc + 65b8: 3527d783 lhu a5,850(a5) # 20002906 + 65bc: 4751 li a4,20 + 65be: 451d li a0,7 + 65c0: 02f77c63 bgeu a4,a5,65f8 + 65c4: 4779 li a4,30 + 65c6: 4519 li a0,6 + 65c8: 02f77863 bgeu a4,a5,65f8 + 65cc: 03200713 li a4,50 + 65d0: 4515 li a0,5 + 65d2: 02f77363 bgeu a4,a5,65f8 + 65d6: 04b00713 li a4,75 + 65da: 4511 li a0,4 + 65dc: 00f77e63 bgeu a4,a5,65f8 + 65e0: 06400713 li a4,100 + 65e4: 450d li a0,3 + 65e6: 00f77963 bgeu a4,a5,65f8 + 65ea: 09600713 li a4,150 + 65ee: 4509 li a0,2 + 65f0: 00f77463 bgeu a4,a5,65f8 + 65f4: 0fb7b513 sltiu a0,a5,251 + 65f8: 8082 ret + +000065fa : +ble_ll_common_rand8(): + 65fa: 1141 addi sp,sp,-16 + 65fc: c422 sw s0,8(sp) + 65fe: c226 sw s1,4(sp) + 6600: 842e mv s0,a1 + 6602: 84aa mv s1,a0 + 6604: c606 sw ra,12(sp) + 6606: 8c05 sub s0,s0,s1 + 6608: 1fffa097 auipc ra,0x1fffa + 660c: 20e080e7 jalr 526(ra) # 20000816 + 6610: 02a427b3 mulhsu a5,s0,a0 + 6614: 40b2 lw ra,12(sp) + 6616: 4422 lw s0,8(sp) + 6618: 00978533 add a0,a5,s1 + 661c: 0ff57513 zext.b a0,a0 + 6620: 4492 lw s1,4(sp) + 6622: 0141 addi sp,sp,16 + 6624: 8082 ret + +00006626 : +ble_ll_common_rand16(): + 6626: 1141 addi sp,sp,-16 + 6628: c422 sw s0,8(sp) + 662a: c226 sw s1,4(sp) + 662c: 842e mv s0,a1 + 662e: 84aa mv s1,a0 + 6630: c606 sw ra,12(sp) + 6632: 8c05 sub s0,s0,s1 + 6634: 1fffa097 auipc ra,0x1fffa + 6638: 1e2080e7 jalr 482(ra) # 20000816 + 663c: 02a427b3 mulhsu a5,s0,a0 + 6640: 40b2 lw ra,12(sp) + 6642: 4422 lw s0,8(sp) + 6644: 00978533 add a0,a5,s1 + 6648: 08054533 zext.h a0,a0 + 664c: 4492 lw s1,4(sp) + 664e: 0141 addi sp,sp,16 + 6650: 8082 ret + +00006652 : +ble_ll_common_rand32(): + 6652: 1141 addi sp,sp,-16 + 6654: c422 sw s0,8(sp) + 6656: c226 sw s1,4(sp) + 6658: 842e mv s0,a1 + 665a: 84aa mv s1,a0 + 665c: c606 sw ra,12(sp) + 665e: 8c05 sub s0,s0,s1 + 6660: 1fffa097 auipc ra,0x1fffa + 6664: 1b6080e7 jalr 438(ra) # 20000816 + 6668: 02a43533 mulhu a0,s0,a0 + 666c: 40b2 lw ra,12(sp) + 666e: 4422 lw s0,8(sp) + 6670: 9526 add a0,a0,s1 + 6672: 4492 lw s1,4(sp) + 6674: 0141 addi sp,sp,16 + 6676: 8082 ret + +00006678 : +TMOS_TimerSet(): + 6678: 85aa mv a1,a0 + 667a: 1fffc517 auipc a0,0x1fffc + 667e: 28250513 addi a0,a0,642 # 200028fc + 6682: 4118 lw a4,0(a0) + 6684: 1fffa797 auipc a5,0x1fffa + 6688: 46678793 addi a5,a5,1126 # 20000aea + 668c: 00f70d63 beq a4,a5,66a6 + 6690: 1141 addi sp,sp,-16 + 6692: 4651 li a2,20 + 6694: c606 sw ra,12(sp) + 6696: 1fffa097 auipc ra,0x1fffa + 669a: 1c6080e7 jalr 454(ra) # 2000085c + 669e: 40b2 lw ra,12(sp) + 66a0: 4501 li a0,0 + 66a2: 0141 addi sp,sp,16 + 66a4: 8082 ret + 66a6: 4505 li a0,1 + 66a8: 8082 ret + +000066aa : +TMOS_TimerInit(): + 66aa: 1141 addi sp,sp,-16 + 66ac: c606 sw ra,12(sp) + 66ae: c422 sw s0,8(sp) + 66b0: c226 sw s1,4(sp) + 66b2: c549 beqz a0,673c + 66b4: 411c lw a5,0(a0) + 66b6: 85aa mv a1,a0 + 66b8: 4505 li a0,1 + 66ba: cfa5 beqz a5,6732 + 66bc: 41dc lw a5,4(a1) + 66be: cbb5 beqz a5,6732 + 66c0: 259e lhu a5,8(a1) + 66c2: cba5 beqz a5,6732 + 66c4: 25be lhu a5,10(a1) + 66c6: c7b5 beqz a5,6732 + 66c8: 4651 li a2,20 + 66ca: 1fffc517 auipc a0,0x1fffc + 66ce: 23250513 addi a0,a0,562 # 200028fc + 66d2: 1fffa097 auipc ra,0x1fffa + 66d6: 18a080e7 jalr 394(ra) # 2000085c + 66da: 1fffc797 auipc a5,0x1fffc + 66de: 22078723 sb zero,558(a5) # 20002908 + 66e2: 1fffc497 auipc s1,0x1fffc + 66e6: 21a48493 addi s1,s1,538 # 200028fc + 66ea: 4088 lw a0,0(s1) + 66ec: 1fffc417 auipc s0,0x1fffc + 66f0: 1dc40413 addi s0,s0,476 # 200028c8 + 66f4: c35ff0ef jal ra,6328 + 66f8: 287c lbu a5,22(s0) + 66fa: ef99 bnez a5,6718 + 66fc: 248a lhu a0,8(s1) + 66fe: 70800793 li a5,1800 + 6702: 000f4637 lui a2,0xf4 + 6706: 02f50533 mul a0,a0,a5 + 670a: 24060613 addi a2,a2,576 # f4240 <_data_lma+0xd8c84> + 670e: 4681 li a3,0 + 6710: 4581 li a1,0 + 6712: 3910f0ef jal ra,162a2 <__udivdi3> + 6716: a868 sb a0,22(s0) + 6718: 2878 lbu a4,22(s0) + 671a: 47ad li a5,11 + 671c: 00e7e463 bltu a5,a4,6724 + 6720: 47b1 li a5,12 + 6722: a87c sb a5,22(s0) + 6724: 00000517 auipc a0,0x0 + 6728: dd050513 addi a0,a0,-560 # 64f4 + 672c: be3ff0ef jal ra,630e + 6730: 4501 li a0,0 + 6732: 40b2 lw ra,12(sp) + 6734: 4422 lw s0,8(sp) + 6736: 4492 lw s1,4(sp) + 6738: 0141 addi sp,sp,16 + 673a: 8082 ret + 673c: 1fffc797 auipc a5,0x1fffc + 6740: 1807a023 sw zero,384(a5) # 200028bc + 6744: 1fffc797 auipc a5,0x1fffc + 6748: 1b878793 addi a5,a5,440 # 200028fc + 674c: 1fffa717 auipc a4,0x1fffa + 6750: 39e70713 addi a4,a4,926 # 20000aea + 6754: c398 sw a4,0(a5) + 6756: 00328737 lui a4,0x328 + 675a: 56fd li a3,-1 + 675c: a1270713 addi a4,a4,-1518 # 327a12 <_data_lma+0x30c456> + 6760: c3d4 sw a3,4(a5) + 6762: c798 sw a4,8(a5) + 6764: 1fffc797 auipc a5,0x1fffc + 6768: 1a078223 sb zero,420(a5) # 20002908 + 676c: 4000c7b7 lui a5,0x4000c + 6770: 26d7a423 sw a3,616(a5) # 4000c268 <_eusrstack+0x20009268> + 6774: b7bd j 66e2 + +00006776 : +tmos_snv_init(): + 6776: 1101 addi sp,sp,-32 + 6778: cc22 sw s0,24(sp) + 677a: 1fffc417 auipc s0,0x1fffc + 677e: 14e40413 addi s0,s0,334 # 200028c8 + 6782: 4408 lw a0,8(s0) + 6784: ce06 sw ra,28(sp) + 6786: ca26 sw s1,20(sp) + 6788: c84a sw s2,16(sp) + 678a: e901 bnez a0,679a + 678c: 4505 li a0,1 + 678e: 40f2 lw ra,28(sp) + 6790: 4462 lw s0,24(sp) + 6792: 44d2 lw s1,20(sp) + 6794: 4942 lw s2,16(sp) + 6796: 6105 addi sp,sp,32 + 6798: 8082 ret + 679a: 545c lw a5,44(s0) + 679c: dbe5 beqz a5,678c + 679e: 5818 lw a4,48(s0) + 67a0: d775 beqz a4,678c + 67a2: 0070 addi a2,sp,12 + 67a4: 4585 li a1,1 + 67a6: 9782 jalr a5 + 67a8: 4418 lw a4,8(s0) + 67aa: 47b2 lw a5,12(sp) + 67ac: fef700e3 beq a4,a5,678c + 67b0: 244a lhu a0,12(s0) + 67b2: 04e00593 li a1,78 + 67b6: 1fffc917 auipc s2,0x1fffc + 67ba: 0f290913 addi s2,s2,242 # 200028a8 + 67be: 72f130ef jal ra,1a6ec + 67c2: 00a92c23 sw a0,24(s2) + 67c6: d179 beqz a0,678c + 67c8: 2452 lhu a2,12(s0) + 67ca: 0ff00593 li a1,255 + 67ce: 4481 li s1,0 + 67d0: 1fffa097 auipc ra,0x1fffa + 67d4: 0ca080e7 jalr 202(ra) # 2000089a + 67d8: 247c lbu a5,14(s0) + 67da: 01892603 lw a2,24(s2) + 67de: 02f4c163 blt s1,a5,6800 + 67e2: 8532 mv a0,a2 + 67e4: 1fffa097 auipc ra,0x1fffa + 67e8: 6dc080e7 jalr 1756(ra) # 20000ec0 + 67ec: 4501 li a0,0 + 67ee: 1fffc797 auipc a5,0x1fffc + 67f2: 0c07a923 sw zero,210(a5) # 200028c0 + 67f6: 1fffc797 auipc a5,0x1fffc + 67fa: 0c07a723 sw zero,206(a5) # 200028c4 + 67fe: bf41 j 678e + 6800: 244e lhu a1,12(s0) + 6802: 4418 lw a4,8(s0) + 6804: 029587b3 mul a5,a1,s1 + 6808: 8189 srli a1,a1,0x2 + 680a: 0485 addi s1,s1,1 + 680c: 00e78533 add a0,a5,a4 + 6810: 581c lw a5,48(s0) + 6812: c208 sw a0,0(a2) + 6814: 9782 jalr a5 + 6816: b7c9 j 67d8 + +00006818 : +tmos_snv_read(): + 6818: 1101 addi sp,sp,-32 + 681a: c64e sw s3,12(sp) + 681c: 1fffc997 auipc s3,0x1fffc + 6820: 0ac98993 addi s3,s3,172 # 200028c8 + 6824: 0089a783 lw a5,8(s3) + 6828: cc22 sw s0,24(sp) + 682a: c84a sw s2,16(sp) + 682c: c452 sw s4,8(sp) + 682e: ce06 sw ra,28(sp) + 6830: ca26 sw s1,20(sp) + 6832: c256 sw s5,4(sp) + 6834: c05a sw s6,0(sp) + 6836: 8a2a mv s4,a0 + 6838: 842e mv s0,a1 + 683a: 8932 mv s2,a2 + 683c: 1c078f63 beqz a5,6a1a + 6840: 02c9a703 lw a4,44(s3) + 6844: 10070e63 beqz a4,6960 + 6848: 1ff00713 li a4,511 + 684c: 10a76c63 bltu a4,a0,6964 + 6850: 1fffc497 auipc s1,0x1fffc + 6854: 05848493 addi s1,s1,88 # 200028a8 + 6858: 0184aa83 lw s5,24(s1) + 685c: 080a9763 bnez s5,68ea + 6860: 00c9d503 lhu a0,12(s3) + 6864: 6595 lui a1,0x5 + 6866: e0158593 addi a1,a1,-511 # 4e01 + 686a: 683130ef jal ra,1a6ec + 686e: cc88 sw a0,24(s1) + 6870: 862a mv a2,a0 + 6872: c57d beqz a0,6960 + 6874: 00c9d583 lhu a1,12(s3) + 6878: 02c9a783 lw a5,44(s3) + 687c: 0089a503 lw a0,8(s3) + 6880: 8189 srli a1,a1,0x2 + 6882: 9782 jalr a5 + 6884: 0089a783 lw a5,8(s3) + 6888: 0184aa83 lw s5,24(s1) + 688c: ccdc sw a5,28(s1) + 688e: 4789 li a5,2 + 6890: 08fa1363 bne s4,a5,6916 + 6894: 47c1 li a5,16 + 6896: 0cf41563 bne s0,a5,6960 + 689a: 00c9d783 lhu a5,12(s3) + 689e: 4711 li a4,4 + 68a0: fc078793 addi a5,a5,-64 + 68a4: 02e7c7b3 div a5,a5,a4 + 68a8: 2157c7b3 sh2add a5,a5,s5 + 68ac: 23b4 lbu a3,2(a5) + 68ae: 05a00713 li a4,90 + 68b2: 0ae69363 bne a3,a4,6958 + 68b6: 239a lhu a4,0(a5) + 68b8: 0b471063 bne a4,s4,6958 + 68bc: 00478593 addi a1,a5,4 + 68c0: 854a mv a0,s2 + 68c2: 8622 mv a2,s0 + 68c4: 1fffa097 auipc ra,0x1fffa + 68c8: f98080e7 jalr -104(ra) # 2000085c + 68cc: 4c9c lw a5,24(s1) + 68ce: 8556 mv a0,s5 + 68d0: 11579d63 bne a5,s5,69ea + 68d4: 4501 li a0,0 + 68d6: 40f2 lw ra,28(sp) + 68d8: 4462 lw s0,24(sp) + 68da: 44d2 lw s1,20(sp) + 68dc: 4942 lw s2,16(sp) + 68de: 49b2 lw s3,12(sp) + 68e0: 4a22 lw s4,8(sp) + 68e2: 4a92 lw s5,4(sp) + 68e4: 4b02 lw s6,0(sp) + 68e6: 6105 addi sp,sp,32 + 68e8: 8082 ret + 68ea: 4cd8 lw a4,28(s1) + 68ec: fae781e3 beq a5,a4,688e + 68f0: 00c9d503 lhu a0,12(s3) + 68f4: 6595 lui a1,0x5 + 68f6: e0258593 addi a1,a1,-510 # 4e02 + 68fa: 5f3130ef jal ra,1a6ec + 68fe: 8aaa mv s5,a0 + 6900: c125 beqz a0,6960 + 6902: 00c9d583 lhu a1,12(s3) + 6906: 862a mv a2,a0 + 6908: 02c9a783 lw a5,44(s3) + 690c: 0089a503 lw a0,8(s3) + 6910: 8189 srli a1,a1,0x2 + 6912: 9782 jalr a5 + 6914: bfad j 688e + 6916: 478d li a5,3 + 6918: 00fa1c63 bne s4,a5,6930 + 691c: 47c1 li a5,16 + 691e: 04f41163 bne s0,a5,6960 + 6922: 00c9d783 lhu a5,12(s3) + 6926: fd478793 addi a5,a5,-44 + 692a: 9bf1 andi a5,a5,-4 + 692c: 97d6 add a5,a5,s5 + 692e: bfbd j 68ac + 6930: 4791 li a5,4 + 6932: 00fa1863 bne s4,a5,6942 + 6936: 03441563 bne s0,s4,6960 + 693a: 00c9d783 lhu a5,12(s3) + 693e: 17a1 addi a5,a5,-24 + 6940: b7ed j 692a + 6942: 10000793 li a5,256 + 6946: 00fa1d63 bne s4,a5,6960 + 694a: 47a1 li a5,8 + 694c: 0087ea63 bltu a5,s0,6960 + 6950: 00c9d783 lhu a5,12(s3) + 6954: 17c1 addi a5,a5,-16 + 6956: bfd1 j 692a + 6958: 4c9c lw a5,24(s1) + 695a: 8556 mv a0,s5 + 695c: 0b579a63 bne a5,s5,6a10 + 6960: 4529 li a0,10 + 6962: bf95 j 68d6 + 6964: 671d lui a4,0x7 + 6966: 08e57763 bgeu a0,a4,69f4 + 696a: e0050713 addi a4,a0,-512 + 696e: 4699 li a3,6 + 6970: 02d74733 div a4,a4,a3 + 6974: 00c9d683 lhu a3,12(s3) + 6978: 1fffcb17 auipc s6,0x1fffc + 697c: f30b0b13 addi s6,s6,-208 # 200028a8 + 6980: 02d70733 mul a4,a4,a3 + 6984: 00f70ab3 add s5,a4,a5 + 6988: 01cb2783 lw a5,28(s6) + 698c: 01579563 bne a5,s5,6996 + 6990: 018b2483 lw s1,24(s6) + 6994: e08d bnez s1,69b6 + 6996: 00c9d503 lhu a0,12(s3) + 699a: 04e00593 li a1,78 + 699e: 54f130ef jal ra,1a6ec + 69a2: 84aa mv s1,a0 + 69a4: dd55 beqz a0,6960 + 69a6: 00c9d583 lhu a1,12(s3) + 69aa: 02c9a783 lw a5,44(s3) + 69ae: 862a mv a2,a0 + 69b0: 8189 srli a1,a1,0x2 + 69b2: 8556 mv a0,s5 + 69b4: 9782 jalr a5 + 69b6: 4591 li a1,4 + 69b8: 05a00713 li a4,90 + 69bc: 0fc5f593 andi a1,a1,252 + 69c0: 00b487b3 add a5,s1,a1 + 69c4: 23b4 lbu a3,2(a5) + 69c6: 04e69063 bne a3,a4,6a06 + 69ca: 2396 lhu a3,0(a5) + 69cc: 03469b63 bne a3,s4,6a02 + 69d0: 0591 addi a1,a1,4 + 69d2: 8622 mv a2,s0 + 69d4: 95a6 add a1,a1,s1 + 69d6: 854a mv a0,s2 + 69d8: 1fffa097 auipc ra,0x1fffa + 69dc: e84080e7 jalr -380(ra) # 2000085c + 69e0: 018b2783 lw a5,24(s6) + 69e4: ee9788e3 beq a5,s1,68d4 + 69e8: 8526 mv a0,s1 + 69ea: 1fffa097 auipc ra,0x1fffa + 69ee: 4d6080e7 jalr 1238(ra) # 20000ec0 + 69f2: b5cd j 68d4 + 69f4: 66a1 lui a3,0x8 + 69f6: 16f9 addi a3,a3,-2 # 7ffe + 69f8: f6a6e4e3 bltu a3,a0,6960 + 69fc: 40e50733 sub a4,a0,a4 + 6a00: bf95 j 6974 + 6a02: 33ac lbu a1,3(a5) + 6a04: bf65 j 69bc + 6a06: 018b2783 lw a5,24(s6) + 6a0a: f4978be3 beq a5,s1,6960 + 6a0e: 8526 mv a0,s1 + 6a10: 1fffa097 auipc ra,0x1fffa + 6a14: 4b0080e7 jalr 1200(ra) # 20000ec0 + 6a18: b7a1 j 6960 + 6a1a: 1fffc597 auipc a1,0x1fffc + 6a1e: ea65a583 lw a1,-346(a1) # 200028c0 + 6a22: dd9d beqz a1,6960 + 6a24: 4791 li a5,4 + 6a26: 05a00693 li a3,90 + 6a2a: 0fc7f793 andi a5,a5,252 + 6a2e: 00f58733 add a4,a1,a5 + 6a32: 2330 lbu a2,2(a4) + 6a34: f2d616e3 bne a2,a3,6960 + 6a38: 2312 lhu a2,0(a4) + 6a3a: 01461b63 bne a2,s4,6a50 + 6a3e: 0791 addi a5,a5,4 + 6a40: 8622 mv a2,s0 + 6a42: 95be add a1,a1,a5 + 6a44: 854a mv a0,s2 + 6a46: 1fffa097 auipc ra,0x1fffa + 6a4a: e16080e7 jalr -490(ra) # 2000085c + 6a4e: b559 j 68d4 + 6a50: 333c lbu a5,3(a4) + 6a52: bfe1 j 6a2a + +00006a54 : +tmos_snv_notify(): + 6a54: 1fffc797 auipc a5,0x1fffc + 6a58: e7478793 addi a5,a5,-396 # 200028c8 + 6a5c: 4798 lw a4,8(a5) + 6a5e: c721 beqz a4,6aa6 + 6a60: 5b98 lw a4,48(a5) + 6a62: c331 beqz a4,6aa6 + 6a64: 4685 li a3,1 + 6a66: 04d51063 bne a0,a3,6aa6 + 6a6a: 1141 addi sp,sp,-16 + 6a6c: c422 sw s0,8(sp) + 6a6e: 1fffc417 auipc s0,0x1fffc + 6a72: e3a40413 addi s0,s0,-454 # 200028a8 + 6a76: 4c10 lw a2,24(s0) + 6a78: c606 sw ra,12(sp) + 6a7a: c215 beqz a2,6a9e + 6a7c: 27ce lhu a1,12(a5) + 6a7e: 4c48 lw a0,28(s0) + 6a80: 8189 srli a1,a1,0x2 + 6a82: 9702 jalr a4 + 6a84: 4c08 lw a0,24(s0) + 6a86: 1fffa097 auipc ra,0x1fffa + 6a8a: 43a080e7 jalr 1082(ra) # 20000ec0 + 6a8e: 1fffc797 auipc a5,0x1fffc + 6a92: e207a923 sw zero,-462(a5) # 200028c0 + 6a96: 1fffc797 auipc a5,0x1fffc + 6a9a: e207a723 sw zero,-466(a5) # 200028c4 + 6a9e: 40b2 lw ra,12(sp) + 6aa0: 4422 lw s0,8(sp) + 6aa2: 0141 addi sp,sp,16 + 6aa4: 8082 ret + 6aa6: 8082 ret + +00006aa8 : +tmos_snv_write(): + 6aa8: 1101 addi sp,sp,-32 + 6aaa: cc22 sw s0,24(sp) + 6aac: 1fffc417 auipc s0,0x1fffc + 6ab0: e1c40413 addi s0,s0,-484 # 200028c8 + 6ab4: c64e sw s3,12(sp) + 6ab6: 00842983 lw s3,8(s0) + 6aba: ca26 sw s1,20(sp) + 6abc: c84a sw s2,16(sp) + 6abe: c452 sw s4,8(sp) + 6ac0: ce06 sw ra,28(sp) + 6ac2: c256 sw s5,4(sp) + 6ac4: 892a mv s2,a0 + 6ac6: 84ae mv s1,a1 + 6ac8: 8a32 mv s4,a2 + 6aca: 1a098563 beqz s3,6c74 + 6ace: 581c lw a5,48(s0) + 6ad0: eb99 bnez a5,6ae6 + 6ad2: 4529 li a0,10 + 6ad4: 40f2 lw ra,28(sp) + 6ad6: 4462 lw s0,24(sp) + 6ad8: 44d2 lw s1,20(sp) + 6ada: 4942 lw s2,16(sp) + 6adc: 49b2 lw s3,12(sp) + 6ade: 4a22 lw s4,8(sp) + 6ae0: 4a92 lw s5,4(sp) + 6ae2: 6105 addi sp,sp,32 + 6ae4: 8082 ret + 6ae6: 545c lw a5,44(s0) + 6ae8: d7ed beqz a5,6ad2 + 6aea: 1ff00793 li a5,511 + 6aee: 0ca7e063 bltu a5,a0,6bae + 6af2: 1fffc997 auipc s3,0x1fffc + 6af6: db698993 addi s3,s3,-586 # 200028a8 + 6afa: 0189a783 lw a5,24(s3) + 6afe: c7a9 beqz a5,6b48 + 6b00: 4408 lw a0,8(s0) + 6b02: 01c9a783 lw a5,28(s3) + 6b06: 04a79a63 bne a5,a0,6b5a + 6b0a: 4789 li a5,2 + 6b0c: 06f91163 bne s2,a5,6b6e + 6b10: 47c1 li a5,16 + 6b12: fcf490e3 bne s1,a5,6ad2 + 6b16: 245e lhu a5,12(s0) + 6b18: 4711 li a4,4 + 6b1a: fc078793 addi a5,a5,-64 + 6b1e: 02e7c7b3 div a5,a5,a4 + 6b22: 0189a703 lw a4,24(s3) + 6b26: 20e7c7b3 sh2add a5,a5,a4 + 6b2a: 05a00713 li a4,90 + 6b2e: a3b8 sb a4,2(a5) + 6b30: 01279023 sh s2,0(a5) + 6b34: 8626 mv a2,s1 + 6b36: 85d2 mv a1,s4 + 6b38: 00478513 addi a0,a5,4 + 6b3c: 1fffa097 auipc ra,0x1fffa + 6b40: d20080e7 jalr -736(ra) # 2000085c + 6b44: 4501 li a0,0 + 6b46: b779 j 6ad4 + 6b48: 244a lhu a0,12(s0) + 6b4a: 04e00593 li a1,78 + 6b4e: 39f130ef jal ra,1a6ec + 6b52: 00a9ac23 sw a0,24(s3) + 6b56: f54d bnez a0,6b00 + 6b58: bfad j 6ad2 + 6b5a: 244e lhu a1,12(s0) + 6b5c: 545c lw a5,44(s0) + 6b5e: 0189a603 lw a2,24(s3) + 6b62: 8189 srli a1,a1,0x2 + 6b64: 9782 jalr a5 + 6b66: 441c lw a5,8(s0) + 6b68: 00f9ae23 sw a5,28(s3) + 6b6c: bf79 j 6b0a + 6b6e: 478d li a5,3 + 6b70: 00f91d63 bne s2,a5,6b8a + 6b74: 47c1 li a5,16 + 6b76: f4f49ee3 bne s1,a5,6ad2 + 6b7a: 245a lhu a4,12(s0) + 6b7c: fd470713 addi a4,a4,-44 # 6fd4 + 6b80: 0189a783 lw a5,24(s3) + 6b84: 9b71 andi a4,a4,-4 + 6b86: 97ba add a5,a5,a4 + 6b88: b74d j 6b2a + 6b8a: 4791 li a5,4 + 6b8c: 00f91763 bne s2,a5,6b9a + 6b90: f52491e3 bne s1,s2,6ad2 + 6b94: 245a lhu a4,12(s0) + 6b96: 1721 addi a4,a4,-24 + 6b98: b7e5 j 6b80 + 6b9a: 10000793 li a5,256 + 6b9e: f2f91ae3 bne s2,a5,6ad2 + 6ba2: 47a1 li a5,8 + 6ba4: f297e7e3 bltu a5,s1,6ad2 + 6ba8: 245a lhu a4,12(s0) + 6baa: 1741 addi a4,a4,-16 + 6bac: bfd1 j 6b80 + 6bae: 679d lui a5,0x7 + 6bb0: 06f57263 bgeu a0,a5,6c14 + 6bb4: e0050793 addi a5,a0,-512 + 6bb8: 4719 li a4,6 + 6bba: 02e7c7b3 div a5,a5,a4 + 6bbe: 245a lhu a4,12(s0) + 6bc0: 1fffca97 auipc s5,0x1fffc + 6bc4: ce8a8a93 addi s5,s5,-792 # 200028a8 + 6bc8: 02e787b3 mul a5,a5,a4 + 6bcc: 99be add s3,s3,a5 + 6bce: 018aa783 lw a5,24(s5) + 6bd2: cba1 beqz a5,6c22 + 6bd4: 01caa783 lw a5,28(s5) + 6bd8: 05379e63 bne a5,s3,6c34 + 6bdc: 018aa503 lw a0,24(s5) + 6be0: 4791 li a5,4 + 6be2: 05a00813 li a6,90 + 6be6: 0ff00593 li a1,255 + 6bea: 0fc7f713 andi a4,a5,252 + 6bee: 00e506b3 add a3,a0,a4 + 6bf2: 22b0 lbu a2,2(a3) + 6bf4: 05061d63 bne a2,a6,6c4e + 6bf8: 0006d883 lhu a7,0(a3) + 6bfc: 32b0 lbu a2,3(a3) + 6bfe: 05289663 bne a7,s2,6c4a + 6c02: 40f607b3 sub a5,a2,a5 + 6c06: 0497c163 blt a5,s1,6c48 + 6c0a: 0711 addi a4,a4,4 + 6c0c: 8626 mv a2,s1 + 6c0e: 85d2 mv a1,s4 + 6c10: 953a add a0,a0,a4 + 6c12: b72d j 6b3c + 6c14: 6721 lui a4,0x8 + 6c16: 1779 addi a4,a4,-2 # 7ffe + 6c18: eaa76de3 bltu a4,a0,6ad2 + 6c1c: 40f507b3 sub a5,a0,a5 + 6c20: bf79 j 6bbe + 6c22: 244a lhu a0,12(s0) + 6c24: 04e00593 li a1,78 + 6c28: 2c5130ef jal ra,1a6ec + 6c2c: 00aaac23 sw a0,24(s5) + 6c30: f155 bnez a0,6bd4 + 6c32: b545 j 6ad2 + 6c34: 244e lhu a1,12(s0) + 6c36: 545c lw a5,44(s0) + 6c38: 018aa603 lw a2,24(s5) + 6c3c: 8189 srli a1,a1,0x2 + 6c3e: 854e mv a0,s3 + 6c40: 9782 jalr a5 + 6c42: 013aae23 sw s3,28(s5) + 6c46: bf59 j 6bdc + 6c48: a28e sh a1,0(a3) + 6c4a: 87b2 mv a5,a2 + 6c4c: bf79 j 6bea + 6c4e: 2452 lhu a2,12(s0) + 6c50: 009785b3 add a1,a5,s1 + 6c54: 0591 addi a1,a1,4 + 6c56: fc060613 addi a2,a2,-64 + 6c5a: e6b66ce3 bltu a2,a1,6ad2 + 6c5e: 00348613 addi a2,s1,3 + 6c62: 9a71 andi a2,a2,-4 + 6c64: 0611 addi a2,a2,4 + 6c66: 97b2 add a5,a5,a2 + 6c68: 01068123 sb a6,2(a3) + 6c6c: 01269023 sh s2,0(a3) + 6c70: b2bc sb a5,3(a3) + 6c72: bf61 j 6c0a + 6c74: 1fffc997 auipc s3,0x1fffc + 6c78: c3498993 addi s3,s3,-972 # 200028a8 + 6c7c: 0189a783 lw a5,24(s3) + 6c80: cb9d beqz a5,6cb6 + 6c82: 0189a503 lw a0,24(s3) + 6c86: 4791 li a5,4 + 6c88: 05a00813 li a6,90 + 6c8c: 0ff00593 li a1,255 + 6c90: 0fc7f713 andi a4,a5,252 + 6c94: 00e506b3 add a3,a0,a4 + 6c98: 22b0 lbu a2,2(a3) + 6c9a: 03061c63 bne a2,a6,6cd2 + 6c9e: 0006d883 lhu a7,0(a3) + 6ca2: 32b0 lbu a2,3(a3) + 6ca4: 01289763 bne a7,s2,6cb2 + 6ca8: 40f607b3 sub a5,a2,a5 + 6cac: f497dfe3 bge a5,s1,6c0a + 6cb0: a28e sh a1,0(a3) + 6cb2: 87b2 mv a5,a2 + 6cb4: bff1 j 6c90 + 6cb6: 247c lbu a5,14(s0) + 6cb8: 244a lhu a0,12(s0) + 6cba: 04e00593 li a1,78 + 6cbe: 02f50533 mul a0,a0,a5 + 6cc2: 08054533 zext.h a0,a0 + 6cc6: 227130ef jal ra,1a6ec + 6cca: 00a9ac23 sw a0,24(s3) + 6cce: f955 bnez a0,6c82 + 6cd0: b509 j 6ad2 + 6cd2: 2452 lhu a2,12(s0) + 6cd4: 246c lbu a1,14(s0) + 6cd6: 02c585b3 mul a1,a1,a2 + 6cda: 00978633 add a2,a5,s1 + 6cde: 0611 addi a2,a2,4 + 6ce0: dec5e9e3 bltu a1,a2,6ad2 + 6ce4: bfad j 6c5e + +00006ce6 : +tmos_snv_compact(): + 6ce6: 4501 li a0,0 + 6ce8: 8082 ret + +00006cea : +disconnectNext(): + 6cea: 1101 addi sp,sp,-32 + 6cec: ce06 sw ra,28(sp) + 6cee: c62e sw a1,12(sp) + 6cf0: 749040ef jal ra,bc38 + 6cf4: c519 beqz a0,6d02 + 6cf6: 45b2 lw a1,12(sp) + 6cf8: 40f2 lw ra,28(sp) + 6cfa: 212a lhu a0,2(a0) + 6cfc: 6105 addi sp,sp,32 + 6cfe: 6720806f j f370 + 6d02: 40f2 lw ra,28(sp) + 6d04: 4549 li a0,18 + 6d06: 6105 addi sp,sp,32 + 6d08: 8082 ret + +00006d0a : +GAP_ParamInit(): + 6d0a: 96018ca3 sb zero,-1671(gp) # 20001331 + 6d0e: 96018c23 sb zero,-1672(gp) # 20001330 + 6d12: 9601aa23 sw zero,-1676(gp) # 2000132c + 6d16: 9601a823 sw zero,-1680(gp) # 20001328 + 6d1a: 9401ae23 sw zero,-1700(gp) # 20001314 + 6d1e: 9401ac23 sw zero,-1704(gp) # 20001310 + 6d22: 1fffc797 auipc a5,0x1fffc + 6d26: bee78793 addi a5,a5,-1042 # 20002910 + 6d2a: 00b40737 lui a4,0xb40 + 6d2e: c398 sw a4,0(a5) + 6d30: 00a00737 lui a4,0xa00 + 6d34: 0a070713 addi a4,a4,160 # a000a0 <_data_lma+0x9e4ae4> + 6d38: c3d8 sw a4,4(a5) + 6d3a: 0007c737 lui a4,0x7c + 6d3e: b8070713 addi a4,a4,-1152 # 7bb80 <_data_lma+0x605c4> + 6d42: c798 sw a4,8(a5) + 6d44: 6741 lui a4,0x10 + 6d46: 0741 addi a4,a4,16 # 10010 + 6d48: c7d8 sw a4,12(a5) + 6d4a: 007f0737 lui a4,0x7f0 + 6d4e: cb98 sw a4,16(a5) + 6d50: ff810737 lui a4,0xff810 + 6d54: cbd8 sw a4,20(a5) + 6d56: 577d li a4,-1 + 6d58: af9a sh a4,24(a5) + 6d5a: 8082 ret + +00006d5c : +sendTerminateEvent(): + 6d5c: 1101 addi sp,sp,-32 + 6d5e: c452 sw s4,8(sp) + 6d60: 8a2a mv s4,a0 + 6d62: 4521 li a0,8 + 6d64: cc22 sw s0,24(sp) + 6d66: ca26 sw s1,20(sp) + 6d68: c84a sw s2,16(sp) + 6d6a: c64e sw s3,12(sp) + 6d6c: ce06 sw ra,28(sp) + 6d6e: 842e mv s0,a1 + 6d70: 89b2 mv s3,a2 + 6d72: 8936 mv s2,a3 + 6d74: 84ba mv s1,a4 + 6d76: e27fe0ef jal ra,5b9c + 6d7a: c905 beqz a0,6daa + 6d7c: fd000793 li a5,-48 + 6d80: a11c sb a5,0(a0) + 6d82: 4799 li a5,6 + 6d84: 014500a3 sb s4,1(a0) + 6d88: a13c sb a5,2(a0) + 6d8a: 01250323 sb s2,6(a0) + 6d8e: b164 sb s1,7(a0) + 6d90: 01351223 sh s3,4(a0) + 6d94: 85aa mv a1,a0 + 6d96: 8522 mv a0,s0 + 6d98: 4462 lw s0,24(sp) + 6d9a: 40f2 lw ra,28(sp) + 6d9c: 44d2 lw s1,20(sp) + 6d9e: 4942 lw s2,16(sp) + 6da0: 49b2 lw s3,12(sp) + 6da2: 4a22 lw s4,8(sp) + 6da4: 6105 addi sp,sp,32 + 6da6: ef1fe06f j 5c96 + 6daa: 40f2 lw ra,28(sp) + 6dac: 4462 lw s0,24(sp) + 6dae: 44d2 lw s1,20(sp) + 6db0: 4942 lw s2,16(sp) + 6db2: 49b2 lw s3,12(sp) + 6db4: 4a22 lw s4,8(sp) + 6db6: 6105 addi sp,sp,32 + 6db8: 8082 ret + +00006dba : +gapRegisterPeripheral(): + 6dba: 96a1aa23 sw a0,-1676(gp) # 2000132c + 6dbe: 8082 ret + +00006dc0 : +gapRegisterPeripheralConn(): + 6dc0: 96a1a823 sw a0,-1680(gp) # 20001328 + 6dc4: 8082 ret + +00006dc6 : +smGenerateRandBuf(): + 6dc6: 1101 addi sp,sp,-32 + 6dc8: cc22 sw s0,24(sp) + 6dca: ca26 sw s1,20(sp) + 6dcc: c84a sw s2,16(sp) + 6dce: ce06 sw ra,28(sp) + 6dd0: c64e sw s3,12(sp) + 6dd2: 892a mv s2,a0 + 6dd4: 84ae mv s1,a1 + 6dd6: 4401 li s0,0 + 6dd8: 008909b3 add s3,s2,s0 + 6ddc: 00946963 bltu s0,s1,6dee + 6de0: 40f2 lw ra,28(sp) + 6de2: 4462 lw s0,24(sp) + 6de4: 44d2 lw s1,20(sp) + 6de6: 4942 lw s2,16(sp) + 6de8: 49b2 lw s3,12(sp) + 6dea: 6105 addi sp,sp,32 + 6dec: 8082 ret + 6dee: 1fffa097 auipc ra,0x1fffa + 6df2: a28080e7 jalr -1496(ra) # 20000816 + 6df6: 080547b3 zext.h a5,a0 + 6dfa: 83a1 srli a5,a5,0x8 + 6dfc: 00f98023 sb a5,0(s3) + 6e00: 00140793 addi a5,s0,1 + 6e04: 0ff7f793 zext.b a5,a5 + 6e08: 0985 addi s3,s3,1 + 6e0a: 0097f863 bgeu a5,s1,6e1a + 6e0e: 97ca add a5,a5,s2 + 6e10: 0409 addi s0,s0,2 + 6e12: a388 sb a0,0(a5) + 6e14: 0ff47413 zext.b s0,s0 + 6e18: b7c1 j 6dd8 + 6e1a: 843e mv s0,a5 + 6e1c: b7c1 j 6ddc + +00006e1e : +gapL2capConnParamUpdateReq(): + 6e1e: 1141 addi sp,sp,-16 + 6e20: c422 sw s0,8(sp) + 6e22: 1fffc417 auipc s0,0x1fffc + 6e26: b0640413 addi s0,s0,-1274 # 20002928 + 6e2a: 280a lhu a0,16(s0) + 6e2c: 67c1 lui a5,0x10 + 6e2e: c606 sw ra,12(sp) + 6e30: 17fd addi a5,a5,-1 # ffff + 6e32: 00f50a63 beq a0,a5,6e46 + 6e36: 9cc1c603 lbu a2,-1588(gp) # 20001384 + 6e3a: 96018593 addi a1,gp,-1696 # 20001318 + 6e3e: 42d040ef jal ra,ba6a + 6e42: 57fd li a5,-1 + 6e44: a81e sh a5,16(s0) + 6e46: 40b2 lw ra,12(sp) + 6e48: 4422 lw s0,8(sp) + 6e4a: 0141 addi sp,sp,16 + 6e4c: 8082 ret + +00006e4e : +gapFindADType(): + 6e4e: 00059023 sh zero,0(a1) + 6e52: ceb1 beqz a3,6eae + 6e54: 4781 li a5,0 + 6e56: 0c000e13 li t3,192 + 6e5a: 04c7fa63 bgeu a5,a2,6eae + 6e5e: 00f68733 add a4,a3,a5 + 6e62: 00074803 lbu a6,0(a4) # ff810000 <_eusrstack+0xdf80d000> + 6e66: 00178713 addi a4,a5,1 + 6e6a: 08074733 zext.h a4,a4 + 6e6e: 04080063 beqz a6,6eae + 6e72: 00e808b3 add a7,a6,a4 + 6e76: 03164c63 blt a2,a7,6eae + 6e7a: 00e688b3 add a7,a3,a4 + 6e7e: 0008c883 lbu a7,0(a7) + 6e82: 02088663 beqz a7,6eae + 6e86: fc288313 addi t1,a7,-62 + 6e8a: 0ff37313 zext.b t1,t1 + 6e8e: 026e7063 bgeu t3,t1,6eae + 6e92: fff80313 addi t1,a6,-1 + 6e96: 00659023 sh t1,0(a1) + 6e9a: 00a89663 bne a7,a0,6ea6 + 6e9e: 0705 addi a4,a4,1 + 6ea0: 00e68533 add a0,a3,a4 + 6ea4: 8082 ret + 6ea6: 97c2 add a5,a5,a6 + 6ea8: 0807c7b3 zext.h a5,a5 + 6eac: b77d j 6e5a + 6eae: 4501 li a0,0 + 6eb0: 8082 ret + +00006eb2 : +GAP_SecParamsInit(): + 6eb2: 1101 addi sp,sp,-32 + 6eb4: cc22 sw s0,24(sp) + 6eb6: ca26 sw s1,20(sp) + 6eb8: c84a sw s2,16(sp) + 6eba: c64e sw s3,12(sp) + 6ebc: ce06 sw ra,28(sp) + 6ebe: 1fffc497 auipc s1,0x1fffc + 6ec2: a6a48493 addi s1,s1,-1430 # 20002928 + 6ec6: 892e mv s2,a1 + 6ec8: c490 sw a2,8(s1) + 6eca: c0cc sw a1,4(s1) + 6ecc: c088 sw a0,0(s1) + 6ece: 842a mv s0,a0 + 6ed0: 4641 li a2,16 + 6ed2: 0ff00593 li a1,255 + 6ed6: 854a mv a0,s2 + 6ed8: 42e130ef jal ra,1a306 + 6edc: 4985 li s3,1 + 6ede: 03351963 bne a0,s3,6f10 + 6ee2: 40c8 lw a0,4(s1) + 6ee4: 45c1 li a1,16 + 6ee6: ee1ff0ef jal ra,6dc6 + 6eea: 4641 li a2,16 + 6eec: 0ff00593 li a1,255 + 6ef0: 8522 mv a0,s0 + 6ef2: 414130ef jal ra,1a306 + 6ef6: 4905 li s2,1 + 6ef8: 03251463 bne a0,s2,6f20 + 6efc: 4462 lw s0,24(sp) + 6efe: 4088 lw a0,0(s1) + 6f00: 40f2 lw ra,28(sp) + 6f02: 44d2 lw s1,20(sp) + 6f04: 4942 lw s2,16(sp) + 6f06: 49b2 lw s3,12(sp) + 6f08: 45c1 li a1,16 + 6f0a: 6105 addi sp,sp,32 + 6f0c: ebbff06f j 6dc6 + 6f10: 4641 li a2,16 + 6f12: 4581 li a1,0 + 6f14: 854a mv a0,s2 + 6f16: 3f0130ef jal ra,1a306 + 6f1a: fd3518e3 bne a0,s3,6eea + 6f1e: b7d1 j 6ee2 + 6f20: 4641 li a2,16 + 6f22: 4581 li a1,0 + 6f24: 8522 mv a0,s0 + 6f26: 3e0130ef jal ra,1a306 + 6f2a: fd2509e3 beq a0,s2,6efc + 6f2e: 40f2 lw ra,28(sp) + 6f30: 4462 lw s0,24(sp) + 6f32: 44d2 lw s1,20(sp) + 6f34: 4942 lw s2,16(sp) + 6f36: 49b2 lw s3,12(sp) + 6f38: 6105 addi sp,sp,32 + 6f3a: 8082 ret + +00006f3c : +GAP_ParamsInit(): + 6f3c: 1141 addi sp,sp,-16 + 6f3e: c422 sw s0,8(sp) + 6f40: c226 sw s1,4(sp) + 6f42: 842e mv s0,a1 + 6f44: 84aa mv s1,a0 + 6f46: 4671 li a2,28 + 6f48: 4581 li a1,0 + 6f4a: 1fffc517 auipc a0,0x1fffc + 6f4e: 9de50513 addi a0,a0,-1570 # 20002928 + 6f52: c606 sw ra,12(sp) + 6f54: c04a sw s2,0(sp) + 6f56: 1fffa097 auipc ra,0x1fffa + 6f5a: 944080e7 jalr -1724(ra) # 2000089a + 6f5e: 1fffc917 auipc s2,0x1fffc + 6f62: 9ca90913 addi s2,s2,-1590 # 20002928 + 6f66: 9c818823 sb s0,-1584(gp) # 20001388 + 6f6a: 009907a3 sb s1,15(s2) + 6f6e: 41a080ef jal ra,f388 + 6f72: 4785 li a5,1 + 6f74: c119 beqz a0,6f7a + 6f76: 4781 li a5,0 + 6f78: 4549 li a0,18 + 6f7a: 00f90623 sb a5,12(s2) + 6f7e: 40b2 lw ra,12(sp) + 6f80: 4422 lw s0,8(sp) + 6f82: 4492 lw s1,4(sp) + 6f84: 4902 lw s2,0(sp) + 6f86: 0141 addi sp,sp,16 + 6f88: 8082 ret + +00006f8a : +gapAddAddrAdj(): + 6f8a: c19d beqz a1,6fb0 + 6f8c: c11d beqz a0,6fb2 + 6f8e: 4785 li a5,1 + 6f90: 00f51763 bne a0,a5,6f9e + 6f94: 31dc lbu a5,5(a1) + 6f96: fc07e793 ori a5,a5,-64 + 6f9a: b1dc sb a5,5(a1) + 6f9c: a021 j 6fa4 + 6f9e: 4789 li a5,2 + 6fa0: 00f50463 beq a0,a5,6fa8 + 6fa4: 4505 li a0,1 + 6fa6: 8082 ret + 6fa8: 31dc lbu a5,5(a1) + 6faa: 03f7f793 andi a5,a5,63 + 6fae: b7f5 j 6f9a + 6fb0: 4501 li a0,0 + 6fb2: 8082 ret + +00006fb4 : +gapDetermineAddrType(): + 6fb4: c18d beqz a1,6fd6 + 6fb6: c10d beqz a0,6fd8 + 6fb8: 31dc lbu a5,5(a1) + 6fba: 0c000713 li a4,192 + 6fbe: 4505 li a0,1 + 6fc0: 0c07f793 andi a5,a5,192 + 6fc4: 00e78a63 beq a5,a4,6fd8 + 6fc8: 04000713 li a4,64 + 6fcc: 4509 li a0,2 + 6fce: 00e79563 bne a5,a4,6fd8 + 6fd2: 450d li a0,3 + 6fd4: 8082 ret + 6fd6: 4501 li a0,0 + 6fd8: 8082 ret + +00006fda : +gapFreeAuthLink(): + 6fda: 1141 addi sp,sp,-16 + 6fdc: c422 sw s0,8(sp) + 6fde: 5d00 lw s0,56(a0) + 6fe0: c606 sw ra,12(sp) + 6fe2: c226 sw s1,4(sp) + 6fe4: c81d beqz s0,701a + 6fe6: 84aa mv s1,a0 + 6fe8: 5008 lw a0,32(s0) + 6fea: c509 beqz a0,6ff4 + 6fec: 1fffa097 auipc ra,0x1fffa + 6ff0: ed4080e7 jalr -300(ra) # 20000ec0 + 6ff4: 5048 lw a0,36(s0) + 6ff6: c509 beqz a0,7000 + 6ff8: 1fffa097 auipc ra,0x1fffa + 6ffc: ec8080e7 jalr -312(ra) # 20000ec0 + 7000: 5408 lw a0,40(s0) + 7002: c509 beqz a0,700c + 7004: 1fffa097 auipc ra,0x1fffa + 7008: ebc080e7 jalr -324(ra) # 20000ec0 + 700c: 8522 mv a0,s0 + 700e: 1fffa097 auipc ra,0x1fffa + 7012: eb2080e7 jalr -334(ra) # 20000ec0 + 7016: 0204ac23 sw zero,56(s1) + 701a: 40b2 lw ra,12(sp) + 701c: 4422 lw s0,8(sp) + 701e: 4492 lw s1,4(sp) + 7020: 0141 addi sp,sp,16 + 7022: 8082 ret + +00007024 : +gapGetDevAddress(): + 7024: ed09 bnez a0,703e + 7026: 1fffc797 auipc a5,0x1fffc + 702a: 9107c783 lbu a5,-1776(a5) # 20002936 + 702e: 1fffc517 auipc a0,0x1fffc + 7032: 90e50513 addi a0,a0,-1778 # 2000293c + 7036: cb81 beqz a5,7046 + 7038: 96818513 addi a0,gp,-1688 # 20001320 + 703c: 8082 ret + 703e: 1fffc517 auipc a0,0x1fffc + 7042: 8fe50513 addi a0,a0,-1794 # 2000293c + 7046: 8082 ret + +00007048 : +gapGetDevAddressMode(): + 7048: 1fffc517 auipc a0,0x1fffc + 704c: 8ee54503 lbu a0,-1810(a0) # 20002936 + 7050: 8082 ret + +00007052 : +gapGetIRK(): + 7052: 1fffc517 auipc a0,0x1fffc + 7056: 8d652503 lw a0,-1834(a0) # 20002928 + 705a: 8082 ret + +0000705c : +gapGetSRK(): + 705c: 1fffc517 auipc a0,0x1fffc + 7060: 8d052503 lw a0,-1840(a0) # 2000292c + 7064: 8082 ret + +00007066 : +gapGetSignCounter(): + 7066: 1fffc797 auipc a5,0x1fffc + 706a: 8ca7a783 lw a5,-1846(a5) # 20002930 + 706e: 4388 lw a0,0(a5) + 7070: 8082 ret + +00007072 : +gapIncSignCounter(): + 7072: 1fffc717 auipc a4,0x1fffc + 7076: 8b670713 addi a4,a4,-1866 # 20002928 + 707a: 4714 lw a3,8(a4) + 707c: 429c lw a5,0(a3) + 707e: 0785 addi a5,a5,1 + 7080: c29c sw a5,0(a3) + 7082: 3768 lbu a0,15(a4) + 7084: 0ff00793 li a5,255 + 7088: 00f50563 beq a0,a5,7092 + 708c: 6591 lui a1,0x4 + 708e: 3b61306f j 1a444 + 7092: 8082 ret + +00007094 : +gapProcessConnEvt(): + 7094: 1101 addi sp,sp,-32 + 7096: cc22 sw s0,24(sp) + 7098: ce06 sw ra,28(sp) + 709a: 842e mv s0,a1 + 709c: c632 sw a2,12(sp) + 709e: 47f040ef jal ra,bd1c + 70a2: 4791 li a5,4 + 70a4: 45b2 lw a1,12(sp) + 70a6: 00f51c63 bne a0,a5,70be + 70aa: 9701a783 lw a5,-1680(gp) # 20001328 + 70ae: cb81 beqz a5,70be + 70b0: 439c lw a5,0(a5) + 70b2: c791 beqz a5,70be + 70b4: 8522 mv a0,s0 + 70b6: 4462 lw s0,24(sp) + 70b8: 40f2 lw ra,28(sp) + 70ba: 6105 addi sp,sp,32 + 70bc: 8782 jr a5 + 70be: 40f2 lw ra,28(sp) + 70c0: 4462 lw s0,24(sp) + 70c2: 4505 li a0,1 + 70c4: 6105 addi sp,sp,32 + 70c6: 8082 ret + +000070c8 : +gapProcessDisconnectCompleteEvt(): + 70c8: 7179 addi sp,sp,-48 + 70ca: d422 sw s0,40(sp) + 70cc: 842a mv s0,a0 + 70ce: 214a lhu a0,4(a0) + 70d0: ce4e sw s3,28(sp) + 70d2: d606 sw ra,44(sp) + 70d4: d226 sw s1,36(sp) + 70d6: d04a sw s2,32(sp) + 70d8: 259040ef jal ra,bb30 + 70dc: 97818993 addi s3,gp,-1672 # 20001330 + 70e0: e531 bnez a0,712c + 70e2: 0009c483 lbu s1,0(s3) + 70e6: 0ff00793 li a5,255 + 70ea: 00f49a63 bne s1,a5,70fe + 70ee: 9791c583 lbu a1,-1671(gp) # 20001331 + 70f2: 8526 mv a0,s1 + 70f4: bf7ff0ef jal ra,6cea + 70f8: e119 bnez a0,70fe + 70fa: 96018c23 sb zero,-1672(gp) # 20001330 + 70fe: 204a lhu a0,4(s0) + 7100: 41d040ef jal ra,bd1c + 7104: 4791 li a5,4 + 7106: 00f51c63 bne a0,a5,711e + 710a: 1fffc797 auipc a5,0x1fffc + 710e: 81e78793 addi a5,a5,-2018 # 20002928 + 7112: 2056 lhu a3,4(s0) + 7114: 2b9a lhu a4,16(a5) + 7116: 00e69463 bne a3,a4,711e + 711a: 577d li a4,-1 + 711c: ab9a sh a4,16(a5) + 711e: 50b2 lw ra,44(sp) + 7120: 5422 lw s0,40(sp) + 7122: 5492 lw s1,36(sp) + 7124: 5902 lw s2,32(sp) + 7126: 49f2 lw s3,28(sp) + 7128: 6145 addi sp,sp,48 + 712a: 8082 ret + 712c: 2558 lbu a4,12(a0) + 712e: 2104 lbu s1,0(a0) + 7130: 892a mv s2,a0 + 7132: c63a sw a4,12(sp) + 7134: ea7ff0ef jal ra,6fda + 7138: 854a mv a0,s2 + 713a: 6b5040ef jal ra,bfee + 713e: 204a lhu a0,4(s0) + 7140: 395040ef jal ra,bcd4 + 7144: 0009c783 lbu a5,0(s3) + 7148: 4732 lw a4,12(sp) + 714a: c399 beqz a5,7150 + 714c: fa9781e3 beq a5,s1,70ee + 7150: 0ff00793 li a5,255 + 7154: 2052 lhu a2,4(s0) + 7156: faf484e3 beq s1,a5,70fe + 715a: 2074 lbu a3,6(s0) + 715c: 2028 lbu a0,2(s0) + 715e: 85a6 mv a1,s1 + 7160: bfdff0ef jal ra,6d5c + 7164: bf69 j 70fe + +00007166 : +gapProcessRandomAddrComplete(): + 7166: 1141 addi sp,sp,-16 + 7168: c226 sw s1,4(sp) + 716a: c606 sw ra,12(sp) + 716c: c422 sw s0,8(sp) + 716e: c04a sw s2,0(sp) + 7170: 1fffb497 auipc s1,0x1fffb + 7174: 7b848493 addi s1,s1,1976 # 20002928 + 7178: 34f8 lbu a4,15(s1) + 717a: 0ff00793 li a5,255 + 717e: 04f70363 beq a4,a5,71c4 + 7182: 892a mv s2,a0 + 7184: 4529 li a0,10 + 7186: a17fe0ef jal ra,5b9c + 718a: 842a mv s0,a0 + 718c: cd05 beqz a0,71c4 + 718e: fd000793 li a5,-48 + 7192: a11c sb a5,0(a0) + 7194: 47a1 li a5,8 + 7196: 012500a3 sb s2,1(a0) + 719a: a13c sb a5,2(a0) + 719c: 24fc lbu a5,14(s1) + 719e: 96818593 addi a1,gp,-1688 # 20001320 + 71a2: 0511 addi a0,a0,4 + 71a4: fef50fa3 sb a5,-1(a0) + 71a8: 4619 li a2,6 + 71aa: 1fff9097 auipc ra,0x1fff9 + 71ae: 6b2080e7 jalr 1714(ra) # 2000085c + 71b2: 85a2 mv a1,s0 + 71b4: 4422 lw s0,8(sp) + 71b6: 34e8 lbu a0,15(s1) + 71b8: 40b2 lw ra,12(sp) + 71ba: 4492 lw s1,4(sp) + 71bc: 4902 lw s2,0(sp) + 71be: 0141 addi sp,sp,16 + 71c0: ad7fe06f j 5c96 + 71c4: 40b2 lw ra,12(sp) + 71c6: 4422 lw s0,8(sp) + 71c8: 4492 lw s1,4(sp) + 71ca: 4902 lw s2,0(sp) + 71cc: 0141 addi sp,sp,16 + 71ce: 8082 ret + +000071d0 : +sendAuthEvent(): + 71d0: 7179 addi sp,sp,-48 + 71d2: c85a sw s6,16(sp) + 71d4: 8b2a mv s6,a0 + 71d6: 852e mv a0,a1 + 71d8: ce4e sw s3,28(sp) + 71da: cc52 sw s4,24(sp) + 71dc: ca56 sw s5,20(sp) + 71de: d606 sw ra,44(sp) + 71e0: d422 sw s0,40(sp) + 71e2: d226 sw s1,36(sp) + 71e4: d04a sw s2,32(sp) + 71e6: c65e sw s7,12(sp) + 71e8: 8a2e mv s4,a1 + 71ea: 8ab2 mv s5,a2 + 71ec: 89b6 mv s3,a3 + 71ee: 143040ef jal ra,bb30 + 71f2: c56d beqz a0,72dc + 71f4: 5d04 lw s1,56(a0) + 71f6: 892a mv s2,a0 + 71f8: c0f5 beqz s1,72dc + 71fa: 509c lw a5,32(s1) + 71fc: 03400513 li a0,52 + 7200: e391 bnez a5,7204 + 7202: 4561 li a0,24 + 7204: 549c lw a5,40(s1) + 7206: c789 beqz a5,7210 + 7208: 01450793 addi a5,a0,20 + 720c: 0807c533 zext.h a0,a5 + 7210: 00098663 beqz s3,721c + 7214: 01c50793 addi a5,a0,28 + 7218: 0807c533 zext.h a0,a5 + 721c: 50dc lw a5,36(s1) + 721e: c789 beqz a5,7228 + 7220: 01750793 addi a5,a0,23 + 7224: 0807c533 zext.h a0,a5 + 7228: 975fe0ef jal ra,5b9c + 722c: 842a mv s0,a0 + 722e: c55d beqz a0,72dc + 7230: 4661 li a2,24 + 7232: 4581 li a1,0 + 7234: 1fff9097 auipc ra,0x1fff9 + 7238: 666080e7 jalr 1638(ra) # 2000089a + 723c: 1fffbb97 auipc s7,0x1fffb + 7240: 6e4bcb83 lbu s7,1764(s7) # 20002920 + 7244: 000b9463 bnez s7,724c + 7248: 00094b83 lbu s7,0(s2) + 724c: fd000793 li a5,-48 + 7250: a01c sb a5,0(s0) + 7252: 47a9 li a5,10 + 7254: 016400a3 sb s6,1(s0) + 7258: a03c sb a5,2(s0) + 725a: 01540323 sb s5,6(s0) + 725e: 508c lw a1,32(s1) + 7260: 01441223 sh s4,4(s0) + 7264: 01840513 addi a0,s0,24 + 7268: c991 beqz a1,727c + 726a: c408 sw a0,8(s0) + 726c: 4671 li a2,28 + 726e: 03440a13 addi s4,s0,52 + 7272: 1fff9097 auipc ra,0x1fff9 + 7276: 5ea080e7 jalr 1514(ra) # 2000085c + 727a: 8552 mv a0,s4 + 727c: 548c lw a1,40(s1) + 727e: c991 beqz a1,7292 + 7280: c448 sw a0,12(s0) + 7282: 4651 li a2,20 + 7284: 01450a13 addi s4,a0,20 + 7288: 1fff9097 auipc ra,0x1fff9 + 728c: 5d4080e7 jalr 1492(ra) # 2000085c + 7290: 8552 mv a0,s4 + 7292: 00098c63 beqz s3,72aa + 7296: c808 sw a0,16(s0) + 7298: 4671 li a2,28 + 729a: 85ce mv a1,s3 + 729c: 01c50a13 addi s4,a0,28 + 72a0: 1fff9097 auipc ra,0x1fff9 + 72a4: 5bc080e7 jalr 1468(ra) # 2000085c + 72a8: 8552 mv a0,s4 + 72aa: 50cc lw a1,36(s1) + 72ac: c599 beqz a1,72ba + 72ae: c848 sw a0,20(s0) + 72b0: 465d li a2,23 + 72b2: 1fff9097 auipc ra,0x1fff9 + 72b6: 5aa080e7 jalr 1450(ra) # 2000085c + 72ba: 85a2 mv a1,s0 + 72bc: 855e mv a0,s7 + 72be: 9d9fe0ef jal ra,5c96 + 72c2: 5422 lw s0,40(sp) + 72c4: 50b2 lw ra,44(sp) + 72c6: 5492 lw s1,36(sp) + 72c8: 49f2 lw s3,28(sp) + 72ca: 4a62 lw s4,24(sp) + 72cc: 4ad2 lw s5,20(sp) + 72ce: 4b42 lw s6,16(sp) + 72d0: 4bb2 lw s7,12(sp) + 72d2: 854a mv a0,s2 + 72d4: 5902 lw s2,32(sp) + 72d6: 6145 addi sp,sp,48 + 72d8: d03ff06f j 6fda + 72dc: 50b2 lw ra,44(sp) + 72de: 5422 lw s0,40(sp) + 72e0: 5492 lw s1,36(sp) + 72e2: 5902 lw s2,32(sp) + 72e4: 49f2 lw s3,28(sp) + 72e6: 4a62 lw s4,24(sp) + 72e8: 4ad2 lw s5,20(sp) + 72ea: 4b42 lw s6,16(sp) + 72ec: 4bb2 lw s7,12(sp) + 72ee: 6145 addi sp,sp,48 + 72f0: 8082 ret + +000072f2 : +gapSendBondCompleteEvent(): + 72f2: 1101 addi sp,sp,-32 + 72f4: c64e sw s3,12(sp) + 72f6: 89aa mv s3,a0 + 72f8: 852e mv a0,a1 + 72fa: ca26 sw s1,20(sp) + 72fc: ce06 sw ra,28(sp) + 72fe: cc22 sw s0,24(sp) + 7300: c84a sw s2,16(sp) + 7302: 84ae mv s1,a1 + 7304: 02d040ef jal ra,bb30 + 7308: c531 beqz a0,7354 + 730a: 1fffb917 auipc s2,0x1fffb + 730e: 61694903 lbu s2,1558(s2) # 20002920 + 7312: 00091463 bnez s2,731a + 7316: 00054903 lbu s2,0(a0) + 731a: 4519 li a0,6 + 731c: 881fe0ef jal ra,5b9c + 7320: 842a mv s0,a0 + 7322: c90d beqz a0,7354 + 7324: 4581 li a1,0 + 7326: 4619 li a2,6 + 7328: 1fff9097 auipc ra,0x1fff9 + 732c: 572080e7 jalr 1394(ra) # 2000089a + 7330: fd000793 li a5,-48 + 7334: a01c sb a5,0(s0) + 7336: 47b9 li a5,14 + 7338: 013400a3 sb s3,1(s0) + 733c: a03c sb a5,2(s0) + 733e: a046 sh s1,4(s0) + 7340: 85a2 mv a1,s0 + 7342: 4462 lw s0,24(sp) + 7344: 40f2 lw ra,28(sp) + 7346: 44d2 lw s1,20(sp) + 7348: 49b2 lw s3,12(sp) + 734a: 854a mv a0,s2 + 734c: 4942 lw s2,16(sp) + 734e: 6105 addi sp,sp,32 + 7350: 947fe06f j 5c96 + 7354: 40f2 lw ra,28(sp) + 7356: 4462 lw s0,24(sp) + 7358: 44d2 lw s1,20(sp) + 735a: 4942 lw s2,16(sp) + 735c: 49b2 lw s3,12(sp) + 735e: 6105 addi sp,sp,32 + 7360: 8082 ret + +00007362 : +gapSendPairingReqEvent(): + 7362: 7179 addi sp,sp,-48 + 7364: c462 sw s8,8(sp) + 7366: 8c2a mv s8,a0 + 7368: 852e mv a0,a1 + 736a: d226 sw s1,36(sp) + 736c: ce4e sw s3,28(sp) + 736e: cc52 sw s4,24(sp) + 7370: ca56 sw s5,20(sp) + 7372: c85a sw s6,16(sp) + 7374: c65e sw s7,12(sp) + 7376: d606 sw ra,44(sp) + 7378: d422 sw s0,40(sp) + 737a: d04a sw s2,32(sp) + 737c: 84ae mv s1,a1 + 737e: 8bb2 mv s7,a2 + 7380: 8b36 mv s6,a3 + 7382: 8aba mv s5,a4 + 7384: 8a3e mv s4,a5 + 7386: 89c2 mv s3,a6 + 7388: 7a8040ef jal ra,bb30 + 738c: c525 beqz a0,73f4 + 738e: 892a mv s2,a0 + 7390: 4541 li a0,16 + 7392: 80bfe0ef jal ra,5b9c + 7396: 842a mv s0,a0 + 7398: cd31 beqz a0,73f4 + 739a: 4641 li a2,16 + 739c: 4581 li a1,0 + 739e: 1fff9097 auipc ra,0x1fff9 + 73a2: 4fc080e7 jalr 1276(ra) # 2000089a + 73a6: 1fffb517 auipc a0,0x1fffb + 73aa: 57a54503 lbu a0,1402(a0) # 20002920 + 73ae: e119 bnez a0,73b4 + 73b0: 00094503 lbu a0,0(s2) + 73b4: fd000793 li a5,-48 + 73b8: a01c sb a5,0(s0) + 73ba: 47bd li a5,15 + 73bc: 018400a3 sb s8,1(s0) + 73c0: a03c sb a5,2(s0) + 73c2: 01740423 sb s7,8(s0) + 73c6: 016404a3 sb s6,9(s0) + 73ca: 01540523 sb s5,10(s0) + 73ce: 014405a3 sb s4,11(s0) + 73d2: a046 sh s1,4(s0) + 73d4: 01342623 sw s3,12(s0) + 73d8: 85a2 mv a1,s0 + 73da: 5422 lw s0,40(sp) + 73dc: 50b2 lw ra,44(sp) + 73de: 5492 lw s1,36(sp) + 73e0: 5902 lw s2,32(sp) + 73e2: 49f2 lw s3,28(sp) + 73e4: 4a62 lw s4,24(sp) + 73e6: 4ad2 lw s5,20(sp) + 73e8: 4b42 lw s6,16(sp) + 73ea: 4bb2 lw s7,12(sp) + 73ec: 4c22 lw s8,8(sp) + 73ee: 6145 addi sp,sp,48 + 73f0: 8a7fe06f j 5c96 + 73f4: 50b2 lw ra,44(sp) + 73f6: 5422 lw s0,40(sp) + 73f8: 5492 lw s1,36(sp) + 73fa: 5902 lw s2,32(sp) + 73fc: 49f2 lw s3,28(sp) + 73fe: 4a62 lw s4,24(sp) + 7400: 4ad2 lw s5,20(sp) + 7402: 4b42 lw s6,16(sp) + 7404: 4bb2 lw s7,12(sp) + 7406: 4c22 lw s8,8(sp) + 7408: 6145 addi sp,sp,48 + 740a: 8082 ret + +0000740c : +gapSendDeviceInitDoneEvent(): + 740c: 1141 addi sp,sp,-16 + 740e: c226 sw s1,4(sp) + 7410: c606 sw ra,12(sp) + 7412: c422 sw s0,8(sp) + 7414: c04a sw s2,0(sp) + 7416: 1fffb497 auipc s1,0x1fffb + 741a: 51248493 addi s1,s1,1298 # 20002928 + 741e: 34f8 lbu a4,15(s1) + 7420: 0ff00793 li a5,255 + 7424: 04f70663 beq a4,a5,7470 + 7428: 892a mv s2,a0 + 742a: 4539 li a0,14 + 742c: f70fe0ef jal ra,5b9c + 7430: 842a mv s0,a0 + 7432: cd1d beqz a0,7470 + 7434: fd000793 li a5,-48 + 7438: a11c sb a5,0(a0) + 743a: 012500a3 sb s2,1(a0) + 743e: 00050123 sb zero,2(a0) + 7442: 1fffb597 auipc a1,0x1fffb + 7446: 4fa58593 addi a1,a1,1274 # 2000293c + 744a: 050d addi a0,a0,3 + 744c: 4619 li a2,6 + 744e: 1fff9097 auipc ra,0x1fff9 + 7452: 40e080e7 jalr 1038(ra) # 2000085c + 7456: 28be lhu a5,18(s1) + 7458: 85a2 mv a1,s0 + 745a: a43e sh a5,10(s0) + 745c: 34dc lbu a5,13(s1) + 745e: a45c sb a5,12(s0) + 7460: 4422 lw s0,8(sp) + 7462: 34e8 lbu a0,15(s1) + 7464: 40b2 lw ra,12(sp) + 7466: 4492 lw s1,4(sp) + 7468: 4902 lw s2,0(sp) + 746a: 0141 addi sp,sp,16 + 746c: 82bfe06f j 5c96 + 7470: 40b2 lw ra,12(sp) + 7472: 4422 lw s0,8(sp) + 7474: 4492 lw s1,4(sp) + 7476: 4902 lw s2,0(sp) + 7478: 0141 addi sp,sp,16 + 747a: 8082 ret + +0000747c : +gapSendLinkUpdateEvent(): + 747c: 1101 addi sp,sp,-32 + 747e: c256 sw s5,4(sp) + 7480: 8aaa mv s5,a0 + 7482: 4531 li a0,12 + 7484: ca26 sw s1,20(sp) + 7486: c84a sw s2,16(sp) + 7488: c64e sw s3,12(sp) + 748a: c452 sw s4,8(sp) + 748c: ce06 sw ra,28(sp) + 748e: cc22 sw s0,24(sp) + 7490: c05a sw s6,0(sp) + 7492: 84ae mv s1,a1 + 7494: 8a32 mv s4,a2 + 7496: 89b6 mv s3,a3 + 7498: 893a mv s2,a4 + 749a: f02fe0ef jal ra,5b9c + 749e: c13d beqz a0,7504 + 74a0: 842a mv s0,a0 + 74a2: 8526 mv a0,s1 + 74a4: 68c040ef jal ra,bb30 + 74a8: c929 beqz a0,74fa + 74aa: 9d11cb03 lbu s6,-1583(gp) # 20001389 + 74ae: 000a9b63 bnez s5,74c4 + 74b2: a401a783 lw a5,-1472(gp) # 200013f8 + 74b6: 479c lw a5,8(a5) + 74b8: c791 beqz a5,74c4 + 74ba: 86ca mv a3,s2 + 74bc: 864e mv a2,s3 + 74be: 85d2 mv a1,s4 + 74c0: 8526 mv a0,s1 + 74c2: 9782 jalr a5 + 74c4: fd000793 li a5,-48 + 74c8: a01c sb a5,0(s0) + 74ca: 479d li a5,7 + 74cc: 015400a3 sb s5,1(s0) + 74d0: a03c sb a5,2(s0) + 74d2: a046 sh s1,4(s0) + 74d4: 01441323 sh s4,6(s0) + 74d8: 01341423 sh s3,8(s0) + 74dc: 01241523 sh s2,10(s0) + 74e0: 85a2 mv a1,s0 + 74e2: 4462 lw s0,24(sp) + 74e4: 40f2 lw ra,28(sp) + 74e6: 44d2 lw s1,20(sp) + 74e8: 4942 lw s2,16(sp) + 74ea: 49b2 lw s3,12(sp) + 74ec: 4a22 lw s4,8(sp) + 74ee: 4a92 lw s5,4(sp) + 74f0: 855a mv a0,s6 + 74f2: 4b02 lw s6,0(sp) + 74f4: 6105 addi sp,sp,32 + 74f6: fa0fe06f j 5c96 + 74fa: 1fffbb17 auipc s6,0x1fffb + 74fe: 43db4b03 lbu s6,1085(s6) # 20002937 + 7502: b7c9 j 74c4 + 7504: 40f2 lw ra,28(sp) + 7506: 4462 lw s0,24(sp) + 7508: 44d2 lw s1,20(sp) + 750a: 4942 lw s2,16(sp) + 750c: 49b2 lw s3,12(sp) + 750e: 4a22 lw s4,8(sp) + 7510: 4a92 lw s5,4(sp) + 7512: 4b02 lw s6,0(sp) + 7514: 6105 addi sp,sp,32 + 7516: 8082 ret + +00007518 : +gapSendPhyUpdateEvent(): + 7518: 1141 addi sp,sp,-16 + 751a: c226 sw s1,4(sp) + 751c: 84aa mv s1,a0 + 751e: 4521 li a0,8 + 7520: c422 sw s0,8(sp) + 7522: c606 sw ra,12(sp) + 7524: 842e mv s0,a1 + 7526: e76fe0ef jal ra,5b9c + 752a: c515 beqz a0,7556 + 752c: fd000793 li a5,-48 + 7530: a11c sb a5,0(a0) + 7532: 47c5 li a5,17 + 7534: a13c sb a5,2(a0) + 7536: 303c lbu a5,3(s0) + 7538: 85aa mv a1,a0 + 753a: b13c sb a5,3(a0) + 753c: 205e lhu a5,4(s0) + 753e: a15e sh a5,4(a0) + 7540: 207c lbu a5,6(s0) + 7542: a17c sb a5,6(a0) + 7544: 307c lbu a5,7(s0) + 7546: b17c sb a5,7(a0) + 7548: 4422 lw s0,8(sp) + 754a: 40b2 lw ra,12(sp) + 754c: 8526 mv a0,s1 + 754e: 4492 lw s1,4(sp) + 7550: 0141 addi sp,sp,16 + 7552: f44fe06f j 5c96 + 7556: 40b2 lw ra,12(sp) + 7558: 4422 lw s0,8(sp) + 755a: 4492 lw s1,4(sp) + 755c: 0141 addi sp,sp,16 + 755e: 8082 ret + +00007560 : +gapSendEstLinkEvent(): + 7560: 7179 addi sp,sp,-48 + 7562: c462 sw s8,8(sp) + 7564: 8c2a mv s8,a0 + 7566: 4559 li a0,22 + 7568: d226 sw s1,36(sp) + 756a: d04a sw s2,32(sp) + 756c: ce4e sw s3,28(sp) + 756e: cc52 sw s4,24(sp) + 7570: ca56 sw s5,20(sp) + 7572: c85a sw s6,16(sp) + 7574: c65e sw s7,12(sp) + 7576: c266 sw s9,4(sp) + 7578: c06a sw s10,0(sp) + 757a: d606 sw ra,44(sp) + 757c: d422 sw s0,40(sp) + 757e: 03015d03 lhu s10,48(sp) + 7582: 03414c83 lbu s9,52(sp) + 7586: 892e mv s2,a1 + 7588: 8bb2 mv s7,a2 + 758a: 84b6 mv s1,a3 + 758c: 8b3a mv s6,a4 + 758e: 8abe mv s5,a5 + 7590: 8a42 mv s4,a6 + 7592: 89c6 mv s3,a7 + 7594: e08fe0ef jal ra,5b9c + 7598: c535 beqz a0,7604 + 759a: fd000793 li a5,-48 + 759e: a11c sb a5,0(a0) + 75a0: 4795 li a5,5 + 75a2: 018500a3 sb s8,1(a0) + 75a6: a13c sb a5,2(a0) + 75a8: 017501a3 sb s7,3(a0) + 75ac: 842a mv s0,a0 + 75ae: 4619 li a2,6 + 75b0: 0511 addi a0,a0,4 + 75b2: c0b9 beqz s1,75f8 + 75b4: 85a6 mv a1,s1 + 75b6: 1fff9097 auipc ra,0x1fff9 + 75ba: 2a6080e7 jalr 678(ra) # 2000085c + 75be: 01540623 sb s5,12(s0) + 75c2: 01940a23 sb s9,20(s0) + 75c6: 01641523 sh s6,10(s0) + 75ca: 01441723 sh s4,14(s0) + 75ce: 01341823 sh s3,16(s0) + 75d2: 01a41923 sh s10,18(s0) + 75d6: 85a2 mv a1,s0 + 75d8: 5422 lw s0,40(sp) + 75da: 50b2 lw ra,44(sp) + 75dc: 5492 lw s1,36(sp) + 75de: 49f2 lw s3,28(sp) + 75e0: 4a62 lw s4,24(sp) + 75e2: 4ad2 lw s5,20(sp) + 75e4: 4b42 lw s6,16(sp) + 75e6: 4bb2 lw s7,12(sp) + 75e8: 4c22 lw s8,8(sp) + 75ea: 4c92 lw s9,4(sp) + 75ec: 4d02 lw s10,0(sp) + 75ee: 854a mv a0,s2 + 75f0: 5902 lw s2,32(sp) + 75f2: 6145 addi sp,sp,48 + 75f4: ea2fe06f j 5c96 + 75f8: 4581 li a1,0 + 75fa: 1fff9097 auipc ra,0x1fff9 + 75fe: 2a0080e7 jalr 672(ra) # 2000089a + 7602: bf75 j 75be + 7604: 50b2 lw ra,44(sp) + 7606: 5422 lw s0,40(sp) + 7608: 5492 lw s1,36(sp) + 760a: 5902 lw s2,32(sp) + 760c: 49f2 lw s3,28(sp) + 760e: 4a62 lw s4,24(sp) + 7610: 4ad2 lw s5,20(sp) + 7612: 4b42 lw s6,16(sp) + 7614: 4bb2 lw s7,12(sp) + 7616: 4c22 lw s8,8(sp) + 7618: 4c92 lw s9,4(sp) + 761a: 4d02 lw s10,0(sp) + 761c: 6145 addi sp,sp,48 + 761e: 8082 ret + +00007620 : +GAP_Authenticate(): + 7620: 7179 addi sp,sp,-48 + 7622: d422 sw s0,40(sp) + 7624: d606 sw ra,44(sp) + 7626: d226 sw s1,36(sp) + 7628: d04a sw s2,32(sp) + 762a: ce4e sw s3,28(sp) + 762c: cc52 sw s4,24(sp) + 762e: 4409 li s0,2 + 7630: c159 beqz a0,76b6 + 7632: 892a mv s2,a0 + 7634: 210a lhu a0,0(a0) + 7636: 8a2e mv s4,a1 + 7638: 4451 li s0,20 + 763a: 4f6040ef jal ra,bb30 + 763e: 84aa mv s1,a0 + 7640: c93d beqz a0,76b6 + 7642: 5d1c lw a5,56(a0) + 7644: 4445 li s0,17 + 7646: eba5 bnez a5,76b6 + 7648: 6591 lui a1,0x4 + 764a: 71458593 addi a1,a1,1812 # 4714 + 764e: 02c00513 li a0,44 + 7652: 09a130ef jal ra,1a6ec + 7656: dc88 sw a0,56(s1) + 7658: 89aa mv s3,a0 + 765a: 444d li s0,19 + 765c: cd29 beqz a0,76b6 + 765e: 02c00613 li a2,44 + 7662: 4581 li a1,0 + 7664: 1fff9097 auipc ra,0x1fff9 + 7668: 236080e7 jalr 566(ra) # 2000089a + 766c: 00095783 lhu a5,0(s2) + 7670: 00498693 addi a3,s3,4 + 7674: 8536 mv a0,a3 + 7676: 00f99123 sh a5,2(s3) + 767a: 4671 li a2,28 + 767c: 00490593 addi a1,s2,4 + 7680: c636 sw a3,12(sp) + 7682: 1fff9097 auipc ra,0x1fff9 + 7686: 1da080e7 jalr 474(ra) # 2000085c + 768a: 4789 li a5,2 + 768c: 00f98023 sb a5,0(s3) + 7690: 46b2 lw a3,12(sp) + 7692: 00095603 lhu a2,0(s2) + 7696: 9cc1c583 lbu a1,-1588(gp) # 20001384 + 769a: 4501 li a0,0 + 769c: 1ea050ef jal ra,c886 + 76a0: 842a mv s0,a0 + 76a2: 000a0663 beqz s4,76ae + 76a6: 85d2 mv a1,s4 + 76a8: 8526 mv a0,s1 + 76aa: 3a3040ef jal ra,c24c + 76ae: c401 beqz s0,76b6 + 76b0: 8526 mv a0,s1 + 76b2: 929ff0ef jal ra,6fda + 76b6: 50b2 lw ra,44(sp) + 76b8: 8522 mv a0,s0 + 76ba: 5422 lw s0,40(sp) + 76bc: 5492 lw s1,36(sp) + 76be: 5902 lw s2,32(sp) + 76c0: 49f2 lw s3,28(sp) + 76c2: 4a62 lw s4,24(sp) + 76c4: 6145 addi sp,sp,48 + 76c6: 8082 ret + +000076c8 : +GAP_Bond(): + 76c8: ca31 beqz a2,771c + 76ca: 1141 addi sp,sp,-16 + 76cc: c422 sw s0,8(sp) + 76ce: c226 sw s1,4(sp) + 76d0: c04a sw s2,0(sp) + 76d2: c606 sw ra,12(sp) + 76d4: 892e mv s2,a1 + 76d6: 84b2 mv s1,a2 + 76d8: 458040ef jal ra,bb30 + 76dc: 842a mv s0,a0 + 76de: 4551 li a0,20 + 76e0: c805 beqz s0,7710 + 76e2: 5448 lw a0,44(s0) + 76e4: c509 beqz a0,76ee + 76e6: 1fff9097 auipc ra,0x1fff9 + 76ea: 7da080e7 jalr 2010(ra) # 20000ec0 + 76ee: 45f1 li a1,28 + 76f0: 8526 mv a0,s1 + 76f2: ea6fe0ef jal ra,5d98 + 76f6: 87aa mv a5,a0 + 76f8: d448 sw a0,44(s0) + 76fa: 454d li a0,19 + 76fc: cb91 beqz a5,7710 + 76fe: 2058 lbu a4,4(s0) + 7700: 00476793 ori a5,a4,4 + 7704: 00090463 beqz s2,770c + 7708: 00676793 ori a5,a4,6 + 770c: a05c sb a5,4(s0) + 770e: 4501 li a0,0 + 7710: 40b2 lw ra,12(sp) + 7712: 4422 lw s0,8(sp) + 7714: 4492 lw s1,4(sp) + 7716: 4902 lw s2,0(sp) + 7718: 0141 addi sp,sp,16 + 771a: 8082 ret + 771c: 4509 li a0,2 + 771e: 8082 ret + +00007720 : +GAP_GetParamValue(): + 7720: 47ad li a5,11 + 7722: 00a7ea63 bltu a5,a0,7736 + 7726: 1fffb797 auipc a5,0x1fffb + 772a: 1ea78793 addi a5,a5,490 # 20002910 + 772e: 20f52533 sh1add a0,a0,a5 + 7732: 210a lhu a0,0(a0) + 7734: 8082 ret + 7736: 6541 lui a0,0x10 + 7738: 157d addi a0,a0,-1 # ffff + 773a: 8082 ret + +0000773c : +GAP_PasscodeUpdate(): + 773c: 1101 addi sp,sp,-32 + 773e: cc22 sw s0,24(sp) + 7740: 842a mv s0,a0 + 7742: 852e mv a0,a1 + 7744: ca26 sw s1,20(sp) + 7746: ce06 sw ra,28(sp) + 7748: 84ae mv s1,a1 + 774a: 3e6040ef jal ra,bb30 + 774e: cd0d beqz a0,7788 + 7750: 000f47b7 lui a5,0xf4 + 7754: 23f78793 addi a5,a5,575 # f423f <_data_lma+0xd8c83> + 7758: 4509 li a0,2 + 775a: 0287e263 bltu a5,s0,777e + 775e: 4581 li a1,0 + 7760: 850a mv a0,sp + 7762: 4641 li a2,16 + 7764: 1fff9097 auipc ra,0x1fff9 + 7768: 136080e7 jalr 310(ra) # 2000089a + 776c: 85a6 mv a1,s1 + 776e: 8060 sh s0,0(sp) + 7770: 850a mv a0,sp + 7772: 8041 srli s0,s0,0x10 + 7774: 8140 sb s0,2(sp) + 7776: 000101a3 sb zero,3(sp) + 777a: 000050ef jal ra,c77a + 777e: 40f2 lw ra,28(sp) + 7780: 4462 lw s0,24(sp) + 7782: 44d2 lw s1,20(sp) + 7784: 6105 addi sp,sp,32 + 7786: 8082 ret + 7788: 4549 li a0,18 + 778a: bfd5 j 777e + +0000778c : +GAP_RegisterForMsgs(): + 778c: 9ca18723 sb a0,-1586(gp) # 20001386 + 7790: 8082 ret + +00007792 : +GAP_ResolvePrivateAddr(): + 7792: 09a0506f j c82c + +00007796 : +gapPairingCompleteCB(): + 7796: 7179 addi sp,sp,-48 + 7798: cc52 sw s4,24(sp) + 779a: 8a2a mv s4,a0 + 779c: 8532 mv a0,a2 + 779e: d226 sw s1,36(sp) + 77a0: d04a sw s2,32(sp) + 77a2: ce4e sw s3,28(sp) + 77a4: ca56 sw s5,20(sp) + 77a6: c85a sw s6,16(sp) + 77a8: c65e sw s7,12(sp) + 77aa: c462 sw s8,8(sp) + 77ac: d606 sw ra,44(sp) + 77ae: d422 sw s0,40(sp) + 77b0: 8c2e mv s8,a1 + 77b2: 8ab2 mv s5,a2 + 77b4: 8b36 mv s6,a3 + 77b6: 8bba mv s7,a4 + 77b8: 893e mv s2,a5 + 77ba: 89c2 mv s3,a6 + 77bc: 84c6 mv s1,a7 + 77be: 372040ef jal ra,bb30 + 77c2: c905 beqz a0,77f2 + 77c4: 842a mv s0,a0 + 77c6: 180a1063 bnez s4,7946 + 77ca: 004b7793 andi a5,s6,4 + 77ce: 00454303 lbu t1,4(a0) + 77d2: cf85 beqz a5,780a + 77d4: 01236313 ori t1,t1,18 + 77d8: 140b9a63 bnez s7,792c + 77dc: 12091863 bnez s2,790c + 77e0: 08099b63 bnez s3,7876 + 77e4: e885 bnez s1,7814 + 77e6: 5c1c lw a5,56(s0) + 77e8: ffb37313 andi t1,t1,-5 + 77ec: 00640223 sb t1,4(s0) + 77f0: e7c5 bnez a5,7898 + 77f2: 50b2 lw ra,44(sp) + 77f4: 5422 lw s0,40(sp) + 77f6: 5492 lw s1,36(sp) + 77f8: 5902 lw s2,32(sp) + 77fa: 49f2 lw s3,28(sp) + 77fc: 4a62 lw s4,24(sp) + 77fe: 4ad2 lw s5,20(sp) + 7800: 4b42 lw s6,16(sp) + 7802: 4bb2 lw s7,12(sp) + 7804: 4c22 lw s8,8(sp) + 7806: 6145 addi sp,sp,48 + 7808: 8082 ret + 780a: ffd37313 andi t1,t1,-3 + 780e: 01036313 ori t1,t1,16 + 7812: b7d9 j 77d8 + 7814: 00436313 ori t1,t1,4 + 7818: 00640223 sb t1,4(s0) + 781c: 489c lw a5,16(s1) + 781e: 4641 li a2,16 + 7820: 85a6 mv a1,s1 + 7822: d41c sw a5,40(s0) + 7824: 01840513 addi a0,s0,24 + 7828: 1fff9097 auipc ra,0x1fff9 + 782c: 034080e7 jalr 52(ra) # 2000085c + 7830: 100c1963 bnez s8,7942 + 7834: 0a0b8663 beqz s7,78e0 + 7838: 5448 lw a0,44(s0) + 783a: c509 beqz a0,7844 + 783c: 1fff9097 auipc ra,0x1fff9 + 7840: 684080e7 jalr 1668(ra) # 20000ec0 + 7844: 45f1 li a1,28 + 7846: 855e mv a0,s7 + 7848: d50fe0ef jal ra,5d98 + 784c: d448 sw a0,44(s0) + 784e: 5c00 lw s0,56(s0) + 7850: d04d beqz s0,77f2 + 7852: 501c lw a5,32(s0) + 7854: eb81 bnez a5,7864 + 7856: 6591 lui a1,0x4 + 7858: 71358593 addi a1,a1,1811 # 4713 + 785c: 4571 li a0,28 + 785e: 68f120ef jal ra,1a6ec + 7862: d008 sw a0,32(s0) + 7864: 5008 lw a0,32(s0) + 7866: c10d beqz a0,7888 + 7868: 4671 li a2,28 + 786a: 85de mv a1,s7 + 786c: 1fff9097 auipc ra,0x1fff9 + 7870: ff0080e7 jalr -16(ra) # 2000085c + 7874: a811 j 7888 + 7876: 00436313 ori t1,t1,4 + 787a: 00640223 sb t1,4(s0) + 787e: fcd9 bnez s1,781c + 7880: 5c00 lw s0,56(s0) + 7882: 020c0c63 beqz s8,78ba + 7886: d435 beqz s0,77f2 + 7888: 02099a63 bnez s3,78bc + 788c: ecb1 bnez s1,78e8 + 788e: a029 j 7898 + 7890: 5c00 lw s0,56(s0) + 7892: d025 beqz s0,77f2 + 7894: 02099463 bnez s3,78bc + 7898: 5422 lw s0,40(sp) + 789a: 50b2 lw ra,44(sp) + 789c: 5492 lw s1,36(sp) + 789e: 49f2 lw s3,28(sp) + 78a0: 4bb2 lw s7,12(sp) + 78a2: 4c22 lw s8,8(sp) + 78a4: 86ca mv a3,s2 + 78a6: 865a mv a2,s6 + 78a8: 5902 lw s2,32(sp) + 78aa: 4b42 lw s6,16(sp) + 78ac: 85d6 mv a1,s5 + 78ae: 8552 mv a0,s4 + 78b0: 4ad2 lw s5,20(sp) + 78b2: 4a62 lw s4,24(sp) + 78b4: 6145 addi sp,sp,48 + 78b6: 91bff06f j 71d0 + 78ba: dc05 beqz s0,77f2 + 78bc: 505c lw a5,36(s0) + 78be: eb81 bnez a5,78ce + 78c0: 6591 lui a1,0x4 + 78c2: 71258593 addi a1,a1,1810 # 4712 + 78c6: 455d li a0,23 + 78c8: 625120ef jal ra,1a6ec + 78cc: d048 sw a0,36(s0) + 78ce: 5048 lw a0,36(s0) + 78d0: dd55 beqz a0,788c + 78d2: 465d li a2,23 + 78d4: 85ce mv a1,s3 + 78d6: 1fff9097 auipc ra,0x1fff9 + 78da: f86080e7 jalr -122(ra) # 2000085c + 78de: b77d j 788c + 78e0: 5c00 lw s0,56(s0) + 78e2: d801 beqz s0,77f2 + 78e4: fc099ce3 bnez s3,78bc + 78e8: 541c lw a5,40(s0) + 78ea: eb81 bnez a5,78fa + 78ec: 6591 lui a1,0x4 + 78ee: 71158593 addi a1,a1,1809 # 4711 + 78f2: 4551 li a0,20 + 78f4: 5f9120ef jal ra,1a6ec + 78f8: d408 sw a0,40(s0) + 78fa: 5408 lw a0,40(s0) + 78fc: dd51 beqz a0,7898 + 78fe: 4651 li a2,20 + 7900: 85a6 mv a1,s1 + 7902: 1fff9097 auipc ra,0x1fff9 + 7906: f5a080e7 jalr -166(ra) # 2000085c + 790a: b779 j 7898 + 790c: 00436313 ori t1,t1,4 + 7910: 00640223 sb t1,4(s0) + 7914: f00494e3 bnez s1,781c + 7918: f60c0ce3 beqz s8,7890 + 791c: 5448 lw a0,44(s0) + 791e: e915 bnez a0,7952 + 7920: 45f1 li a1,28 + 7922: 854a mv a0,s2 + 7924: c74fe0ef jal ra,5d98 + 7928: d448 sw a0,44(s0) + 792a: a831 j 7946 + 792c: 00436313 ori t1,t1,4 + 7930: 00640223 sb t1,4(s0) + 7934: ee0494e3 bnez s1,781c + 7938: f00c00e3 beqz s8,7838 + 793c: fe0910e3 bnez s2,791c + 7940: b739 j 784e + 7942: fc091de3 bnez s2,791c + 7946: 5c00 lw s0,56(s0) + 7948: ea0405e3 beqz s0,77f2 + 794c: f00b93e3 bnez s7,7852 + 7950: bf25 j 7888 + 7952: 1fff9097 auipc ra,0x1fff9 + 7956: 56e080e7 jalr 1390(ra) # 20000ec0 + 795a: b7d9 j 7920 + +0000795c : +gapPasskeyNeededCB(): + 795c: 1101 addi sp,sp,-32 + 795e: ca26 sw s1,20(sp) + 7960: c452 sw s4,8(sp) + 7962: ce06 sw ra,28(sp) + 7964: cc22 sw s0,24(sp) + 7966: c84a sw s2,16(sp) + 7968: c64e sw s3,12(sp) + 796a: 8a2a mv s4,a0 + 796c: 84ae mv s1,a1 + 796e: 1c2040ef jal ra,bb30 + 7972: c125 beqz a0,79d2 + 7974: 892a mv s2,a0 + 7976: 4539 li a0,14 + 7978: a24fe0ef jal ra,5b9c + 797c: 842a mv s0,a0 + 797e: c931 beqz a0,79d2 + 7980: 1fffb997 auipc s3,0x1fffb + 7984: fa09c983 lbu s3,-96(s3) # 20002920 + 7988: 00099463 bnez s3,7990 + 798c: 00094983 lbu s3,0(s2) + 7990: 0d000793 li a5,208 + 7994: a01e sh a5,0(s0) + 7996: 47ad li a5,11 + 7998: a03c sb a5,2(s0) + 799a: 00690593 addi a1,s2,6 + 799e: 00340513 addi a0,s0,3 + 79a2: 4619 li a2,6 + 79a4: 1fff9097 auipc ra,0x1fff9 + 79a8: eb8080e7 jalr -328(ra) # 2000085c + 79ac: 0014f793 andi a5,s1,1 + 79b0: a45c sb a5,12(s0) + 79b2: 4814d493 bexti s1,s1,0x1 + 79b6: b444 sb s1,13(s0) + 79b8: 01441523 sh s4,10(s0) + 79bc: 85a2 mv a1,s0 + 79be: 4462 lw s0,24(sp) + 79c0: 40f2 lw ra,28(sp) + 79c2: 44d2 lw s1,20(sp) + 79c4: 4942 lw s2,16(sp) + 79c6: 4a22 lw s4,8(sp) + 79c8: 854e mv a0,s3 + 79ca: 49b2 lw s3,12(sp) + 79cc: 6105 addi sp,sp,32 + 79ce: ac8fe06f j 5c96 + 79d2: 40f2 lw ra,28(sp) + 79d4: 4462 lw s0,24(sp) + 79d6: 44d2 lw s1,20(sp) + 79d8: 4942 lw s2,16(sp) + 79da: 49b2 lw s3,12(sp) + 79dc: 4a22 lw s4,8(sp) + 79de: 6105 addi sp,sp,32 + 79e0: 8082 ret + +000079e2 : +gapFreeEstLink(): + 79e2: 9581a503 lw a0,-1704(gp) # 20001310 + 79e6: cd01 beqz a0,79fe + 79e8: 1141 addi sp,sp,-16 + 79ea: c606 sw ra,12(sp) + 79ec: 1fff9097 auipc ra,0x1fff9 + 79f0: 4d4080e7 jalr 1236(ra) # 20000ec0 + 79f4: 40b2 lw ra,12(sp) + 79f6: 9401ac23 sw zero,-1704(gp) # 20001310 + 79fa: 0141 addi sp,sp,16 + 79fc: 8082 ret + 79fe: 8082 ret + +00007a00 : +gapUpdateConnSignCounter(): + 7a00: 1141 addi sp,sp,-16 + 7a02: c422 sw s0,8(sp) + 7a04: c606 sw ra,12(sp) + 7a06: c226 sw s1,4(sp) + 7a08: c04a sw s2,0(sp) + 7a0a: 842e mv s0,a1 + 7a0c: 124040ef jal ra,bb30 + 7a10: c939 beqz a0,7a66 + 7a12: d500 sw s0,40(a0) + 7a14: 1fffb917 auipc s2,0x1fffb + 7a18: f0c94903 lbu s2,-244(s2) # 20002920 + 7a1c: 84aa mv s1,a0 + 7a1e: 00091463 bnez s2,7a26 + 7a22: 00054903 lbu s2,0(a0) + 7a26: 4541 li a0,16 + 7a28: 974fe0ef jal ra,5b9c + 7a2c: 842a mv s0,a0 + 7a2e: cd05 beqz a0,7a66 + 7a30: 0d000793 li a5,208 + 7a34: a11e sh a5,0(a0) + 7a36: 47a5 li a5,9 + 7a38: a13c sb a5,2(a0) + 7a3a: 30dc lbu a5,5(s1) + 7a3c: 00648593 addi a1,s1,6 + 7a40: 0511 addi a0,a0,4 + 7a42: fef50fa3 sb a5,-1(a0) + 7a46: 4619 li a2,6 + 7a48: 1fff9097 auipc ra,0x1fff9 + 7a4c: e14080e7 jalr -492(ra) # 2000085c + 7a50: 549c lw a5,40(s1) + 7a52: 85a2 mv a1,s0 + 7a54: 40b2 lw ra,12(sp) + 7a56: c45c sw a5,12(s0) + 7a58: 4422 lw s0,8(sp) + 7a5a: 4492 lw s1,4(sp) + 7a5c: 854a mv a0,s2 + 7a5e: 4902 lw s2,0(sp) + 7a60: 0141 addi sp,sp,16 + 7a62: a34fe06f j 5c96 + 7a66: 40b2 lw ra,12(sp) + 7a68: 4422 lw s0,8(sp) + 7a6a: 4492 lw s1,4(sp) + 7a6c: 4902 lw s2,0(sp) + 7a6e: 0141 addi sp,sp,16 + 7a70: 8082 ret + +00007a72 : +GAP_L2capConnParamUpdateReq(): + 7a72: 96018793 addi a5,gp,-1696 # 20001318 + 7a76: a38e sh a1,0(a5) + 7a78: a3b2 sh a2,2(a5) + 7a7a: 85be mv a1,a5 + 7a7c: 9cc1c603 lbu a2,-1588(gp) # 20001384 + 7a80: a3d6 sh a3,4(a5) + 7a82: a3fa sh a4,6(a5) + 7a84: 7e70306f j ba6a + +00007a88 : +GAP_SendSlaveSecurityRequest(): + 7a88: 1101 addi sp,sp,-32 + 7a8a: cc22 sw s0,24(sp) + 7a8c: ca26 sw s1,20(sp) + 7a8e: ce06 sw ra,28(sp) + 7a90: 84aa mv s1,a0 + 7a92: 842e mv s0,a1 + 7a94: 09c040ef jal ra,bb30 + 7a98: c90d beqz a0,7aca + 7a9a: 2554 lbu a3,12(a0) + 7a9c: 4711 li a4,4 + 7a9e: 87aa mv a5,a0 + 7aa0: 4549 li a0,18 + 7aa2: 00e69f63 bne a3,a4,7ac0 + 7aa6: 5f9c lw a5,56(a5) + 7aa8: c391 beqz a5,7aac + 7aaa: 2be0 lbu s0,22(a5) + 7aac: 00005697 auipc a3,0x5 + 7ab0: 28a68693 addi a3,a3,650 # cd36 + 7ab4: 860a mv a2,sp + 7ab6: 4589 li a1,2 + 7ab8: 8526 mv a0,s1 + 7aba: 8040 sb s0,0(sp) + 7abc: 700040ef jal ra,c1bc + 7ac0: 40f2 lw ra,28(sp) + 7ac2: 4462 lw s0,24(sp) + 7ac4: 44d2 lw s1,20(sp) + 7ac6: 6105 addi sp,sp,32 + 7ac8: 8082 ret + 7aca: 4551 li a0,20 + 7acc: bfd5 j 7ac0 + +00007ace : +GAP_Signable(): + 7ace: c621 beqz a2,7b16 + 7ad0: 1141 addi sp,sp,-16 + 7ad2: c422 sw s0,8(sp) + 7ad4: c226 sw s1,4(sp) + 7ad6: c04a sw s2,0(sp) + 7ad8: c606 sw ra,12(sp) + 7ada: 892e mv s2,a1 + 7adc: 84b2 mv s1,a2 + 7ade: 052040ef jal ra,bb30 + 7ae2: 842a mv s0,a0 + 7ae4: 4551 li a0,20 + 7ae6: c015 beqz s0,7b0a + 7ae8: 00090663 beqz s2,7af4 + 7aec: 205c lbu a5,4(s0) + 7aee: 0027e793 ori a5,a5,2 + 7af2: a05c sb a5,4(s0) + 7af4: 01840513 addi a0,s0,24 + 7af8: 4641 li a2,16 + 7afa: 85a6 mv a1,s1 + 7afc: 1fff9097 auipc ra,0x1fff9 + 7b00: d60080e7 jalr -672(ra) # 2000085c + 7b04: 489c lw a5,16(s1) + 7b06: 4501 li a0,0 + 7b08: d41c sw a5,40(s0) + 7b0a: 40b2 lw ra,12(sp) + 7b0c: 4422 lw s0,8(sp) + 7b0e: 4492 lw s1,4(sp) + 7b10: 4902 lw s2,0(sp) + 7b12: 0141 addi sp,sp,16 + 7b14: 8082 ret + 7b16: 4509 li a0,2 + 7b18: 8082 ret + +00007b1a : +GAP_TerminateAuth(): + 7b1a: 1101 addi sp,sp,-32 + 7b1c: cc22 sw s0,24(sp) + 7b1e: ca26 sw s1,20(sp) + 7b20: ce06 sw ra,28(sp) + 7b22: 842a mv s0,a0 + 7b24: 84ae mv s1,a1 + 7b26: 00a040ef jal ra,bb30 + 7b2a: c919 beqz a0,7b40 + 7b2c: 006c addi a1,sp,12 + 7b2e: 8522 mv a0,s0 + 7b30: 8644 sb s1,12(sp) + 7b32: 6e4040ef jal ra,c216 + 7b36: 40f2 lw ra,28(sp) + 7b38: 4462 lw s0,24(sp) + 7b3a: 44d2 lw s1,20(sp) + 7b3c: 6105 addi sp,sp,32 + 7b3e: 8082 ret + 7b40: 4551 li a0,20 + 7b42: bfd5 j 7b36 + +00007b44 : +GAP_NumActiveConnections(): + 7b44: 1400406f j bc84 + +00007b48 : +GAP_TerminateLinkReq(): + 7b48: 1141 addi sp,sp,-16 + 7b4a: 67c1 lui a5,0x10 + 7b4c: c226 sw s1,4(sp) + 7b4e: c04a sw s2,0(sp) + 7b50: c606 sw ra,12(sp) + 7b52: c422 sw s0,8(sp) + 7b54: 17fd addi a5,a5,-1 # ffff + 7b56: 892a mv s2,a0 + 7b58: 84b2 mv s1,a2 + 7b5a: 02f59063 bne a1,a5,7b7a + 7b5e: 85b2 mv a1,a2 + 7b60: 98aff0ef jal ra,6cea + 7b64: e509 bnez a0,7b6e + 7b66: 97218c23 sb s2,-1672(gp) # 20001330 + 7b6a: 96918ca3 sb s1,-1671(gp) # 20001331 + 7b6e: 40b2 lw ra,12(sp) + 7b70: 4422 lw s0,8(sp) + 7b72: 4492 lw s1,4(sp) + 7b74: 4902 lw s2,0(sp) + 7b76: 0141 addi sp,sp,16 + 7b78: 8082 ret + 7b7a: 852e mv a0,a1 + 7b7c: 842e mv s0,a1 + 7b7e: 7b3030ef jal ra,bb30 + 7b82: cd11 beqz a0,7b9e + 7b84: 211c lbu a5,0(a0) + 7b86: 450d li a0,3 + 7b88: ff2793e3 bne a5,s2,7b6e + 7b8c: 8522 mv a0,s0 + 7b8e: 4422 lw s0,8(sp) + 7b90: 40b2 lw ra,12(sp) + 7b92: 4902 lw s2,0(sp) + 7b94: 85a6 mv a1,s1 + 7b96: 4492 lw s1,4(sp) + 7b98: 0141 addi sp,sp,16 + 7b9a: 7d60706f j f370 + 7b9e: 4549 li a0,18 + 7ba0: b7f9 j 7b6e + +00007ba2 : +GAP_SetParamValue(): + 7ba2: 472d li a4,11 + 7ba4: 87aa mv a5,a0 + 7ba6: 02a76063 bltu a4,a0,7bc6 + 7baa: 6741 lui a4,0x10 + 7bac: 177d addi a4,a4,-1 # ffff + 7bae: 4509 li a0,2 + 7bb0: 00e58c63 beq a1,a4,7bc8 + 7bb4: 1fffb717 auipc a4,0x1fffb + 7bb8: d5c70713 addi a4,a4,-676 # 20002910 + 7bbc: 20e7a7b3 sh1add a5,a5,a4 + 7bc0: 4501 li a0,0 + 7bc2: a38e sh a1,0(a5) + 7bc4: 8082 ret + 7bc6: 4509 li a0,2 + 7bc8: 8082 ret + +00007bca : +GAP_DeviceInit(): + 7bca: 1101 addi sp,sp,-32 + 7bcc: cc22 sw s0,24(sp) + 7bce: 863e mv a2,a5 + 7bd0: ce06 sw ra,28(sp) + 7bd2: ca26 sw s1,20(sp) + 7bd4: c84a sw s2,16(sp) + 7bd6: 4791 li a5,4 + 7bd8: 4409 li s0,2 + 7bda: 02f59263 bne a1,a5,7bfe + 7bde: c632 sw a2,12(sp) + 7be0: 84b6 mv s1,a3 + 7be2: 893a mv s2,a4 + 7be4: b58ff0ef jal ra,6f3c + 7be8: 4632 lw a2,12(sp) + 7bea: 842a mv s0,a0 + 7bec: e909 bnez a0,7bfe + 7bee: 85ca mv a1,s2 + 7bf0: 8526 mv a0,s1 + 7bf2: ac0ff0ef jal ra,6eb2 + 7bf6: 33f000ef jal ra,8734 + 7bfa: 13d000ef jal ra,8536 + 7bfe: 40f2 lw ra,28(sp) + 7c00: 8522 mv a0,s0 + 7c02: 4462 lw s0,24(sp) + 7c04: 44d2 lw s1,20(sp) + 7c06: 4942 lw s2,16(sp) + 7c08: 6105 addi sp,sp,32 + 7c0a: 8082 ret + +00007c0c : +GAP_Init(): + 7c0c: 1141 addi sp,sp,-16 + 7c0e: c606 sw ra,12(sp) + 7c10: c422 sw s0,8(sp) + 7c12: 842a mv s0,a0 + 7c14: 8f6ff0ef jal ra,6d0a + 7c18: 149000ef jal ra,8560 + 7c1c: 25c0a0ef jal ra,11e78 + 7c20: 4581 li a1,0 + 7c22: 1fffb517 auipc a0,0x1fffb + 7c26: d0650513 addi a0,a0,-762 # 20002928 + 7c2a: 4671 li a2,28 + 7c2c: 1fff9097 auipc ra,0x1fff9 + 7c30: c6e080e7 jalr -914(ra) # 2000089a + 7c34: f0000793 li a5,-256 + 7c38: 1fffb717 auipc a4,0x1fffb + 7c3c: cef71f23 sh a5,-770(a4) # 20002936 + 7c40: 577d li a4,-1 + 7c42: 9cc18793 addi a5,gp,-1588 # 20001384 + 7c46: a3b8 sb a4,2(a5) + 7c48: a380 sb s0,0(a5) + 7c4a: 8522 mv a0,s0 + 7c4c: 4422 lw s0,8(sp) + 7c4e: 40b2 lw ra,12(sp) + 7c50: 4595 li a1,5 + 7c52: 0141 addi sp,sp,16 + 7c54: 56c0306f j b1c0 + +00007c58 : +GAP_ProcessEvent(): + 7c58: 711d addi sp,sp,-96 + 7c5a: caa6 sw s1,84(sp) + 7c5c: ce86 sw ra,92(sp) + 7c5e: cca2 sw s0,88(sp) + 7c60: c8ca sw s2,80(sp) + 7c62: c6ce sw s3,76(sp) + 7c64: c4d2 sw s4,72(sp) + 7c66: c2d6 sw s5,68(sp) + 7c68: c0da sw s6,64(sp) + 7c6a: de5e sw s7,60(sp) + 7c6c: dc62 sw s8,56(sp) + 7c6e: da66 sw s9,52(sp) + 7c70: d86a sw s10,48(sp) + 7c72: d66e sw s11,44(sp) + 7c74: 84ae mv s1,a1 + 7c76: 60559793 sext.h a5,a1 + 7c7a: 3407da63 bgez a5,7fce + 7c7e: 9cc18913 addi s2,gp,-1588 # 20001384 + 7c82: 00094503 lbu a0,0(s2) + 7c86: 69c1 lui s3,0x10 + 7c88: 0a200a93 li s5,162 + 7c8c: f73fd0ef jal ra,5bfe + 7c90: 842a mv s0,a0 + 7c92: 0ff00b13 li s6,255 + 7c96: 09100b93 li s7,145 + 7c9a: 4c15 li s8,5 + 7c9c: 4cb9 li s9,14 + 7c9e: 1fffbd17 auipc s10,0x1fffb + 7ca2: c8ad0d13 addi s10,s10,-886 # 20002928 + 7ca6: 19fd addi s3,s3,-1 # ffff + 7ca8: e015 bnez s0,7ccc + 7caa: 68f49513 binvi a0,s1,0xf + 7cae: 40f6 lw ra,92(sp) + 7cb0: 4466 lw s0,88(sp) + 7cb2: 44d6 lw s1,84(sp) + 7cb4: 4946 lw s2,80(sp) + 7cb6: 49b6 lw s3,76(sp) + 7cb8: 4a26 lw s4,72(sp) + 7cba: 4a96 lw s5,68(sp) + 7cbc: 4b06 lw s6,64(sp) + 7cbe: 5bf2 lw s7,60(sp) + 7cc0: 5c62 lw s8,56(sp) + 7cc2: 5cd2 lw s9,52(sp) + 7cc4: 5d42 lw s10,48(sp) + 7cc6: 5db2 lw s11,44(sp) + 7cc8: 6125 addi sp,sp,96 + 7cca: 8082 ret + 7ccc: 201c lbu a5,0(s0) + 7cce: 01579a63 bne a5,s5,7ce2 + 7cd2: 00fd4a03 lbu s4,15(s10) + 7cd6: 202a lhu a0,2(s0) + 7cd8: 8622 mv a2,s0 + 7cda: 85ce mv a1,s3 + 7cdc: bb8ff0ef jal ra,7094 + 7ce0: a8f1 j 7dbc + 7ce2: 00294a03 lbu s4,2(s2) + 7ce6: 09779a63 bne a5,s7,7d7a + 7cea: 301c lbu a5,1(s0) + 7cec: 01879e63 bne a5,s8,7d08 + 7cf0: 8522 mv a0,s0 + 7cf2: bd6ff0ef jal ra,70c8 + 7cf6: 8522 mv a0,s0 + 7cf8: e53fd0ef jal ra,5b4a + 7cfc: 00094503 lbu a0,0(s2) + 7d00: efffd0ef jal ra,5bfe + 7d04: 842a mv s0,a0 + 7d06: b74d j 7ca8 + 7d08: 11979b63 bne a5,s9,7e1e + 7d0c: 205e lhu a5,4(s0) + 7d0e: 6705 lui a4,0x1 + 7d10: 0725 addi a4,a4,9 # 1009 <_einit+0x5> + 7d12: 04e79a63 bne a5,a4,7d66 + 7d16: 440c lw a1,8(s0) + 7d18: 1fffbd97 auipc s11,0x1fffb + 7d1c: c10d8d93 addi s11,s11,-1008 # 20002928 + 7d20: 2188 lbu a0,0(a1) + 7d22: e515 bnez a0,7d4e + 7d24: 4619 li a2,6 + 7d26: 0585 addi a1,a1,1 + 7d28: 1fffb517 auipc a0,0x1fffb + 7d2c: c1450513 addi a0,a0,-1004 # 2000293c + 7d30: 1fff9097 auipc ra,0x1fff9 + 7d34: b2c080e7 jalr -1236(ra) # 2000085c + 7d38: 00cdc703 lbu a4,12(s11) + 7d3c: 4785 li a5,1 + 7d3e: 02f71e63 bne a4,a5,7d7a + 7d42: 4789 li a5,2 + 7d44: 00fd8623 sb a5,12(s11) + 7d48: 68e070ef jal ra,f3d6 + 7d4c: b76d j 7cf6 + 7d4e: 00cdc703 lbu a4,12(s11) + 7d52: 4785 li a5,1 + 7d54: 02f71363 bne a4,a5,7d7a + 7d58: 1fffb797 auipc a5,0x1fffb + 7d5c: bc078e23 sb zero,-1060(a5) # 20002934 + 7d60: eacff0ef jal ra,740c + 7d64: bf49 j 7cf6 + 7d66: 6709 lui a4,0x2 + 7d68: 00570693 addi a3,a4,5 # 2005 <_einit+0x1001> + 7d6c: 0ad78463 beq a5,a3,7e14 + 7d70: 00f6ec63 bltu a3,a5,7d88 + 7d74: 0709 addi a4,a4,2 + 7d76: 04e78563 beq a5,a4,7dc0 + 7d7a: f76a0ee3 beq s4,s6,7cf6 + 7d7e: 85a2 mv a1,s0 + 7d80: 8552 mv a0,s4 + 7d82: f15fd0ef jal ra,5c96 + 7d86: bf9d j 7cfc + 7d88: 0729 addi a4,a4,10 + 7d8a: 02f77263 bgeu a4,a5,7dae + 7d8e: 7779 lui a4,0xffffe + 7d90: fca70713 addi a4,a4,-54 # ffffdfca <_eusrstack+0xdfffafca> + 7d94: 97ba add a5,a5,a4 + 7d96: 4771 li a4,28 + 7d98: 0807c7b3 zext.h a5,a5 + 7d9c: fcf76fe3 bltu a4,a5,7d7a + 7da0: 18000737 lui a4,0x18000 + 7da4: 70f70713 addi a4,a4,1807 # 1800070f <_data_lma+0x17fe5153> + 7da8: 48f757b3 bext a5,a4,a5 + 7dac: d7f9 beqz a5,7d7a + 7dae: 9741a783 lw a5,-1676(gp) # 2000132c + 7db2: d3b1 beqz a5,7cf6 + 7db4: 439c lw a5,0(a5) + 7db6: d3a1 beqz a5,7cf6 + 7db8: 8522 mv a0,s0 + 7dba: 9782 jalr a5 + 7dbc: fd0d bnez a0,7cf6 + 7dbe: bf75 j 7d7a + 7dc0: 00842d83 lw s11,8(s0) + 7dc4: fa0d8be3 beqz s11,7d7a + 7dc8: 000dc703 lbu a4,0(s11) + 7dcc: 1fffb797 auipc a5,0x1fffb + 7dd0: b5c78793 addi a5,a5,-1188 # 20002928 + 7dd4: eb19 bnez a4,7dea + 7dd6: 002dc703 lbu a4,2(s11) + 7dda: 001dc683 lbu a3,1(s11) + 7dde: 0722 slli a4,a4,0x8 + 7de0: 8f55 or a4,a4,a3 + 7de2: abba sh a4,18(a5) + 7de4: 003dc703 lbu a4,3(s11) + 7de8: b7d8 sb a4,13(a5) + 7dea: 27d4 lbu a3,12(a5) + 7dec: 4709 li a4,2 + 7dee: f8e696e3 bne a3,a4,7d7a + 7df2: 000dc703 lbu a4,0(s11) + 7df6: cb01 beqz a4,7e06 + 7df8: 1fffb797 auipc a5,0x1fffb + 7dfc: b2078e23 sb zero,-1220(a5) # 20002934 + 7e00: 000dc503 lbu a0,0(s11) + 7e04: bfb1 j 7d60 + 7e06: 37cc lbu a1,13(a5) + 7e08: 2baa lhu a0,18(a5) + 7e0a: 470d li a4,3 + 7e0c: a7d8 sb a4,12(a5) + 7e0e: 3dc030ef jal ra,b1ea + 7e12: b7fd j 7e00 + 7e14: 441c lw a5,8(s0) + 7e16: 2388 lbu a0,0(a5) + 7e18: b4eff0ef jal ra,7166 + 7e1c: bde9 j 7cf6 + 7e1e: 473d li a4,15 + 7e20: 04e79363 bne a5,a4,7e66 + 7e24: 205a lhu a4,4(s0) + 7e26: 6789 lui a5,0x2 + 7e28: 00d78693 addi a3,a5,13 # 200d <_einit+0x1009> + 7e2c: ecd705e3 beq a4,a3,7cf6 + 7e30: 01978693 addi a3,a5,25 + 7e34: ecd701e3 beq a4,a3,7cf6 + 7e38: 07cd addi a5,a5,19 + 7e3a: f4f710e3 bne a4,a5,7d7a + 7e3e: 67c1 lui a5,0x10 + 7e40: 1fffb717 auipc a4,0x1fffb + 7e44: af875703 lhu a4,-1288(a4) # 20002938 + 7e48: 17fd addi a5,a5,-1 # ffff + 7e4a: eaf706e3 beq a4,a5,7cf6 + 7e4e: 9701a783 lw a5,-1680(gp) # 20001328 + 7e52: ea0782e3 beqz a5,7cf6 + 7e56: 439c lw a5,0(a5) + 7e58: e8078fe3 beqz a5,7cf6 + 7e5c: 6509 lui a0,0x2 + 7e5e: 85a2 mv a1,s0 + 7e60: 054d addi a0,a0,19 # 2013 <_einit+0x100f> + 7e62: 9782 jalr a5 + 7e64: bfa1 j 7dbc + 7e66: 03e00713 li a4,62 + 7e6a: f0e798e3 bne a5,a4,7d7a + 7e6e: 203c lbu a5,2(s0) + 7e70: 4705 li a4,1 + 7e72: 0ae79963 bne a5,a4,7f24 + 7e76: 9741a783 lw a5,-1676(gp) # 2000132c + 7e7a: 1fffbd97 auipc s11,0x1fffb + 7e7e: abddcd83 lbu s11,-1347(s11) # 20002937 + 7e82: c791 beqz a5,7e8e + 7e84: 43dc lw a5,4(a5) + 7e86: c781 beqz a5,7e8e + 7e88: 4581 li a1,0 + 7e8a: 4501 li a0,0 + 7e8c: 9782 jalr a5 + 7e8e: 3068 lbu a0,7(s0) + 7e90: 00840a13 addi s4,s0,8 + 7e94: 85d2 mv a1,s4 + 7e96: 91eff0ef jal ra,6fb4 + 7e9a: 285c lbu a5,20(s0) + 7e9c: b068 sb a0,7(s0) + 7e9e: 01045883 lhu a7,16(s0) + 7ea2: 00e45803 lhu a6,14(s0) + 7ea6: 205a lhu a4,4(s0) + 7ea8: 862a mv a2,a0 + 7eaa: 3028 lbu a0,3(s0) + 7eac: c23e sw a5,4(sp) + 7eae: 283e lhu a5,18(s0) + 7eb0: 86d2 mv a3,s4 + 7eb2: 85ee mv a1,s11 + 7eb4: c03e sw a5,0(sp) + 7eb6: 4791 li a5,4 + 7eb8: ea8ff0ef jal ra,7560 + 7ebc: 303c lbu a5,3(s0) + 7ebe: e395 bnez a5,7ee2 + 7ec0: 47dd li a5,23 + 7ec2: 01045883 lhu a7,16(s0) + 7ec6: 00e45803 lhu a6,14(s0) + 7eca: 3074 lbu a3,7(s0) + 7ecc: 204e lhu a1,4(s0) + 7ece: c23e sw a5,4(sp) + 7ed0: 283e lhu a5,18(s0) + 7ed2: 8752 mv a4,s4 + 7ed4: 4605 li a2,1 + 7ed6: c03e sw a5,0(sp) + 7ed8: 856e mv a0,s11 + 7eda: 4791 li a5,4 + 7edc: 78d030ef jal ra,be68 + 7ee0: b028 sb a0,3(s0) + 7ee2: 9581a783 lw a5,-1704(gp) # 20001310 + 7ee6: c781 beqz a5,7eee + 7ee8: 4511 li a0,4 + 7eea: af9ff0ef jal ra,79e2 + 7eee: 97818a13 addi s4,gp,-1672 # 20001330 + 7ef2: 000a4503 lbu a0,0(s4) + 7ef6: e00500e3 beqz a0,7cf6 + 7efa: 9791c583 lbu a1,-1671(gp) # 20001331 + 7efe: dedfe0ef jal ra,6cea + 7f02: de050ae3 beqz a0,7cf6 + 7f06: 3034 lbu a3,3(s0) + 7f08: 03100793 li a5,49 + 7f0c: 00f68963 beq a3,a5,7f1e + 7f10: 2052 lhu a2,4(s0) + 7f12: 000a4583 lbu a1,0(s4) + 7f16: 4711 li a4,4 + 7f18: 8536 mv a0,a3 + 7f1a: e43fe0ef jal ra,6d5c + 7f1e: 96018c23 sb zero,-1672(gp) # 20001330 + 7f22: bbd1 j 7cf6 + 7f24: 4731 li a4,12 + 7f26: 08e78663 beq a5,a4,7fb2 + 7f2a: 04f76163 bltu a4,a5,7f6c + 7f2e: 470d li a4,3 + 7f30: 04e78e63 beq a5,a4,7f8c + 7f34: 4719 li a4,6 + 7f36: e4e792e3 bne a5,a4,7d7a + 7f3a: 086c addi a1,sp,28 + 7f3c: 31100513 li a0,785 + 7f40: 77b090ef jal ra,11eba + 7f44: 01e10593 addi a1,sp,30 + 7f48: 31200513 li a0,786 + 7f4c: 76f090ef jal ra,11eba + 7f50: 2072 lhu a2,6(s0) + 7f52: 87bc lhu a5,30(sp) + 7f54: 204a lhu a0,4(s0) + 7f56: 00c7e663 bltu a5,a2,7f62 + 7f5a: 2416 lhu a3,8(s0) + 7f5c: 86b8 lhu a4,28(sp) + 7f5e: 02e6fb63 bgeu a3,a4,7f94 + 7f62: 02000593 li a1,32 + 7f66: 566070ef jal ra,f4cc + 7f6a: b371 j 7cf6 + 7f6c: 4749 li a4,18 + 7f6e: 04e78563 beq a5,a4,7fb8 + 7f72: 474d li a4,19 + 7f74: e0e793e3 bne a5,a4,7d7a + 7f78: 9741a783 lw a5,-1676(gp) # 2000132c + 7f7c: de078fe3 beqz a5,7d7a + 7f80: 43dc lw a5,4(a5) + 7f82: de078ce3 beqz a5,7d7a + 7f86: 85a2 mv a1,s0 + 7f88: 4509 li a0,2 + 7f8a: a081 j 7fca + 7f8c: 8622 mv a2,s0 + 7f8e: 458d li a1,3 + 7f90: 204a lhu a0,4(s0) + 7f92: b3a9 j 7cdc + 7f94: 00e67363 bgeu a2,a4,7f9a + 7f98: a07a sh a4,6(s0) + 7f9a: 00d7f363 bgeu a5,a3,7fa0 + 7f9e: a41e sh a5,8(s0) + 7fa0: 245a lhu a4,12(s0) + 7fa2: 2436 lhu a3,10(s0) + 7fa4: 2412 lhu a2,8(s0) + 7fa6: 206e lhu a1,6(s0) + 7fa8: 4801 li a6,0 + 7faa: 4781 li a5,0 + 7fac: 4f6070ef jal ra,f4a2 + 7fb0: b399 j 7cf6 + 7fb2: 8622 mv a2,s0 + 7fb4: 45b1 li a1,12 + 7fb6: bfe9 j 7f90 + 7fb8: 9741a783 lw a5,-1676(gp) # 2000132c + 7fbc: da078fe3 beqz a5,7d7a + 7fc0: 43dc lw a5,4(a5) + 7fc2: da078ce3 beqz a5,7d7a + 7fc6: 4581 li a1,0 + 7fc8: 4505 li a0,1 + 7fca: 9782 jalr a5 + 7fcc: b37d j 7d7a + 7fce: 0025f513 andi a0,a1,2 + 7fd2: cc050ee3 beqz a0,7cae + 7fd6: 9741a783 lw a5,-1676(gp) # 2000132c + 7fda: c791 beqz a5,7fe6 + 7fdc: 43dc lw a5,4(a5) + 7fde: c781 beqz a5,7fe6 + 7fe0: 4581 li a1,0 + 7fe2: 4505 li a0,1 + 7fe4: 9782 jalr a5 + 7fe6: 0024c513 xori a0,s1,2 + 7fea: b1d1 j 7cae + +00007fec : +gapSetAdvParams(): + 7fec: 711d addi sp,sp,-96 + 7fee: caa6 sw s1,84(sp) + 7ff0: 95c18493 addi s1,gp,-1700 # 20001314 + 7ff4: 4098 lw a4,0(s1) + 7ff6: cca2 sw s0,88(sp) + 7ff8: ce86 sw ra,92(sp) + 7ffa: c8ca sw s2,80(sp) + 7ffc: c6ce sw s3,76(sp) + 7ffe: 4405 li s0,1 + 8000: cf35 beqz a4,807c + 8002: 3328 lbu a0,3(a4) + 8004: 1fffb797 auipc a5,0x1fffb + 8008: 9327c783 lbu a5,-1742(a5) # 20002936 + 800c: 00f037b3 snez a5,a5 + 8010: 00470593 addi a1,a4,4 + 8014: de3e sw a5,60(sp) + 8016: f75fe0ef jal ra,6f8a + 801a: 4098 lw a4,0(s1) + 801c: dc2a sw a0,56(sp) + 801e: 4509 li a0,2 + 8020: 232c lbu a1,2(a4) + 8022: da2e sw a1,52(sp) + 8024: efcff0ef jal ra,7720 + 8028: d82a sw a0,48(sp) + 802a: 450d li a0,3 + 802c: ef4ff0ef jal ra,7720 + 8030: 0004a903 lw s2,0(s1) + 8034: d62a sw a0,44(sp) + 8036: 4525 li a0,9 + 8038: 00a94703 lbu a4,10(s2) + 803c: 00b94983 lbu s3,11(s2) + 8040: d43a sw a4,40(sp) + 8042: edeff0ef jal ra,7720 + 8046: 84aa mv s1,a0 + 8048: 4529 li a0,10 + 804a: ed6ff0ef jal ra,7720 + 804e: 5862 lw a6,56(sp) + 8050: 57f2 lw a5,60(sp) + 8052: 5722 lw a4,40(sp) + 8054: 56b2 lw a3,44(sp) + 8056: 5642 lw a2,48(sp) + 8058: 55d2 lw a1,52(sp) + 805a: 0ff57513 zext.b a0,a0 + 805e: cc2a sw a0,24(sp) + 8060: c422 sw s0,8(sp) + 8062: ca02 sw zero,20(sp) + 8064: c802 sw zero,16(sp) + 8066: c602 sw zero,12(sp) + 8068: c04e sw s3,0(sp) + 806a: 00490893 addi a7,s2,4 + 806e: 4505 li a0,1 + 8070: 60449493 sext.b s1,s1 + 8074: c226 sw s1,4(sp) + 8076: 4e8070ef jal ra,f55e + 807a: 842a mv s0,a0 + 807c: 40f6 lw ra,92(sp) + 807e: 8522 mv a0,s0 + 8080: 4466 lw s0,88(sp) + 8082: 44d6 lw s1,84(sp) + 8084: 4946 lw s2,80(sp) + 8086: 49b6 lw s3,76(sp) + 8088: 6125 addi sp,sp,96 + 808a: 8082 ret + +0000808c : +gapFreeAdvertState(): + 808c: 95c1a503 lw a0,-1700(gp) # 20001314 + 8090: cd01 beqz a0,80a8 + 8092: 1141 addi sp,sp,-16 + 8094: c606 sw ra,12(sp) + 8096: 1fff9097 auipc ra,0x1fff9 + 809a: e2a080e7 jalr -470(ra) # 20000ec0 + 809e: 40b2 lw ra,12(sp) + 80a0: 9401ae23 sw zero,-1700(gp) # 20001314 + 80a4: 0141 addi sp,sp,16 + 80a6: 8082 ret + 80a8: 8082 ret + +000080aa : +gapPeriProcessConnEvt(): + 80aa: 1101 addi sp,sp,-32 + 80ac: cc22 sw s0,24(sp) + 80ae: ce06 sw ra,28(sp) + 80b0: ca26 sw s1,20(sp) + 80b2: 478d li a5,3 + 80b4: 842e mv s0,a1 + 80b6: 04f51363 bne a0,a5,80fc + 80ba: 31b8 lbu a4,3(a1) + 80bc: 47e9 li a5,26 + 80be: 21ca lhu a0,4(a1) + 80c0: 1fffb497 auipc s1,0x1fffb + 80c4: 86848493 addi s1,s1,-1944 # 20002928 + 80c8: 00f71563 bne a4,a5,80d2 + 80cc: 289e lhu a5,16(s1) + 80ce: 04a78263 beq a5,a0,8112 + 80d2: 25f030ef jal ra,bb30 + 80d6: 2072 lhu a2,6(s0) + 80d8: 2416 lhu a3,8(s0) + 80da: 243a lhu a4,10(s0) + 80dc: c501 beqz a0,80e4 + 80de: a572 sh a2,14(a0) + 80e0: a916 sh a3,16(a0) + 80e2: a93a sh a4,18(a0) + 80e4: 204e lhu a1,4(s0) + 80e6: 3028 lbu a0,3(s0) + 80e8: b94ff0ef jal ra,747c + 80ec: 205a lhu a4,4(s0) + 80ee: 289e lhu a5,16(s1) + 80f0: 00f71463 bne a4,a5,80f8 + 80f4: 57fd li a5,-1 + 80f6: a89e sh a5,16(s1) + 80f8: 4505 li a0,1 + 80fa: a825 j 8132 + 80fc: 6789 lui a5,0x2 + 80fe: 07cd addi a5,a5,19 # 2013 <_einit+0x100f> + 8100: 00f51c63 bne a0,a5,8118 + 8104: 21bc lbu a5,2(a1) + 8106: 4731 li a4,12 + 8108: 00e78563 beq a5,a4,8112 + 810c: 4745 li a4,17 + 810e: fee795e3 bne a5,a4,80f8 + 8112: d0dfe0ef jal ra,6e1e + 8116: b7cd j 80f8 + 8118: 47b1 li a5,12 + 811a: 00f51763 bne a0,a5,8128 + 811e: 9d11c503 lbu a0,-1583(gp) # 20001389 + 8122: bf6ff0ef jal ra,7518 + 8126: bfc9 j 80f8 + 8128: 67c1 lui a5,0x10 + 812a: 17fd addi a5,a5,-1 # ffff + 812c: 00f50863 beq a0,a5,813c + 8130: 4501 li a0,0 + 8132: 40f2 lw ra,28(sp) + 8134: 4462 lw s0,24(sp) + 8136: 44d2 lw s1,20(sp) + 8138: 6105 addi sp,sp,32 + 813a: 8082 ret + 813c: 31d8 lbu a4,5(a1) + 813e: 47c9 li a5,18 + 8140: fef718e3 bne a4,a5,8130 + 8144: 21cc lbu a1,4(a1) + 8146: 202a lhu a0,2(s0) + 8148: 0030 addi a2,sp,8 + 814a: 00011423 sh zero,8(sp) + 814e: 10b030ef jal ra,ba58 + 8152: b75d j 80f8 + +00008154 : +gapWriteAdvDataStatus(): + 8154: 1141 addi sp,sp,-16 + 8156: c422 sw s0,8(sp) + 8158: c04a sw s2,0(sp) + 815a: c606 sw ra,12(sp) + 815c: c226 sw s1,4(sp) + 815e: 98918913 addi s2,gp,-1655 # 20001341 + 8162: 00094783 lbu a5,0(s2) + 8166: 0fe00713 li a4,254 + 816a: 842e mv s0,a1 + 816c: 04e78063 beq a5,a4,81ac + 8170: 0ff00713 li a4,255 + 8174: 02e78363 beq a5,a4,819a + 8178: 4511 li a0,4 + 817a: a23fd0ef jal ra,5b9c + 817e: 85aa mv a1,a0 + 8180: cd09 beqz a0,819a + 8182: fd000793 li a5,-48 + 8186: a11c sb a5,0(a0) + 8188: 4789 li a5,2 + 818a: a13c sb a5,2(a0) + 818c: 4785 li a5,1 + 818e: b100 sb s0,1(a0) + 8190: b13c sb a5,3(a0) + 8192: 00094503 lbu a0,0(s2) + 8196: b01fd0ef jal ra,5c96 + 819a: 57f9 li a5,-2 + 819c: 00f90023 sb a5,0(s2) + 81a0: 40b2 lw ra,12(sp) + 81a2: 4422 lw s0,8(sp) + 81a4: 4492 lw s1,4(sp) + 81a6: 4902 lw s2,0(sp) + 81a8: 0141 addi sp,sp,16 + 81aa: 8082 ret + 81ac: 84aa mv s1,a0 + 81ae: 4511 li a0,4 + 81b0: 9edfd0ef jal ra,5b9c + 81b4: 85aa mv a1,a0 + 81b6: d56d beqz a0,81a0 + 81b8: fd000793 li a5,-48 + 81bc: a11c sb a5,0(a0) + 81be: 4789 li a5,2 + 81c0: b100 sb s0,1(a0) + 81c2: a13c sb a5,2(a0) + 81c4: b124 sb s1,3(a0) + 81c6: 4422 lw s0,8(sp) + 81c8: 40b2 lw ra,12(sp) + 81ca: 4492 lw s1,4(sp) + 81cc: 4902 lw s2,0(sp) + 81ce: 9881c503 lbu a0,-1656(gp) # 20001340 + 81d2: 0141 addi sp,sp,16 + 81d4: ac3fd06f j 5c96 + +000081d8 : +GAP_MakeDiscoverable(): + 81d8: 1101 addi sp,sp,-32 + 81da: ca26 sw s1,20(sp) + 81dc: 95c18493 addi s1,gp,-1700 # 20001314 + 81e0: 409c lw a5,0(s1) + 81e2: ce06 sw ra,28(sp) + 81e4: cc22 sw s0,24(sp) + 81e6: c84a sw s2,16(sp) + 81e8: efa5 bnez a5,8260 + 81ea: 892e mv s2,a1 + 81ec: 6591 lui a1,0x4 + 81ee: 98a18423 sb a0,-1656(gp) # 20001340 + 81f2: 842a mv s0,a0 + 81f4: 71758593 addi a1,a1,1815 # 4717 + 81f8: 4531 li a0,12 + 81fa: 4f2120ef jal ra,1a6ec + 81fe: 87aa mv a5,a0 + 8200: c088 sw a0,0(s1) + 8202: 454d li a0,19 + 8204: cba1 beqz a5,8254 + 8206: a380 sb s0,0(a5) + 8208: 000780a3 sb zero,1(a5) + 820c: 00278513 addi a0,a5,2 + 8210: 4629 li a2,10 + 8212: 85ca mv a1,s2 + 8214: 1fff8097 auipc ra,0x1fff8 + 8218: 648080e7 jalr 1608(ra) # 2000085c + 821c: 4094 lw a3,0(s1) + 821e: 4791 li a5,4 + 8220: 22b8 lbu a4,2(a3) + 8222: 02e7e263 bltu a5,a4,8246 + 8226: 47cd li a5,19 + 8228: cf11 beqz a4,8244 + 822a: 4605 li a2,1 + 822c: 47f5 li a5,29 + 822e: 00c70b63 beq a4,a2,8244 + 8232: 4609 li a2,2 + 8234: 47c9 li a5,18 + 8236: 00c70763 beq a4,a2,8244 + 823a: 460d li a2,3 + 823c: 47c1 li a5,16 + 823e: 00c70363 beq a4,a2,8244 + 8242: 47d5 li a5,21 + 8244: a2bc sb a5,2(a3) + 8246: da7ff0ef jal ra,7fec + 824a: c509 beqz a0,8254 + 824c: c62a sw a0,12(sp) + 824e: e3fff0ef jal ra,808c + 8252: 4532 lw a0,12(sp) + 8254: 40f2 lw ra,28(sp) + 8256: 4462 lw s0,24(sp) + 8258: 44d2 lw s1,20(sp) + 825a: 4942 lw s2,16(sp) + 825c: 6105 addi sp,sp,32 + 825e: 8082 ret + 8260: 4545 li a0,17 + 8262: bfcd j 8254 + +00008264 : +GAP_EndDiscoverable(): + 8264: 1101 addi sp,sp,-32 + 8266: ca26 sw s1,20(sp) + 8268: 95c18493 addi s1,gp,-1700 # 20001314 + 826c: 409c lw a5,0(s1) + 826e: cc22 sw s0,24(sp) + 8270: ce06 sw ra,28(sp) + 8272: c84a sw s2,16(sp) + 8274: 4449 li s0,18 + 8276: cf95 beqz a5,82b2 + 8278: 239c lbu a5,0(a5) + 827a: 440d li s0,3 + 827c: 02a79b63 bne a5,a0,82b2 + 8280: 9cc18913 addi s2,gp,-1588 # 20001384 + 8284: 00094503 lbu a0,0(s2) + 8288: 4589 li a1,2 + 828a: e8ffd0ef jal ra,6118 + 828e: 00094503 lbu a0,0(s2) + 8292: 4591 li a1,4 + 8294: e85fd0ef jal ra,6118 + 8298: 409c lw a5,0(s1) + 829a: 4701 li a4,0 + 829c: 4681 li a3,0 + 829e: b380 sb s0,1(a5) + 82a0: 00f10613 addi a2,sp,15 + 82a4: 4785 li a5,1 + 82a6: 4585 li a1,1 + 82a8: 4501 li a0,0 + 82aa: 87dc sb a5,15(sp) + 82ac: 344070ef jal ra,f5f0 + 82b0: 842a mv s0,a0 + 82b2: 40f2 lw ra,28(sp) + 82b4: 8522 mv a0,s0 + 82b6: 4462 lw s0,24(sp) + 82b8: 44d2 lw s1,20(sp) + 82ba: 4942 lw s2,16(sp) + 82bc: 6105 addi sp,sp,32 + 82be: 8082 ret + +000082c0 : +gapProcessAdvertisingEvt(): + 82c0: 1141 addi sp,sp,-16 + 82c2: c04a sw s2,0(sp) + 82c4: c606 sw ra,12(sp) + 82c6: 95c18913 addi s2,gp,-1700 # 20001314 + 82ca: c422 sw s0,8(sp) + 82cc: c226 sw s1,4(sp) + 82ce: 4705 li a4,1 + 82d0: 00092783 lw a5,0(s2) + 82d4: 00e51b63 bne a0,a4,82ea + 82d8: c7c9 beqz a5,8362 + 82da: 4422 lw s0,8(sp) + 82dc: 40b2 lw ra,12(sp) + 82de: 4492 lw s1,4(sp) + 82e0: 4902 lw s2,0(sp) + 82e2: 2388 lbu a0,0(a5) + 82e4: 0141 addi sp,sp,16 + 82e6: f7fff06f j 8264 + 82ea: cfa5 beqz a5,8362 + 82ec: 4789 li a5,2 + 82ee: 04f51e63 bne a0,a5,834a + 82f2: 452d li a0,11 + 82f4: 84ae mv s1,a1 + 82f6: 8a7fd0ef jal ra,5b9c + 82fa: 842a mv s0,a0 + 82fc: c13d beqz a0,8362 + 82fe: fd000793 li a5,-48 + 8302: a11c sb a5,0(a0) + 8304: 47e5 li a5,25 + 8306: 000500a3 sb zero,1(a0) + 830a: a13c sb a5,2(a0) + 830c: 30bc lbu a5,3(s1) + 830e: 0515 addi a0,a0,5 + 8310: 4619 li a2,6 + 8312: fef50f23 sb a5,-2(a0) + 8316: 20dc lbu a5,4(s1) + 8318: 00548593 addi a1,s1,5 + 831c: fef50fa3 sb a5,-1(a0) + 8320: 1fff8097 auipc ra,0x1fff8 + 8324: 53c080e7 jalr 1340(ra) # 2000085c + 8328: 9d11c503 lbu a0,-1583(gp) # 20001389 + 832c: 0ff00793 li a5,255 + 8330: 00f51563 bne a0,a5,833a + 8334: 00092783 lw a5,0(s2) + 8338: 2388 lbu a0,0(a5) + 833a: 85a2 mv a1,s0 + 833c: 4422 lw s0,8(sp) + 833e: 40b2 lw ra,12(sp) + 8340: 4492 lw s1,4(sp) + 8342: 4902 lw s2,0(sp) + 8344: 0141 addi sp,sp,16 + 8346: 951fd06f j 5c96 + 834a: 4589 li a1,2 + 834c: 9cc1c503 lbu a0,-1588(gp) # 20001384 + 8350: dc9fd0ef jal ra,6118 + 8354: 4422 lw s0,8(sp) + 8356: 40b2 lw ra,12(sp) + 8358: 4492 lw s1,4(sp) + 835a: 4902 lw s2,0(sp) + 835c: 0141 addi sp,sp,16 + 835e: d2fff06f j 808c + 8362: 40b2 lw ra,12(sp) + 8364: 4422 lw s0,8(sp) + 8366: 4492 lw s1,4(sp) + 8368: 4902 lw s2,0(sp) + 836a: 0141 addi sp,sp,16 + 836c: 8082 ret + +0000836e : +GAP_SetAdvertisingAdvData(): + 836e: 47fd li a5,31 + 8370: 00a7fc63 bgeu a5,a0,8388 + 8374: 4509 li a0,2 + 8376: 8082 ret + 8378: 4509 li a0,2 + 837a: 40f2 lw ra,28(sp) + 837c: 4462 lw s0,24(sp) + 837e: 44d2 lw s1,20(sp) + 8380: 4942 lw s2,16(sp) + 8382: 49b2 lw s3,12(sp) + 8384: 6105 addi sp,sp,32 + 8386: 8082 ret + 8388: 1101 addi sp,sp,-32 + 838a: cc22 sw s0,24(sp) + 838c: ce06 sw ra,28(sp) + 838e: ca26 sw s1,20(sp) + 8390: c84a sw s2,16(sp) + 8392: c64e sw s3,12(sp) + 8394: 842a mv s0,a0 + 8396: cd21 beqz a0,83ee + 8398: 89ae mv s3,a1 + 839a: 6591 lui a1,0x4 + 839c: 0521 addi a0,a0,8 + 839e: 71658593 addi a1,a1,1814 # 4716 + 83a2: 08054533 zext.h a0,a0 + 83a6: 346120ef jal ra,1a6ec + 83aa: 84aa mv s1,a0 + 83ac: d571 beqz a0,8378 + 83ae: 98418913 addi s2,gp,-1660 # 2000133c + 83b2: 00092503 lw a0,0(s2) + 83b6: c509 beqz a0,83c0 + 83b8: 1fff9097 auipc ra,0x1fff9 + 83bc: b08080e7 jalr -1272(ra) # 20000ec0 + 83c0: 00848513 addi a0,s1,8 + 83c4: c088 sw a0,0(s1) + 83c6: 8622 mv a2,s0 + 83c8: 4581 li a1,0 + 83ca: 00992023 sw s1,0(s2) + 83ce: 1fff8097 auipc ra,0x1fff8 + 83d2: 4cc080e7 jalr 1228(ra) # 2000089a + 83d6: 00092783 lw a5,0(s2) + 83da: 8622 mv a2,s0 + 83dc: 85ce mv a1,s3 + 83de: 4388 lw a0,0(a5) + 83e0: 1fff8097 auipc ra,0x1fff8 + 83e4: 47c080e7 jalr 1148(ra) # 2000085c + 83e8: 00092783 lw a5,0(s2) + 83ec: a3c2 sh s0,4(a5) + 83ee: 95c1a783 lw a5,-1700(gp) # 20001314 + 83f2: cb85 beqz a5,8422 + 83f4: 9d01c783 lbu a5,-1584(gp) # 20001388 + 83f8: 8b91 andi a5,a5,4 + 83fa: c795 beqz a5,8426 + 83fc: 9841a783 lw a5,-1660(gp) # 2000133c + 8400: cf91 beqz a5,841c + 8402: 4398 lw a4,0(a5) + 8404: 23d6 lhu a3,4(a5) + 8406: 4462 lw s0,24(sp) + 8408: 40f2 lw ra,28(sp) + 840a: 44d2 lw s1,20(sp) + 840c: 4942 lw s2,16(sp) + 840e: 49b2 lw s3,12(sp) + 8410: 4605 li a2,1 + 8412: 458d li a1,3 + 8414: 4505 li a0,1 + 8416: 6105 addi sp,sp,32 + 8418: 1980706f j f5b0 + 841c: 4701 li a4,0 + 841e: 4681 li a3,0 + 8420: b7dd j 8406 + 8422: 4501 li a0,0 + 8424: bf99 j 837a + 8426: 4549 li a0,18 + 8428: bf89 j 837a + +0000842a : +GAP_SetAdvertisingRspData(): + 842a: 47fd li a5,31 + 842c: 00a7fc63 bgeu a5,a0,8444 + 8430: 4509 li a0,2 + 8432: 8082 ret + 8434: 4509 li a0,2 + 8436: 40f2 lw ra,28(sp) + 8438: 4462 lw s0,24(sp) + 843a: 44d2 lw s1,20(sp) + 843c: 4942 lw s2,16(sp) + 843e: 49b2 lw s3,12(sp) + 8440: 6105 addi sp,sp,32 + 8442: 8082 ret + 8444: 1101 addi sp,sp,-32 + 8446: cc22 sw s0,24(sp) + 8448: ce06 sw ra,28(sp) + 844a: ca26 sw s1,20(sp) + 844c: c84a sw s2,16(sp) + 844e: c64e sw s3,12(sp) + 8450: 842a mv s0,a0 + 8452: cd21 beqz a0,84aa + 8454: 89ae mv s3,a1 + 8456: 6591 lui a1,0x4 + 8458: 0521 addi a0,a0,8 + 845a: 71558593 addi a1,a1,1813 # 4715 + 845e: 08054533 zext.h a0,a0 + 8462: 28a120ef jal ra,1a6ec + 8466: 84aa mv s1,a0 + 8468: d571 beqz a0,8434 + 846a: 98018913 addi s2,gp,-1664 # 20001338 + 846e: 00092503 lw a0,0(s2) + 8472: c509 beqz a0,847c + 8474: 1fff9097 auipc ra,0x1fff9 + 8478: a4c080e7 jalr -1460(ra) # 20000ec0 + 847c: 00848513 addi a0,s1,8 + 8480: c088 sw a0,0(s1) + 8482: 8622 mv a2,s0 + 8484: 4581 li a1,0 + 8486: 00992023 sw s1,0(s2) + 848a: 1fff8097 auipc ra,0x1fff8 + 848e: 410080e7 jalr 1040(ra) # 2000089a + 8492: 00092783 lw a5,0(s2) + 8496: 8622 mv a2,s0 + 8498: 85ce mv a1,s3 + 849a: 4388 lw a0,0(a5) + 849c: 1fff8097 auipc ra,0x1fff8 + 84a0: 3c0080e7 jalr 960(ra) # 2000085c + 84a4: 00092783 lw a5,0(s2) + 84a8: a3c2 sh s0,4(a5) + 84aa: 95c1a783 lw a5,-1700(gp) # 20001314 + 84ae: cb85 beqz a5,84de + 84b0: 9d01c783 lbu a5,-1584(gp) # 20001388 + 84b4: 8b91 andi a5,a5,4 + 84b6: c795 beqz a5,84e2 + 84b8: 9801a783 lw a5,-1664(gp) # 20001338 + 84bc: cf91 beqz a5,84d8 + 84be: 4398 lw a4,0(a5) + 84c0: 23d6 lhu a3,4(a5) + 84c2: 4462 lw s0,24(sp) + 84c4: 40f2 lw ra,28(sp) + 84c6: 44d2 lw s1,20(sp) + 84c8: 4942 lw s2,16(sp) + 84ca: 49b2 lw s3,12(sp) + 84cc: 4605 li a2,1 + 84ce: 458d li a1,3 + 84d0: 4505 li a0,1 + 84d2: 6105 addi sp,sp,32 + 84d4: 0fc0706f j f5d0 + 84d8: 4701 li a4,0 + 84da: 4681 li a3,0 + 84dc: b7dd j 84c2 + 84de: 4501 li a0,0 + 84e0: bf99 j 8436 + 84e2: 4549 li a0,18 + 84e4: bf89 j 8436 + +000084e6 : +GAP_GetAdvertisingAdvData(): + 84e6: 9841a783 lw a5,-1660(gp) # 2000133c + 84ea: cf89 beqz a5,8504 + 84ec: 23d2 lhu a2,4(a5) + 84ee: 438c lw a1,0(a5) + 84f0: 1141 addi sp,sp,-16 + 84f2: c606 sw ra,12(sp) + 84f4: 1fff8097 auipc ra,0x1fff8 + 84f8: 368080e7 jalr 872(ra) # 2000085c + 84fc: 40b2 lw ra,12(sp) + 84fe: 4501 li a0,0 + 8500: 0141 addi sp,sp,16 + 8502: 8082 ret + 8504: 4509 li a0,2 + 8506: 8082 ret + +00008508 : +GAP_GetAdvertisingRspData(): + 8508: 9841a783 lw a5,-1660(gp) # 2000133c + 850c: c395 beqz a5,8530 + 850e: 9801a703 lw a4,-1664(gp) # 20001338 + 8512: 4789 li a5,2 + 8514: cf19 beqz a4,8532 + 8516: 2352 lhu a2,4(a4) + 8518: 430c lw a1,0(a4) + 851a: 1141 addi sp,sp,-16 + 851c: c606 sw ra,12(sp) + 851e: 1fff8097 auipc ra,0x1fff8 + 8522: 33e080e7 jalr 830(ra) # 2000085c + 8526: 40b2 lw ra,12(sp) + 8528: 4781 li a5,0 + 852a: 853e mv a0,a5 + 852c: 0141 addi sp,sp,16 + 852e: 8082 ret + 8530: 4789 li a5,2 + 8532: 853e mv a0,a5 + 8534: 8082 ret + +00008536 : +GAP_PeriConnRegister(): + 8536: 9d01c783 lbu a5,-1584(gp) # 20001388 + 853a: 8b91 andi a5,a5,4 + 853c: cf99 beqz a5,855a + 853e: 1141 addi sp,sp,-16 + 8540: 97c18513 addi a0,gp,-1668 # 20001334 + 8544: c606 sw ra,12(sp) + 8546: 87bfe0ef jal ra,6dc0 + 854a: 40b2 lw ra,12(sp) + 854c: 57fd li a5,-1 + 854e: 1fffa717 auipc a4,0x1fffa + 8552: 3ef71523 sh a5,1002(a4) # 20002938 + 8556: 0141 addi sp,sp,16 + 8558: 8082 ret + 855a: 4501 li a0,0 + 855c: 865fe06f j 6dc0 + +00008560 : +GAP_PeripheralParamInit(): + 8560: 57fd li a5,-1 + 8562: 98f18423 sb a5,-1656(gp) # 20001340 + 8566: 57f9 li a5,-2 + 8568: 98f184a3 sb a5,-1655(gp) # 20001341 + 856c: 9801a223 sw zero,-1660(gp) # 2000133c + 8570: 9801a023 sw zero,-1664(gp) # 20001338 + 8574: 1fffa797 auipc a5,0x1fffa + 8578: 3d078793 addi a5,a5,976 # 20002944 + 857c: 00000717 auipc a4,0x0 + 8580: 07470713 addi a4,a4,116 # 85f0 + 8584: c398 sw a4,0(a5) + 8586: 00000717 auipc a4,0x0 + 858a: d3a70713 addi a4,a4,-710 # 82c0 + 858e: c3d8 sw a4,4(a5) + 8590: 00000717 auipc a4,0x0 + 8594: a5c70713 addi a4,a4,-1444 # 7fec + 8598: c798 sw a4,8(a5) + 859a: 00000797 auipc a5,0x0 + 859e: b1078793 addi a5,a5,-1264 # 80aa + 85a2: 96f1ae23 sw a5,-1668(gp) # 20001334 + 85a6: 8082 ret + +000085a8 : +gapSendMakeDiscEvent(): + 85a8: 1141 addi sp,sp,-16 + 85aa: c226 sw s1,4(sp) + 85ac: 95c18493 addi s1,gp,-1700 # 20001314 + 85b0: 409c lw a5,0(s1) + 85b2: c606 sw ra,12(sp) + 85b4: c422 sw s0,8(sp) + 85b6: cb85 beqz a5,85e6 + 85b8: 842a mv s0,a0 + 85ba: 450d li a0,3 + 85bc: de0fd0ef jal ra,5b9c + 85c0: 85aa mv a1,a0 + 85c2: c919 beqz a0,85d8 + 85c4: fd000793 li a5,-48 + 85c8: a11c sb a5,0(a0) + 85ca: 478d li a5,3 + 85cc: b100 sb s0,1(a0) + 85ce: a13c sb a5,2(a0) + 85d0: 409c lw a5,0(s1) + 85d2: 2388 lbu a0,0(a5) + 85d4: ec2fd0ef jal ra,5c96 + 85d8: c419 beqz s0,85e6 + 85da: 4422 lw s0,8(sp) + 85dc: 40b2 lw ra,12(sp) + 85de: 4492 lw s1,4(sp) + 85e0: 0141 addi sp,sp,16 + 85e2: aabff06f j 808c + 85e6: 40b2 lw ra,12(sp) + 85e8: 4422 lw s0,8(sp) + 85ea: 4492 lw s1,4(sp) + 85ec: 0141 addi sp,sp,16 + 85ee: 8082 ret + +000085f0 : +gapPeriProcessHCICmdCompleteEvt(): + 85f0: 2156 lhu a3,4(a0) + 85f2: 1101 addi sp,sp,-32 + 85f4: 6709 lui a4,0x2 + 85f6: ce06 sw ra,28(sp) + 85f8: cc22 sw s0,24(sp) + 85fa: ca26 sw s1,20(sp) + 85fc: 03670613 addi a2,a4,54 # 2036 + 8600: 87aa mv a5,a0 + 8602: 00c69d63 bne a3,a2,861c + 8606: 451c lw a5,8(a0) + 8608: 4501 li a0,0 + 860a: 238c lbu a1,0(a5) + 860c: b49ff0ef jal ra,8154 + 8610: 4505 li a0,1 + 8612: 40f2 lw ra,28(sp) + 8614: 4462 lw s0,24(sp) + 8616: 44d2 lw s1,20(sp) + 8618: 6105 addi sp,sp,32 + 861a: 8082 ret + 861c: 03770613 addi a2,a4,55 + 8620: 00c69663 bne a3,a2,862c + 8624: 451c lw a5,8(a0) + 8626: 4505 li a0,1 + 8628: 238c lbu a1,0(a5) + 862a: b7cd j 860c + 862c: 03870613 addi a2,a4,56 + 8630: 06c69c63 bne a3,a2,86a8 + 8634: 451c lw a5,8(a0) + 8636: 98918493 addi s1,gp,-1655 # 20001341 + 863a: 0fe00713 li a4,254 + 863e: 2380 lbu s0,0(a5) + 8640: 209c lbu a5,0(s1) + 8642: 02e78963 beq a5,a4,8674 + 8646: 0ff00713 li a4,255 + 864a: 02e78263 beq a5,a4,866e + 864e: 4511 li a0,4 + 8650: d4cfd0ef jal ra,5b9c + 8654: 85aa mv a1,a0 + 8656: cd01 beqz a0,866e + 8658: fd000793 li a5,-48 + 865c: a11c sb a5,0(a0) + 865e: 4789 li a5,2 + 8660: b100 sb s0,1(a0) + 8662: a13c sb a5,2(a0) + 8664: 000501a3 sb zero,3(a0) + 8668: 2088 lbu a0,0(s1) + 866a: e2cfd0ef jal ra,5c96 + 866e: 57f9 li a5,-2 + 8670: a09c sb a5,0(s1) + 8672: bf79 j 8610 + 8674: 95c1a783 lw a5,-1700(gp) # 20001314 + 8678: 4501 li a0,0 + 867a: dfc1 beqz a5,8612 + 867c: e015 bnez s0,86a0 + 867e: 4705 li a4,1 + 8680: 00011723 sh zero,14(sp) + 8684: 8658 sb a4,12(sp) + 8686: b398 sb a4,1(a5) + 8688: 00e10693 addi a3,sp,14 + 868c: 00d10713 addi a4,sp,13 + 8690: 0070 addi a2,sp,12 + 8692: 4585 li a1,1 + 8694: 4505 li a0,1 + 8696: 000106a3 sb zero,13(sp) + 869a: 757060ef jal ra,f5f0 + 869e: bf8d j 8610 + 86a0: 8522 mv a0,s0 + 86a2: f07ff0ef jal ra,85a8 + 86a6: b7ad j 8610 + 86a8: 03970713 addi a4,a4,57 + 86ac: 4501 li a0,0 + 86ae: f6e692e3 bne a3,a4,8612 + 86b2: 95c18413 addi s0,gp,-1700 # 20001314 + 86b6: 4018 lw a4,0(s0) + 86b8: df29 beqz a4,8612 + 86ba: 479c lw a5,8(a5) + 86bc: 3318 lbu a4,1(a4) + 86be: 2384 lbu s1,0(a5) + 86c0: 4785 li a5,1 + 86c2: 02f70463 beq a4,a5,86ea + 86c6: 450d li a0,3 + 86c8: cd4fd0ef jal ra,5b9c + 86cc: 85aa mv a1,a0 + 86ce: c919 beqz a0,86e4 + 86d0: fd000793 li a5,-48 + 86d4: a11c sb a5,0(a0) + 86d6: 4791 li a5,4 + 86d8: b104 sb s1,1(a0) + 86da: a13c sb a5,2(a0) + 86dc: 401c lw a5,0(s0) + 86de: 2388 lbu a0,0(a5) + 86e0: db6fd0ef jal ra,5c96 + 86e4: 9a9ff0ef jal ra,808c + 86e8: b725 j 8610 + 86ea: 9841a783 lw a5,-1660(gp) # 2000133c + 86ee: cb89 beqz a5,8700 + 86f0: 4394 lw a3,0(a5) + 86f2: 23d2 lhu a2,4(a5) + 86f4: 00e10593 addi a1,sp,14 + 86f8: 4505 li a0,1 + 86fa: f54fe0ef jal ra,6e4e + 86fe: e105 bnez a0,871e + 8700: 4501 li a0,0 + 8702: 81eff0ef jal ra,7720 + 8706: 862a mv a2,a0 + 8708: c611 beqz a2,8714 + 870a: 4589 li a1,2 + 870c: 9cc1c503 lbu a0,-1588(gp) # 20001384 + 8710: 811fd0ef jal ra,5f20 + 8714: 401c lw a5,0(s0) + 8716: 4709 li a4,2 + 8718: 8526 mv a0,s1 + 871a: b398 sb a4,1(a5) + 871c: b759 j 86a2 + 871e: 211c lbu a5,0(a0) + 8720: 8b85 andi a5,a5,1 + 8722: dff9 beqz a5,8700 + 8724: 4505 li a0,1 + 8726: ffbfe0ef jal ra,7720 + 872a: 64000793 li a5,1600 + 872e: 02f50633 mul a2,a0,a5 + 8732: bfd9 j 8708 + +00008734 : +GAP_PeriDevMgrInit(): + 8734: 1141 addi sp,sp,-16 + 8736: c422 sw s0,8(sp) + 8738: 9d01c403 lbu s0,-1584(gp) # 20001388 + 873c: c606 sw ra,12(sp) + 873e: 8811 andi s0,s0,4 + 8740: cc09 beqz s0,875a + 8742: 1fffa517 auipc a0,0x1fffa + 8746: 20250513 addi a0,a0,514 # 20002944 + 874a: e70fe0ef jal ra,6dba + 874e: 444d li s0,19 + 8750: 40b2 lw ra,12(sp) + 8752: 8522 mv a0,s0 + 8754: 4422 lw s0,8(sp) + 8756: 0141 addi sp,sp,16 + 8758: 8082 ret + 875a: 4501 li a0,0 + 875c: e5efe0ef jal ra,6dba + 8760: bfc5 j 8750 + +00008762 : +gattGetPayload(): + 8762: 4775 li a4,29 + 8764: 87aa mv a5,a0 + 8766: 02b76563 bltu a4,a1,8790 + 876a: 4711 li a4,4 + 876c: 4501 li a0,0 + 876e: 02b77863 bgeu a4,a1,879e + 8772: 15ed addi a1,a1,-5 + 8774: 0ff5f593 zext.b a1,a1 + 8778: 4761 li a4,24 + 877a: 02b76163 bltu a4,a1,879c + 877e: 00011697 auipc a3,0x11 + 8782: 2f268693 addi a3,a3,754 # 19a70 + 8786: 20d5c5b3 sh2add a1,a1,a3 + 878a: 4198 lw a4,0(a1) + 878c: 9736 add a4,a4,a3 + 878e: 8702 jr a4 + 8790: 07f5f593 andi a1,a1,127 + 8794: 05200713 li a4,82 + 8798: 00e58a63 beq a1,a4,87ac + 879c: 4501 li a0,0 + 879e: 8082 ret + 87a0: 47c8 lw a0,12(a5) + 87a2: 8082 ret + 87a4: 4388 lw a0,0(a5) + 87a6: 8082 ret + 87a8: 4788 lw a0,8(a5) + 87aa: 8082 ret + 87ac: 43c8 lw a0,4(a5) + 87ae: 8082 ret + +000087b0 : +gattNotifyEvent(): + 87b0: 0ff00793 li a5,255 + 87b4: 06f50d63 beq a0,a5,882e + 87b8: 1101 addi sp,sp,-32 + 87ba: ca26 sw s1,20(sp) + 87bc: 84aa mv s1,a0 + 87be: 02000513 li a0,32 + 87c2: cc22 sw s0,24(sp) + 87c4: c84a sw s2,16(sp) + 87c6: c64e sw s3,12(sp) + 87c8: c452 sw s4,8(sp) + 87ca: c256 sw s5,4(sp) + 87cc: ce06 sw ra,28(sp) + 87ce: 8a2e mv s4,a1 + 87d0: 8ab2 mv s5,a2 + 87d2: 89b6 mv s3,a3 + 87d4: 893a mv s2,a4 + 87d6: bc6fd0ef jal ra,5b9c + 87da: 842a mv s0,a0 + 87dc: 454d li a0,19 + 87de: c80d beqz s0,8810 + 87e0: fb000793 li a5,-80 + 87e4: a01c sb a5,0(s0) + 87e6: 015400a3 sb s5,1(s0) + 87ea: 01441123 sh s4,2(s0) + 87ee: 01340223 sb s3,4(s0) + 87f2: 00840513 addi a0,s0,8 + 87f6: 4661 li a2,24 + 87f8: 02090563 beqz s2,8822 + 87fc: 85ca mv a1,s2 + 87fe: 1fff8097 auipc ra,0x1fff8 + 8802: 05e080e7 jalr 94(ra) # 2000085c + 8806: 85a2 mv a1,s0 + 8808: 8526 mv a0,s1 + 880a: c8cfd0ef jal ra,5c96 + 880e: 4501 li a0,0 + 8810: 40f2 lw ra,28(sp) + 8812: 4462 lw s0,24(sp) + 8814: 44d2 lw s1,20(sp) + 8816: 4942 lw s2,16(sp) + 8818: 49b2 lw s3,12(sp) + 881a: 4a22 lw s4,8(sp) + 881c: 4a92 lw s5,4(sp) + 881e: 6105 addi sp,sp,32 + 8820: 8082 ret + 8822: 4581 li a1,0 + 8824: 1fff8097 auipc ra,0x1fff8 + 8828: 076080e7 jalr 118(ra) # 2000089a + 882c: bfe9 j 8806 + 882e: 4509 li a0,2 + 8830: 8082 ret + +00008832 : +gattSendFlowCtrlEvt(): + 8832: 1101 addi sp,sp,-32 + 8834: cc22 sw s0,24(sp) + 8836: ce06 sw ra,28(sp) + 8838: 842a mv s0,a0 + 883a: 864c sb a1,12(sp) + 883c: 86d0 sb a2,13(sp) + 883e: 2f2030ef jal ra,bb30 + 8842: c911 beqz a0,8856 + 8844: 0078 addi a4,sp,12 + 8846: 07e00693 li a3,126 + 884a: 4601 li a2,0 + 884c: 85a2 mv a1,s0 + 884e: 9d11c503 lbu a0,-1583(gp) # 20001389 + 8852: f5fff0ef jal ra,87b0 + 8856: 40f2 lw ra,28(sp) + 8858: 4462 lw s0,24(sp) + 885a: 6105 addi sp,sp,32 + 885c: 8082 ret + +0000885e : +gattStartTimer(): + 885e: 64000793 li a5,1600 + 8862: 02f60633 mul a2,a2,a5 + 8866: ffafd06f j 6060 + +0000886a : +gattStopTimer(): + 886a: c115 beqz a0,888e + 886c: 1141 addi sp,sp,-16 + 886e: c422 sw s0,8(sp) + 8870: c606 sw ra,12(sp) + 8872: 842a mv s0,a0 + 8874: 2108 lbu a0,0(a0) + 8876: 0fd00793 li a5,253 + 887a: 00a7e663 bltu a5,a0,8886 + 887e: 92dfd0ef jal ra,61aa + 8882: 57fd li a5,-1 + 8884: a01c sb a5,0(s0) + 8886: 40b2 lw ra,12(sp) + 8888: 4422 lw s0,8(sp) + 888a: 0141 addi sp,sp,16 + 888c: 8082 ret + 888e: 8082 ret + +00008890 : +GATT_AppCompletedMsg(): + 8890: 211a lhu a4,0(a0) + 8892: 0b000793 li a5,176 + 8896: 02f71063 bne a4,a5,88b6 + 889a: 215c lbu a5,4(a0) + 889c: 4749 li a4,18 + 889e: 00e79a63 bne a5,a4,88b2 + 88a2: 3918 lbu a4,17(a0) + 88a4: 4785 li a5,1 + 88a6: 00e79863 bne a5,a4,88b6 + 88aa: 212a lhu a0,2(a0) + 88ac: 4585 li a1,1 + 88ae: 1110206f j b1be + 88b2: 476d li a4,27 + 88b4: bfcd j 88a6 + 88b6: 8082 ret + +000088b8 : +GATT_ExchangeMTU(): + 88b8: 7179 addi sp,sp,-48 + 88ba: d226 sw s1,36(sp) + 88bc: 84ae mv s1,a1 + 88be: 006c addi a1,sp,12 + 88c0: d422 sw s0,40(sp) + 88c2: d04a sw s2,32(sp) + 88c4: ce4e sw s3,28(sp) + 88c6: d606 sw ra,44(sp) + 88c8: 89aa mv s3,a0 + 88ca: 8932 mv s2,a2 + 88cc: 2929 jal 8ce6 + 88ce: 842a mv s0,a0 + 88d0: e105 bnez a0,88f0 + 88d2: 85a6 mv a1,s1 + 88d4: 854e mv a0,s3 + 88d6: 4c3090ef jal ra,12598 + 88da: 842a mv s0,a0 + 88dc: e911 bnez a0,88f0 + 88de: 4532 lw a0,12(sp) + 88e0: 874a mv a4,s2 + 88e2: 0000a697 auipc a3,0xa + 88e6: c9e68693 addi a3,a3,-866 # 12580 + 88ea: 460d li a2,3 + 88ec: 85a6 mv a1,s1 + 88ee: 2d9d jal 8f64 + 88f0: 50b2 lw ra,44(sp) + 88f2: 8522 mv a0,s0 + 88f4: 5422 lw s0,40(sp) + 88f6: 5492 lw s1,36(sp) + 88f8: 5902 lw s2,32(sp) + 88fa: 49f2 lw s3,28(sp) + 88fc: 6145 addi sp,sp,48 + 88fe: 8082 ret + +00008900 : +GATT_NotifyEvent(): + 8900: 1101 addi sp,sp,-32 + 8902: cc22 sw s0,24(sp) + 8904: ca26 sw s1,20(sp) + 8906: c84a sw s2,16(sp) + 8908: ce06 sw ra,28(sp) + 890a: 842a mv s0,a0 + 890c: 84ae mv s1,a1 + 890e: 8932 mv s2,a2 + 8910: c636 sw a3,12(sp) + 8912: 21e030ef jal ra,bb30 + 8916: 4732 lw a4,12(sp) + 8918: cd09 beqz a0,8932 + 891a: 85a2 mv a1,s0 + 891c: 4462 lw s0,24(sp) + 891e: 40f2 lw ra,28(sp) + 8920: 86ca mv a3,s2 + 8922: 8626 mv a2,s1 + 8924: 4942 lw s2,16(sp) + 8926: 44d2 lw s1,20(sp) + 8928: 9d11c503 lbu a0,-1583(gp) # 20001389 + 892c: 6105 addi sp,sp,32 + 892e: e83ff06f j 87b0 + 8932: 40f2 lw ra,28(sp) + 8934: 4462 lw s0,24(sp) + 8936: 44d2 lw s1,20(sp) + 8938: 4942 lw s2,16(sp) + 893a: 4505 li a0,1 + 893c: 6105 addi sp,sp,32 + 893e: 8082 ret + +00008940 : +gattRegisterClient(): + 8940: 98a1a823 sw a0,-1648(gp) # 20001348 + 8944: 8082 ret + +00008946 : +gattRegisterServer(): + 8946: 98a1a623 sw a0,-1652(gp) # 20001344 + 894a: 8082 ret + +0000894c : +GATT_UpdateMTU(): + 894c: 1101 addi sp,sp,-32 + 894e: cc22 sw s0,24(sp) + 8950: ca26 sw s1,20(sp) + 8952: ce06 sw ra,28(sp) + 8954: 842a mv s0,a0 + 8956: 84ae mv s1,a1 + 8958: 1d8030ef jal ra,bb30 + 895c: 85a6 mv a1,s1 + 895e: 8522 mv a0,s0 + 8960: 28d090ef jal ra,123ec + 8964: ed19 bnez a0,8982 + 8966: 8522 mv a0,s0 + 8968: 8664 sh s1,12(sp) + 896a: 1c6030ef jal ra,bb30 + 896e: c911 beqz a0,8982 + 8970: 0078 addi a4,sp,12 + 8972: 07f00693 li a3,127 + 8976: 4601 li a2,0 + 8978: 85a2 mv a1,s0 + 897a: 9d11c503 lbu a0,-1583(gp) # 20001389 + 897e: e33ff0ef jal ra,87b0 + 8982: 40f2 lw ra,28(sp) + 8984: 4462 lw s0,24(sp) + 8986: 44d2 lw s1,20(sp) + 8988: 6105 addi sp,sp,32 + 898a: 8082 ret + +0000898c : +GATT_bm_alloc(): + 898c: 7179 addi sp,sp,-48 + 898e: d422 sw s0,40(sp) + 8990: d04a sw s2,32(sp) + 8992: 87ae mv a5,a1 + 8994: d606 sw ra,44(sp) + 8996: 85ba mv a1,a4 + 8998: d226 sw s1,36(sp) + 899a: ce4e sw s3,28(sp) + 899c: 4775 li a4,29 + 899e: 8432 mv s0,a2 + 89a0: 8936 mv s2,a3 + 89a2: 04f76463 bltu a4,a5,89ea + 89a6: 4721 li a4,8 + 89a8: 00f76c63 bltu a4,a5,89c0 + 89ac: 4715 li a4,5 + 89ae: 02e78863 beq a5,a4,89de + 89b2: 4719 li a4,6 + 89b4: 08e78b63 beq a5,a4,8a4a + 89b8: 67c1 lui a5,0x10 + 89ba: 17fd addi a5,a5,-1 # ffff + 89bc: 4485 li s1,1 + 89be: a01d j 89e4 + 89c0: 00140637 lui a2,0x140 + 89c4: 17dd addi a5,a5,-9 + 89c6: 20060613 addi a2,a2,512 # 140200 <_data_lma+0x124c44> + 89ca: 28f017b3 bset a5,zero,a5 + 89ce: 8e7d and a2,a2,a5 + 89d0: ea59 bnez a2,8a66 + 89d2: 6719 lui a4,0x6 + 89d4: 8f7d and a4,a4,a5 + 89d6: e735 bnez a4,8a42 + 89d8: 1017f793 andi a5,a5,257 + 89dc: dff1 beqz a5,89b8 + 89de: 67c1 lui a5,0x10 + 89e0: 17fd addi a5,a5,-1 # ffff + 89e2: 4489 li s1,2 + 89e4: 02f41663 bne s0,a5,8a10 + 89e8: a821 j 8a00 + 89ea: 07f7f713 andi a4,a5,127 + 89ee: 05200693 li a3,82 + 89f2: fcd713e3 bne a4,a3,89b8 + 89f6: 6741 lui a4,0x10 + 89f8: 177d addi a4,a4,-1 # ffff + 89fa: 04e61c63 bne a2,a4,8a52 + 89fe: 448d li s1,3 + 8a00: c62e sw a1,12(sp) + 8a02: 227090ef jal ra,12428 + 8a06: 45b2 lw a1,12(sp) + 8a08: 40950433 sub s0,a0,s1 + 8a0c: 08044433 zext.h s0,s0 + 8a10: 00848533 add a0,s1,s0 + 8a14: 08054533 zext.h a0,a0 + 8a18: 7ea020ef jal ra,b202 + 8a1c: 87aa mv a5,a0 + 8a1e: 0804c9b3 zext.h s3,s1 + 8a22: c531 beqz a0,8a6e + 8a24: 00090463 beqz s2,8a2c + 8a28: 00891023 sh s0,0(s2) + 8a2c: 5422 lw s0,40(sp) + 8a2e: 50b2 lw ra,44(sp) + 8a30: 5492 lw s1,36(sp) + 8a32: 5902 lw s2,32(sp) + 8a34: 413005b3 neg a1,s3 + 8a38: 49f2 lw s3,28(sp) + 8a3a: 853e mv a0,a5 + 8a3c: 6145 addi sp,sp,48 + 8a3e: 0150906f j 12252 + 8a42: 67c1 lui a5,0x10 + 8a44: 17fd addi a5,a5,-1 # ffff + 8a46: 4495 li s1,5 + 8a48: bf71 j 89e4 + 8a4a: 67c1 lui a5,0x10 + 8a4c: 17fd addi a5,a5,-1 # ffff + 8a4e: 449d li s1,7 + 8a50: bf51 j 89e4 + 8a52: 0d200713 li a4,210 + 8a56: 448d li s1,3 + 8a58: fae79ce3 bne a5,a4,8a10 + 8a5c: 00c60413 addi s0,a2,12 + 8a60: 08044433 zext.h s0,s0 + 8a64: b775 j 8a10 + 8a66: 67c1 lui a5,0x10 + 8a68: 17fd addi a5,a5,-1 # ffff + 8a6a: 448d li s1,3 + 8a6c: bfa5 j 89e4 + 8a6e: 50b2 lw ra,44(sp) + 8a70: 5422 lw s0,40(sp) + 8a72: 5492 lw s1,36(sp) + 8a74: 5902 lw s2,32(sp) + 8a76: 49f2 lw s3,28(sp) + 8a78: 6145 addi sp,sp,48 + 8a7a: 8082 ret + +00008a7c : +GATT_ServiceChangedInd(): + 8a7c: 7179 addi sp,sp,-48 + 8a7e: ce4e sw s3,28(sp) + 8a80: 89ae mv s3,a1 + 8a82: 65c1 lui a1,0x10 + 8a84: d226 sw s1,36(sp) + 8a86: 4701 li a4,0 + 8a88: 84aa mv s1,a0 + 8a8a: 4689 li a3,2 + 8a8c: 87818613 addi a2,gp,-1928 # 20001230 + 8a90: 15fd addi a1,a1,-1 # ffff + 8a92: 4505 li a0,1 + 8a94: d422 sw s0,40(sp) + 8a96: d606 sw ra,44(sp) + 8a98: d04a sw s2,32(sp) + 8a9a: 114010ef jal ra,9bae + 8a9e: 4405 li s0,1 + 8aa0: c929 beqz a0,8af2 + 8aa2: 892a mv s2,a0 + 8aa4: 02300713 li a4,35 + 8aa8: 4681 li a3,0 + 8aaa: 4611 li a2,4 + 8aac: 45f5 li a1,29 + 8aae: 8526 mv a0,s1 + 8ab0: eddff0ef jal ra,898c + 8ab4: c62a sw a0,12(sp) + 8ab6: 4455 li s0,21 + 8ab8: cd0d beqz a0,8af2 + 8aba: 00a95703 lhu a4,10(s2) + 8abe: 86ce mv a3,s3 + 8ac0: 4601 li a2,0 + 8ac2: 8478 sh a4,8(sp) + 8ac4: 4711 li a4,4 + 8ac6: 8578 sh a4,10(sp) + 8ac8: 4705 li a4,1 + 8aca: a118 sb a4,0(a0) + 8acc: 47b2 lw a5,12(sp) + 8ace: 002c addi a1,sp,8 + 8ad0: 8526 mv a0,s1 + 8ad2: 000780a3 sb zero,1(a5) + 8ad6: 4732 lw a4,12(sp) + 8ad8: 57fd li a5,-1 + 8ada: a33c sb a5,2(a4) + 8adc: 4732 lw a4,12(sp) + 8ade: b33c sb a5,3(a4) + 8ae0: 02a010ef jal ra,9b0a + 8ae4: 842a mv s0,a0 + 8ae6: c511 beqz a0,8af2 + 8ae8: 4532 lw a0,12(sp) + 8aea: 1fff8097 auipc ra,0x1fff8 + 8aee: 3d6080e7 jalr 982(ra) # 20000ec0 + 8af2: 50b2 lw ra,44(sp) + 8af4: 8522 mv a0,s0 + 8af6: 5422 lw s0,40(sp) + 8af8: 5492 lw s1,36(sp) + 8afa: 5902 lw s2,32(sp) + 8afc: 49f2 lw s3,28(sp) + 8afe: 6145 addi sp,sp,48 + 8b00: 8082 ret + +00008b02 : +GATT_bm_free(): + 8b02: 1141 addi sp,sp,-16 + 8b04: c606 sw ra,12(sp) + 8b06: c5dff0ef jal ra,8762 + 8b0a: c519 beqz a0,8b18 + 8b0c: 40b2 lw ra,12(sp) + 8b0e: 0141 addi sp,sp,16 + 8b10: 1fff8317 auipc t1,0x1fff8 + 8b14: 3b030067 jr 944(t1) # 20000ec0 + 8b18: 40b2 lw ra,12(sp) + 8b1a: 0141 addi sp,sp,16 + 8b1c: 8082 ret + +00008b1e : +GATT_Init(): + 8b1e: 1101 addi sp,sp,-32 + 8b20: ce06 sw ra,28(sp) + 8b22: c62a sw a0,12(sp) + 8b24: 774090ef jal ra,12298 + 8b28: 4532 lw a0,12(sp) + 8b2a: 4591 li a1,4 + 8b2c: 9801a823 sw zero,-1648(gp) # 20001348 + 8b30: 9801a623 sw zero,-1652(gp) # 20001344 + 8b34: 9ca186a3 sb a0,-1587(gp) # 20001385 + 8b38: 688020ef jal ra,b1c0 + 8b3c: 40f2 lw ra,28(sp) + 8b3e: 6105 addi sp,sp,32 + 8b40: 17c0206f j acbc + +00008b44 : +GATT_ProcessEvent(): + 8b44: 60559793 sext.h a5,a1 + 8b48: 1407d563 bgez a5,8c92 + 8b4c: 7179 addi sp,sp,-48 + 8b4e: 9cd1c503 lbu a0,-1587(gp) # 20001385 + 8b52: d422 sw s0,40(sp) + 8b54: d226 sw s1,36(sp) + 8b56: d606 sw ra,44(sp) + 8b58: d04a sw s2,32(sp) + 8b5a: 84ae mv s1,a1 + 8b5c: 8a2fd0ef jal ra,5bfe + 8b60: 842a mv s0,a0 + 8b62: c959 beqz a0,8bf8 + 8b64: 2118 lbu a4,0(a0) + 8b66: 0a000793 li a5,160 + 8b6a: 08f71463 bne a4,a5,8bf2 + 8b6e: 4785 li a5,1 + 8b70: 084c addi a1,sp,20 + 8b72: 85dc sb a5,11(sp) + 8b74: 7f0090ef jal ra,12364 + 8b78: cd11 beqz a0,8b94 + 8b7a: 859c lbu a5,11(sp) + 8b7c: c799 beqz a5,8b8a + 8b7e: 4408 lw a0,8(s0) + 8b80: c509 beqz a0,8b8a + 8b82: 1fff8097 auipc ra,0x1fff8 + 8b86: 33e080e7 jalr 830(ra) # 20000ec0 + 8b8a: 202a lhu a0,2(s0) + 8b8c: 4585 li a1,1 + 8b8e: 630020ef jal ra,b1be + 8b92: a085 j 8bf2 + 8b94: 01614783 lbu a5,22(sp) + 8b98: cf91 beqz a5,8bb4 + 8b9a: 4771 li a4,28 + 8b9c: 06f76663 bltu a4,a5,8c08 + 8ba0: 474d li a4,19 + 8ba2: 06f77b63 bgeu a4,a5,8c18 + 8ba6: fec78693 addi a3,a5,-20 + 8baa: 14300713 li a4,323 + 8bae: 48d75733 bext a4,a4,a3 + 8bb2: c33d beqz a4,8c18 + 8bb4: 98c1a703 lw a4,-1652(gp) # 20001344 + 8bb8: c701 beqz a4,8bc0 + 8bba: 01514703 lbu a4,21(sp) + 8bbe: cf2d beqz a4,8c38 + 8bc0: 859c lbu a5,11(sp) + 8bc2: c799 beqz a5,8bd0 + 8bc4: 4408 lw a0,8(s0) + 8bc6: c509 beqz a0,8bd0 + 8bc8: 1fff8097 auipc ra,0x1fff8 + 8bcc: 2f8080e7 jalr 760(ra) # 20000ec0 + 8bd0: 4752 lw a4,20(sp) + 8bd2: 010007b7 lui a5,0x1000 + 8bd6: f0078793 addi a5,a5,-256 # ffff00 <_data_lma+0xfe4944> + 8bda: 8f7d and a4,a4,a5 + 8bdc: 001207b7 lui a5,0x120 + 8be0: 10078793 addi a5,a5,256 # 120100 <_data_lma+0x104b44> + 8be4: 00f70763 beq a4,a5,8bf2 + 8be8: 01614703 lbu a4,22(sp) + 8bec: 47ed li a5,27 + 8bee: f8f70ee3 beq a4,a5,8b8a + 8bf2: 8522 mv a0,s0 + 8bf4: f57fc0ef jal ra,5b4a + 8bf8: 50b2 lw ra,44(sp) + 8bfa: 5422 lw s0,40(sp) + 8bfc: 5902 lw s2,32(sp) + 8bfe: 68f49513 binvi a0,s1,0xf + 8c02: 5492 lw s1,36(sp) + 8c04: 6145 addi sp,sp,48 + 8c06: 8082 ret + 8c08: fe178713 addi a4,a5,-31 + 8c0c: 0ff77713 zext.b a4,a4 + 8c10: 02000693 li a3,32 + 8c14: fae6f0e3 bgeu a3,a4,8bb4 + 8c18: 8b85 andi a5,a5,1 + 8c1a: cb95 beqz a5,8c4e + 8c1c: 9901a783 lw a5,-1648(gp) # 20001348 + 8c20: dfa9 beqz a5,8b7a + 8c22: 202a lhu a0,2(s0) + 8c24: 00b10613 addi a2,sp,11 + 8c28: 084c addi a1,sp,20 + 8c2a: 9782 jalr a5 + 8c2c: 859c lbu a5,11(sp) + 8c2e: 892a mv s2,a0 + 8c30: ebb1 bnez a5,8c84 + 8c32: f8090fe3 beqz s2,8bd0 + 8c36: bf91 j 8b8a + 8c38: 865c sb a5,12(sp) + 8c3a: 4799 li a5,6 + 8c3c: 00f10823 sb a5,16(sp) + 8c40: 202a lhu a0,2(s0) + 8c42: 006c addi a1,sp,12 + 8c44: 00011723 sh zero,14(sp) + 8c48: 119090ef jal ra,12560 + 8c4c: bf95 j 8bc0 + 8c4e: 98c1a783 lw a5,-1652(gp) # 20001344 + 8c52: c79d beqz a5,8c80 + 8c54: 202a lhu a0,2(s0) + 8c56: 00b10613 addi a2,sp,11 + 8c5a: 084c addi a1,sp,20 + 8c5c: 9782 jalr a5 + 8c5e: d12d beqz a0,8bc0 + 8c60: 01514783 lbu a5,21(sp) + 8c64: f0079be3 bnez a5,8b7a + 8c68: 00a10823 sb a0,16(sp) + 8c6c: 01614783 lbu a5,22(sp) + 8c70: 202a lhu a0,2(s0) + 8c72: 006c addi a1,sp,12 + 8c74: 865c sb a5,12(sp) + 8c76: 00011723 sh zero,14(sp) + 8c7a: 0e7090ef jal ra,12560 + 8c7e: bdf5 j 8b7a + 8c80: 4519 li a0,6 + 8c82: bff9 j 8c60 + 8c84: 4408 lw a0,8(s0) + 8c86: d555 beqz a0,8c32 + 8c88: 1fff8097 auipc ra,0x1fff8 + 8c8c: 238080e7 jalr 568(ra) # 20000ec0 + 8c90: b74d j 8c32 + 8c92: 4501 li a0,0 + 8c94: 8082 ret + +00008c96 : +gattFindClientInfo(): + 8c96: 9d21c683 lbu a3,-1582(gp) # 2000138a + 8c9a: 9941a783 lw a5,-1644(gp) # 2000134c + 8c9e: 4701 li a4,0 + 8ca0: 00e69463 bne a3,a4,8ca8 + 8ca4: 4501 li a0,0 + 8ca6: 8082 ret + 8ca8: 238e lhu a1,0(a5) + 8caa: 02878613 addi a2,a5,40 + 8cae: 00a59463 bne a1,a0,8cb6 + 8cb2: 853e mv a0,a5 + 8cb4: 8082 ret + 8cb6: 0705 addi a4,a4,1 + 8cb8: 0ff77713 zext.b a4,a4 + 8cbc: 87b2 mv a5,a2 + 8cbe: b7cd j 8ca0 + +00008cc0 : +gattClientNotifyTxCB(): + 8cc0: 1141 addi sp,sp,-16 + 8cc2: c422 sw s0,8(sp) + 8cc4: c606 sw ra,12(sp) + 8cc6: 842e mv s0,a1 + 8cc8: fcfff0ef jal ra,8c96 + 8ccc: c909 beqz a0,8cde + 8cce: 253c lbu a5,10(a0) + 8cd0: 00178713 addi a4,a5,1 + 8cd4: 00e41563 bne s0,a4,8cde + 8cd8: f807f793 andi a5,a5,-128 + 8cdc: a53c sb a5,10(a0) + 8cde: 40b2 lw ra,12(sp) + 8ce0: 4422 lw s0,8(sp) + 8ce2: 0141 addi sp,sp,16 + 8ce4: 8082 ret + +00008ce6 : +gattGetClientStatus(): + 8ce6: 1141 addi sp,sp,-16 + 8ce8: c422 sw s0,8(sp) + 8cea: c606 sw ra,12(sp) + 8cec: 842e mv s0,a1 + 8cee: fa9ff0ef jal ra,8c96 + 8cf2: c11d beqz a0,8d18 + 8cf4: c011 beqz s0,8cf8 + 8cf6: c008 sw a0,0(s0) + 8cf8: 251c lbu a5,8(a0) + 8cfa: 0fe00713 li a4,254 + 8cfe: 455d li a0,23 + 8d00: 00e78863 beq a5,a4,8d10 + 8d04: 0ff00713 li a4,255 + 8d08: 4559 li a0,22 + 8d0a: 00e79363 bne a5,a4,8d10 + 8d0e: 4501 li a0,0 + 8d10: 40b2 lw ra,12(sp) + 8d12: 4422 lw s0,8(sp) + 8d14: 0141 addi sp,sp,16 + 8d16: 8082 ret + 8d18: 4509 li a0,2 + 8d1a: bfdd j 8d10 + +00008d1c : +gattResetClientInfo(): + 8d1c: 1141 addi sp,sp,-16 + 8d1e: c422 sw s0,8(sp) + 8d20: 842a mv s0,a0 + 8d22: 0521 addi a0,a0,8 + 8d24: c226 sw s1,4(sp) + 8d26: c606 sw ra,12(sp) + 8d28: c04a sw s2,0(sp) + 8d2a: b41ff0ef jal ra,886a + 8d2e: 2024 lbu s1,2(s0) + 8d30: 14a5 addi s1,s1,-23 + 8d32: 0fd4f493 andi s1,s1,253 + 8d36: e881 bnez s1,8d46 + 8d38: 2458 lbu a4,12(s0) + 8d3a: 4785 li a5,1 + 8d3c: 04f71d63 bne a4,a5,8d96 + 8d40: 481c lw a5,16(s0) + 8d42: 4931 li s2,12 + 8d44: e3a1 bnez a5,8d84 + 8d46: 57fd li a5,-1 + 8d48: 00040123 sb zero,2(s0) + 8d4c: b41c sb a5,9(s0) + 8d4e: 02040223 sb zero,36(s0) + 8d52: 00c40513 addi a0,s0,12 + 8d56: 4422 lw s0,8(sp) + 8d58: 40b2 lw ra,12(sp) + 8d5a: 4492 lw s1,4(sp) + 8d5c: 4902 lw s2,0(sp) + 8d5e: 4661 li a2,24 + 8d60: 4581 li a1,0 + 8d62: 0141 addi sp,sp,16 + 8d64: 1fff8317 auipc t1,0x1fff8 + 8d68: b3630067 jr -1226(t1) # 2000089a + 8d6c: 032487b3 mul a5,s1,s2 + 8d70: 953e add a0,a0,a5 + 8d72: 4508 lw a0,8(a0) + 8d74: c509 beqz a0,8d7e + 8d76: 1fff8097 auipc ra,0x1fff8 + 8d7a: 14a080e7 jalr 330(ra) # 20000ec0 + 8d7e: 0485 addi s1,s1,1 + 8d80: 0ff4f493 zext.b s1,s1 + 8d84: 285c lbu a5,20(s0) + 8d86: 4808 lw a0,16(s0) + 8d88: fef4e2e3 bltu s1,a5,8d6c + 8d8c: 1fff8097 auipc ra,0x1fff8 + 8d90: 134080e7 jalr 308(ra) # 20000ec0 + 8d94: bf4d j 8d46 + 8d96: 4c08 lw a0,24(s0) + 8d98: f975 bnez a0,8d8c + 8d9a: b775 j 8d46 + +00008d9c : +gattClientHandleConnStatusCB(): + 8d9c: 1141 addi sp,sp,-16 + 8d9e: c422 sw s0,8(sp) + 8da0: 6441 lui s0,0x10 + 8da2: c606 sw ra,12(sp) + 8da4: c226 sw s1,4(sp) + 8da6: ffe40793 addi a5,s0,-2 # fffe + 8daa: 00f50d63 beq a0,a5,8dc4 + 8dae: 84aa mv s1,a0 + 8db0: ed99 bnez a1,8dce + 8db2: ee5ff0ef jal ra,8c96 + 8db6: e519 bnez a0,8dc4 + 8db8: fff40513 addi a0,s0,-1 + 8dbc: edbff0ef jal ra,8c96 + 8dc0: c111 beqz a0,8dc4 + 8dc2: a106 sh s1,0(a0) + 8dc4: 40b2 lw ra,12(sp) + 8dc6: 4422 lw s0,8(sp) + 8dc8: 4492 lw s1,4(sp) + 8dca: 0141 addi sp,sp,16 + 8dcc: 8082 ret + 8dce: 4785 li a5,1 + 8dd0: 04f59063 bne a1,a5,8e10 + 8dd4: ec3ff0ef jal ra,8c96 + 8dd8: 842a mv s0,a0 + 8dda: d56d beqz a0,8dc4 + 8ddc: 57fd li a5,-1 + 8dde: a11e sh a5,0(a0) + 8de0: 241c lbu a5,8(s0) + 8de2: 0ff00713 li a4,255 + 8de6: 02e78263 beq a5,a4,8e0a + 8dea: 0fe00713 li a4,254 + 8dee: 00e78963 beq a5,a4,8e00 + 8df2: 2034 lbu a3,2(s0) + 8df4: 3408 lbu a0,9(s0) + 8df6: 4701 li a4,0 + 8df8: 4651 li a2,20 + 8dfa: 85a6 mv a1,s1 + 8dfc: 9b5ff0ef jal ra,87b0 + 8e00: 8522 mv a0,s0 + 8e02: f1bff0ef jal ra,8d1c + 8e06: 57fd li a5,-1 + 8e08: a41c sb a5,8(s0) + 8e0a: 00040523 sb zero,10(s0) + 8e0e: bf5d j 8dc4 + 8e10: 4789 li a5,2 + 8e12: faf599e3 bne a1,a5,8dc4 + 8e16: 4585 li a1,1 + 8e18: 71b020ef jal ra,bd32 + 8e1c: f545 bnez a0,8dc4 + 8e1e: 8526 mv a0,s1 + 8e20: e77ff0ef jal ra,8c96 + 8e24: 842a mv s0,a0 + 8e26: fd4d bnez a0,8de0 + 8e28: bf71 j 8dc4 + +00008e2a : +gattClientHandleTimerCB(): + 8e2a: cd0d beqz a0,8e64 + 8e2c: 1141 addi sp,sp,-16 + 8e2e: c422 sw s0,8(sp) + 8e30: c606 sw ra,12(sp) + 8e32: 2518 lbu a4,8(a0) + 8e34: 0ff00793 li a5,255 + 8e38: 842a mv s0,a0 + 8e3a: 02f70163 beq a4,a5,8e5c + 8e3e: 2134 lbu a3,2(a0) + 8e40: 210e lhu a1,0(a0) + 8e42: 3508 lbu a0,9(a0) + 8e44: 4701 li a4,0 + 8e46: 465d li a2,23 + 8e48: 969ff0ef jal ra,87b0 + 8e4c: 57f9 li a5,-2 + 8e4e: a41c sb a5,8(s0) + 8e50: 8522 mv a0,s0 + 8e52: 4422 lw s0,8(sp) + 8e54: 40b2 lw ra,12(sp) + 8e56: 0141 addi sp,sp,16 + 8e58: ec5ff06f j 8d1c + 8e5c: 40b2 lw ra,12(sp) + 8e5e: 4422 lw s0,8(sp) + 8e60: 0141 addi sp,sp,16 + 8e62: 8082 ret + 8e64: 8082 ret + +00008e66 : +gattClientProcessMsgCB(): + 8e66: 219e lhu a5,0(a1) + 8e68: 0e079c63 bnez a5,8f60 + 8e6c: 7139 addi sp,sp,-64 + 8e6e: da26 sw s1,52(sp) + 8e70: d84a sw s2,48(sp) + 8e72: d64e sw s3,44(sp) + 8e74: d452 sw s4,40(sp) + 8e76: de06 sw ra,60(sp) + 8e78: dc22 sw s0,56(sp) + 8e7a: 89aa mv s3,a0 + 8e7c: 892e mv s2,a1 + 8e7e: 8a32 mv s4,a2 + 8e80: e17ff0ef jal ra,8c96 + 8e84: 84aa mv s1,a0 + 8e86: 4501 li a0,0 + 8e88: ccd9 beqz s1,8f26 + 8e8a: 00294783 lbu a5,2(s2) + 8e8e: 4705 li a4,1 + 8e90: 0ae79363 bne a5,a4,8f36 + 8e94: 00495583 lhu a1,4(s2) + 8e98: 00892503 lw a0,8(s2) + 8e9c: 0030 addi a2,sp,8 + 8e9e: 5a8090ef jal ra,12446 + 8ea2: e151 bnez a0,8f26 + 8ea4: 3488 lbu a0,9(s1) + 8ea6: 9cd1c783 lbu a5,-1587(gp) # 20001385 + 8eaa: 02a78363 beq a5,a0,8ed0 + 8eae: 00294683 lbu a3,2(s2) + 8eb2: 0038 addi a4,sp,8 + 8eb4: 4601 li a2,0 + 8eb6: 85ce mv a1,s3 + 8eb8: 8f9ff0ef jal ra,87b0 + 8ebc: 842a mv s0,a0 + 8ebe: e911 bnez a0,8ed2 + 8ec0: 00294583 lbu a1,2(s2) + 8ec4: 0028 addi a0,sp,8 + 8ec6: 89dff0ef jal ra,8762 + 8eca: c119 beqz a0,8ed0 + 8ecc: 000a0023 sb zero,0(s4) + 8ed0: 4401 li s0,0 + 8ed2: 20b8 lbu a4,2(s1) + 8ed4: 478d li a5,3 + 8ed6: 04f71463 bne a4,a5,8f1e + 8eda: 843c lhu a5,8(sp) + 8edc: 24da lhu a4,12(s1) + 8ede: 00e7f363 bgeu a5,a4,8ee4 + 8ee2: a4de sh a5,12(s1) + 8ee4: 24ce lhu a1,12(s1) + 8ee6: 854e mv a0,s3 + 8ee8: a65ff0ef jal ra,894c + 8eec: 1fffa717 auipc a4,0x1fffa + 8ef0: 9ec75703 lhu a4,-1556(a4) # 200028d8 + 8ef4: 47ed li a5,27 + 8ef6: 02e7f463 bgeu a5,a4,8f1e + 8efa: 24de lhu a5,12(s1) + 8efc: 46dd li a3,23 + 8efe: 02f6f063 bgeu a3,a5,8f1e + 8f02: 00378693 addi a3,a5,3 + 8f06: 04e6d563 bge a3,a4,8f50 + 8f0a: 6611 lui a2,0x4 + 8f0c: 00478593 addi a1,a5,4 + 8f10: 29060613 addi a2,a2,656 # 4290 + 8f14: 0805c5b3 zext.h a1,a1 + 8f18: 854e mv a0,s3 + 8f1a: 5dc060ef jal ra,f4f6 + 8f1e: 8526 mv a0,s1 + 8f20: dfdff0ef jal ra,8d1c + 8f24: 8522 mv a0,s0 + 8f26: 50f2 lw ra,60(sp) + 8f28: 5462 lw s0,56(sp) + 8f2a: 54d2 lw s1,52(sp) + 8f2c: 5942 lw s2,48(sp) + 8f2e: 59b2 lw s3,44(sp) + 8f30: 5a22 lw s4,40(sp) + 8f32: 6121 addi sp,sp,64 + 8f34: 8082 ret + 8f36: 20b8 lbu a4,2(s1) + 8f38: 4511 li a0,4 + 8f3a: fef716e3 bne a4,a5,8f26 + 8f3e: 40dc lw a5,4(s1) + 8f40: d3fd beqz a5,8f26 + 8f42: 00495583 lhu a1,4(s2) + 8f46: 00892503 lw a0,8(s2) + 8f4a: 0030 addi a2,sp,8 + 8f4c: 9782 jalr a5 + 8f4e: bf91 j 8ea2 + 8f50: 6611 lui a2,0x4 + 8f52: 0fb00593 li a1,251 + 8f56: 29060613 addi a2,a2,656 # 4290 + 8f5a: 0ab755b3 minu a1,a4,a1 + 8f5e: bf6d j 8f18 + 8f60: 4519 li a0,6 + 8f62: 8082 ret + +00008f64 : +gattStoreClientInfo(): + 8f64: 0ff00793 li a5,255 + 8f68: 06f70663 beq a4,a5,8fd4 + 8f6c: 1101 addi sp,sp,-32 + 8f6e: cc22 sw s0,24(sp) + 8f70: ca26 sw s1,20(sp) + 8f72: 842a mv s0,a0 + 8f74: c84a sw s2,16(sp) + 8f76: c64e sw s3,12(sp) + 8f78: c452 sw s4,8(sp) + 8f7a: 89b6 mv s3,a3 + 8f7c: 8a32 mv s4,a2 + 8f7e: 893a mv s2,a4 + 8f80: 00850693 addi a3,a0,8 + 8f84: 84ae mv s1,a1 + 8f86: 4679 li a2,30 + 8f88: 85aa mv a1,a0 + 8f8a: 00000517 auipc a0,0x0 + 8f8e: ea050513 addi a0,a0,-352 # 8e2a + 8f92: ce06 sw ra,28(sp) + 8f94: 8cbff0ef jal ra,885e + 8f98: 012404a3 sb s2,9(s0) + 8f9c: 01440123 sb s4,2(s0) + 8fa0: 01342223 sw s3,4(s0) + 8fa4: c085 beqz s1,8fc4 + 8fa6: 00c40513 addi a0,s0,12 + 8faa: 4462 lw s0,24(sp) + 8fac: 40f2 lw ra,28(sp) + 8fae: 4942 lw s2,16(sp) + 8fb0: 49b2 lw s3,12(sp) + 8fb2: 4a22 lw s4,8(sp) + 8fb4: 85a6 mv a1,s1 + 8fb6: 44d2 lw s1,20(sp) + 8fb8: 4661 li a2,24 + 8fba: 6105 addi sp,sp,32 + 8fbc: 1fff8317 auipc t1,0x1fff8 + 8fc0: 8a030067 jr -1888(t1) # 2000085c + 8fc4: 40f2 lw ra,28(sp) + 8fc6: 4462 lw s0,24(sp) + 8fc8: 44d2 lw s1,20(sp) + 8fca: 4942 lw s2,16(sp) + 8fcc: 49b2 lw s3,12(sp) + 8fce: 4a22 lw s4,8(sp) + 8fd0: 6105 addi sp,sp,32 + 8fd2: 8082 ret + 8fd4: 8082 ret + +00008fd6 : +GATT_InitClient(): + 8fd6: 1101 addi sp,sp,-32 + 8fd8: ce06 sw ra,28(sp) + 8fda: ca26 sw s1,20(sp) + 8fdc: c84a sw s2,16(sp) + 8fde: cc22 sw s0,24(sp) + 8fe0: c64e sw s3,12(sp) + 8fe2: c452 sw s4,8(sp) + 8fe4: 9cc18493 addi s1,gp,-1588 # 20001384 + 8fe8: 20e8 lbu a0,6(s1) + 8fea: 02800793 li a5,40 + 8fee: 6591 lui a1,0x4 + 8ff0: 02f50533 mul a0,a0,a5 + 8ff4: 70658593 addi a1,a1,1798 # 4706 + 8ff8: 99418913 addi s2,gp,-1644 # 2000134c + 8ffc: 08054533 zext.h a0,a0 + 9000: 6ec110ef jal ra,1a6ec + 9004: 20f0 lbu a2,6(s1) + 9006: 02800793 li a5,40 + 900a: 4581 li a1,0 + 900c: 02f60633 mul a2,a2,a5 + 9010: 00a92023 sw a0,0(s2) + 9014: 1fff8097 auipc ra,0x1fff8 + 9018: 886080e7 jalr -1914(ra) # 2000089a + 901c: 00092783 lw a5,0(s2) + 9020: 454d li a0,19 + 9022: cb9d beqz a5,9058 + 9024: 4401 li s0,0 + 9026: 02800a13 li s4,40 + 902a: 59fd li s3,-1 + 902c: 20fc lbu a5,6(s1) + 902e: 02f44d63 blt s0,a5,9068 + 9032: 00000517 auipc a0,0x0 + 9036: e3450513 addi a0,a0,-460 # 8e66 + 903a: 907ff0ef jal ra,8940 + 903e: 00000517 auipc a0,0x0 + 9042: c8250513 addi a0,a0,-894 # 8cc0 + 9046: 312090ef jal ra,12358 + 904a: 00000517 auipc a0,0x0 + 904e: d5250513 addi a0,a0,-686 # 8d9c + 9052: 463020ef jal ra,bcb4 + 9056: 4501 li a0,0 + 9058: 40f2 lw ra,28(sp) + 905a: 4462 lw s0,24(sp) + 905c: 44d2 lw s1,20(sp) + 905e: 4942 lw s2,16(sp) + 9060: 49b2 lw s3,12(sp) + 9062: 4a22 lw s4,8(sp) + 9064: 6105 addi sp,sp,32 + 9066: 8082 ret + 9068: 034407b3 mul a5,s0,s4 + 906c: 00092503 lw a0,0(s2) + 9070: 4661 li a2,24 + 9072: 4581 li a1,0 + 9074: 0405 addi s0,s0,1 + 9076: 953e add a0,a0,a5 + 9078: 01351023 sh s3,0(a0) + 907c: 00050123 sb zero,2(a0) + 9080: 01351423 sh s3,8(a0) + 9084: 00050523 sb zero,10(a0) + 9088: 02050223 sb zero,36(a0) + 908c: 0531 addi a0,a0,12 + 908e: 1fff8097 auipc ra,0x1fff8 + 9092: 80c080e7 jalr -2036(ra) # 2000089a + 9096: bf59 j 902c + +00009098 : +gattProcessExchangeMTUReq(): + 9098: 4501 li a0,0 + 909a: 8082 ret + +0000909c : +gattServApp_FindCharCfgItem(): + 909c: 9d31c703 lbu a4,-1581(gp) # 2000138b + 90a0: 4781 li a5,0 + 90a2: 00e7e463 bltu a5,a4,90aa + 90a6: 4501 li a0,0 + 90a8: 8082 ret + 90aa: 2192 lhu a2,0(a1) + 90ac: 00458693 addi a3,a1,4 + 90b0: 00a61463 bne a2,a0,90b8 + 90b4: 852e mv a0,a1 + 90b6: 8082 ret + 90b8: 0785 addi a5,a5,1 + 90ba: 85b6 mv a1,a3 + 90bc: b7dd j 90a2 + +000090be : +gattServerHandleTimerCB(): + 90be: c51d beqz a0,90ec + 90c0: 1141 addi sp,sp,-16 + 90c2: c422 sw s0,8(sp) + 90c4: c606 sw ra,12(sp) + 90c6: 2138 lbu a4,2(a0) + 90c8: 0fd00793 li a5,253 + 90cc: 842a mv s0,a0 + 90ce: 00e7eb63 bltu a5,a4,90e4 + 90d2: 210e lhu a1,0(a0) + 90d4: 3128 lbu a0,3(a0) + 90d6: 4701 li a4,0 + 90d8: 46f9 li a3,30 + 90da: 465d li a2,23 + 90dc: ed4ff0ef jal ra,87b0 + 90e0: 57f9 li a5,-2 + 90e2: a03e sh a5,2(s0) + 90e4: 40b2 lw ra,12(sp) + 90e6: 4422 lw s0,8(sp) + 90e8: 0141 addi sp,sp,16 + 90ea: 8082 ret + 90ec: 8082 ret + +000090ee : +GATTServApp_InitCharCfg.part.0(): + 90ee: 9d31c703 lbu a4,-1581(gp) # 2000138b + 90f2: 4781 li a5,0 + 90f4: 56fd li a3,-1 + 90f6: 00e7c363 blt a5,a4,90fc + 90fa: 8082 ret + 90fc: a116 sh a3,0(a0) + 90fe: 00050123 sb zero,2(a0) + 9102: 0785 addi a5,a5,1 + 9104: 0511 addi a0,a0,4 + 9106: bfc5 j 90f6 + +00009108 : +gattProcessExecuteWriteReq(): + 9108: 4501 li a0,0 + 910a: 8082 ret + +0000910c : +GATTServApp_ParamInit(): + 910c: 82118593 addi a1,gp,-2015 # 200011d9 + 9110: 02000793 li a5,32 + 9114: 4685 li a3,1 + 9116: a19c sb a5,0(a1) + 9118: 57fd li a5,-1 + 911a: 82f18023 sb a5,-2016(gp) # 200011d8 + 911e: 80f18fa3 sb a5,-2017(gp) # 200011d7 + 9122: 80f18f23 sb a5,-2018(gp) # 200011d6 + 9126: 80d19e23 sh a3,-2020(gp) # 200011d4 + 912a: 98019e23 sh zero,-1636(gp) # 20001354 + 912e: 9801ac23 sw zero,-1640(gp) # 20001350 + 9132: 9a01a823 sw zero,-1616(gp) # 20001368 + 9136: 9a01a623 sw zero,-1620(gp) # 20001364 + 913a: 82418613 addi a2,gp,-2012 # 200011dc + 913e: 8a018793 addi a5,gp,-1888 # 20001258 + 9142: c25c sw a5,4(a2) + 9144: 9a018a23 sb zero,-1612(gp) # 2000136c + 9148: 1fffa797 auipc a5,0x1fffa + 914c: 80878793 addi a5,a5,-2040 # 20002950 + 9150: 4709 li a4,2 + 9152: a218 sb a4,0(a2) + 9154: a398 sb a4,0(a5) + 9156: ab98 sb a4,16(a5) + 9158: 02e78023 sb a4,32(a5) + 915c: 02e78823 sb a4,48(a5) + 9160: 88c18713 addi a4,gp,-1908 # 20001244 + 9164: a794 sb a3,8(a5) + 9166: c7d0 sw a2,12(a5) + 9168: af94 sb a3,24(a5) + 916a: dbd8 sw a4,52(a5) + 916c: 89c18513 addi a0,gp,-1892 # 20001254 + 9170: 470d li a4,3 + 9172: 89418613 addi a2,gp,-1900 # 2000124c + 9176: 87818693 addi a3,gp,-1928 # 20001230 + 917a: 02e78c23 sb a4,56(a5) + 917e: c3c8 sw a0,4(a5) + 9180: 00079523 sh zero,10(a5) + 9184: cbd0 sw a2,20(a5) + 9186: 00079d23 sh zero,26(a5) + 918a: cfcc sw a1,28(a5) + 918c: d3d4 sw a3,36(a5) + 918e: 02078423 sb zero,40(a5) + 9192: 02079523 sh zero,42(a5) + 9196: 0207a623 sw zero,44(a5) + 919a: 02079d23 sh zero,58(a5) + 919e: 9a01a703 lw a4,-1632(gp) # 20001358 + 91a2: dfd8 sw a4,60(a5) + 91a4: 1fff9797 auipc a5,0x1fff9 + 91a8: 7ec78793 addi a5,a5,2028 # 20002990 + 91ac: 00000717 auipc a4,0x0 + 91b0: 0b870713 addi a4,a4,184 # 9264 + 91b4: 0007a023 sw zero,0(a5) + 91b8: c3d8 sw a4,4(a5) + 91ba: 0007a423 sw zero,8(a5) + 91be: 8082 ret + +000091c0 : +GATTServApp_ReadCharCfg(): + 91c0: 1141 addi sp,sp,-16 + 91c2: c606 sw ra,12(sp) + 91c4: ed9ff0ef jal ra,909c + 91c8: c509 beqz a0,91d2 + 91ca: 2128 lbu a0,2(a0) + 91cc: 40b2 lw ra,12(sp) + 91ce: 0141 addi sp,sp,16 + 91d0: 8082 ret + 91d2: 4501 li a0,0 + 91d4: bfe5 j 91cc + +000091d6 : +GATTServApp_WriteCharCfg(): + 91d6: 1141 addi sp,sp,-16 + 91d8: c422 sw s0,8(sp) + 91da: c226 sw s1,4(sp) + 91dc: c04a sw s2,0(sp) + 91de: c606 sw ra,12(sp) + 91e0: 84aa mv s1,a0 + 91e2: 892e mv s2,a1 + 91e4: 8432 mv s0,a2 + 91e6: eb7ff0ef jal ra,909c + 91ea: 87aa mv a5,a0 + 91ec: e911 bnez a0,9200 + 91ee: 6541 lui a0,0x10 + 91f0: 85ca mv a1,s2 + 91f2: 157d addi a0,a0,-1 # ffff + 91f4: ea9ff0ef jal ra,909c + 91f8: 87aa mv a5,a0 + 91fa: 4545 li a0,17 + 91fc: c781 beqz a5,9204 + 91fe: a386 sh s1,0(a5) + 9200: a3a0 sb s0,2(a5) + 9202: 4501 li a0,0 + 9204: 40b2 lw ra,12(sp) + 9206: 4422 lw s0,8(sp) + 9208: 4492 lw s1,4(sp) + 920a: 4902 lw s2,0(sp) + 920c: 0141 addi sp,sp,16 + 920e: 8082 ret + +00009210 : +GATTServApp_ProcessCCCWriteReq(): + 9210: e321 bnez a4,9250 + 9212: 4809 li a6,2 + 9214: 4735 li a4,13 + 9216: 03069e63 bne a3,a6,9252 + 921a: 1101 addi sp,sp,-32 + 921c: ce06 sw ra,28(sp) + 921e: cc22 sw s0,24(sp) + 9220: 2218 lbu a4,0(a2) + 9222: 3210 lbu a2,1(a2) + 9224: 0622 slli a2,a2,0x8 + 9226: 8e59 or a2,a2,a4 + 9228: c632 sw a2,12(sp) + 922a: 40f677b3 andn a5,a2,a5 + 922e: e785 bnez a5,9256 + 9230: 45cc lw a1,12(a1) + 9232: 842a mv s0,a0 + 9234: c42e sw a1,8(sp) + 9236: f8bff0ef jal ra,91c0 + 923a: 4632 lw a2,12(sp) + 923c: 4701 li a4,0 + 923e: 00c50e63 beq a0,a2,925a + 9242: 8522 mv a0,s0 + 9244: 4462 lw s0,24(sp) + 9246: 45a2 lw a1,8(sp) + 9248: 40f2 lw ra,28(sp) + 924a: 6105 addi sp,sp,32 + 924c: f8bff06f j 91d6 + 9250: 472d li a4,11 + 9252: 853a mv a0,a4 + 9254: 8082 ret + 9256: 08000713 li a4,128 + 925a: 40f2 lw ra,28(sp) + 925c: 4462 lw s0,24(sp) + 925e: 853a mv a0,a4 + 9260: 6105 addi sp,sp,32 + 9262: 8082 ret + +00009264 : +gattServApp_WriteAttrCB(): + 9264: 0005c883 lbu a7,0(a1) + 9268: 4809 li a6,2 + 926a: 03089163 bne a7,a6,928c + 926e: 41dc lw a5,4(a1) + 9270: 0007c803 lbu a6,0(a5) + 9274: 339c lbu a5,1(a5) + 9276: 07a2 slli a5,a5,0x8 + 9278: 0107e7b3 or a5,a5,a6 + 927c: 680d lui a6,0x3 + 927e: 90280813 addi a6,a6,-1790 # 2902 + 9282: 01079563 bne a5,a6,928c + 9286: 4789 li a5,2 + 9288: f89ff06f j 9210 + 928c: 4505 li a0,1 + 928e: 8082 ret + +00009290 : +GATTServApp_SendCCCUpdatedEvent(): + 9290: 1101 addi sp,sp,-32 + 9292: c64e sw s3,12(sp) + 9294: ce06 sw ra,28(sp) + 9296: cc22 sw s0,24(sp) + 9298: ca26 sw s1,20(sp) + 929a: c84a sw s2,16(sp) + 929c: 81f18993 addi s3,gp,-2017 # 200011d7 + 92a0: 0009c703 lbu a4,0(s3) + 92a4: 0ff00793 li a5,255 + 92a8: 02f70d63 beq a4,a5,92e2 + 92ac: 892a mv s2,a0 + 92ae: 4529 li a0,10 + 92b0: 84ae mv s1,a1 + 92b2: 8432 mv s0,a2 + 92b4: 8e9fc0ef jal ra,5b9c + 92b8: 85aa mv a1,a0 + 92ba: c505 beqz a0,92e2 + 92bc: 0b100793 li a5,177 + 92c0: a11e sh a5,0(a0) + 92c2: 00050223 sb zero,4(a0) + 92c6: a502 sh s0,8(a0) + 92c8: 4462 lw s0,24(sp) + 92ca: 01251123 sh s2,2(a0) + 92ce: a166 sh s1,6(a0) + 92d0: 40f2 lw ra,28(sp) + 92d2: 0009c503 lbu a0,0(s3) + 92d6: 44d2 lw s1,20(sp) + 92d8: 4942 lw s2,16(sp) + 92da: 49b2 lw s3,12(sp) + 92dc: 6105 addi sp,sp,32 + 92de: 9b9fc06f j 5c96 + 92e2: 40f2 lw ra,28(sp) + 92e4: 4462 lw s0,24(sp) + 92e6: 44d2 lw s1,20(sp) + 92e8: 4942 lw s2,16(sp) + 92ea: 49b2 lw s3,12(sp) + 92ec: 6105 addi sp,sp,32 + 92ee: 8082 ret + +000092f0 : +GATTServApp_SendServiceChangedInd(): + 92f0: 1141 addi sp,sp,-16 + 92f2: c226 sw s1,4(sp) + 92f4: 84ae mv s1,a1 + 92f6: 9a01a583 lw a1,-1632(gp) # 20001358 + 92fa: c422 sw s0,8(sp) + 92fc: c606 sw ra,12(sp) + 92fe: 842a mv s0,a0 + 9300: ec1ff0ef jal ra,91c0 + 9304: 8909 andi a0,a0,2 + 9306: c909 beqz a0,9318 + 9308: 8522 mv a0,s0 + 930a: 4422 lw s0,8(sp) + 930c: 40b2 lw ra,12(sp) + 930e: 85a6 mv a1,s1 + 9310: 4492 lw s1,4(sp) + 9312: 0141 addi sp,sp,16 + 9314: f68ff06f j 8a7c + 9318: 40b2 lw ra,12(sp) + 931a: 4422 lw s0,8(sp) + 931c: 4492 lw s1,4(sp) + 931e: 4505 li a0,1 + 9320: 0141 addi sp,sp,16 + 9322: 8082 ret + +00009324 : +gattServApp_ClearPrepareWriteQ(): + 9324: 1141 addi sp,sp,-16 + 9326: c422 sw s0,8(sp) + 9328: c226 sw s1,4(sp) + 932a: c04a sw s2,0(sp) + 932c: c606 sw ra,12(sp) + 932e: 84aa mv s1,a0 + 9330: 00450413 addi s0,a0,4 + 9334: 06450913 addi s2,a0,100 + 9338: 201e lhu a5,0(s0) + 933a: c39d beqz a5,9360 + 933c: 4408 lw a0,8(s0) + 933e: c509 beqz a0,9348 + 9340: 1fff8097 auipc ra,0x1fff8 + 9344: b80080e7 jalr -1152(ra) # 20000ec0 + 9348: 8522 mv a0,s0 + 934a: 4631 li a2,12 + 934c: 4581 li a1,0 + 934e: 1fff7097 auipc ra,0x1fff7 + 9352: 54c080e7 jalr 1356(ra) # 2000089a + 9356: 0431 addi s0,s0,12 + 9358: fe041a23 sh zero,-12(s0) + 935c: fd241ee3 bne s0,s2,9338 + 9360: 40b2 lw ra,12(sp) + 9362: 4422 lw s0,8(sp) + 9364: 57fd li a5,-1 + 9366: a09e sh a5,0(s1) + 9368: 4902 lw s2,0(sp) + 936a: 4492 lw s1,4(sp) + 936c: 0141 addi sp,sp,16 + 936e: 8082 ret + +00009370 : +gattServApp_FindPrepareWriteQ(): + 9370: 9d31c683 lbu a3,-1581(gp) # 2000138b + 9374: 9a81a783 lw a5,-1624(gp) # 20001360 + 9378: 4701 li a4,0 + 937a: 00e69463 bne a3,a4,9382 + 937e: 4501 li a0,0 + 9380: 8082 ret + 9382: 238e lhu a1,0(a5) + 9384: 06478613 addi a2,a5,100 + 9388: 00a59463 bne a1,a0,9390 + 938c: 853e mv a0,a5 + 938e: 8082 ret + 9390: 0705 addi a4,a4,1 + 9392: 0ff77713 zext.b a4,a4 + 9396: 87b2 mv a5,a2 + 9398: b7cd j 937a + +0000939a : +gattServApp_FindServiceCBs(): + 939a: 87aa mv a5,a0 + 939c: 9b01a503 lw a0,-1616(gp) # 20001368 + 93a0: c901 beqz a0,93b0 + 93a2: 215a lhu a4,4(a0) + 93a4: 00f71463 bne a4,a5,93ac + 93a8: 4508 lw a0,8(a0) + 93aa: 8082 ret + 93ac: 4108 lw a0,0(a0) + 93ae: bfcd j 93a0 + 93b0: 8082 ret + +000093b2 : +gattServApp_FindAuthorizeAttrCB(): + 93b2: 1141 addi sp,sp,-16 + 93b4: c606 sw ra,12(sp) + 93b6: fe5ff0ef jal ra,939a + 93ba: c509 beqz a0,93c4 + 93bc: 4508 lw a0,8(a0) + 93be: 40b2 lw ra,12(sp) + 93c0: 0141 addi sp,sp,16 + 93c2: 8082 ret + 93c4: 4501 li a0,0 + 93c6: bfe5 j 93be + +000093c8 : +gattServApp_IsWriteLong(): + 93c8: 7179 addi sp,sp,-48 + 93ca: d422 sw s0,40(sp) + 93cc: 00458413 addi s0,a1,4 + 93d0: d226 sw s1,36(sp) + 93d2: d04a sw s2,32(sp) + 93d4: cc52 sw s4,24(sp) + 93d6: c85a sw s6,16(sp) + 93d8: 8a2e mv s4,a1 + 93da: d606 sw ra,44(sp) + 93dc: ce4e sw s3,28(sp) + 93de: ca56 sw s5,20(sp) + 93e0: c65e sw s7,12(sp) + 93e2: 8922 mv s2,s0 + 93e4: 8722 mv a4,s0 + 93e6: 4b01 li s6,0 + 93e8: 4481 li s1,0 + 93ea: 4681 li a3,0 + 93ec: 4781 li a5,0 + 93ee: 45a1 li a1,8 + 93f0: 2312 lhu a2,0(a4) + 93f2: c655 beqz a2,949e + 93f4: eea5 bnez a3,946c + 93f6: 2346 lhu s1,4(a4) + 93f8: 233e lhu a5,2(a4) + 93fa: 86b2 mv a3,a2 + 93fc: 97a6 add a5,a5,s1 + 93fe: 0807c7b3 zext.h a5,a5 + 9402: 0b05 addi s6,s6,1 + 9404: 0731 addi a4,a4,12 + 9406: febb15e3 bne s6,a1,93f0 + 940a: c0bd beqz s1,9470 + 940c: 6591 lui a1,0x4 + 940e: 70458593 addi a1,a1,1796 # 4704 + 9412: 8526 mv a0,s1 + 9414: 2d8110ef jal ra,1a6ec + 9418: 8baa mv s7,a0 + 941a: c939 beqz a0,9470 + 941c: 440c lw a1,8(s0) + 941e: c9d1 beqz a1,94b2 + 9420: 4a81 li s5,0 + 9422: 4981 li s3,0 + 9424: 2052 lhu a2,4(s0) + 9426: 013b8533 add a0,s7,s3 + 942a: 1fff7097 auipc ra,0x1fff7 + 942e: 432080e7 jalr 1074(ra) # 2000085c + 9432: 205e lhu a5,4(s0) + 9434: 4408 lw a0,8(s0) + 9436: 99be add s3,s3,a5 + 9438: 0809c9b3 zext.h s3,s3 + 943c: 1fff8097 auipc ra,0x1fff8 + 9440: a84080e7 jalr -1404(ra) # 20000ec0 + 9444: 000a9863 bnez s5,9454 + 9448: 0931 addi s2,s2,12 + 944a: 4a85 li s5,1 + 944c: 00892583 lw a1,8(s2) + 9450: 844a mv s0,s2 + 9452: f9e9 bnez a1,9424 + 9454: 4631 li a2,12 + 9456: 4581 li a1,0 + 9458: 8522 mv a0,s0 + 945a: 0a85 addi s5,s5,1 + 945c: 1fff7097 auipc ra,0x1fff7 + 9460: 43e080e7 jalr 1086(ra) # 2000089a + 9464: 056a8263 beq s5,s6,94a8 + 9468: 0931 addi s2,s2,12 + 946a: b7cd j 944c + 946c: 00d60e63 beq a2,a3,9488 + 9470: 4501 li a0,0 + 9472: 50b2 lw ra,44(sp) + 9474: 5422 lw s0,40(sp) + 9476: 5492 lw s1,36(sp) + 9478: 5902 lw s2,32(sp) + 947a: 49f2 lw s3,28(sp) + 947c: 4a62 lw s4,24(sp) + 947e: 4ad2 lw s5,20(sp) + 9480: 4b42 lw s6,16(sp) + 9482: 4bb2 lw s7,12(sp) + 9484: 6145 addi sp,sp,48 + 9486: 8082 ret + 9488: 2332 lhu a2,2(a4) + 948a: fef613e3 bne a2,a5,9470 + 948e: 2352 lhu a2,4(a4) + 9490: 94b2 add s1,s1,a2 + 9492: 97b2 add a5,a5,a2 + 9494: 0804c4b3 zext.h s1,s1 + 9498: 0807c7b3 zext.h a5,a5 + 949c: b79d j 9402 + 949e: 4785 li a5,1 + 94a0: f767e5e3 bltu a5,s6,940a + 94a4: 4505 li a0,1 + 94a6: b7f1 j 9472 + 94a8: 017a2623 sw s7,12(s4) + 94ac: 009a1423 sh s1,8(s4) + 94b0: bfd5 j 94a4 + 94b2: 00c40913 addi s2,s0,12 + 94b6: 4a85 li s5,1 + 94b8: 4981 li s3,0 + 94ba: bf49 j 944c + +000094bc : +gattFindService(): + 94bc: 87aa mv a5,a0 + 94be: 9ac1a503 lw a0,-1620(gp) # 20001364 + 94c2: e111 bnez a0,94c6 + 94c4: 8082 ret + 94c6: 4518 lw a4,8(a0) + 94c8: 273a lhu a4,10(a4) + 94ca: 00f71463 bne a4,a5,94d2 + 94ce: 0511 addi a0,a0,4 + 94d0: 8082 ret + 94d2: 4108 lw a0,0(a0) + 94d4: b7fd j 94c2 + +000094d6 : +GATT_ServiceNumAttrs(): + 94d6: 1141 addi sp,sp,-16 + 94d8: c606 sw ra,12(sp) + 94da: fe3ff0ef jal ra,94bc + 94de: c509 beqz a0,94e8 + 94e0: 210a lhu a0,0(a0) + 94e2: 40b2 lw ra,12(sp) + 94e4: 0141 addi sp,sp,16 + 94e6: 8082 ret + 94e8: 4501 li a0,0 + 94ea: bfe5 j 94e2 + +000094ec : +GATT_ServiceEncKeySize(): + 94ec: 1141 addi sp,sp,-16 + 94ee: c606 sw ra,12(sp) + 94f0: fcdff0ef jal ra,94bc + 94f4: c509 beqz a0,94fe + 94f6: 2128 lbu a0,2(a0) + 94f8: 40b2 lw ra,12(sp) + 94fa: 0141 addi sp,sp,16 + 94fc: 8082 ret + 94fe: 4541 li a0,16 + 9500: bfe5 j 94f8 + +00009502 : +gattResetServerInfo(): + 9502: 1141 addi sp,sp,-16 + 9504: c422 sw s0,8(sp) + 9506: 842a mv s0,a0 + 9508: 0509 addi a0,a0,2 + 950a: c606 sw ra,12(sp) + 950c: b5eff0ef jal ra,886a + 9510: 57fd li a5,-1 + 9512: b03c sb a5,3(s0) + 9514: 40b2 lw ra,12(sp) + 9516: 4422 lw s0,8(sp) + 9518: 0141 addi sp,sp,16 + 951a: 8082 ret + +0000951c : +gattFindServerInfo(): + 951c: 9d31c783 lbu a5,-1581(gp) # 2000138b + 9520: 86aa mv a3,a0 + 9522: 0785 addi a5,a5,1 + 9524: 9a41a503 lw a0,-1628(gp) # 2000135c + 9528: 4701 li a4,0 + 952a: 2112 lhu a2,0(a0) + 952c: 00d60763 beq a2,a3,953a + 9530: 0705 addi a4,a4,1 + 9532: 0519 addi a0,a0,6 + 9534: fef76be3 bltu a4,a5,952a + 9538: 4501 li a0,0 + 953a: 8082 ret + +0000953c : +gattServerHandleConnStatusCB(): + 953c: 1141 addi sp,sp,-16 + 953e: c422 sw s0,8(sp) + 9540: 6441 lui s0,0x10 + 9542: c606 sw ra,12(sp) + 9544: c226 sw s1,4(sp) + 9546: ffe40793 addi a5,s0,-2 # fffe + 954a: 00f50d63 beq a0,a5,9564 + 954e: 84aa mv s1,a0 + 9550: ed99 bnez a1,956e + 9552: fcbff0ef jal ra,951c + 9556: e519 bnez a0,9564 + 9558: fff40513 addi a0,s0,-1 + 955c: fc1ff0ef jal ra,951c + 9560: c111 beqz a0,9564 + 9562: a106 sh s1,0(a0) + 9564: 40b2 lw ra,12(sp) + 9566: 4422 lw s0,8(sp) + 9568: 4492 lw s1,4(sp) + 956a: 0141 addi sp,sp,16 + 956c: 8082 ret + 956e: 4785 li a5,1 + 9570: 04f59063 bne a1,a5,95b0 + 9574: fa9ff0ef jal ra,951c + 9578: 842a mv s0,a0 + 957a: d56d beqz a0,9564 + 957c: 57fd li a5,-1 + 957e: a11e sh a5,0(a0) + 9580: 203c lbu a5,2(s0) + 9582: 0ff00713 li a4,255 + 9586: 02e78263 beq a5,a4,95aa + 958a: 0fe00713 li a4,254 + 958e: 00e78963 beq a5,a4,95a0 + 9592: 3028 lbu a0,3(s0) + 9594: 4701 li a4,0 + 9596: 46f9 li a3,30 + 9598: 4651 li a2,20 + 959a: 85a6 mv a1,s1 + 959c: a14ff0ef jal ra,87b0 + 95a0: 8522 mv a0,s0 + 95a2: f61ff0ef jal ra,9502 + 95a6: 57fd li a5,-1 + 95a8: a03c sb a5,2(s0) + 95aa: 00040223 sb zero,4(s0) + 95ae: bf5d j 9564 + 95b0: 4789 li a5,2 + 95b2: faf599e3 bne a1,a5,9564 + 95b6: 4585 li a1,1 + 95b8: 77a020ef jal ra,bd32 + 95bc: f545 bnez a0,9564 + 95be: 8526 mv a0,s1 + 95c0: f5dff0ef jal ra,951c + 95c4: 842a mv s0,a0 + 95c6: fd4d bnez a0,9580 + 95c8: bf71 j 9564 + +000095ca : +gattServerProcessMsgCB(): + 95ca: 715d addi sp,sp,-80 + 95cc: c4a2 sw s0,72(sp) + 95ce: c0ca sw s2,64(sp) + 95d0: c686 sw ra,76(sp) + 95d2: c2a6 sw s1,68(sp) + 95d4: de4e sw s3,60(sp) + 95d6: dc52 sw s4,56(sp) + 95d8: da56 sw s5,52(sp) + 95da: d85a sw s6,48(sp) + 95dc: 842e mv s0,a1 + 95de: 21ac lbu a1,2(a1) + 95e0: 47f9 li a5,30 + 95e2: 892a mv s2,a0 + 95e4: 04f59063 bne a1,a5,9624 + 95e8: f35ff0ef jal ra,951c + 95ec: 842a mv s0,a0 + 95ee: c105 beqz a0,960e + 95f0: 2138 lbu a4,2(a0) + 95f2: 0fd00793 li a5,253 + 95f6: 00e7ec63 bltu a5,a4,960e + 95fa: 3128 lbu a0,3(a0) + 95fc: 4701 li a4,0 + 95fe: 46f9 li a3,30 + 9600: 4601 li a2,0 + 9602: 85ca mv a1,s2 + 9604: 9acff0ef jal ra,87b0 + 9608: 8522 mv a0,s0 + 960a: ef9ff0ef jal ra,9502 + 960e: 4501 li a0,0 + 9610: 40b6 lw ra,76(sp) + 9612: 4426 lw s0,72(sp) + 9614: 4496 lw s1,68(sp) + 9616: 4906 lw s2,64(sp) + 9618: 59f2 lw s3,60(sp) + 961a: 5a62 lw s4,56(sp) + 961c: 5ad2 lw s5,52(sp) + 961e: 5b42 lw s6,48(sp) + 9620: 6161 addi sp,sp,80 + 9622: 8082 ret + 9624: 00042a83 lw s5,0(s0) + 9628: 010007b7 lui a5,0x1000 + 962c: f0078793 addi a5,a5,-256 # ffff00 <_data_lma+0xfe4944> + 9630: 00120737 lui a4,0x120 + 9634: 00faf7b3 and a5,s5,a5 + 9638: 10070713 addi a4,a4,256 # 120100 <_data_lma+0x104b44> + 963c: 89b2 mv s3,a2 + 963e: 4481 li s1,0 + 9640: 02e78663 beq a5,a4,966c + 9644: c62e sw a1,12(sp) + 9646: ed7ff0ef jal ra,951c + 964a: 45b2 lw a1,12(sp) + 964c: 84aa mv s1,a0 + 964e: cd19 beqz a0,966c + 9650: 2150 lbu a2,4(a0) + 9652: ce09 beqz a2,966c + 9654: 60461793 sext.b a5,a2 + 9658: fa07cbe3 bltz a5,960e + 965c: 854a mv a0,s2 + 965e: 9d4ff0ef jal ra,8832 + 9662: 20dc lbu a5,4(s1) + 9664: f807e793 ori a5,a5,-128 + 9668: a0dc sb a5,4(s1) + 966a: b755 j 960e + 966c: 82018a13 addi s4,gp,-2016 # 200011d8 + 9670: 000a4703 lbu a4,0(s4) + 9674: 0ff00793 li a5,255 + 9678: 4519 li a0,6 + 967a: f8f70be3 beq a4,a5,9610 + 967e: 47e1 li a5,24 + 9680: f8b7e8e3 bltu a5,a1,9610 + 9684: 0015d793 srli a5,a1,0x1 + 9688: 17fd addi a5,a5,-1 + 968a: 00010717 auipc a4,0x10 + 968e: 4a670713 addi a4,a4,1190 # 19b30 + 9692: 20e7e7b3 sh3add a5,a5,a4 + 9696: 0007a803 lw a6,0(a5) + 969a: f6080be3 beqz a6,9610 + 969e: 0047ab03 lw s6,4(a5) + 96a2: f60b07e3 beqz s6,9610 + 96a6: 080acab3 zext.h s5,s5 + 96aa: 000a8563 beqz s5,96b4 + 96ae: 47c9 li a5,18 + 96b0: f6f590e3 bne a1,a5,9610 + 96b4: 2056 lhu a3,4(s0) + 96b6: 4410 lw a2,8(s0) + 96b8: 300c lbu a1,1(s0) + 96ba: 2008 lbu a0,0(s0) + 96bc: 0838 addi a4,sp,24 + 96be: 9802 jalr a6 + 96c0: f921 bnez a0,9610 + 96c2: 082c addi a1,sp,24 + 96c4: 854a mv a0,s2 + 96c6: 9b02 jalr s6 + 96c8: cd1d beqz a0,9706 + 96ca: 3018 lbu a4,1(s0) + 96cc: f331 bnez a4,9610 + 96ce: 2038 lbu a4,2(s0) + 96d0: 00a10a23 sb a0,20(sp) + 96d4: 47b9 li a5,14 + 96d6: 00e10823 sb a4,16(sp) + 96da: 02f71463 bne a4,a5,9702 + 96de: 47e2 lw a5,24(sp) + 96e0: 2398 lbu a4,0(a5) + 96e2: 339c lbu a5,1(a5) + 96e4: 07a2 slli a5,a5,0x8 + 96e6: 8fd9 or a5,a5,a4 + 96e8: 080c addi a1,sp,16 + 96ea: 854a mv a0,s2 + 96ec: 81fc sh a5,18(sp) + 96ee: 673080ef jal ra,12560 + 96f2: dd11 beqz a0,960e + 96f4: 0814 addi a3,sp,16 + 96f6: 4605 li a2,1 + 96f8: 45d9 li a1,22 + 96fa: 854a mv a0,s2 + 96fc: a04ff0ef jal ra,8900 + 9700: bf01 j 9610 + 9702: 84bc lhu a5,24(sp) + 9704: b7d5 j 96e8 + 9706: 2034 lbu a3,2(s0) + 9708: 4791 li a5,4 + 970a: f0f682e3 beq a3,a5,960e + 970e: 000a4503 lbu a0,0(s4) + 9712: 0838 addi a4,sp,24 + 9714: 4601 li a2,0 + 9716: 85ca mv a1,s2 + 9718: 898ff0ef jal ra,87b0 + 971c: ee051ae3 bnez a0,9610 + 9720: 202c lbu a1,2(s0) + 9722: 0828 addi a0,sp,24 + 9724: 83eff0ef jal ra,8762 + 9728: c119 beqz a0,972e + 972a: 00098023 sb zero,0(s3) + 972e: 4018 lw a4,0(s0) + 9730: 010007b7 lui a5,0x1000 + 9734: f0078793 addi a5,a5,-256 # ffff00 <_data_lma+0xfe4944> + 9738: 8f7d and a4,a4,a5 + 973a: 001207b7 lui a5,0x120 + 973e: 10078793 addi a5,a5,256 # 120100 <_data_lma+0x104b44> + 9742: ecf706e3 beq a4,a5,960e + 9746: ec0484e3 beqz s1,960e + 974a: 203c lbu a5,2(s0) + 974c: bf31 j 9668 + +0000974e : +gattServerNotifyTxCB(): + 974e: 1141 addi sp,sp,-16 + 9750: c422 sw s0,8(sp) + 9752: c606 sw ra,12(sp) + 9754: 842e mv s0,a1 + 9756: dc7ff0ef jal ra,951c + 975a: c909 beqz a0,976c + 975c: 215c lbu a5,4(a0) + 975e: 00178713 addi a4,a5,1 + 9762: 00e41563 bne s0,a4,976c + 9766: f807f793 andi a5,a5,-128 + 976a: a15c sb a5,4(a0) + 976c: 40b2 lw ra,12(sp) + 976e: 4422 lw s0,8(sp) + 9770: 0141 addi sp,sp,16 + 9772: 8082 ret + +00009774 : +GATT_FindHandle(): + 9774: 872a mv a4,a0 + 9776: 9ac1a503 lw a0,-1620(gp) # 20001364 + 977a: e111 bnez a0,977e + 977c: 8082 ret + 977e: 451c lw a5,8(a0) + 9780: 27b2 lhu a2,10(a5) + 9782: 00c76b63 bltu a4,a2,9798 + 9786: 00455803 lhu a6,4(a0) + 978a: 00c806b3 add a3,a6,a2 + 978e: 00d75563 bge a4,a3,9798 + 9792: 4681 li a3,0 + 9794: 01069463 bne a3,a6,979c + 9798: 4108 lw a0,0(a0) + 979a: b7c5 j 977a + 979c: 00a7d303 lhu t1,10(a5) + 97a0: 01078893 addi a7,a5,16 + 97a4: 00e31663 bne t1,a4,97b0 + 97a8: c191 beqz a1,97ac + 97aa: a192 sh a2,0(a1) + 97ac: 853e mv a0,a5 + 97ae: 8082 ret + 97b0: 0685 addi a3,a3,1 + 97b2: 87c6 mv a5,a7 + 97b4: 0806c6b3 zext.h a3,a3 + 97b8: bff1 j 9794 + +000097ba : +GATTServApp_WriteAttr(): + 97ba: 7139 addi sp,sp,-64 + 97bc: d452 sw s4,40(sp) + 97be: 8a2e mv s4,a1 + 97c0: d64e sw s3,44(sp) + 97c2: 00e10593 addi a1,sp,14 + 97c6: 89aa mv s3,a0 + 97c8: 8552 mv a0,s4 + 97ca: dc22 sw s0,56(sp) + 97cc: d84a sw s2,48(sp) + 97ce: d256 sw s5,36(sp) + 97d0: d05a sw s6,32(sp) + 97d2: ce5e sw s7,28(sp) + 97d4: de06 sw ra,60(sp) + 97d6: da26 sw s1,52(sp) + 97d8: 8932 mv s2,a2 + 97da: 8b36 mv s6,a3 + 97dc: 8bba mv s7,a4 + 97de: 8abe mv s5,a5 + 97e0: f95ff0ef jal ra,9774 + 97e4: 4405 li s0,1 + 97e6: c125 beqz a0,9846 + 97e8: 84aa mv s1,a0 + 97ea: 8728 lhu a0,14(sp) + 97ec: 4439 li s0,14 + 97ee: badff0ef jal ra,939a + 97f2: c931 beqz a0,9846 + 97f4: 00452803 lw a6,4(a0) + 97f8: 04080763 beqz a6,9846 + 97fc: 87d6 mv a5,s5 + 97fe: 875e mv a4,s7 + 9800: 86da mv a3,s6 + 9802: 864a mv a2,s2 + 9804: 85a6 mv a1,s1 + 9806: 854e mv a0,s3 + 9808: 9802 jalr a6 + 980a: 842a mv s0,a0 + 980c: ed0d bnez a0,9846 + 980e: 0fe00793 li a5,254 + 9812: 02fa8a63 beq s5,a5,9846 + 9816: 2098 lbu a4,0(s1) + 9818: 4789 li a5,2 + 981a: 02f71663 bne a4,a5,9846 + 981e: 40dc lw a5,4(s1) + 9820: 2398 lbu a4,0(a5) + 9822: 339c lbu a5,1(a5) + 9824: 07a2 slli a5,a5,0x8 + 9826: 8fd9 or a5,a5,a4 + 9828: 670d lui a4,0x3 + 982a: 90270713 addi a4,a4,-1790 # 2902 + 982e: 00e79c63 bne a5,a4,9846 + 9832: 00194783 lbu a5,1(s2) + 9836: 00094603 lbu a2,0(s2) + 983a: 85d2 mv a1,s4 + 983c: 07a2 slli a5,a5,0x8 + 983e: 8e5d or a2,a2,a5 + 9840: 854e mv a0,s3 + 9842: a4fff0ef jal ra,9290 + 9846: 50f2 lw ra,60(sp) + 9848: 8522 mv a0,s0 + 984a: 5462 lw s0,56(sp) + 984c: 54d2 lw s1,52(sp) + 984e: 5942 lw s2,48(sp) + 9850: 59b2 lw s3,44(sp) + 9852: 5a22 lw s4,40(sp) + 9854: 5a92 lw s5,36(sp) + 9856: 5b02 lw s6,32(sp) + 9858: 4bf2 lw s7,28(sp) + 985a: 6121 addi sp,sp,64 + 985c: 8082 ret + +0000985e : +gattServApp_ProcessExecuteWriteReq(): + 985e: 7179 addi sp,sp,-48 + 9860: d422 sw s0,40(sp) + 9862: 2122 lhu s0,2(a0) + 9864: ce4e sw s3,28(sp) + 9866: 89aa mv s3,a0 + 9868: 8522 mv a0,s0 + 986a: ca56 sw s5,20(sp) + 986c: d606 sw ra,44(sp) + 986e: d226 sw s1,36(sp) + 9870: d04a sw s2,32(sp) + 9872: cc52 sw s4,24(sp) + 9874: c85a sw s6,16(sp) + 9876: c65e sw s7,12(sp) + 9878: c462 sw s8,8(sp) + 987a: 8aae mv s5,a1 + 987c: af5ff0ef jal ra,9370 + 9880: e505 bnez a0,98a8 + 9882: 8522 mv a0,s0 + 9884: 170090ef jal ra,129f4 + 9888: 4459 li s0,22 + 988a: e111 bnez a0,988e + 988c: 4401 li s0,0 + 988e: 50b2 lw ra,44(sp) + 9890: 8522 mv a0,s0 + 9892: 5422 lw s0,40(sp) + 9894: 5492 lw s1,36(sp) + 9896: 5902 lw s2,32(sp) + 9898: 49f2 lw s3,28(sp) + 989a: 4a62 lw s4,24(sp) + 989c: 4ad2 lw s5,20(sp) + 989e: 4b42 lw s6,16(sp) + 98a0: 4bb2 lw s7,12(sp) + 98a2: 4c22 lw s8,8(sp) + 98a4: 6145 addi sp,sp,48 + 98a6: 8082 ret + 98a8: 0089c703 lbu a4,8(s3) + 98ac: 4785 li a5,1 + 98ae: 00f70763 beq a4,a5,98bc + 98b2: a73ff0ef jal ra,9324 + 98b6: 0029d503 lhu a0,2(s3) + 98ba: b7e9 j 9884 + 98bc: 85aa mv a1,a0 + 98be: 84aa mv s1,a0 + 98c0: 00898513 addi a0,s3,8 + 98c4: b05ff0ef jal ra,93c8 + 98c8: 842a mv s0,a0 + 98ca: cd15 beqz a0,9906 + 98cc: 20fa lhu a4,6(s1) + 98ce: 2496 lhu a3,8(s1) + 98d0: 44d0 lw a2,12(s1) + 98d2: 20ce lhu a1,4(s1) + 98d4: 0029d503 lhu a0,2(s3) + 98d8: 47e1 li a5,24 + 98da: ee1ff0ef jal ra,97ba + 98de: 47d9 li a5,22 + 98e0: 842a mv s0,a0 + 98e2: 00f51863 bne a0,a5,98f2 + 98e6: 0004a623 sw zero,12(s1) + 98ea: 8526 mv a0,s1 + 98ec: a39ff0ef jal ra,9324 + 98f0: bf71 j 988c + 98f2: e119 bnez a0,98f8 + 98f4: 8526 mv a0,s1 + 98f6: bf75 j 98b2 + 98f8: 20de lhu a5,4(s1) + 98fa: 8526 mv a0,s1 + 98fc: 00fa9023 sh a5,0(s5) + 9900: a25ff0ef jal ra,9324 + 9904: b769 j 988e + 9906: 00448913 addi s2,s1,4 + 990a: 4a01 li s4,0 + 990c: 4b9d li s7,7 + 990e: 4c59 li s8,22 + 9910: 4b21 li s6,8 + 9912: 00095583 lhu a1,0(s2) + 9916: cd85 beqz a1,994e + 9918: 47e1 li a5,24 + 991a: 017a0763 beq s4,s7,9928 + 991e: 00c95703 lhu a4,12(s2) + 9922: 47d9 li a5,22 + 9924: e311 bnez a4,9928 + 9926: 47e1 li a5,24 + 9928: 00295703 lhu a4,2(s2) + 992c: 00495683 lhu a3,4(s2) + 9930: 00892603 lw a2,8(s2) + 9934: 0029d503 lhu a0,2(s3) + 9938: e83ff0ef jal ra,97ba + 993c: 842a mv s0,a0 + 993e: 03851063 bne a0,s8,995e + 9942: 00092423 sw zero,8(s2) + 9946: 0a05 addi s4,s4,1 + 9948: 0931 addi s2,s2,12 + 994a: fd6a14e3 bne s4,s6,9912 + 994e: 8526 mv a0,s1 + 9950: 9d5ff0ef jal ra,9324 + 9954: d02d beqz s0,98b6 + 9956: 47d9 li a5,22 + 9958: f2f41be3 bne s0,a5,988e + 995c: bf05 j 988c + 995e: d565 beqz a0,9946 + 9960: 00095783 lhu a5,0(s2) + 9964: 00fa9023 sh a5,0(s5) + 9968: bff9 j 9946 + +0000996a : +GATTServApp_UpdateCharCfg(): + 996a: 1101 addi sp,sp,-32 + 996c: 8770 sh a2,14(sp) + 996e: 0fe00793 li a5,254 + 9972: 00e10613 addi a2,sp,14 + 9976: 4701 li a4,0 + 9978: 4689 li a3,2 + 997a: ce06 sw ra,28(sp) + 997c: e3fff0ef jal ra,97ba + 9980: 40f2 lw ra,28(sp) + 9982: 6105 addi sp,sp,32 + 9984: 8082 ret + +00009986 : +gattServApp_ProcessPrepareWriteReq(): + 9986: 7179 addi sp,sp,-48 + 9988: d04a sw s2,32(sp) + 998a: 00855903 lhu s2,8(a0) + 998e: d422 sw s0,40(sp) + 9990: d226 sw s1,36(sp) + 9992: 842a mv s0,a0 + 9994: 84ae mv s1,a1 + 9996: 854a mv a0,s2 + 9998: 01210593 addi a1,sp,18 + 999c: d606 sw ra,44(sp) + 999e: dd7ff0ef jal ra,9774 + 99a2: c579 beqz a0,9a70 + 99a4: 251c lbu a5,8(a0) + 99a6: c62a sw a0,12(sp) + 99a8: 0207f793 andi a5,a5,32 + 99ac: c79d beqz a5,99da + 99ae: 81a8 lhu a0,18(sp) + 99b0: a03ff0ef jal ra,93b2 + 99b4: 45b2 lw a1,12(sp) + 99b6: 87aa mv a5,a0 + 99b8: e911 bnez a0,99cc + 99ba: 01249023 sh s2,0(s1) + 99be: 4539 li a0,14 + 99c0: 50b2 lw ra,44(sp) + 99c2: 5422 lw s0,40(sp) + 99c4: 5492 lw s1,36(sp) + 99c6: 5902 lw s2,32(sp) + 99c8: 6145 addi sp,sp,48 + 99ca: 8082 ret + 99cc: 202a lhu a0,2(s0) + 99ce: 4649 li a2,18 + 99d0: 9782 jalr a5 + 99d2: c501 beqz a0,99da + 99d4: 241e lhu a5,8(s0) + 99d6: a09e sh a5,0(s1) + 99d8: b7e5 j 99c0 + 99da: 00245903 lhu s2,2(s0) + 99de: 854a mv a0,s2 + 99e0: 991ff0ef jal ra,9370 + 99e4: ed01 bnez a0,99fc + 99e6: 6541 lui a0,0x10 + 99e8: 157d addi a0,a0,-1 # ffff + 99ea: 987ff0ef jal ra,9370 + 99ee: e509 bnez a0,99f8 + 99f0: 241e lhu a5,8(s0) + 99f2: 4525 li a0,9 + 99f4: a09e sh a5,0(s1) + 99f6: b7e9 j 99c0 + 99f8: 01251023 sh s2,0(a0) + 99fc: 00450713 addi a4,a0,4 + 9a00: 4781 li a5,0 + 9a02: 46a1 li a3,8 + 9a04: 2312 lhu a2,0(a4) + 9a06: ee39 bnez a2,9a64 + 9a08: 4731 li a4,12 + 9a0a: 02e787b3 mul a5,a5,a4 + 9a0e: 00840593 addi a1,s0,8 + 9a12: 4631 li a2,12 + 9a14: c62e sw a1,12(sp) + 9a16: 0791 addi a5,a5,4 + 9a18: 953e add a0,a0,a5 + 9a1a: 1fff7097 auipc ra,0x1fff7 + 9a1e: e42080e7 jalr -446(ra) # 2000085c + 9a22: 45b2 lw a1,12(sp) + 9a24: 4631 li a2,12 + 9a26: 0848 addi a0,sp,20 + 9a28: 1fff7097 auipc ra,0x1fff7 + 9a2c: e34080e7 jalr -460(ra) # 2000085c + 9a30: 2452 lhu a2,12(s0) + 9a32: 202a lhu a0,2(s0) + 9a34: 4741 li a4,16 + 9a36: 4681 li a3,0 + 9a38: 45dd li a1,23 + 9a3a: f53fe0ef jal ra,898c + 9a3e: ce2a sw a0,28(sp) + 9a40: e509 bnez a0,9a4a + 9a42: 241e lhu a5,8(s0) + 9a44: 4545 li a0,17 + 9a46: a09e sh a5,0(s1) + 9a48: bfa5 j 99c0 + 9a4a: 480c lw a1,16(s0) + 9a4c: 2452 lhu a2,12(s0) + 9a4e: 1fff7097 auipc ra,0x1fff7 + 9a52: e0e080e7 jalr -498(ra) # 2000085c + 9a56: 202a lhu a0,2(s0) + 9a58: 084c addi a1,sp,20 + 9a5a: 75b080ef jal ra,129b4 + 9a5e: d12d beqz a0,99c0 + 9a60: 4559 li a0,22 + 9a62: bfb9 j 99c0 + 9a64: 0785 addi a5,a5,1 + 9a66: 0731 addi a4,a4,12 + 9a68: f8d79ee3 bne a5,a3,9a04 + 9a6c: 4525 li a0,9 + 9a6e: b79d j 99d4 + 9a70: 4505 li a0,1 + 9a72: b78d j 99d4 + +00009a74 : +gattServApp_ProcessWriteReq(): + 9a74: 7179 addi sp,sp,-48 + 9a76: d422 sw s0,40(sp) + 9a78: 842a mv s0,a0 + 9a7a: 250a lhu a0,8(a0) + 9a7c: d04a sw s2,32(sp) + 9a7e: 892e mv s2,a1 + 9a80: 00e10593 addi a1,sp,14 + 9a84: ce4e sw s3,28(sp) + 9a86: d606 sw ra,44(sp) + 9a88: d226 sw s1,36(sp) + 9a8a: 89b2 mv s3,a2 + 9a8c: ce9ff0ef jal ra,9774 + 9a90: c92d beqz a0,9b02 + 9a92: 251c lbu a5,8(a0) + 9a94: 84aa mv s1,a0 + 9a96: 0207f793 andi a5,a5,32 + 9a9a: ef8d bnez a5,9ad4 + 9a9c: 3818 lbu a4,17(s0) + 9a9e: 05200793 li a5,82 + 9aa2: e311 bnez a4,9aa6 + 9aa4: 205c lbu a5,4(s0) + 9aa6: 2436 lhu a3,10(s0) + 9aa8: 4450 lw a2,12(s0) + 9aaa: 240e lhu a1,8(s0) + 9aac: 202a lhu a0,2(s0) + 9aae: 4701 li a4,0 + 9ab0: d0bff0ef jal ra,97ba + 9ab4: e121 bnez a0,9af4 + 9ab6: 381c lbu a5,17(s0) + 9ab8: e3b9 bnez a5,9afe + 9aba: 202a lhu a0,2(s0) + 9abc: 6bd080ef jal ra,12978 + 9ac0: 87aa mv a5,a0 + 9ac2: 4559 li a0,22 + 9ac4: cf8d beqz a5,9afe + 9ac6: 50b2 lw ra,44(sp) + 9ac8: 5422 lw s0,40(sp) + 9aca: 5492 lw s1,36(sp) + 9acc: 5902 lw s2,32(sp) + 9ace: 49f2 lw s3,28(sp) + 9ad0: 6145 addi sp,sp,48 + 9ad2: 8082 ret + 9ad4: 8728 lhu a0,14(sp) + 9ad6: 8ddff0ef jal ra,93b2 + 9ada: 87aa mv a5,a0 + 9adc: c50d beqz a0,9b06 + 9ade: 202a lhu a0,2(s0) + 9ae0: 4649 li a2,18 + 9ae2: 85a6 mv a1,s1 + 9ae4: 9782 jalr a5 + 9ae6: d95d beqz a0,9a9c + 9ae8: 241e lhu a5,8(s0) + 9aea: 00f91023 sh a5,0(s2) + 9aee: 381c lbu a5,17(s0) + 9af0: e799 bnez a5,9afe + 9af2: bfd1 j 9ac6 + 9af4: 47d9 li a5,22 + 9af6: fef519e3 bne a0,a5,9ae8 + 9afa: 00098023 sb zero,0(s3) + 9afe: 4501 li a0,0 + 9b00: b7d9 j 9ac6 + 9b02: 4505 li a0,1 + 9b04: b7d5 j 9ae8 + 9b06: 4539 li a0,14 + 9b08: b7c5 j 9ae8 + +00009b0a : +GATT_Indication(): + 9b0a: 7179 addi sp,sp,-48 + 9b0c: d422 sw s0,40(sp) + 9b0e: d04a sw s2,32(sp) + 9b10: ce4e sw s3,28(sp) + 9b12: cc52 sw s4,24(sp) + 9b14: ca56 sw s5,20(sp) + 9b16: d606 sw ra,44(sp) + 9b18: d226 sw s1,36(sp) + 9b1a: 89aa mv s3,a0 + 9b1c: 8a2e mv s4,a1 + 9b1e: 8ab2 mv s5,a2 + 9b20: 8936 mv s2,a3 + 9b22: 9fbff0ef jal ra,951c + 9b26: 4409 li s0,2 + 9b28: c50d beqz a0,9b52 + 9b2a: 213c lbu a5,2(a0) + 9b2c: 0fe00713 li a4,254 + 9b30: 84aa mv s1,a0 + 9b32: 445d li s0,23 + 9b34: 00e78f63 beq a5,a4,9b52 + 9b38: 0ff00713 li a4,255 + 9b3c: 4459 li s0,22 + 9b3e: 00e79a63 bne a5,a4,9b52 + 9b42: 020a9263 bnez s5,9b66 + 9b46: 85d2 mv a1,s4 + 9b48: 854e mv a0,s3 + 9b4a: 6e7080ef jal ra,12a30 + 9b4e: 842a mv s0,a0 + 9b50: cd15 beqz a0,9b8c + 9b52: 50b2 lw ra,44(sp) + 9b54: 8522 mv a0,s0 + 9b56: 5422 lw s0,40(sp) + 9b58: 5492 lw s1,36(sp) + 9b5a: 5902 lw s2,32(sp) + 9b5c: 49f2 lw s3,28(sp) + 9b5e: 4a62 lw s4,24(sp) + 9b60: 4ad2 lw s5,20(sp) + 9b62: 6145 addi sp,sp,48 + 9b64: 8082 ret + 9b66: 000a5503 lhu a0,0(s4) + 9b6a: 00e10593 addi a1,sp,14 + 9b6e: 00011723 sh zero,14(sp) + 9b72: c03ff0ef jal ra,9774 + 9b76: 8728 lhu a0,14(sp) + 9b78: 975ff0ef jal ra,94ec + 9b7c: 85aa mv a1,a0 + 9b7e: 4605 li a2,1 + 9b80: 854e mv a0,s3 + 9b82: 7d9010ef jal ra,bb5a + 9b86: 842a mv s0,a0 + 9b88: dd5d beqz a0,9b46 + 9b8a: b7e1 j 9b52 + 9b8c: 0ff00793 li a5,255 + 9b90: fcf901e3 beq s2,a5,9b52 + 9b94: 00248693 addi a3,s1,2 + 9b98: 4679 li a2,30 + 9b9a: 85a6 mv a1,s1 + 9b9c: fffff517 auipc a0,0xfffff + 9ba0: 52250513 addi a0,a0,1314 # 90be + 9ba4: cbbfe0ef jal ra,885e + 9ba8: 012481a3 sb s2,3(s1) + 9bac: b75d j 9b52 + +00009bae : +GATT_FindHandleUUID(): + 9bae: 7179 addi sp,sp,-48 + 9bb0: d226 sw s1,36(sp) + 9bb2: ce4e sw s3,28(sp) + 9bb4: cc52 sw s4,24(sp) + 9bb6: ca56 sw s5,20(sp) + 9bb8: c85a sw s6,16(sp) + 9bba: c65e sw s7,12(sp) + 9bbc: d606 sw ra,44(sp) + 9bbe: d422 sw s0,40(sp) + 9bc0: d04a sw s2,32(sp) + 9bc2: c462 sw s8,8(sp) + 9bc4: c266 sw s9,4(sp) + 9bc6: 8aaa mv s5,a0 + 9bc8: 8b2e mv s6,a1 + 9bca: 8bb2 mv s7,a2 + 9bcc: 8a36 mv s4,a3 + 9bce: 89ba mv s3,a4 + 9bd0: 9ac1a483 lw s1,-1620(gp) # 20001364 + 9bd4: c0b9 beqz s1,9c1a + 9bd6: 4480 lw s0,8(s1) + 9bd8: 0044dc83 lhu s9,4(s1) + 9bdc: 4901 li s2,0 + 9bde: 00a45c03 lhu s8,10(s0) + 9be2: 01991463 bne s2,s9,9bea + 9be6: 4084 lw s1,0(s1) + 9be8: b7f5 j 9bd4 + 9bea: 243e lhu a5,10(s0) + 9bec: 0157f763 bgeu a5,s5,9bfa + 9bf0: 0905 addi s2,s2,1 + 9bf2: 0441 addi s0,s0,16 + 9bf4: 08094933 zext.h s2,s2 + 9bf8: b7ed j 9be2 + 9bfa: fefb6be3 bltu s6,a5,9bf0 + 9bfe: 000a0963 beqz s4,9c10 + 9c02: 200c lbu a1,0(s0) + 9c04: 4048 lw a0,4(s0) + 9c06: 86d2 mv a3,s4 + 9c08: 865e mv a2,s7 + 9c0a: 6d6080ef jal ra,122e0 + 9c0e: d16d beqz a0,9bf0 + 9c10: 00098463 beqz s3,9c18 + 9c14: 01899023 sh s8,0(s3) + 9c18: 84a2 mv s1,s0 + 9c1a: 50b2 lw ra,44(sp) + 9c1c: 5422 lw s0,40(sp) + 9c1e: 5902 lw s2,32(sp) + 9c20: 49f2 lw s3,28(sp) + 9c22: 4a62 lw s4,24(sp) + 9c24: 4ad2 lw s5,20(sp) + 9c26: 4b42 lw s6,16(sp) + 9c28: 4bb2 lw s7,12(sp) + 9c2a: 4c22 lw s8,8(sp) + 9c2c: 4c92 lw s9,4(sp) + 9c2e: 8526 mv a0,s1 + 9c30: 5492 lw s1,36(sp) + 9c32: 6145 addi sp,sp,48 + 9c34: 8082 ret + +00009c36 : +gattProcessReadByGrpTypeReq(): + 9c36: 219a lhu a4,0(a1) + 9c38: 21b6 lhu a3,2(a1) + 9c3a: 4785 li a5,1 + 9c3c: 04e6e163 bltu a3,a4,9c7e + 9c40: cf1d beqz a4,9c7e + 9c42: 21d4 lbu a3,4(a1) + 9c44: 1101 addi sp,sp,-32 + 9c46: 00558613 addi a2,a1,5 + 9c4a: cc22 sw s0,24(sp) + 9c4c: 89c18513 addi a0,gp,-1892 # 20001254 + 9c50: 842e mv s0,a1 + 9c52: 4589 li a1,2 + 9c54: ce06 sw ra,28(sp) + 9c56: c632 sw a2,12(sp) + 9c58: 688080ef jal ra,122e0 + 9c5c: 47c1 li a5,16 + 9c5e: c919 beqz a0,9c74 + 9c60: 2054 lbu a3,4(s0) + 9c62: 4632 lw a2,12(sp) + 9c64: 202e lhu a1,2(s0) + 9c66: 200a lhu a0,0(s0) + 9c68: 4701 li a4,0 + 9c6a: f45ff0ef jal ra,9bae + 9c6e: 47a9 li a5,10 + 9c70: c111 beqz a0,9c74 + 9c72: 4781 li a5,0 + 9c74: 40f2 lw ra,28(sp) + 9c76: 4462 lw s0,24(sp) + 9c78: 853e mv a0,a5 + 9c7a: 6105 addi sp,sp,32 + 9c7c: 8082 ret + 9c7e: 853e mv a0,a5 + 9c80: 8082 ret + +00009c82 : +gattProcessReadByTypeReq(): + 9c82: 862e mv a2,a1 + 9c84: 220a lhu a0,0(a2) + 9c86: 21ae lhu a1,2(a1) + 9c88: 4785 li a5,1 + 9c8a: 02a5e163 bltu a1,a0,9cac + 9c8e: cd19 beqz a0,9cac + 9c90: 2254 lbu a3,4(a2) + 9c92: 1141 addi sp,sp,-16 + 9c94: 4701 li a4,0 + 9c96: 0615 addi a2,a2,5 + 9c98: c606 sw ra,12(sp) + 9c9a: f15ff0ef jal ra,9bae + 9c9e: 47a9 li a5,10 + 9ca0: c111 beqz a0,9ca4 + 9ca2: 4781 li a5,0 + 9ca4: 40b2 lw ra,12(sp) + 9ca6: 853e mv a0,a5 + 9ca8: 0141 addi sp,sp,16 + 9caa: 8082 ret + 9cac: 853e mv a0,a5 + 9cae: 8082 ret + +00009cb0 : +gattProcessFindByTypeValueReq(): + 9cb0: 862e mv a2,a1 + 9cb2: 220a lhu a0,0(a2) + 9cb4: 21ae lhu a1,2(a1) + 9cb6: 4785 li a5,1 + 9cb8: 02a5e163 bltu a1,a0,9cda + 9cbc: cd19 beqz a0,9cda + 9cbe: 2254 lbu a3,4(a2) + 9cc0: 1141 addi sp,sp,-16 + 9cc2: 4701 li a4,0 + 9cc4: 0615 addi a2,a2,5 + 9cc6: c606 sw ra,12(sp) + 9cc8: ee7ff0ef jal ra,9bae + 9ccc: 47a9 li a5,10 + 9cce: c111 beqz a0,9cd2 + 9cd0: 4781 li a5,0 + 9cd2: 40b2 lw ra,12(sp) + 9cd4: 853e mv a0,a5 + 9cd6: 0141 addi sp,sp,16 + 9cd8: 8082 ret + 9cda: 853e mv a0,a5 + 9cdc: 8082 ret + +00009cde : +gattProcessFindInfoReq(): + 9cde: 7139 addi sp,sp,-64 + 9ce0: d64e sw s3,44(sp) + 9ce2: 21be lhu a5,2(a1) + 9ce4: 0005d983 lhu s3,0(a1) + 9ce8: de06 sw ra,60(sp) + 9cea: dc22 sw s0,56(sp) + 9cec: da26 sw s1,52(sp) + 9cee: d84a sw s2,48(sp) + 9cf0: d452 sw s4,40(sp) + 9cf2: d256 sw s5,36(sp) + 9cf4: d05a sw s6,32(sp) + 9cf6: ce5e sw s7,28(sp) + 9cf8: cc62 sw s8,24(sp) + 9cfa: ca66 sw s9,20(sp) + 9cfc: 1537e463 bltu a5,s3,9e44 + 9d00: 8a2a mv s4,a0 + 9d02: 4505 li a0,1 + 9d04: 12098363 beqz s3,9e2a + 9d08: 6b41 lui s6,0x10 + 9d0a: 8aae mv s5,a1 + 9d0c: 00011423 sh zero,8(sp) + 9d10: c602 sw zero,12(sp) + 9d12: 4401 li s0,0 + 9d14: 4901 li s2,0 + 9d16: 1b7d addi s6,s6,-1 # ffff + 9d18: 4b89 li s7,2 + 9d1a: 4c05 li s8,1 + 9d1c: 4cc9 li s9,18 + 9d1e: 002ad583 lhu a1,2(s5) + 9d22: 4701 li a4,0 + 9d24: 4681 li a3,0 + 9d26: 4601 li a2,0 + 9d28: 854e mv a0,s3 + 9d2a: 00011323 sh zero,6(sp) + 9d2e: e81ff0ef jal ra,9bae + 9d32: 84aa mv s1,a0 + 9d34: c571 beqz a0,9e00 + 9d36: ec09 bnez s0,9d50 + 9d38: 02200713 li a4,34 + 9d3c: 00610693 addi a3,sp,6 + 9d40: 865a mv a2,s6 + 9d42: 4595 li a1,5 + 9d44: 8552 mv a0,s4 + 9d46: c47fe0ef jal ra,898c + 9d4a: 842a mv s0,a0 + 9d4c: 0e050e63 beqz a0,9e48 + 9d50: 8438 lhu a4,8(sp) + 9d52: 209c lbu a5,0(s1) + 9d54: c725 beqz a4,9dbc + 9d56: 8518 lbu a4,10(sp) + 9d58: 05870163 beq a4,s8,9d9a + 9d5c: 4741 li a4,16 + 9d5e: 0ae79463 bne a5,a4,9e06 + 9d62: 24be lhu a5,10(s1) + 9d64: 4641 li a2,16 + 9d66: 00240513 addi a0,s0,2 + 9d6a: a01c sb a5,0(s0) + 9d6c: 24be lhu a5,10(s1) + 9d6e: 83a1 srli a5,a5,0x8 + 9d70: b01c sb a5,1(s0) + 9d72: 40cc lw a1,4(s1) + 9d74: 1fff7097 auipc ra,0x1fff7 + 9d78: ae8080e7 jalr -1304(ra) # 2000085c + 9d7c: 0449 addi s0,s0,18 + 9d7e: 843c lhu a5,8(sp) + 9d80: 0785 addi a5,a5,1 + 9d82: 0807c7b3 zext.h a5,a5 + 9d86: 847c sh a5,8(sp) + 9d88: 0727fc63 bgeu a5,s2,9e00 + 9d8c: 24be lhu a5,10(s1) + 9d8e: 07678963 beq a5,s6,9e00 + 9d92: 0985 addi s3,s3,1 + 9d94: 0809c9b3 zext.h s3,s3 + 9d98: b759 j 9d1e + 9d9a: 07779663 bne a5,s7,9e06 + 9d9e: 24be lhu a5,10(s1) + 9da0: 4609 li a2,2 + 9da2: 00240513 addi a0,s0,2 + 9da6: a01c sb a5,0(s0) + 9da8: 24be lhu a5,10(s1) + 9daa: 83a1 srli a5,a5,0x8 + 9dac: b01c sb a5,1(s0) + 9dae: 40cc lw a1,4(s1) + 9db0: 1fff7097 auipc ra,0x1fff7 + 9db4: aac080e7 jalr -1364(ra) # 2000085c + 9db8: 0411 addi s0,s0,4 + 9dba: b7d1 j 9d7e + 9dbc: c622 sw s0,12(sp) + 9dbe: 00615903 lhu s2,6(sp) + 9dc2: 24b8 lbu a4,10(s1) + 9dc4: 00240513 addi a0,s0,2 + 9dc8: 01778f63 beq a5,s7,9de6 + 9dcc: 03995933 divu s2,s2,s9 + 9dd0: 01710523 sb s7,10(sp) + 9dd4: a018 sb a4,0(s0) + 9dd6: 24be lhu a5,10(s1) + 9dd8: 4641 li a2,16 + 9dda: 83a1 srli a5,a5,0x8 + 9ddc: b01c sb a5,1(s0) + 9dde: 40cc lw a1,4(s1) + 9de0: 0ff97913 zext.b s2,s2 + 9de4: bf41 j 9d74 + 9de6: 01810523 sb s8,10(sp) + 9dea: a018 sb a4,0(s0) + 9dec: 24be lhu a5,10(s1) + 9dee: 00295913 srli s2,s2,0x2 + 9df2: 0ff97913 zext.b s2,s2 + 9df6: 83a1 srli a5,a5,0x8 + 9df8: b01c sb a5,1(s0) + 9dfa: 40cc lw a1,4(s1) + 9dfc: 4609 li a2,2 + 9dfe: bf4d j 9db0 + 9e00: 843c lhu a5,8(sp) + 9e02: 4529 li a0,10 + 9e04: c39d beqz a5,9e2a + 9e06: 002c addi a1,sp,8 + 9e08: 8552 mv a0,s4 + 9e0a: 0bd080ef jal ra,126c6 + 9e0e: cd09 beqz a0,9e28 + 9e10: 0034 addi a3,sp,8 + 9e12: 4615 li a2,5 + 9e14: 45d9 li a1,22 + 9e16: 8552 mv a0,s4 + 9e18: ae9fe0ef jal ra,8900 + 9e1c: c511 beqz a0,9e28 + 9e1e: 4532 lw a0,12(sp) + 9e20: 1fff7097 auipc ra,0x1fff7 + 9e24: 0a0080e7 jalr 160(ra) # 20000ec0 + 9e28: 4501 li a0,0 + 9e2a: 50f2 lw ra,60(sp) + 9e2c: 5462 lw s0,56(sp) + 9e2e: 54d2 lw s1,52(sp) + 9e30: 5942 lw s2,48(sp) + 9e32: 59b2 lw s3,44(sp) + 9e34: 5a22 lw s4,40(sp) + 9e36: 5a92 lw s5,36(sp) + 9e38: 5b02 lw s6,32(sp) + 9e3a: 4bf2 lw s7,28(sp) + 9e3c: 4c62 lw s8,24(sp) + 9e3e: 4cd2 lw s9,20(sp) + 9e40: 6121 addi sp,sp,64 + 9e42: 8082 ret + 9e44: 4505 li a0,1 + 9e46: b7d5 j 9e2a + 9e48: 4545 li a0,17 + 9e4a: b7c5 j 9e2a + +00009e4c : +GATT_Notification(): + 9e4c: 9c01c703 lbu a4,-1600(gp) # 20001378 + 9e50: 4785 li a5,1 + 9e52: 06e7f363 bgeu a5,a4,9eb8 + 9e56: 1101 addi sp,sp,-32 + 9e58: cc22 sw s0,24(sp) + 9e5a: ca26 sw s1,20(sp) + 9e5c: c84a sw s2,16(sp) + 9e5e: ce06 sw ra,28(sp) + 9e60: 842a mv s0,a0 + 9e62: 84ae mv s1,a1 + 9e64: 8932 mv s2,a2 + 9e66: eb6ff0ef jal ra,951c + 9e6a: c511 beqz a0,9e76 + 9e6c: 2138 lbu a4,2(a0) + 9e6e: 0fe00793 li a5,254 + 9e72: 04f70563 beq a4,a5,9ebc + 9e76: 00091b63 bnez s2,9e8c + 9e7a: 8522 mv a0,s0 + 9e7c: 4462 lw s0,24(sp) + 9e7e: 40f2 lw ra,28(sp) + 9e80: 4942 lw s2,16(sp) + 9e82: 85a6 mv a1,s1 + 9e84: 44d2 lw s1,20(sp) + 9e86: 6105 addi sp,sp,32 + 9e88: 3790806f j 12a00 + 9e8c: 208a lhu a0,0(s1) + 9e8e: 00e10593 addi a1,sp,14 + 9e92: 00011723 sh zero,14(sp) + 9e96: 8dfff0ef jal ra,9774 + 9e9a: 8728 lhu a0,14(sp) + 9e9c: e50ff0ef jal ra,94ec + 9ea0: 85aa mv a1,a0 + 9ea2: 4605 li a2,1 + 9ea4: 8522 mv a0,s0 + 9ea6: 4b5010ef jal ra,bb5a + 9eaa: d961 beqz a0,9e7a + 9eac: 40f2 lw ra,28(sp) + 9eae: 4462 lw s0,24(sp) + 9eb0: 44d2 lw s1,20(sp) + 9eb2: 4942 lw s2,16(sp) + 9eb4: 6105 addi sp,sp,32 + 9eb6: 8082 ret + 9eb8: 4559 li a0,22 + 9eba: 8082 ret + 9ebc: 455d li a0,23 + 9ebe: b7fd j 9eac + +00009ec0 : +GATT_VerifyWritePermissions(): + 9ec0: 1141 addi sp,sp,-16 + 9ec2: c422 sw s0,8(sp) + 9ec4: c606 sw ra,12(sp) + 9ec6: c226 sw s1,4(sp) + 9ec8: 0205f793 andi a5,a1,32 + 9ecc: 842a mv s0,a0 + 9ece: 8532 mv a0,a2 + 9ed0: c385 beqz a5,9ef0 + 9ed2: e1aff0ef jal ra,94ec + 9ed6: 85aa mv a1,a0 + 9ed8: 4605 li a2,1 + 9eda: 8522 mv a0,s0 + 9edc: 47f010ef jal ra,bb5a + 9ee0: 4795 li a5,5 + 9ee2: 00f50563 beq a0,a5,9eec + 9ee6: 47bd li a5,15 + 9ee8: 02f51563 bne a0,a5,9f12 + 9eec: 4521 li a0,8 + 9eee: a015 j 9f12 + 9ef0: 0085f793 andi a5,a1,8 + 9ef4: 84b6 mv s1,a3 + 9ef6: c39d beqz a5,9f1c + 9ef8: df4ff0ef jal ra,94ec + 9efc: 85aa mv a1,a0 + 9efe: 4605 li a2,1 + 9f00: 8522 mv a0,s0 + 9f02: 459010ef jal ra,bb5a + 9f06: c509 beqz a0,9f10 + 9f08: 349c lbu a5,9(s1) + 9f0a: c781 beqz a5,9f12 + 9f0c: 249c lbu a5,8(s1) + 9f0e: c391 beqz a5,9f12 + 9f10: 4501 li a0,0 + 9f12: 40b2 lw ra,12(sp) + 9f14: 4422 lw s0,8(sp) + 9f16: 4492 lw s1,4(sp) + 9f18: 0141 addi sp,sp,16 + 9f1a: 8082 ret + 9f1c: 60459793 sext.b a5,a1 + 9f20: 0007d763 bgez a5,9f2e + 9f24: dc8ff0ef jal ra,94ec + 9f28: 85aa mv a1,a0 + 9f2a: 4601 li a2,0 + 9f2c: bfd1 j 9f00 + 9f2e: 8989 andi a1,a1,2 + 9f30: 450d li a0,3 + 9f32: fdf9 bnez a1,9f10 + 9f34: bff9 j 9f12 + +00009f36 : +gattProcessWriteReq(): + 9f36: 7179 addi sp,sp,-48 + 9f38: 86ae mv a3,a1 + 9f3a: d422 sw s0,40(sp) + 9f3c: 842a mv s0,a0 + 9f3e: 228a lhu a0,0(a3) + 9f40: 01e10593 addi a1,sp,30 + 9f44: d606 sw ra,44(sp) + 9f46: c636 sw a3,12(sp) + 9f48: 82dff0ef jal ra,9774 + 9f4c: c911 beqz a0,9f60 + 9f4e: 250c lbu a1,8(a0) + 9f50: 8522 mv a0,s0 + 9f52: 5422 lw s0,40(sp) + 9f54: 46b2 lw a3,12(sp) + 9f56: 87b0 lhu a2,30(sp) + 9f58: 50b2 lw ra,44(sp) + 9f5a: 6145 addi sp,sp,48 + 9f5c: f65ff06f j 9ec0 + 9f60: 50b2 lw ra,44(sp) + 9f62: 5422 lw s0,40(sp) + 9f64: 4505 li a0,1 + 9f66: 6145 addi sp,sp,48 + 9f68: 8082 ret + +00009f6a : +GATT_VerifyPrepareWritePermissions(): + 9f6a: 1141 addi sp,sp,-16 + 9f6c: c422 sw s0,8(sp) + 9f6e: c606 sw ra,12(sp) + 9f70: 0205f793 andi a5,a1,32 + 9f74: 842a mv s0,a0 + 9f76: 8532 mv a0,a2 + 9f78: c38d beqz a5,9f9a + 9f7a: d72ff0ef jal ra,94ec + 9f7e: 85aa mv a1,a0 + 9f80: 4605 li a2,1 + 9f82: 8522 mv a0,s0 + 9f84: 3d7010ef jal ra,bb5a + 9f88: 4715 li a4,5 + 9f8a: 87aa mv a5,a0 + 9f8c: 00e50563 beq a0,a4,9f96 + 9f90: 473d li a4,15 + 9f92: 02e51d63 bne a0,a4,9fcc + 9f96: 47a1 li a5,8 + 9f98: a815 j 9fcc + 9f9a: 0085f793 andi a5,a1,8 + 9f9e: cb99 beqz a5,9fb4 + 9fa0: d4cff0ef jal ra,94ec + 9fa4: 85aa mv a1,a0 + 9fa6: 4605 li a2,1 + 9fa8: 8522 mv a0,s0 + 9faa: 4422 lw s0,8(sp) + 9fac: 40b2 lw ra,12(sp) + 9fae: 0141 addi sp,sp,16 + 9fb0: 3ab0106f j bb5a + 9fb4: 60459713 sext.b a4,a1 + 9fb8: 00075763 bgez a4,9fc6 + 9fbc: d30ff0ef jal ra,94ec + 9fc0: 85aa mv a1,a0 + 9fc2: 4601 li a2,0 + 9fc4: b7d5 j 9fa8 + 9fc6: 8989 andi a1,a1,2 + 9fc8: e191 bnez a1,9fcc + 9fca: 478d li a5,3 + 9fcc: 40b2 lw ra,12(sp) + 9fce: 4422 lw s0,8(sp) + 9fd0: 853e mv a0,a5 + 9fd2: 0141 addi sp,sp,16 + 9fd4: 8082 ret + +00009fd6 : +gattProcessPrepareWriteReq(): + 9fd6: 7179 addi sp,sp,-48 + 9fd8: 86ae mv a3,a1 + 9fda: d422 sw s0,40(sp) + 9fdc: 842a mv s0,a0 + 9fde: 228a lhu a0,0(a3) + 9fe0: 01e10593 addi a1,sp,30 + 9fe4: c636 sw a3,12(sp) + 9fe6: d606 sw ra,44(sp) + 9fe8: f8cff0ef jal ra,9774 + 9fec: 46b2 lw a3,12(sp) + 9fee: c909 beqz a0,a000 + 9ff0: 250c lbu a1,8(a0) + 9ff2: 8522 mv a0,s0 + 9ff4: 5422 lw s0,40(sp) + 9ff6: 87b0 lhu a2,30(sp) + 9ff8: 50b2 lw ra,44(sp) + 9ffa: 6145 addi sp,sp,48 + 9ffc: f6fff06f j 9f6a + a000: 50b2 lw ra,44(sp) + a002: 5422 lw s0,40(sp) + a004: 4505 li a0,1 + a006: 6145 addi sp,sp,48 + a008: 8082 ret + +0000a00a : +GATT_FindNextAttr(): + a00a: 253e lhu a5,10(a0) + a00c: 7179 addi sp,sp,-48 + a00e: 6741 lui a4,0x10 + a010: d422 sw s0,40(sp) + a012: d226 sw s1,36(sp) + a014: d04a sw s2,32(sp) + a016: ce4e sw s3,28(sp) + a018: d606 sw ra,44(sp) + a01a: 00011723 sh zero,14(sp) + a01e: 177d addi a4,a4,-1 # ffff + a020: 84aa mv s1,a0 + a022: 8432 mv s0,a2 + a024: 8936 mv s2,a3 + a026: 4981 li s3,0 + a028: 00e78d63 beq a5,a4,a042 + a02c: 2094 lbu a3,0(s1) + a02e: 40d0 lw a2,4(s1) + a030: 00178513 addi a0,a5,1 + a034: 00e10713 addi a4,sp,14 + a038: 08054533 zext.h a0,a0 + a03c: b73ff0ef jal ra,9bae + a040: 89aa mv s3,a0 + a042: 2094 lbu a3,0(s1) + a044: 40d0 lw a2,4(s1) + a046: 4589 li a1,2 + a048: 89c18513 addi a0,gp,-1892 # 20001254 + a04c: 294080ef jal ra,122e0 + a050: c515 beqz a0,a07c + a052: 24a2 lhu s0,10(s1) + a054: 8522 mv a0,s0 + a056: c80ff0ef jal ra,94d6 + a05a: c509 beqz a0,a064 + a05c: 147d addi s0,s0,-1 + a05e: 942a add s0,s0,a0 + a060: 08044433 zext.h s0,s0 + a064: 00090463 beqz s2,a06c + a068: 00891023 sh s0,0(s2) + a06c: 50b2 lw ra,44(sp) + a06e: 5422 lw s0,40(sp) + a070: 5492 lw s1,36(sp) + a072: 5902 lw s2,32(sp) + a074: 854e mv a0,s3 + a076: 49f2 lw s3,28(sp) + a078: 6145 addi sp,sp,48 + a07a: 8082 ret + a07c: 2094 lbu a3,0(s1) + a07e: 40d0 lw a2,4(s1) + a080: 4589 li a1,2 + a082: 89818513 addi a0,gp,-1896 # 20001250 + a086: 25a080ef jal ra,122e0 + a08a: f561 bnez a0,a052 + a08c: 2094 lbu a3,0(s1) + a08e: 40d0 lw a2,4(s1) + a090: 4589 li a1,2 + a092: 89418513 addi a0,gp,-1900 # 2000124c + a096: 24a080ef jal ra,122e0 + a09a: c911 beqz a0,a0ae + a09c: fa098ce3 beqz s3,a054 + a0a0: 873c lhu a5,14(sp) + a0a2: fa8799e3 bne a5,s0,a054 + a0a6: 00a9d403 lhu s0,10(s3) + a0aa: 147d addi s0,s0,-1 + a0ac: bf55 j a060 + a0ae: 24a2 lhu s0,10(s1) + a0b0: bf55 j a064 + +0000a0b2 : +GATTServApp_ReadAttr(): + a0b2: 7139 addi sp,sp,-64 + a0b4: dc22 sw s0,56(sp) + a0b6: da26 sw s1,52(sp) + a0b8: d84a sw s2,48(sp) + a0ba: d64e sw s3,44(sp) + a0bc: d452 sw s4,40(sp) + a0be: d256 sw s5,36(sp) + a0c0: d05a sw s6,32(sp) + a0c2: ce5e sw s7,28(sp) + a0c4: de06 sw ra,60(sp) + a0c6: 8bbe mv s7,a5 + a0c8: 259c lbu a5,8(a1) + a0ca: 8a2a mv s4,a0 + a0cc: 84ae mv s1,a1 + a0ce: 8bc1 andi a5,a5,16 + a0d0: 8ab2 mv s5,a2 + a0d2: 8436 mv s0,a3 + a0d4: 893a mv s2,a4 + a0d6: 89c2 mv s3,a6 + a0d8: 8b46 mv s6,a7 + a0da: ef9d bnez a5,a118 + a0dc: 2094 lbu a3,0(s1) + a0de: 4789 li a5,2 + a0e0: 06f68363 beq a3,a5,a146 + a0e4: 8556 mv a0,s5 + a0e6: ab4ff0ef jal ra,939a + a0ea: cd05 beqz a0,a122 + a0ec: 00052883 lw a7,0(a0) + a0f0: 02088963 beqz a7,a122 + a0f4: 8622 mv a2,s0 + a0f6: 5462 lw s0,56(sp) + a0f8: 50f2 lw ra,60(sp) + a0fa: 5a92 lw s5,36(sp) + a0fc: 885a mv a6,s6 + a0fe: 87ce mv a5,s3 + a100: 5b02 lw s6,32(sp) + a102: 59b2 lw s3,44(sp) + a104: 875e mv a4,s7 + a106: 86ca mv a3,s2 + a108: 4bf2 lw s7,28(sp) + a10a: 5942 lw s2,48(sp) + a10c: 85a6 mv a1,s1 + a10e: 8552 mv a0,s4 + a110: 54d2 lw s1,52(sp) + a112: 5a22 lw s4,40(sp) + a114: 6121 addi sp,sp,64 + a116: 8882 jr a7 + a118: 8532 mv a0,a2 + a11a: a98ff0ef jal ra,93b2 + a11e: 87aa mv a5,a0 + a120: ed09 bnez a0,a13a + a122: 4539 li a0,14 + a124: 50f2 lw ra,60(sp) + a126: 5462 lw s0,56(sp) + a128: 54d2 lw s1,52(sp) + a12a: 5942 lw s2,48(sp) + a12c: 59b2 lw s3,44(sp) + a12e: 5a22 lw s4,40(sp) + a130: 5a92 lw s5,36(sp) + a132: 5b02 lw s6,32(sp) + a134: 4bf2 lw s7,28(sp) + a136: 6121 addi sp,sp,64 + a138: 8082 ret + a13a: 4629 li a2,10 + a13c: 85a6 mv a1,s1 + a13e: 8552 mv a0,s4 + a140: 9782 jalr a5 + a142: dd49 beqz a0,a0dc + a144: b7c5 j a124 + a146: 40dc lw a5,4(s1) + a148: 0017c303 lbu t1,1(a5) + a14c: 2398 lbu a4,0(a5) + a14e: 678d lui a5,0x3 + a150: 0322 slli t1,t1,0x8 + a152: 00e36333 or t1,t1,a4 + a156: 90478613 addi a2,a5,-1788 # 2904 + a15a: 60531713 sext.h a4,t1 + a15e: f8e643e3 blt a2,a4,a0e4 + a162: 8ff78613 addi a2,a5,-1793 + a166: 02e64b63 blt a2,a4,a19c + a16a: 80278693 addi a3,a5,-2046 + a16e: 08d70d63 beq a4,a3,a208 + a172: 04e6c863 blt a3,a4,a1c2 + a176: 77f9 lui a5,0xffffe + a178: 80078793 addi a5,a5,-2048 # ffffd800 <_eusrstack+0xdfffa800> + a17c: 933e add t1,t1,a5 + a17e: 4785 li a5,1 + a180: 08034333 zext.h t1,t1 + a184: f667e0e3 bltu a5,t1,a0e4 + a188: 452d li a0,11 + a18a: f80b9de3 bnez s7,a124 + a18e: 44dc lw a5,12(s1) + a190: 2390 lbu a2,0(a5) + a192: 43cc lw a1,4(a5) + a194: 00c91023 sh a2,0(s2) + a198: 8522 mv a0,s0 + a19a: aa29 j a2b4 + a19c: 77f5 lui a5,0xffffd + a19e: 6ff78793 addi a5,a5,1791 # ffffd6ff <_eusrstack+0xdfffa6ff> + a1a2: 933e add t1,t1,a5 + a1a4: 478d li a5,3 + a1a6: 08034333 zext.h t1,t1 + a1aa: 1067ea63 bltu a5,t1,a2be + a1ae: 00010717 auipc a4,0x10 + a1b2: 92670713 addi a4,a4,-1754 # 19ad4 + a1b6: 20e34333 sh2add t1,t1,a4 + a1ba: 00032783 lw a5,0(t1) + a1be: 97ba add a5,a5,a4 + a1c0: 8782 jr a5 + a1c2: 80378793 addi a5,a5,-2045 + a1c6: f0f71fe3 bne a4,a5,a0e4 + a1ca: 452d li a0,11 + a1cc: f40b9ce3 bnez s7,a124 + a1d0: 4785 li a5,1 + a1d2: 00f91023 sh a5,0(s2) + a1d6: 44dc lw a5,12(s1) + a1d8: 4581 li a1,0 + a1da: 239c lbu a5,0(a5) + a1dc: a01c sb a5,0(s0) + a1de: 24aa lhu a0,10(s1) + a1e0: 0505 addi a0,a0,1 + a1e2: 08054533 zext.h a0,a0 + a1e6: d8eff0ef jal ra,9774 + a1ea: 00095783 lhu a5,0(s2) + a1ee: e54d bnez a0,a298 + a1f0: 0791 addi a5,a5,4 + a1f2: 00f91023 sh a5,0(s2) + a1f6: 4611 li a2,4 + a1f8: 4581 li a1,0 + a1fa: 00140513 addi a0,s0,1 + a1fe: 1fff6097 auipc ra,0x1fff6 + a202: 69c080e7 jalr 1692(ra) # 2000089a + a206: a061 j a28e + a208: 452d li a0,11 + a20a: f00b9de3 bnez s7,a124 + a20e: 44dc lw a5,12(s1) + a210: 006c addi a1,sp,12 + a212: 0017c983 lbu s3,1(a5) + a216: 2398 lbu a4,0(a5) + a218: 09a2 slli s3,s3,0x8 + a21a: 00e9e9b3 or s3,s3,a4 + a21e: 4711 li a4,4 + a220: 00e91023 sh a4,0(s2) + a224: 239c lbu a5,0(a5) + a226: 854e mv a0,s3 + a228: a01c sb a5,0(s0) + a22a: 44dc lw a5,12(s1) + a22c: 339c lbu a5,1(a5) + a22e: b01c sb a5,1(s0) + a230: d44ff0ef jal ra,9774 + a234: 84aa mv s1,a0 + a236: cd31 beqz a0,a292 + a238: 8630 lhu a2,12(sp) + a23a: 65c1 lui a1,0x10 + a23c: 00e10693 addi a3,sp,14 + a240: 15fd addi a1,a1,-1 # ffff + a242: 00c52983 lw s3,12(a0) + a246: dc5ff0ef jal ra,a00a + a24a: e919 bnez a0,a260 + a24c: 2094 lbu a3,0(s1) + a24e: 40d0 lw a2,4(s1) + a250: 4589 li a1,2 + a252: 89818513 addi a0,gp,-1896 # 20001250 + a256: 08a080ef jal ra,122e0 + a25a: e119 bnez a0,a260 + a25c: 57fd li a5,-1 + a25e: 877c sh a5,14(sp) + a260: 0009c703 lbu a4,0(s3) + a264: 4789 li a5,2 + a266: 02f71063 bne a4,a5,a286 + a26a: 0049a583 lw a1,4(s3) + a26e: 4609 li a2,2 + a270: 00440513 addi a0,s0,4 + a274: 1fff6097 auipc ra,0x1fff6 + a278: 5e8080e7 jalr 1512(ra) # 2000085c + a27c: 00095783 lhu a5,0(s2) + a280: 0789 addi a5,a5,2 + a282: 00f91023 sh a5,0(s2) + a286: 873c lhu a5,14(sp) + a288: a03c sb a5,2(s0) + a28a: 83a1 srli a5,a5,0x8 + a28c: b03c sb a5,3(s0) + a28e: 4501 li a0,0 + a290: bd51 j a124 + a292: 01311723 sh s3,14(sp) + a296: bfc5 j a286 + a298: 2118 lbu a4,0(a0) + a29a: 0789 addi a5,a5,2 + a29c: 97ba add a5,a5,a4 + a29e: 00f91023 sh a5,0(s2) + a2a2: 253e lhu a5,10(a0) + a2a4: b01c sb a5,1(s0) + a2a6: 253e lhu a5,10(a0) + a2a8: 83a1 srli a5,a5,0x8 + a2aa: a03c sb a5,2(s0) + a2ac: 2110 lbu a2,0(a0) + a2ae: 414c lw a1,4(a0) + a2b0: 00340513 addi a0,s0,3 + a2b4: 1fff6097 auipc ra,0x1fff6 + a2b8: 5a8080e7 jalr 1448(ra) # 2000085c + a2bc: bfc9 j a28e + a2be: 452d li a0,11 + a2c0: e60b92e3 bnez s7,a124 + a2c4: 00d91023 sh a3,0(s2) + a2c8: 44dc lw a5,12(s1) + a2ca: 239c lbu a5,0(a5) + a2cc: a01c sb a5,0(s0) + a2ce: 44dc lw a5,12(s1) + a2d0: 339c lbu a5,1(a5) + a2d2: b01c sb a5,1(s0) + a2d4: bf6d j a28e + a2d6: 44c8 lw a0,12(s1) + a2d8: 7cb0f0ef jal ra,1a2a2 + a2dc: 08054733 zext.h a4,a0 + a2e0: 451d li a0,7 + a2e2: e57761e3 bltu a4,s7,a124 + a2e6: 02eb8063 beq s7,a4,a306 + a2ea: 017986b3 add a3,s3,s7 + a2ee: 00e6c663 blt a3,a4,a2fa + a2f2: 41770733 sub a4,a4,s7 + a2f6: 080749b3 zext.h s3,a4 + a2fa: 44cc lw a1,12(s1) + a2fc: 01391023 sh s3,0(s2) + a300: 864e mv a2,s3 + a302: 95de add a1,a1,s7 + a304: bd51 j a198 + a306: 4981 li s3,0 + a308: bfcd j a2fa + a30a: 452d li a0,11 + a30c: e00b9ce3 bnez s7,a124 + a310: 44cc lw a1,12(s1) + a312: 8552 mv a0,s4 + a314: eadfe0ef jal ra,91c0 + a318: 4789 li a5,2 + a31a: 00f91023 sh a5,0(s2) + a31e: a008 sb a0,0(s0) + a320: 8121 srli a0,a0,0x8 + a322: b008 sb a0,1(s0) + a324: b7ad j a28e + a326: 452d li a0,11 + a328: de0b9ee3 bnez s7,a124 + a32c: 4789 li a5,2 + a32e: 00f91023 sh a5,0(s2) + a332: bf59 j a2c8 + a334: 452d li a0,11 + a336: de0b97e3 bnez s7,a124 + a33a: 44dc lw a5,12(s1) + a33c: 471d li a4,7 + a33e: 00e91023 sh a4,0(s2) + a342: 2398 lbu a4,0(a5) + a344: a018 sb a4,0(s0) + a346: 3398 lbu a4,1(a5) + a348: b018 sb a4,1(s0) + a34a: 23ba lhu a4,2(a5) + a34c: a038 sb a4,2(s0) + a34e: 23ba lhu a4,2(a5) + a350: 8321 srli a4,a4,0x8 + a352: b038 sb a4,3(s0) + a354: 23d8 lbu a4,4(a5) + a356: a058 sb a4,4(s0) + a358: 23fa lhu a4,6(a5) + a35a: b058 sb a4,5(s0) + a35c: 23fe lhu a5,6(a5) + a35e: 83a1 srli a5,a5,0x8 + a360: a07c sb a5,6(s0) + a362: b735 j a28e + +0000a364 : +gattServApp_ProcessReadMultiReq(): + a364: 715d addi sp,sp,-80 + a366: c2a6 sw s1,68(sp) + a368: 84aa mv s1,a0 + a36a: 212a lhu a0,2(a0) + a36c: de4e sw s3,60(sp) + a36e: dc52 sw s4,56(sp) + a370: da56 sw s5,52(sp) + a372: d85a sw s6,48(sp) + a374: d65e sw s7,44(sp) + a376: d462 sw s8,40(sp) + a378: d266 sw s9,36(sp) + a37a: d06a sw s10,32(sp) + a37c: ce6e sw s11,28(sp) + a37e: c686 sw ra,76(sp) + a380: c4a2 sw s0,72(sp) + a382: c0ca sw s2,64(sp) + a384: 8aae mv s5,a1 + a386: 6bc1 lui s7,0x10 + a388: 0a0080ef jal ra,12428 + a38c: fff50c13 addi s8,a0,-1 + a390: 8a2a mv s4,a0 + a392: 4981 li s3,0 + a394: 1fff8d97 auipc s11,0x1fff8 + a398: 608d8d93 addi s11,s11,1544 # 2000299c + a39c: 99818c93 addi s9,gp,-1640 # 20001350 + a3a0: 99c18b13 addi s6,gp,-1636 # 20001354 + a3a4: 1bfd addi s7,s7,-1 # ffff + a3a6: 080c4d33 zext.h s10,s8 + a3aa: 24de lhu a5,12(s1) + a3ac: 00f9f663 bgeu s3,a5,a3b8 + a3b0: 000dd783 lhu a5,0(s11) + a3b4: 0187cd63 blt a5,s8,a3ce + a3b8: 20aa lhu a0,2(s1) + a3ba: 1fff8597 auipc a1,0x1fff8 + a3be: 5e258593 addi a1,a1,1506 # 2000299c + a3c2: 510080ef jal ra,128d2 + a3c6: 842a mv s0,a0 + a3c8: cd0d beqz a0,a402 + a3ca: 4459 li s0,22 + a3cc: a81d j a402 + a3ce: 449c lw a5,8(s1) + a3d0: 00e10593 addi a1,sp,14 + a3d4: 20f9a7b3 sh1add a5,s3,a5 + a3d8: 0017c903 lbu s2,1(a5) + a3dc: 239c lbu a5,0(a5) + a3de: 0922 slli s2,s2,0x8 + a3e0: 00f96933 or s2,s2,a5 + a3e4: 854a mv a0,s2 + a3e6: b8eff0ef jal ra,9774 + a3ea: 85aa mv a1,a0 + a3ec: e91d bnez a0,a422 + a3ee: 012a9023 sh s2,0(s5) + a3f2: 004da503 lw a0,4(s11) + a3f6: c509 beqz a0,a400 + a3f8: 1fff7097 auipc ra,0x1fff7 + a3fc: ac8080e7 jalr -1336(ra) # 20000ec0 + a400: 4405 li s0,1 + a402: 40b6 lw ra,76(sp) + a404: 8522 mv a0,s0 + a406: 4426 lw s0,72(sp) + a408: 4496 lw s1,68(sp) + a40a: 4906 lw s2,64(sp) + a40c: 59f2 lw s3,60(sp) + a40e: 5a62 lw s4,56(sp) + a410: 5ad2 lw s5,52(sp) + a412: 5b42 lw s6,48(sp) + a414: 5bb2 lw s7,44(sp) + a416: 5c22 lw s8,40(sp) + a418: 5c92 lw s9,36(sp) + a41a: 5d02 lw s10,32(sp) + a41c: 4df2 lw s11,28(sp) + a41e: 6161 addi sp,sp,80 + a420: 8082 ret + a422: 0044c883 lbu a7,4(s1) + a426: 000ca683 lw a3,0(s9) + a42a: 8730 lhu a2,14(sp) + a42c: 20aa lhu a0,2(s1) + a42e: 886a mv a6,s10 + a430: 4781 li a5,0 + a432: 875a mv a4,s6 + a434: c7fff0ef jal ra,a0b2 + a438: 842a mv s0,a0 + a43a: c919 beqz a0,a450 + a43c: 012a9023 sh s2,0(s5) + a440: 004da503 lw a0,4(s11) + a444: dd5d beqz a0,a402 + a446: 1fff7097 auipc ra,0x1fff7 + a44a: a7a080e7 jalr -1414(ra) # 20000ec0 + a44e: bf55 j a402 + a450: 004da783 lw a5,4(s11) + a454: ef99 bnez a5,a472 + a456: 20aa lhu a0,2(s1) + a458: 4751 li a4,20 + a45a: 4681 li a3,0 + a45c: 865e mv a2,s7 + a45e: 45bd li a1,15 + a460: d2cfe0ef jal ra,898c + a464: 00ada223 sw a0,4(s11) + a468: e509 bnez a0,a472 + a46a: 012a9023 sh s2,0(s5) + a46e: 4445 li s0,17 + a470: bf49 j a402 + a472: 000dd783 lhu a5,0(s11) + a476: 000b5703 lhu a4,0(s6) + a47a: 973e add a4,a4,a5 + a47c: 01474763 blt a4,s4,a48a + a480: 40fa0733 sub a4,s4,a5 + a484: 177d addi a4,a4,-1 + a486: 00eb1023 sh a4,0(s6) + a48a: 004da503 lw a0,4(s11) + a48e: 000b5603 lhu a2,0(s6) + a492: 000ca583 lw a1,0(s9) + a496: 953e add a0,a0,a5 + a498: 0985 addi s3,s3,1 + a49a: 1fff6097 auipc ra,0x1fff6 + a49e: 3c2080e7 jalr 962(ra) # 2000085c + a4a2: 000dd783 lhu a5,0(s11) + a4a6: 000b5703 lhu a4,0(s6) + a4aa: 0809c9b3 zext.h s3,s3 + a4ae: 97ba add a5,a5,a4 + a4b0: 00fd9023 sh a5,0(s11) + a4b4: bddd j a3aa + +0000a4b6 : +gattServApp_ProcessFindByTypeValueReq(): + a4b6: 7139 addi sp,sp,-64 + a4b8: da26 sw s1,52(sp) + a4ba: 84aa mv s1,a0 + a4bc: 212a lhu a0,2(a0) + a4be: d64e sw s3,44(sp) + a4c0: d05a sw s6,32(sp) + a4c2: de06 sw ra,60(sp) + a4c4: dc22 sw s0,56(sp) + a4c6: d84a sw s2,48(sp) + a4c8: d452 sw s4,40(sp) + a4ca: d256 sw s5,36(sp) + a4cc: ce5e sw s7,28(sp) + a4ce: cc62 sw s8,24(sp) + a4d0: ca66 sw s9,20(sp) + a4d2: c86a sw s10,16(sp) + a4d4: 8b2e mv s6,a1 + a4d6: 753070ef jal ra,12428 + a4da: 89aa mv s3,a0 + a4dc: 24d4 lbu a3,12(s1) + a4de: 24ae lhu a1,10(s1) + a4e0: 248a lhu a0,8(s1) + a4e2: 0078 addi a4,sp,12 + a4e4: 00d48613 addi a2,s1,13 + a4e8: ec6ff0ef jal ra,9bae + a4ec: c105 beqz a0,a50c + a4ee: ffb98b93 addi s7,s3,-5 + a4f2: 842a mv s0,a0 + a4f4: 19e5 addi s3,s3,-7 + a4f6: 4901 li s2,0 + a4f8: 99818c13 addi s8,gp,-1640 # 20001350 + a4fc: 99c18c93 addi s9,gp,-1636 # 20001354 + a500: 0809ca33 zext.h s4,s3 + a504: 01794963 blt s2,s7,a516 + a508: 10091b63 bnez s2,a61e + a50c: 249e lhu a5,8(s1) + a50e: 4529 li a0,10 + a510: 00fb1023 sh a5,0(s6) + a514: a89d j a58a + a516: 00c15d03 lhu s10,12(sp) + a51a: 0044c883 lbu a7,4(s1) + a51e: 000c2683 lw a3,0(s8) + a522: 20aa lhu a0,2(s1) + a524: 8852 mv a6,s4 + a526: 4781 li a5,0 + a528: 8766 mv a4,s9 + a52a: 866a mv a2,s10 + a52c: 85a2 mv a1,s0 + a52e: b85ff0ef jal ra,a0b2 + a532: c919 beqz a0,a548 + a534: 24ae lhu a1,10(s1) + a536: 8522 mv a0,s0 + a538: 00e10693 addi a3,sp,14 + a53c: 866a mv a2,s10 + a53e: acdff0ef jal ra,a00a + a542: 842a mv s0,a0 + a544: f061 bnez s0,a504 + a546: b7c9 j a508 + a548: 000cd783 lhu a5,0(s9) + a54c: 2892 lhu a2,16(s1) + a54e: fef613e3 bne a2,a5,a534 + a552: 000c2583 lw a1,0(s8) + a556: 48c8 lw a0,20(s1) + a558: 1fff6097 auipc ra,0x1fff6 + a55c: 382080e7 jalr 898(ra) # 200008da + a560: d971 beqz a0,a534 + a562: 1fff8997 auipc s3,0x1fff8 + a566: 43a98993 addi s3,s3,1082 # 2000299c + a56a: 0049a783 lw a5,4(s3) + a56e: ef95 bnez a5,a5aa + a570: 20aa lhu a0,2(s1) + a572: 6641 lui a2,0x10 + a574: 4745 li a4,17 + a576: 4681 li a3,0 + a578: 167d addi a2,a2,-1 # ffff + a57a: 459d li a1,7 + a57c: c10fe0ef jal ra,898c + a580: e11d bnez a0,a5a6 + a582: 249e lhu a5,8(s1) + a584: 4545 li a0,17 + a586: 00fb1023 sh a5,0(s6) + a58a: 50f2 lw ra,60(sp) + a58c: 5462 lw s0,56(sp) + a58e: 54d2 lw s1,52(sp) + a590: 5942 lw s2,48(sp) + a592: 59b2 lw s3,44(sp) + a594: 5a22 lw s4,40(sp) + a596: 5a92 lw s5,36(sp) + a598: 5b02 lw s6,32(sp) + a59a: 4bf2 lw s7,28(sp) + a59c: 4c62 lw s8,24(sp) + a59e: 4cd2 lw s9,20(sp) + a5a0: 4d42 lw s10,16(sp) + a5a2: 6121 addi sp,sp,64 + a5a4: 8082 ret + a5a6: 00a9a223 sw a0,4(s3) + a5aa: 24ae lhu a1,10(s1) + a5ac: 00a45a83 lhu s5,10(s0) + a5b0: 8522 mv a0,s0 + a5b2: 00e10693 addi a3,sp,14 + a5b6: 866a mv a2,s10 + a5b8: a53ff0ef jal ra,a00a + a5bc: 842a mv s0,a0 + a5be: f80a83e3 beqz s5,a544 + a5c2: 0049a783 lw a5,4(s3) + a5c6: 00190713 addi a4,s2,1 + a5ca: 08074733 zext.h a4,a4 + a5ce: 97ca add a5,a5,s2 + a5d0: 01578023 sb s5,0(a5) + a5d4: 0049a783 lw a5,4(s3) + a5d8: 008ada93 srli s5,s5,0x8 + a5dc: 00290693 addi a3,s2,2 + a5e0: 97ba add a5,a5,a4 + a5e2: 01578023 sb s5,0(a5) + a5e6: 00390713 addi a4,s2,3 + a5ea: 0911 addi s2,s2,4 + a5ec: 0049a783 lw a5,4(s3) + a5f0: 0806c6b3 zext.h a3,a3 + a5f4: 08074733 zext.h a4,a4 + a5f8: 08094933 zext.h s2,s2 + a5fc: c911 beqz a0,a610 + a5fe: 8730 lhu a2,14(sp) + a600: 97b6 add a5,a5,a3 + a602: a390 sb a2,0(a5) + a604: 0049a783 lw a5,4(s3) + a608: 8221 srli a2,a2,0x8 + a60a: 97ba add a5,a5,a4 + a60c: a390 sb a2,0(a5) + a60e: bddd j a504 + a610: 97b6 add a5,a5,a3 + a612: 56fd li a3,-1 + a614: a394 sb a3,0(a5) + a616: 0049a783 lw a5,4(s3) + a61a: 97ba add a5,a5,a4 + a61c: a394 sb a3,0(a5) + a61e: 20aa lhu a0,2(s1) + a620: 1fff8597 auipc a1,0x1fff8 + a624: 37c58593 addi a1,a1,892 # 2000299c + a628: 00295913 srli s2,s2,0x2 + a62c: 01259023 sh s2,0(a1) + a630: 14a080ef jal ra,1277a + a634: d939 beqz a0,a58a + a636: 4559 li a0,22 + a638: bf89 j a58a + +0000a63a : +GATT_VerifyReadPermissions(): + a63a: 1141 addi sp,sp,-16 + a63c: c422 sw s0,8(sp) + a63e: c606 sw ra,12(sp) + a640: 0105f793 andi a5,a1,16 + a644: 842a mv s0,a0 + a646: 8532 mv a0,a2 + a648: c385 beqz a5,a668 + a64a: ea3fe0ef jal ra,94ec + a64e: 85aa mv a1,a0 + a650: 4605 li a2,1 + a652: 8522 mv a0,s0 + a654: 506010ef jal ra,bb5a + a658: 4795 li a5,5 + a65a: 00f50563 beq a0,a5,a664 + a65e: 47bd li a5,15 + a660: 02f51d63 bne a0,a5,a69a + a664: 4521 li a0,8 + a666: a815 j a69a + a668: 0045f793 andi a5,a1,4 + a66c: cb99 beqz a5,a682 + a66e: e7ffe0ef jal ra,94ec + a672: 85aa mv a1,a0 + a674: 4605 li a2,1 + a676: 8522 mv a0,s0 + a678: 4422 lw s0,8(sp) + a67a: 40b2 lw ra,12(sp) + a67c: 0141 addi sp,sp,16 + a67e: 4dc0106f j bb5a + a682: 0405f793 andi a5,a1,64 + a686: c791 beqz a5,a692 + a688: e65fe0ef jal ra,94ec + a68c: 85aa mv a1,a0 + a68e: 4601 li a2,0 + a690: b7dd j a676 + a692: fff5c513 not a0,a1 + a696: 8905 andi a0,a0,1 + a698: 0506 slli a0,a0,0x1 + a69a: 40b2 lw ra,12(sp) + a69c: 4422 lw s0,8(sp) + a69e: 0141 addi sp,sp,16 + a6a0: 8082 ret + +0000a6a2 : +gattProcessReadMultiReq(): + a6a2: 7179 addi sp,sp,-48 + a6a4: d422 sw s0,40(sp) + a6a6: d226 sw s1,36(sp) + a6a8: cc52 sw s4,24(sp) + a6aa: d606 sw ra,44(sp) + a6ac: d04a sw s2,32(sp) + a6ae: ce4e sw s3,28(sp) + a6b0: ca56 sw s5,20(sp) + a6b2: c85a sw s6,16(sp) + a6b4: 8a2a mv s4,a0 + a6b6: 84ae mv s1,a1 + a6b8: 4401 li s0,0 + a6ba: 20de lhu a5,4(s1) + a6bc: 00f46463 bltu s0,a5,a6c4 + a6c0: 4501 li a0,0 + a6c2: a835 j a6fe + a6c4: 0004aa83 lw s5,0(s1) + a6c8: 00141993 slli s3,s0,0x1 + a6cc: 00198913 addi s2,s3,1 + a6d0: 215427b3 sh1add a5,s0,s5 + a6d4: 0007cb03 lbu s6,0(a5) + a6d8: 012a87b3 add a5,s5,s2 + a6dc: 2388 lbu a0,0(a5) + a6de: 00e10593 addi a1,sp,14 + a6e2: 0522 slli a0,a0,0x8 + a6e4: 01656533 or a0,a0,s6 + a6e8: 88cff0ef jal ra,9774 + a6ec: e11d bnez a0,a712 + a6ee: 016a8023 sb s6,0(s5) + a6f2: 409c lw a5,0(s1) + a6f4: 4505 li a0,1 + a6f6: 993e add s2,s2,a5 + a6f8: 00094703 lbu a4,0(s2) + a6fc: b398 sb a4,1(a5) + a6fe: 50b2 lw ra,44(sp) + a700: 5422 lw s0,40(sp) + a702: 5492 lw s1,36(sp) + a704: 5902 lw s2,32(sp) + a706: 49f2 lw s3,28(sp) + a708: 4a62 lw s4,24(sp) + a70a: 4ad2 lw s5,20(sp) + a70c: 4b42 lw s6,16(sp) + a70e: 6145 addi sp,sp,48 + a710: 8082 ret + a712: 250c lbu a1,8(a0) + a714: 8730 lhu a2,14(sp) + a716: 8552 mv a0,s4 + a718: f23ff0ef jal ra,a63a + a71c: cd01 beqz a0,a734 + a71e: 409c lw a5,0(s1) + a720: 99be add s3,s3,a5 + a722: 0009c703 lbu a4,0(s3) + a726: a398 sb a4,0(a5) + a728: 409c lw a5,0(s1) + a72a: 993e add s2,s2,a5 + a72c: 00094703 lbu a4,0(s2) + a730: b398 sb a4,1(a5) + a732: b7f1 j a6fe + a734: 0405 addi s0,s0,1 + a736: 08044433 zext.h s0,s0 + a73a: b741 j a6ba + +0000a73c : +gattProcessReadReq(): + a73c: 1101 addi sp,sp,-32 + a73e: 87ae mv a5,a1 + a740: cc22 sw s0,24(sp) + a742: 842a mv s0,a0 + a744: 238a lhu a0,0(a5) + a746: 00e10593 addi a1,sp,14 + a74a: ce06 sw ra,28(sp) + a74c: 828ff0ef jal ra,9774 + a750: c909 beqz a0,a762 + a752: 250c lbu a1,8(a0) + a754: 8522 mv a0,s0 + a756: 4462 lw s0,24(sp) + a758: 8730 lhu a2,14(sp) + a75a: 40f2 lw ra,28(sp) + a75c: 6105 addi sp,sp,32 + a75e: eddff06f j a63a + a762: 40f2 lw ra,28(sp) + a764: 4462 lw s0,24(sp) + a766: 4505 li a0,1 + a768: 6105 addi sp,sp,32 + a76a: 8082 ret + +0000a76c : +gattServApp_ProcessReadByGrpTypeReq(): + a76c: 7139 addi sp,sp,-64 + a76e: da26 sw s1,52(sp) + a770: 84aa mv s1,a0 + a772: 212a lhu a0,2(a0) + a774: d84a sw s2,48(sp) + a776: d64e sw s3,44(sp) + a778: de06 sw ra,60(sp) + a77a: dc22 sw s0,56(sp) + a77c: d452 sw s4,40(sp) + a77e: d256 sw s5,36(sp) + a780: d05a sw s6,32(sp) + a782: ce5e sw s7,28(sp) + a784: cc62 sw s8,24(sp) + a786: ca66 sw s9,20(sp) + a788: 892e mv s2,a1 + a78a: 49f070ef jal ra,12428 + a78e: 89aa mv s3,a0 + a790: 24d4 lbu a3,12(s1) + a792: 24ae lhu a1,10(s1) + a794: 248a lhu a0,8(s1) + a796: 0078 addi a4,sp,12 + a798: 00d48613 addi a2,s1,13 + a79c: c12ff0ef jal ra,9bae + a7a0: 14050563 beqz a0,a8ea + a7a4: 6b41 lui s6,0x10 + a7a6: ffa98a93 addi s5,s3,-6 + a7aa: 8baa mv s7,a0 + a7ac: 4401 li s0,0 + a7ae: 99818a13 addi s4,gp,-1640 # 20001350 + a7b2: 1fff8c97 auipc s9,0x1fff8 + a7b6: 1eac8c93 addi s9,s9,490 # 2000299c + a7ba: 1b7d addi s6,s6,-1 # ffff + a7bc: 19ed addi s3,s3,-5 + a7be: 080acab3 zext.h s5,s5 + a7c2: 00c15c03 lhu s8,12(sp) + a7c6: 008bc583 lbu a1,8(s7) + a7ca: 20aa lhu a0,2(s1) + a7cc: 8662 mv a2,s8 + a7ce: e6dff0ef jal ra,a63a + a7d2: 14051a63 bnez a0,a926 + a7d6: 0044c883 lbu a7,4(s1) + a7da: 000a2683 lw a3,0(s4) + a7de: 20aa lhu a0,2(s1) + a7e0: 8856 mv a6,s5 + a7e2: 4781 li a5,0 + a7e4: 99c18713 addi a4,gp,-1636 # 20001354 + a7e8: 8662 mv a2,s8 + a7ea: 85de mv a1,s7 + a7ec: 8c7ff0ef jal ra,a0b2 + a7f0: 12051b63 bnez a0,a926 + a7f4: c80d beqz s0,a826 + a7f6: 002cd783 lhu a5,2(s9) + a7fa: 99c1d703 lhu a4,-1636(gp) # 20001354 + a7fe: 0711 addi a4,a4,4 + a800: 00e79563 bne a5,a4,a80a + a804: 97a2 add a5,a5,s0 + a806: 0737c163 blt a5,s3,a868 + a80a: 1fff8597 auipc a1,0x1fff8 + a80e: 19258593 addi a1,a1,402 # 2000299c + a812: 21be lhu a5,2(a1) + a814: 20aa lhu a0,2(s1) + a816: 02f45433 divu s0,s0,a5 + a81a: a182 sh s0,0(a1) + a81c: 0ee080ef jal ra,1290a + a820: c115 beqz a0,a844 + a822: 4559 li a0,22 + a824: a005 j a844 + a826: 20aa lhu a0,2(s1) + a828: 4749 li a4,18 + a82a: 4681 li a3,0 + a82c: 865a mv a2,s6 + a82e: 45c5 li a1,17 + a830: 95cfe0ef jal ra,898c + a834: 00aca223 sw a0,4(s9) + a838: e11d bnez a0,a85e + a83a: 00abd783 lhu a5,10(s7) + a83e: 4545 li a0,17 + a840: 00f91023 sh a5,0(s2) + a844: 50f2 lw ra,60(sp) + a846: 5462 lw s0,56(sp) + a848: 54d2 lw s1,52(sp) + a84a: 5942 lw s2,48(sp) + a84c: 59b2 lw s3,44(sp) + a84e: 5a22 lw s4,40(sp) + a850: 5a92 lw s5,36(sp) + a852: 5b02 lw s6,32(sp) + a854: 4bf2 lw s7,28(sp) + a856: 4c62 lw s8,24(sp) + a858: 4cd2 lw s9,20(sp) + a85a: 6121 addi sp,sp,64 + a85c: 8082 ret + a85e: 99c1d783 lhu a5,-1636(gp) # 20001354 + a862: 0791 addi a5,a5,4 + a864: 00fc9123 sh a5,2(s9) + a868: 004ca783 lw a5,4(s9) + a86c: 00abd703 lhu a4,10(s7) + a870: 8662 mv a2,s8 + a872: 97a2 add a5,a5,s0 + a874: a398 sb a4,0(a5) + a876: 004ca783 lw a5,4(s9) + a87a: 00140713 addi a4,s0,1 + a87e: 08074733 zext.h a4,a4 + a882: 97ba add a5,a5,a4 + a884: 00abd703 lhu a4,10(s7) + a888: 00e10693 addi a3,sp,14 + a88c: 855e mv a0,s7 + a88e: 8321 srli a4,a4,0x8 + a890: a398 sb a4,0(a5) + a892: 24ae lhu a1,10(s1) + a894: 99c18c13 addi s8,gp,-1636 # 20001354 + a898: f72ff0ef jal ra,a00a + a89c: 00240613 addi a2,s0,2 + a8a0: 00340693 addi a3,s0,3 + a8a4: 0411 addi s0,s0,4 + a8a6: 004ca783 lw a5,4(s9) + a8aa: 8baa mv s7,a0 + a8ac: 08064633 zext.h a2,a2 + a8b0: 0806c6b3 zext.h a3,a3 + a8b4: 08044433 zext.h s0,s0 + a8b8: ed15 bnez a0,a8f4 + a8ba: 97b2 add a5,a5,a2 + a8bc: 577d li a4,-1 + a8be: a398 sb a4,0(a5) + a8c0: 004ca783 lw a5,4(s9) + a8c4: 000a2583 lw a1,0(s4) + a8c8: 97b6 add a5,a5,a3 + a8ca: a398 sb a4,0(a5) + a8cc: 004ca503 lw a0,4(s9) + a8d0: 000c5603 lhu a2,0(s8) + a8d4: 9522 add a0,a0,s0 + a8d6: 1fff6097 auipc ra,0x1fff6 + a8da: f86080e7 jalr -122(ra) # 2000085c + a8de: 000c5783 lhu a5,0(s8) + a8e2: 97a2 add a5,a5,s0 + a8e4: 0807c433 zext.h s0,a5 + a8e8: f00d bnez s0,a80a + a8ea: 249e lhu a5,8(s1) + a8ec: 4529 li a0,10 + a8ee: 00f91023 sh a5,0(s2) + a8f2: bf89 j a844 + a8f4: 8738 lhu a4,14(sp) + a8f6: 97b2 add a5,a5,a2 + a8f8: 000a2583 lw a1,0(s4) + a8fc: a398 sb a4,0(a5) + a8fe: 004ca783 lw a5,4(s9) + a902: 8321 srli a4,a4,0x8 + a904: 97b6 add a5,a5,a3 + a906: a398 sb a4,0(a5) + a908: 004ca503 lw a0,4(s9) + a90c: 000c5603 lhu a2,0(s8) + a910: 9522 add a0,a0,s0 + a912: 1fff6097 auipc ra,0x1fff6 + a916: f4a080e7 jalr -182(ra) # 2000085c + a91a: 000c5783 lhu a5,0(s8) + a91e: 943e add s0,s0,a5 + a920: 08044433 zext.h s0,s0 + a924: bd79 j a7c2 + a926: 00abd783 lhu a5,10(s7) + a92a: 00f91023 sh a5,0(s2) + a92e: ec041ee3 bnez s0,a80a + a932: 249e lhu a5,8(s1) + a934: 00f91023 sh a5,0(s2) + a938: b731 j a844 + +0000a93a : +gattServApp_ProcessReadByTypeReq(): + a93a: 711d addi sp,sp,-96 + a93c: caa6 sw s1,84(sp) + a93e: c8ca sw s2,80(sp) + a940: 84aa mv s1,a0 + a942: 00855903 lhu s2,8(a0) + a946: 212a lhu a0,2(a0) + a948: cca2 sw s0,88(sp) + a94a: c6ce sw s3,76(sp) + a94c: c4d2 sw s4,72(sp) + a94e: c2d6 sw s5,68(sp) + a950: c0da sw s6,64(sp) + a952: de5e sw s7,60(sp) + a954: dc62 sw s8,56(sp) + a956: d86a sw s10,48(sp) + a958: ce86 sw ra,92(sp) + a95a: da66 sw s9,52(sp) + a95c: d66e sw s11,44(sp) + a95e: 8aae mv s5,a1 + a960: 2c9070ef jal ra,12428 + a964: ffd50b13 addi s6,a0,-3 + a968: 4401 li s0,0 + a96a: 1571 addi a0,a0,-4 + a96c: 00d48c13 addi s8,s1,13 + a970: 99818b93 addi s7,gp,-1640 # 20001350 + a974: 99c18a13 addi s4,gp,-1636 # 20001354 + a978: 1fff8d17 auipc s10,0x1fff8 + a97c: 024d0d13 addi s10,s10,36 # 2000299c + a980: 080549b3 zext.h s3,a0 + a984: 11645d63 bge s0,s6,aa9e + a988: 24d4 lbu a3,12(s1) + a98a: 24ae lhu a1,10(s1) + a98c: 01e10713 addi a4,sp,30 + a990: 8662 mv a2,s8 + a992: 854a mv a0,s2 + a994: a1aff0ef jal ra,9bae + a998: 8caa mv s9,a0 + a99a: 10050263 beqz a0,aa9e + a99e: 00a55903 lhu s2,10(a0) + a9a2: 87b0 lhu a2,30(sp) + a9a4: 250c lbu a1,8(a0) + a9a6: 20aa lhu a0,2(s1) + a9a8: c632 sw a2,12(sp) + a9aa: c91ff0ef jal ra,a63a + a9ae: 0e051d63 bnez a0,aaa8 + a9b2: 0044c883 lbu a7,4(s1) + a9b6: 000ba683 lw a3,0(s7) + a9ba: 4632 lw a2,12(sp) + a9bc: 20aa lhu a0,2(s1) + a9be: 884e mv a6,s3 + a9c0: 4781 li a5,0 + a9c2: 8752 mv a4,s4 + a9c4: 85e6 mv a1,s9 + a9c6: eecff0ef jal ra,a0b2 + a9ca: ed79 bnez a0,aaa8 + a9cc: c415 beqz s0,a9f8 + a9ce: 000a5783 lhu a5,0(s4) + a9d2: 002d5703 lhu a4,2(s10) + a9d6: 0789 addi a5,a5,2 + a9d8: 06f70263 beq a4,a5,aa3c + a9dc: 1fff8597 auipc a1,0x1fff8 + a9e0: fc058593 addi a1,a1,-64 # 2000299c + a9e4: 21be lhu a5,2(a1) + a9e6: 20aa lhu a0,2(s1) + a9e8: 02f457b3 divu a5,s0,a5 + a9ec: a19e sh a5,0(a1) + a9ee: 613070ef jal ra,12800 + a9f2: c10d beqz a0,aa14 + a9f4: 4559 li a0,22 + a9f6: a839 j aa14 + a9f8: 20aa lhu a0,2(s1) + a9fa: 6641 lui a2,0x10 + a9fc: 474d li a4,19 + a9fe: 4681 li a3,0 + aa00: 167d addi a2,a2,-1 # ffff + aa02: 45a5 li a1,9 + aa04: f89fd0ef jal ra,898c + aa08: 00ad2223 sw a0,4(s10) + aa0c: e11d bnez a0,aa32 + aa0e: 012a9023 sh s2,0(s5) + aa12: 4545 li a0,17 + aa14: 40f6 lw ra,92(sp) + aa16: 4466 lw s0,88(sp) + aa18: 44d6 lw s1,84(sp) + aa1a: 4946 lw s2,80(sp) + aa1c: 49b6 lw s3,76(sp) + aa1e: 4a26 lw s4,72(sp) + aa20: 4a96 lw s5,68(sp) + aa22: 4b06 lw s6,64(sp) + aa24: 5bf2 lw s7,60(sp) + aa26: 5c62 lw s8,56(sp) + aa28: 5cd2 lw s9,52(sp) + aa2a: 5d42 lw s10,48(sp) + aa2c: 5db2 lw s11,44(sp) + aa2e: 6125 addi sp,sp,96 + aa30: 8082 ret + aa32: 000a5783 lhu a5,0(s4) + aa36: 0789 addi a5,a5,2 + aa38: 00fd1123 sh a5,2(s10) + aa3c: 000a5783 lhu a5,0(s4) + aa40: 97a2 add a5,a5,s0 + aa42: 0567de63 bge a5,s6,aa9e + aa46: 004d2783 lw a5,4(s10) + aa4a: 00acd703 lhu a4,10(s9) + aa4e: 00240d93 addi s11,s0,2 + aa52: 97a2 add a5,a5,s0 + aa54: a398 sb a4,0(a5) + aa56: 004d2783 lw a5,4(s10) + aa5a: 00acd703 lhu a4,10(s9) + aa5e: 0405 addi s0,s0,1 + aa60: 08044433 zext.h s0,s0 + aa64: 8321 srli a4,a4,0x8 + aa66: 97a2 add a5,a5,s0 + aa68: a398 sb a4,0(a5) + aa6a: 004d2503 lw a0,4(s10) + aa6e: 000a5603 lhu a2,0(s4) + aa72: 000ba583 lw a1,0(s7) + aa76: 080dcdb3 zext.h s11,s11 + aa7a: 956e add a0,a0,s11 + aa7c: 1fff6097 auipc ra,0x1fff6 + aa80: de0080e7 jalr -544(ra) # 2000085c + aa84: 000a5783 lhu a5,0(s4) + aa88: 9dbe add s11,s11,a5 + aa8a: 67c1 lui a5,0x10 + aa8c: 17fd addi a5,a5,-1 # ffff + aa8e: 080dc433 zext.h s0,s11 + aa92: eef909e3 beq s2,a5,a984 + aa96: 0905 addi s2,s2,1 + aa98: 08094933 zext.h s2,s2 + aa9c: b5e5 j a984 + aa9e: 4529 li a0,10 + aaa0: fc15 bnez s0,a9dc + aaa2: 012a9023 sh s2,0(s5) + aaa6: b7bd j aa14 + aaa8: dc6d beqz s0,aaa2 + aaaa: bf0d j a9dc + +0000aaac : +GATT_RegisterService(): + aaac: 211e lhu a5,0(a0) + aaae: 1141 addi sp,sp,-16 + aab0: c226 sw s1,4(sp) + aab2: c606 sw ra,12(sp) + aab4: c422 sw s0,8(sp) + aab6: c04a sw s2,0(sp) + aab8: 4144 lw s1,4(a0) + aaba: eb89 bnez a5,aacc + aabc: 4789 li a5,2 + aabe: 40b2 lw ra,12(sp) + aac0: 4422 lw s0,8(sp) + aac2: 4492 lw s1,4(sp) + aac4: 4902 lw s2,0(sp) + aac6: 853e mv a0,a5 + aac8: 0141 addi sp,sp,16 + aaca: 8082 ret + aacc: 2094 lbu a3,0(s1) + aace: 40d0 lw a2,4(s1) + aad0: 842a mv s0,a0 + aad2: 4589 li a1,2 + aad4: 89c18513 addi a0,gp,-1892 # 20001254 + aad8: 009070ef jal ra,122e0 + aadc: c911 beqz a0,aaf0 + aade: 203c lbu a5,2(s0) + aae0: 4725 li a4,9 + aae2: 17e5 addi a5,a5,-7 + aae4: 0ff7f793 zext.b a5,a5 + aae8: 00f77d63 bgeu a4,a5,ab02 + aaec: 47e1 li a5,24 + aaee: bfc1 j aabe + aaf0: 2094 lbu a3,0(s1) + aaf2: 40d0 lw a2,4(s1) + aaf4: 4589 li a1,2 + aaf6: 89818513 addi a0,gp,-1896 # 20001250 + aafa: 7e6070ef jal ra,122e0 + aafe: f165 bnez a0,aade + ab00: bf75 j aabc + ab02: 81c18913 addi s2,gp,-2020 # 200011d4 + ab06: 00095683 lhu a3,0(s2) + ab0a: 4785 li a5,1 + ab0c: dacd beqz a3,aabe + ab0e: 201a lhu a4,0(s0) + ab10: 9736 add a4,a4,a3 + ab12: 66c1 lui a3,0x10 + ab14: fae6c5e3 blt a3,a4,aabe + ab18: 6591 lui a1,0x4 + ab1a: 70258593 addi a1,a1,1794 # 4702 + ab1e: 4531 li a0,12 + ab20: 3cd0f0ef jal ra,1a6ec + ab24: 84aa mv s1,a0 + ab26: 47cd li a5,19 + ab28: d959 beqz a0,aabe + ab2a: 4631 li a2,12 + ab2c: 4581 li a1,0 + ab2e: 1fff6097 auipc ra,0x1fff6 + ab32: d6c080e7 jalr -660(ra) # 2000089a + ab36: 201a lhu a4,0(s0) + ab38: 00095583 lhu a1,0(s2) + ab3c: 4601 li a2,0 + ab3e: 4781 li a5,0 + ab40: 00f586b3 add a3,a1,a5 + ab44: 0806c6b3 zext.h a3,a3 + ab48: 02e7e763 bltu a5,a4,ab76 + ab4c: c601 beqz a2,ab54 + ab4e: 972e add a4,a4,a1 + ab50: 00e91023 sh a4,0(s2) + ab54: 0004a023 sw zero,0(s1) + ab58: 4621 li a2,8 + ab5a: 85a2 mv a1,s0 + ab5c: 00448513 addi a0,s1,4 + ab60: 1fff6097 auipc ra,0x1fff6 + ab64: cfc080e7 jalr -772(ra) # 2000085c + ab68: 9ac18713 addi a4,gp,-1620 # 20001364 + ab6c: 431c lw a5,0(a4) + ab6e: cf81 beqz a5,ab86 + ab70: 873e mv a4,a5 + ab72: 439c lw a5,0(a5) + ab74: bfed j ab6e + ab76: 4050 lw a2,4(s0) + ab78: 00479513 slli a0,a5,0x4 + ab7c: 0785 addi a5,a5,1 + ab7e: 962a add a2,a2,a0 + ab80: a636 sh a3,10(a2) + ab82: 4605 li a2,1 + ab84: bf75 j ab40 + ab86: c304 sw s1,0(a4) + ab88: 4781 li a5,0 + ab8a: bf15 j aabe + +0000ab8c : +GATTServApp_RegisterService(): + ab8c: 1101 addi sp,sp,-32 + ab8e: ce06 sw ra,28(sp) + ab90: cc22 sw s0,24(sp) + ab92: ca26 sw s1,20(sp) + ab94: c84a sw s2,16(sp) + ab96: e909 bnez a0,aba8 + ab98: 4409 li s0,2 + ab9a: 40f2 lw ra,28(sp) + ab9c: 8522 mv a0,s0 + ab9e: 4462 lw s0,24(sp) + aba0: 44d2 lw s1,20(sp) + aba2: 4942 lw s2,16(sp) + aba4: 6105 addi sp,sp,32 + aba6: 8082 ret + aba8: c62a sw a0,12(sp) + abaa: 84aa mv s1,a0 + abac: 0028 addi a0,sp,8 + abae: 8936 mv s2,a3 + abb0: 846c sh a1,8(sp) + abb2: 8550 sb a2,10(sp) + abb4: ef9ff0ef jal ra,aaac + abb8: 842a mv s0,a0 + abba: f165 bnez a0,ab9a + abbc: fc090fe3 beqz s2,ab9a + abc0: 24be lhu a5,10(s1) + abc2: dbf9 beqz a5,ab98 + abc4: 6591 lui a1,0x4 + abc6: 70558593 addi a1,a1,1797 # 4705 + abca: 4531 li a0,12 + abcc: 3210f0ef jal ra,1a6ec + abd0: 87aa mv a5,a0 + abd2: c105 beqz a0,abf2 + abd4: 24ba lhu a4,10(s1) + abd6: 9b018693 addi a3,gp,-1616 # 20001368 + abda: 00052023 sw zero,0(a0) + abde: a15a sh a4,4(a0) + abe0: 4298 lw a4,0(a3) + abe2: 01252423 sw s2,8(a0) + abe6: c701 beqz a4,abee + abe8: 86ba mv a3,a4 + abea: 4318 lw a4,0(a4) + abec: bfed j abe6 + abee: c29c sw a5,0(a3) + abf0: b76d j ab9a + abf2: 444d li s0,19 + abf4: b75d j ab9a + +0000abf6 : +GATTServApp_AddService(): + abf6: 9b418793 addi a5,gp,-1612 # 2000136c + abfa: 2398 lbu a4,0(a5) + abfc: e30d bnez a4,ac1e + abfe: 4705 li a4,1 + ac00: a398 sb a4,0(a5) + ac02: 8905 andi a0,a0,1 + ac04: cd09 beqz a0,ac1e + ac06: 1fff8697 auipc a3,0x1fff8 + ac0a: d8a68693 addi a3,a3,-630 # 20002990 + ac0e: 4641 li a2,16 + ac10: 4591 li a1,4 + ac12: 1fff8517 auipc a0,0x1fff8 + ac16: d3e50513 addi a0,a0,-706 # 20002950 + ac1a: f73ff06f j ab8c + ac1e: 4501 li a0,0 + ac20: 8082 ret + +0000ac22 : +GATTServApp_RegisterForMsg(): + ac22: 80a18fa3 sb a0,-2017(gp) # 200011d7 + ac26: 8082 ret + +0000ac28 : +GATTServApp_InitCharCfg(): + ac28: 6741 lui a4,0x10 + ac2a: 177d addi a4,a4,-1 # ffff + ac2c: 00e51563 bne a0,a4,ac36 + ac30: 852e mv a0,a1 + ac32: cbcfe06f j 90ee + ac36: 1141 addi sp,sp,-16 + ac38: c606 sw ra,12(sp) + ac3a: c62fe0ef jal ra,909c + ac3e: c509 beqz a0,ac48 + ac40: 57fd li a5,-1 + ac42: a11e sh a5,0(a0) + ac44: 00050123 sb zero,2(a0) + ac48: 40b2 lw ra,12(sp) + ac4a: 0141 addi sp,sp,16 + ac4c: 8082 ret + +0000ac4e : +gattServApp_HandleConnStatusCB(): + ac4e: 1101 addi sp,sp,-32 + ac50: ca26 sw s1,20(sp) + ac52: ce06 sw ra,28(sp) + ac54: cc22 sw s0,24(sp) + ac56: c84a sw s2,16(sp) + ac58: 4785 li a5,1 + ac5a: 84aa mv s1,a0 + ac5c: 04f59063 bne a1,a5,ac9c + ac60: 8526 mv a0,s1 + ac62: f0efe0ef jal ra,9370 + ac66: e921 bnez a0,acb6 + ac68: 6941 lui s2,0x10 + ac6a: fff90593 addi a1,s2,-1 # ffff + ac6e: 00e10713 addi a4,sp,14 + ac72: 4689 li a3,2 + ac74: 88c18613 addi a2,gp,-1908 # 20001244 + ac78: 4505 li a0,1 + ac7a: f35fe0ef jal ra,9bae + ac7e: 842a mv s0,a0 + ac80: 197d addi s2,s2,-1 + ac82: c405 beqz s0,acaa + ac84: 444c lw a1,12(s0) + ac86: 8526 mv a0,s1 + ac88: fa1ff0ef jal ra,ac28 + ac8c: 8730 lhu a2,14(sp) + ac8e: 8522 mv a0,s0 + ac90: 4681 li a3,0 + ac92: 85ca mv a1,s2 + ac94: b76ff0ef jal ra,a00a + ac98: 842a mv s0,a0 + ac9a: b7e5 j ac82 + ac9c: 4789 li a5,2 + ac9e: 00f59663 bne a1,a5,acaa + aca2: 4585 li a1,1 + aca4: 08e010ef jal ra,bd32 + aca8: dd45 beqz a0,ac60 + acaa: 40f2 lw ra,28(sp) + acac: 4462 lw s0,24(sp) + acae: 44d2 lw s1,20(sp) + acb0: 4942 lw s2,16(sp) + acb2: 6105 addi sp,sp,32 + acb4: 8082 ret + acb6: e6efe0ef jal ra,9324 + acba: b77d j ac68 + +0000acbc : +GATT_InitServer(): + acbc: 1141 addi sp,sp,-16 + acbe: c422 sw s0,8(sp) + acc0: c606 sw ra,12(sp) + acc2: c226 sw s1,4(sp) + acc4: 9cc18413 addi s0,gp,-1588 # 20001384 + acc8: 3068 lbu a0,7(s0) + acca: 9a01a423 sw zero,-1624(gp) # 20001360 + acce: 9a01a223 sw zero,-1628(gp) # 2000135c + acd2: 9a01a023 sw zero,-1632(gp) # 20001358 + acd6: cd3d beqz a0,ad54 + acd8: 06e00793 li a5,110 + acdc: 02f50533 mul a0,a0,a5 + ace0: 6591 lui a1,0x4 + ace2: 70158593 addi a1,a1,1793 # 4701 + ace6: 9a818493 addi s1,gp,-1624 # 20001360 + acea: 0519 addi a0,a0,6 + acec: 08054533 zext.h a0,a0 + acf0: 1fd0f0ef jal ra,1a6ec + acf4: 3070 lbu a2,7(s0) + acf6: 06e00793 li a5,110 + acfa: 4581 li a1,0 + acfc: 02f60633 mul a2,a2,a5 + ad00: c088 sw a0,0(s1) + ad02: 0619 addi a2,a2,6 + ad04: 1fff6097 auipc ra,0x1fff6 + ad08: b96080e7 jalr -1130(ra) # 2000089a + ad0c: 409c lw a5,0(s1) + ad0e: 3078 lbu a4,7(s0) + ad10: 4581 li a1,0 + ad12: 00478693 addi a3,a5,4 + ad16: 557d li a0,-1 + ad18: 06e5c663 blt a1,a4,ad84 + ad1c: 06400693 li a3,100 + ad20: 02d706b3 mul a3,a4,a3 + ad24: 4601 li a2,0 + ad26: 55fd li a1,-1 + ad28: 97b6 add a5,a5,a3 + ad2a: 9af1a223 sw a5,-1628(gp) # 2000135c + ad2e: 86be mv a3,a5 + ad30: a28e sh a1,0(a3) + ad32: b2ac sb a1,3(a3) + ad34: a2ac sb a1,2(a3) + ad36: 00068223 sb zero,4(a3) + ad3a: 0605 addi a2,a2,1 + ad3c: 0699 addi a3,a3,6 + ad3e: fec759e3 bge a4,a2,ad30 + ad42: 56f9 li a3,-2 + ad44: a396 sh a3,0(a5) + ad46: 0705 addi a4,a4,1 + ad48: 4699 li a3,6 + ad4a: 02d70733 mul a4,a4,a3 + ad4e: 97ba add a5,a5,a4 + ad50: 9af1a023 sw a5,-1632(gp) # 20001358 + ad54: fffff517 auipc a0,0xfffff + ad58: 87650513 addi a0,a0,-1930 # 95ca + ad5c: bebfd0ef jal ra,8946 + ad60: fffff517 auipc a0,0xfffff + ad64: 9ee50513 addi a0,a0,-1554 # 974e + ad68: 5f6070ef jal ra,1235e + ad6c: ffffe517 auipc a0,0xffffe + ad70: 7d050513 addi a0,a0,2000 # 953c + ad74: 741000ef jal ra,bcb4 + ad78: 40b2 lw ra,12(sp) + ad7a: 4422 lw s0,8(sp) + ad7c: 4492 lw s1,4(sp) + ad7e: 4501 li a0,0 + ad80: 0141 addi sp,sp,16 + ad82: 8082 ret + ad84: fea69e23 sh a0,-4(a3) + ad88: 8636 mv a2,a3 + ad8a: 06068813 addi a6,a3,96 + ad8e: 00061023 sh zero,0(a2) + ad92: 00062423 sw zero,8(a2) + ad96: 0631 addi a2,a2,12 + ad98: ff061be3 bne a2,a6,ad8e + ad9c: 0585 addi a1,a1,1 + ad9e: 06468693 addi a3,a3,100 + ada2: bf9d j ad18 + +0000ada4 : +GATTServApp_Init(): + ada4: 1141 addi sp,sp,-16 + ada6: c606 sw ra,12(sp) + ada8: c422 sw s0,8(sp) + adaa: 842a mv s0,a0 + adac: 201060ef jal ra,117ac + adb0: b5cfe0ef jal ra,910c + adb4: 9a01a503 lw a0,-1632(gp) # 20001358 + adb8: 80818f23 sb s0,-2018(gp) # 200011d6 + adbc: b32fe0ef jal ra,90ee + adc0: 82818023 sb s0,-2016(gp) # 200011d8 + adc4: 4422 lw s0,8(sp) + adc6: 40b2 lw ra,12(sp) + adc8: 00000517 auipc a0,0x0 + adcc: e8650513 addi a0,a0,-378 # ac4e + add0: 0141 addi sp,sp,16 + add2: 6e30006f j bcb4 + +0000add6 : +GATTServApp_ProcessEvent(): + add6: 60559793 sext.h a5,a1 + adda: 2c07de63 bgez a5,b0b6 + adde: 7179 addi sp,sp,-48 + ade0: 81e1c503 lbu a0,-2018(gp) # 200011d6 + ade4: d422 sw s0,40(sp) + ade6: d04a sw s2,32(sp) + ade8: d606 sw ra,44(sp) + adea: d226 sw s1,36(sp) + adec: ce4e sw s3,28(sp) + adee: 892e mv s2,a1 + adf0: e0ffa0ef jal ra,5bfe + adf4: 842a mv s0,a0 + adf6: c559 beqz a0,ae84 + adf8: 2118 lbu a4,0(a0) + adfa: 0b000793 li a5,176 + adfe: 08f71063 bne a4,a5,ae7e + ae02: 4785 li a5,1 + ae04: 99818493 addi s1,gp,-1640 # 20001350 + ae08: 84dc sb a5,9(sp) + ae0a: 409c lw a5,0(s1) + ae0c: 00011523 sh zero,10(sp) + ae10: eb89 bnez a5,ae22 + ae12: 265d jal b1b8 + ae14: 6591 lui a1,0x4 + ae16: 70358593 addi a1,a1,1795 # 4703 + ae1a: 0d30f0ef jal ra,1a6ec + ae1e: c088 sw a0,0(s1) + ae20: c931 beqz a0,ae74 + ae22: 4661 li a2,24 + ae24: 4581 li a1,0 + ae26: 1fff8517 auipc a0,0x1fff8 + ae2a: b7650513 addi a0,a0,-1162 # 2000299c + ae2e: 1fff6097 auipc ra,0x1fff6 + ae32: a6c080e7 jalr -1428(ra) # 2000089a + ae36: 00444983 lbu s3,4(s0) + ae3a: 4789 li a5,2 + ae3c: 08f99363 bne s3,a5,aec2 + ae40: 2ea5 jal b1b8 + ae42: 1fff8497 auipc s1,0x1fff8 + ae46: b5a48493 addi s1,s1,-1190 # 2000299c + ae4a: a08a sh a0,0(s1) + ae4c: 202a lhu a0,2(s0) + ae4e: 85a6 mv a1,s1 + ae50: 03b070ef jal ra,1268a + ae54: 86aa mv a3,a0 + ae56: 209e lhu a5,0(s1) + ae58: 202a lhu a0,2(s0) + ae5a: 241a lhu a4,8(s0) + ae5c: ee8d bnez a3,ae96 + ae5e: 00f76363 bltu a4,a5,ae64 + ae62: a41e sh a5,8(s0) + ae64: 240e lhu a1,8(s0) + ae66: ae7fd0ef jal ra,894c + ae6a: 8522 mv a0,s0 + ae6c: a25fd0ef jal ra,8890 + ae70: 849c lbu a5,9(sp) + ae72: c791 beqz a5,ae7e + ae74: 204c lbu a1,4(s0) + ae76: 00840513 addi a0,s0,8 + ae7a: c89fd0ef jal ra,8b02 + ae7e: 8522 mv a0,s0 + ae80: ccbfa0ef jal ra,5b4a + ae84: 50b2 lw ra,44(sp) + ae86: 5422 lw s0,40(sp) + ae88: 5492 lw s1,36(sp) + ae8a: 49f2 lw s3,28(sp) + ae8c: 68f91513 binvi a0,s2,0xf + ae90: 5902 lw s2,32(sp) + ae92: 6145 addi sp,sp,48 + ae94: 8082 ret + ae96: 00f76363 bltu a4,a5,ae9c + ae9a: a41e sh a5,8(s0) + ae9c: 241e lhu a5,8(s0) + ae9e: 45d9 li a1,22 + aea0: 1fff8697 auipc a3,0x1fff8 + aea4: afc68693 addi a3,a3,-1284 # 2000299c + aea8: 460d li a2,3 + aeaa: a09e sh a5,0(s1) + aeac: a55fd0ef jal ra,8900 + aeb0: 458d li a1,3 + aeb2: dd45 beqz a0,ae6a + aeb4: 1fff8517 auipc a0,0x1fff8 + aeb8: ae850513 addi a0,a0,-1304 # 2000299c + aebc: c47fd0ef jal ra,8b02 + aec0: b76d j ae6a + aec2: ffa98793 addi a5,s3,-6 + aec6: 0ff7f793 zext.b a5,a5 + aeca: 4749 li a4,18 + aecc: f8f76fe3 bltu a4,a5,ae6a + aed0: 0000f717 auipc a4,0xf + aed4: c1470713 addi a4,a4,-1004 # 19ae4 + aed8: 20e7c7b3 sh2add a5,a5,a4 + aedc: 439c lw a5,0(a5) + aede: 97ba add a5,a5,a4 + aee0: 8782 jr a5 + aee2: 00a10593 addi a1,sp,10 + aee6: 8522 mv a0,s0 + aee8: dceff0ef jal ra,a4b6 + aeec: 84aa mv s1,a0 + aeee: dd35 beqz a0,ae6a + aef0: 47d9 li a5,22 + aef2: 0af49263 bne s1,a5,af96 + aef6: 0985 addi s3,s3,1 + aef8: 202a lhu a0,2(s0) + aefa: 0ff9f993 zext.b s3,s3 + aefe: 1fff8697 auipc a3,0x1fff8 + af02: a9e68693 addi a3,a3,-1378 # 2000299c + af06: 864e mv a2,s3 + af08: 45d9 li a1,22 + af0a: 9f7fd0ef jal ra,8900 + af0e: dd31 beqz a0,ae6a + af10: 85ce mv a1,s3 + af12: b74d j aeb4 + af14: 00a10593 addi a1,sp,10 + af18: 8522 mv a0,s0 + af1a: a21ff0ef jal ra,a93a + af1e: b7f9 j aeec + af20: 00845983 lhu s3,8(s0) + af24: 006c addi a1,sp,12 + af26: 854e mv a0,s3 + af28: 84dfe0ef jal ra,9774 + af2c: 84aa mv s1,a0 + af2e: c12d beqz a0,af90 + af30: 202a lhu a0,2(s0) + af32: 6641 lui a2,0x10 + af34: 00e10693 addi a3,sp,14 + af38: 4755 li a4,21 + af3a: 167d addi a2,a2,-1 # ffff + af3c: 45ad li a1,11 + af3e: a4ffd0ef jal ra,898c + af42: 1fff8997 auipc s3,0x1fff8 + af46: a5a98993 addi s3,s3,-1446 # 2000299c + af4a: 00a9a223 sw a0,4(s3) + af4e: 86aa mv a3,a0 + af50: cd45 beqz a0,b008 + af52: 00444883 lbu a7,4(s0) + af56: 00e15803 lhu a6,14(sp) + af5a: 8630 lhu a2,12(sp) + af5c: 202a lhu a0,2(s0) + af5e: 85a6 mv a1,s1 + af60: 4781 li a5,0 + af62: 874e mv a4,s3 + af64: 94eff0ef jal ra,a0b2 + af68: 84aa mv s1,a0 + af6a: 0e051063 bnez a0,b04a + af6e: 202a lhu a0,2(s0) + af70: 85ce mv a1,s3 + af72: 0e5070ef jal ra,12856 + af76: ee050ae3 beqz a0,ae6a + af7a: 202a lhu a0,2(s0) + af7c: 45d9 li a1,22 + af7e: 86ce mv a3,s3 + af80: 462d li a2,11 + af82: 97ffd0ef jal ra,8900 + af86: 45ad li a1,11 + af88: ee0501e3 beqz a0,ae6a + af8c: 854e mv a0,s3 + af8e: b73d j aebc + af90: 01311523 sh s3,10(sp) + af94: 4485 li s1,1 + af96: 3018 lbu a4,1(s0) + af98: 47d1 li a5,20 + af9a: ecf708e3 beq a4,a5,ae6a + af9e: 205c lbu a5,4(s0) + afa0: 1fff8997 auipc s3,0x1fff8 + afa4: 9fc98993 addi s3,s3,-1540 # 2000299c + afa8: 202a lhu a0,2(s0) + afaa: 00f98023 sb a5,0(s3) + afae: 853c lhu a5,10(sp) + afb0: 85ce mv a1,s3 + afb2: 00998223 sb s1,4(s3) + afb6: 00f99123 sh a5,2(s3) + afba: 5a6070ef jal ra,12560 + afbe: ea0506e3 beqz a0,ae6a + afc2: 202a lhu a0,2(s0) + afc4: 86ce mv a3,s3 + afc6: 4605 li a2,1 + afc8: 45d9 li a1,22 + afca: 937fd0ef jal ra,8900 + afce: e8050ee3 beqz a0,ae6a + afd2: 4585 li a1,1 + afd4: bf65 j af8c + afd6: 00845983 lhu s3,8(s0) + afda: 006c addi a1,sp,12 + afdc: 854e mv a0,s3 + afde: f96fe0ef jal ra,9774 + afe2: 84aa mv s1,a0 + afe4: d555 beqz a0,af90 + afe6: 202a lhu a0,2(s0) + afe8: 6641 lui a2,0x10 + afea: 00e10693 addi a3,sp,14 + afee: 4759 li a4,22 + aff0: 167d addi a2,a2,-1 # ffff + aff2: 45b5 li a1,13 + aff4: 999fd0ef jal ra,898c + aff8: 1fff8997 auipc s3,0x1fff8 + affc: 9a498993 addi s3,s3,-1628 # 2000299c + b000: 00a9a223 sw a0,4(s3) + b004: 86aa mv a3,a0 + b006: e509 bnez a0,b010 + b008: 241e lhu a5,8(s0) + b00a: 44c5 li s1,17 + b00c: 857c sh a5,10(sp) + b00e: b761 j af96 + b010: 00444883 lbu a7,4(s0) + b014: 00e15803 lhu a6,14(sp) + b018: 243e lhu a5,10(s0) + b01a: 8630 lhu a2,12(sp) + b01c: 202a lhu a0,2(s0) + b01e: 85a6 mv a1,s1 + b020: 874e mv a4,s3 + b022: 890ff0ef jal ra,a0b2 + b026: 84aa mv s1,a0 + b028: e10d bnez a0,b04a + b02a: 202a lhu a0,2(s0) + b02c: 85ce mv a1,s3 + b02e: 05d070ef jal ra,1288a + b032: e2050ce3 beqz a0,ae6a + b036: 202a lhu a0,2(s0) + b038: 45d9 li a1,22 + b03a: 86ce mv a3,s3 + b03c: 4635 li a2,13 + b03e: 8c3fd0ef jal ra,8900 + b042: 45b5 li a1,13 + b044: e20503e3 beqz a0,ae6a + b048: b791 j af8c + b04a: 47d9 li a5,22 + b04c: 0049a503 lw a0,4(s3) + b050: 00f49763 bne s1,a5,b05e + b054: 1fff6097 auipc ra,0x1fff6 + b058: e6c080e7 jalr -404(ra) # 20000ec0 + b05c: b539 j ae6a + b05e: 1fff6097 auipc ra,0x1fff6 + b062: e62080e7 jalr -414(ra) # 20000ec0 + b066: 241e lhu a5,8(s0) + b068: 857c sh a5,10(sp) + b06a: b735 j af96 + b06c: 00a10593 addi a1,sp,10 + b070: 8522 mv a0,s0 + b072: af2ff0ef jal ra,a364 + b076: bd9d j aeec + b078: 00a10593 addi a1,sp,10 + b07c: 8522 mv a0,s0 + b07e: eeeff0ef jal ra,a76c + b082: b5ad j aeec + b084: 00910613 addi a2,sp,9 + b088: 00a10593 addi a1,sp,10 + b08c: 8522 mv a0,s0 + b08e: 9e7fe0ef jal ra,9a74 + b092: bda9 j aeec + b094: 00a10593 addi a1,sp,10 + b098: 8522 mv a0,s0 + b09a: 8edfe0ef jal ra,9986 + b09e: 84aa mv s1,a0 + b0a0: e40518e3 bnez a0,aef0 + b0a4: 000104a3 sb zero,9(sp) + b0a8: b3c9 j ae6a + b0aa: 00a10593 addi a1,sp,10 + b0ae: 8522 mv a0,s0 + b0b0: faefe0ef jal ra,985e + b0b4: bd25 j aeec + b0b6: 4501 li a0,0 + b0b8: 8082 ret + +0000b0ba : +l2capHandleConnStatusCB(): + b0ba: 8082 ret + +0000b0bc : +l2capFreeChannel(): + b0bc: 1141 addi sp,sp,-16 + b0be: c226 sw s1,4(sp) + b0c0: 4544 lw s1,12(a0) + b0c2: c422 sw s0,8(sp) + b0c4: c606 sw ra,12(sp) + b0c6: 842a mv s0,a0 + b0c8: c095 beqz s1,b0ec + b0ca: 44c8 lw a0,12(s1) + b0cc: c509 beqz a0,b0d6 + b0ce: 1fff6097 auipc ra,0x1fff6 + b0d2: df2080e7 jalr -526(ra) # 20000ec0 + b0d6: 48c8 lw a0,20(s1) + b0d8: c509 beqz a0,b0e2 + b0da: 1fff6097 auipc ra,0x1fff6 + b0de: de6080e7 jalr -538(ra) # 20000ec0 + b0e2: 8526 mv a0,s1 + b0e4: 1fff6097 auipc ra,0x1fff6 + b0e8: ddc080e7 jalr -548(ra) # 20000ec0 + b0ec: 8522 mv a0,s0 + b0ee: 4641 li a2,16 + b0f0: 4581 li a1,0 + b0f2: 1fff5097 auipc ra,0x1fff5 + b0f6: 7a8080e7 jalr 1960(ra) # 2000089a + b0fa: 57fd li a5,-1 + b0fc: b41c sb a5,9(s0) + b0fe: 40b2 lw ra,12(sp) + b100: 4422 lw s0,8(sp) + b102: 4492 lw s1,4(sp) + b104: 0141 addi sp,sp,16 + b106: 8082 ret + +0000b108 : +l2capHandleTimerCB(): + b108: c11d beqz a0,b12e + b10a: 213e lhu a5,2(a0) + b10c: 1141 addi sp,sp,-16 + b10e: c422 sw s0,8(sp) + b110: c606 sw ra,12(sp) + b112: 842a mv s0,a0 + b114: cb89 beqz a5,b126 + b116: 45dd li a1,23 + b118: 23e5 jal b700 + b11a: 8522 mv a0,s0 + b11c: 4422 lw s0,8(sp) + b11e: 40b2 lw ra,12(sp) + b120: 0141 addi sp,sp,16 + b122: f9bff06f j b0bc + b126: 40b2 lw ra,12(sp) + b128: 4422 lw s0,8(sp) + b12a: 0141 addi sp,sp,16 + b12c: 8082 ret + b12e: 8082 ret + +0000b130 : +l2capFreePendingPkt(): + b130: 1141 addi sp,sp,-16 + b132: c422 sw s0,8(sp) + b134: 47b1 li a5,12 + b136: ffc50413 addi s0,a0,-4 + b13a: 02f407b3 mul a5,s0,a5 + b13e: c226 sw s1,4(sp) + b140: 1fff8497 auipc s1,0x1fff8 + b144: 87448493 addi s1,s1,-1932 # 200029b4 + b148: c606 sw ra,12(sp) + b14a: 97a6 add a5,a5,s1 + b14c: 27ba lhu a4,10(a5) + b14e: 02b71563 bne a4,a1,b178 + b152: 43c8 lw a0,4(a5) + b154: c115 beqz a0,b178 + b156: 0ff00793 li a5,255 + b15a: 00f60563 beq a2,a5,b164 + b15e: 211c lbu a5,0(a0) + b160: 00c79c63 bne a5,a2,b178 + b164: 1fff6097 auipc ra,0x1fff6 + b168: d5c080e7 jalr -676(ra) # 20000ec0 + b16c: 47b1 li a5,12 + b16e: 02f40433 mul s0,s0,a5 + b172: 94a2 add s1,s1,s0 + b174: 0004a223 sw zero,4(s1) + b178: 40b2 lw ra,12(sp) + b17a: 4422 lw s0,8(sp) + b17c: 4492 lw s1,4(sp) + b17e: 0141 addi sp,sp,16 + b180: 8082 ret + +0000b182 : +l2capHandleRxError(): + b182: 8082 ret + +0000b184 : +l2capStartTimer(): + b184: 64000613 li a2,1600 + b188: 02c58633 mul a2,a1,a2 + b18c: 00950693 addi a3,a0,9 + b190: 85aa mv a1,a0 + b192: 00000517 auipc a0,0x0 + b196: f7650513 addi a0,a0,-138 # b108 + b19a: ec7fa06f j 6060 + +0000b19e : +l2capStopTimer(): + b19e: 1141 addi sp,sp,-16 + b1a0: c422 sw s0,8(sp) + b1a2: c606 sw ra,12(sp) + b1a4: 842a mv s0,a0 + b1a6: 3508 lbu a0,9(a0) + b1a8: 802fb0ef jal ra,61aa + b1ac: 57fd li a5,-1 + b1ae: b41c sb a5,9(s0) + b1b0: 40b2 lw ra,12(sp) + b1b2: 4422 lw s0,8(sp) + b1b4: 0141 addi sp,sp,16 + b1b6: 8082 ret + +0000b1b8 : +L2CAP_GetMTU(): + b1b8: 9bc1d503 lhu a0,-1604(gp) # 20001374 + b1bc: 8082 ret + +0000b1be : +L2CAP_HostNumCompletedPkts(): + b1be: 8082 ret + +0000b1c0 : +L2CAP_RegisterApp(): + b1c0: ffc58793 addi a5,a1,-4 + b1c4: 470d li a4,3 + b1c6: 0807c6b3 zext.h a3,a5 + b1ca: 00d76e63 bltu a4,a3,b1e6 + b1ce: 4731 li a4,12 + b1d0: 02e78733 mul a4,a5,a4 + b1d4: 1fff7797 auipc a5,0x1fff7 + b1d8: 7e078793 addi a5,a5,2016 # 200029b4 + b1dc: 97ba add a5,a5,a4 + b1de: a3a8 sb a0,2(a5) + b1e0: a38e sh a1,0(a5) + b1e2: 4501 li a0,0 + b1e4: 8082 ret + b1e6: 4509 li a0,2 + b1e8: 8082 ret + +0000b1ea : +L2CAP_SetBufSize(): + b1ea: 20400793 li a5,516 + b1ee: 0af55533 minu a0,a0,a5 + b1f2: 1571 addi a0,a0,-4 + b1f4: 9aa19e23 sh a0,-1604(gp) # 20001374 + b1f8: 9cb18023 sb a1,-1600(gp) # 20001378 + b1fc: 9ab18fa3 sb a1,-1601(gp) # 20001377 + b200: 8082 ret + +0000b202 : +L2CAP_bm_alloc(): + b202: 6595 lui a1,0x5 + b204: 1141 addi sp,sp,-16 + b206: 0519 addi a0,a0,6 + b208: c0358593 addi a1,a1,-1021 # 4c03 + b20c: c606 sw ra,12(sp) + b20e: 08054533 zext.h a0,a0 + b212: 4da0f0ef jal ra,1a6ec + b216: c511 beqz a0,b222 + b218: 40b2 lw ra,12(sp) + b21a: 55e9 li a1,-6 + b21c: 0141 addi sp,sp,16 + b21e: 0340706f j 12252 + b222: 40b2 lw ra,12(sp) + b224: 0141 addi sp,sp,16 + b226: 8082 ret + +0000b228 : +L2CAP_Init(): + b228: 9c018023 sb zero,-1600(gp) # 20001378 + b22c: 4785 li a5,1 + b22e: 1141 addi sp,sp,-16 + b230: 9af18f23 sb a5,-1602(gp) # 20001376 + b234: c606 sw ra,12(sp) + b236: c422 sw s0,8(sp) + b238: 9a019e23 sh zero,-1604(gp) # 20001374 + b23c: 842a mv s0,a0 + b23e: 081000ef jal ra,babe + b242: 03000613 li a2,48 + b246: 4581 li a1,0 + b248: 1fff7517 auipc a0,0x1fff7 + b24c: 76c50513 addi a0,a0,1900 # 200029b4 + b250: 9c8180a3 sb s0,-1599(gp) # 20001379 + b254: 1fff5097 auipc ra,0x1fff5 + b258: 646080e7 jalr 1606(ra) # 2000089a + b25c: 253000ef jal ra,bcae + b260: 47b1 li a5,12 + b262: 02f50533 mul a0,a0,a5 + b266: 6595 lui a1,0x5 + b268: c0658593 addi a1,a1,-1018 # 4c06 + b26c: 08054533 zext.h a0,a0 + b270: 47c0f0ef jal ra,1a6ec + b274: 9aa1ac23 sw a0,-1608(gp) # 20001370 + b278: cd09 beqz a0,b292 + b27a: 842a mv s0,a0 + b27c: 233000ef jal ra,bcae + b280: 4631 li a2,12 + b282: 02c50633 mul a2,a0,a2 + b286: 4581 li a1,0 + b288: 8522 mv a0,s0 + b28a: 1fff5097 auipc ra,0x1fff5 + b28e: 610080e7 jalr 1552(ra) # 2000089a + b292: 4422 lw s0,8(sp) + b294: 40b2 lw ra,12(sp) + b296: 00000517 auipc a0,0x0 + b29a: e2450513 addi a0,a0,-476 # b0ba + b29e: 0141 addi sp,sp,16 + b2a0: 2150006f j bcb4 + +0000b2a4 : +L2CAP_ProcessEvent(): + b2a4: 1141 addi sp,sp,-16 + b2a6: c226 sw s1,4(sp) + b2a8: c606 sw ra,12(sp) + b2aa: c422 sw s0,8(sp) + b2ac: c04a sw s2,0(sp) + b2ae: 84ae mv s1,a1 + b2b0: 60559793 sext.h a5,a1 + b2b4: 0807d363 bgez a5,b33a + b2b8: 9c118913 addi s2,gp,-1599 # 20001379 + b2bc: 00094503 lbu a0,0(s2) + b2c0: 93ffa0ef jal ra,5bfe + b2c4: 842a mv s0,a0 + b2c6: c521 beqz a0,b30e + b2c8: 2118 lbu a4,0(a0) + b2ca: 09000793 li a5,144 + b2ce: 02f71d63 bne a4,a5,b308 + b2d2: 3118 lbu a4,1(a0) + b2d4: 47cd li a5,19 + b2d6: 06f71063 bne a4,a5,b336 + b2da: 9c018693 addi a3,gp,-1600 # 20001378 + b2de: 2128 lbu a0,2(a0) + b2e0: 229c lbu a5,0(a3) + b2e2: 1fff7817 auipc a6,0x1fff7 + b2e6: 5f584803 lbu a6,1525(a6) # 200028d7 + b2ea: 00640613 addi a2,s0,6 + b2ee: 4581 li a1,0 + b2f0: 4701 li a4,0 + b2f2: 02e51663 bne a0,a4,b31e + b2f6: c191 beqz a1,b2fa + b2f8: a29c sb a5,0(a3) + b2fa: 229c lbu a5,0(a3) + b2fc: c791 beqz a5,b308 + b2fe: 00094503 lbu a0,0(s2) + b302: 4585 li a1,1 + b304: 1400f0ef jal ra,1a444 + b308: 8522 mv a0,s0 + b30a: 841fa0ef jal ra,5b4a + b30e: 68f49513 binvi a0,s1,0xf + b312: 40b2 lw ra,12(sp) + b314: 4422 lw s0,8(sp) + b316: 4492 lw s1,4(sp) + b318: 4902 lw s2,0(sp) + b31a: 0141 addi sp,sp,16 + b31c: 8082 ret + b31e: 220e lhu a1,0(a2) + b320: 0705 addi a4,a4,1 + b322: 0ff77713 zext.b a4,a4 + b326: 97ae add a5,a5,a1 + b328: 0ff7f793 zext.b a5,a5 + b32c: 0609 addi a2,a2,2 + b32e: 4585 li a1,1 + b330: 0b07d7b3 minu a5,a5,a6 + b334: bf7d j b2f2 + b336: 2421 jal b53e + b338: bfc1 j b308 + b33a: 0015f513 andi a0,a1,1 + b33e: d971 beqz a0,b312 + b340: 2db5 jal b9bc + b342: c909 beqz a0,b354 + b344: 9c01c783 lbu a5,-1600(gp) # 20001378 + b348: c791 beqz a5,b354 + b34a: 4585 li a1,1 + b34c: 9c11c503 lbu a0,-1599(gp) # 20001379 + b350: 0f40f0ef jal ra,1a444 + b354: 0014c513 xori a0,s1,1 + b358: bf6d j b312 + +0000b35a : +l2capParseCmdReject(): + b35a: 4705 li a4,1 + b35c: 02c77e63 bgeu a4,a2,b398 + b360: 319c lbu a5,1(a1) + b362: 2194 lbu a3,0(a1) + b364: 07a2 slli a5,a5,0x8 + b366: 8fd5 or a5,a5,a3 + b368: a11e sh a5,0(a0) + b36a: 00e79963 bne a5,a4,b37c + b36e: 31bc lbu a5,3(a1) + b370: 21b8 lbu a4,2(a1) + b372: 07a2 slli a5,a5,0x8 + b374: 8fd9 or a5,a5,a4 + b376: a13e sh a5,2(a0) + b378: 4501 li a0,0 + b37a: 8082 ret + b37c: 4709 li a4,2 + b37e: fee79de3 bne a5,a4,b378 + b382: 31bc lbu a5,3(a1) + b384: 21b8 lbu a4,2(a1) + b386: 07a2 slli a5,a5,0x8 + b388: 8fd9 or a5,a5,a4 + b38a: a13e sh a5,2(a0) + b38c: 31dc lbu a5,5(a1) + b38e: 21d8 lbu a4,4(a1) + b390: 07a2 slli a5,a5,0x8 + b392: 8fd9 or a5,a5,a4 + b394: a15e sh a5,4(a0) + b396: b7cd j b378 + b398: 4505 li a0,1 + b39a: 8082 ret + +0000b39c : +L2CAP_ParseParamUpdateReq(): + b39c: 47a1 li a5,8 + b39e: 02f61863 bne a2,a5,b3ce + b3a2: 319c lbu a5,1(a1) + b3a4: 2198 lbu a4,0(a1) + b3a6: 07a2 slli a5,a5,0x8 + b3a8: 8fd9 or a5,a5,a4 + b3aa: a11e sh a5,0(a0) + b3ac: 31bc lbu a5,3(a1) + b3ae: 21b8 lbu a4,2(a1) + b3b0: 07a2 slli a5,a5,0x8 + b3b2: 8fd9 or a5,a5,a4 + b3b4: a13e sh a5,2(a0) + b3b6: 31dc lbu a5,5(a1) + b3b8: 21d8 lbu a4,4(a1) + b3ba: 07a2 slli a5,a5,0x8 + b3bc: 8fd9 or a5,a5,a4 + b3be: a15e sh a5,4(a0) + b3c0: 31fc lbu a5,7(a1) + b3c2: 21f8 lbu a4,6(a1) + b3c4: 07a2 slli a5,a5,0x8 + b3c6: 8fd9 or a5,a5,a4 + b3c8: a17e sh a5,6(a0) + b3ca: 4501 li a0,0 + b3cc: 8082 ret + b3ce: 4505 li a0,1 + b3d0: 8082 ret + +0000b3d2 : +l2capParseSignalHdr(): + b3d2: 219c lbu a5,0(a1) + b3d4: a11c sb a5,0(a0) + b3d6: 319c lbu a5,1(a1) + b3d8: b11c sb a5,1(a0) + b3da: 31bc lbu a5,3(a1) + b3dc: 21b8 lbu a4,2(a1) + b3de: 07a2 slli a5,a5,0x8 + b3e0: 8fd9 or a5,a5,a4 + b3e2: a13e sh a5,2(a0) + b3e4: 8082 ret + +0000b3e6 : +l2capParsePacket(): + b3e6: 00052223 sw zero,4(a0) + b3ea: 21d8 lbu a4,4(a1) + b3ec: 4789 li a5,2 + b3ee: 04f71a63 bne a4,a5,b442 + b3f2: 21fe lhu a5,6(a1) + b3f4: 1141 addi sp,sp,-16 + b3f6: c422 sw s0,8(sp) + b3f8: c606 sw ra,12(sp) + b3fa: 480d li a6,3 + b3fc: 842a mv s0,a0 + b3fe: 4505 li a0,1 + b400: 02f87d63 bgeu a6,a5,b43a + b404: 4594 lw a3,8(a1) + b406: 3298 lbu a4,1(a3) + b408: 2290 lbu a2,0(a3) + b40a: 0722 slli a4,a4,0x8 + b40c: 8f51 or a4,a4,a2 + b40e: 00470613 addi a2,a4,4 + b412: 02f61463 bne a2,a5,b43a + b416: 32bc lbu a5,3(a3) + b418: 22b0 lbu a2,2(a3) + b41a: 07a2 slli a5,a5,0x8 + b41c: 8fd1 or a5,a5,a2 + b41e: ffc78613 addi a2,a5,-4 + b422: 08064633 zext.h a2,a2 + b426: 00c86a63 bltu a6,a2,b43a + b42a: a03a sh a4,2(s0) + b42c: a01e sh a5,0(s0) + b42e: 55f1 li a1,-4 + b430: 8536 mv a0,a3 + b432: 621060ef jal ra,12252 + b436: c048 sw a0,4(s0) + b438: 4501 li a0,0 + b43a: 40b2 lw ra,12(sp) + b43c: 4422 lw s0,8(sp) + b43e: 0141 addi sp,sp,16 + b440: 8082 ret + b442: 4505 li a0,1 + b444: 8082 ret + +0000b446 : +l2capProcessReq(): + b446: 7139 addi sp,sp,-64 + b448: 87ae mv a5,a1 + b44a: de06 sw ra,60(sp) + b44c: dc22 sw s0,56(sp) + b44e: da26 sw s1,52(sp) + b450: 85b2 mv a1,a2 + b452: 2390 lbu a2,0(a5) + b454: 46c9 li a3,18 + b456: 3398 lbu a4,1(a5) + b458: 02d61d63 bne a2,a3,b492 + b45c: 23b2 lhu a2,2(a5) + b45e: 84aa mv s1,a0 + b460: 0828 addi a0,sp,24 + b462: c63a sw a4,12(sp) + b464: f39ff0ef jal ra,b39c + b468: 842a mv s0,a0 + b46a: ed11 bnez a0,b486 + b46c: 1fff7517 auipc a0,0x1fff7 + b470: 54850513 addi a0,a0,1352 # 200029b4 + b474: 255e lhu a5,12(a0) + b476: 4732 lw a4,12(sp) + b478: c799 beqz a5,b486 + b47a: 2568 lbu a0,14(a0) + b47c: 083c addi a5,sp,24 + b47e: 46c9 li a3,18 + b480: 4601 li a2,0 + b482: 85a6 mv a1,s1 + b484: 2acd jal b676 + b486: 50f2 lw ra,60(sp) + b488: 8522 mv a0,s0 + b48a: 5462 lw s0,56(sp) + b48c: 54d2 lw s1,52(sp) + b48e: 6121 addi sp,sp,64 + b490: 8082 ret + b492: 0830 addi a2,sp,24 + b494: 85ba mv a1,a4 + b496: 00011c23 sh zero,24(sp) + b49a: 4401 li s0,0 + b49c: 2b75 jal ba58 + b49e: b7e5 j b486 + +0000b4a0 : +l2capProcessRsp(): + b4a0: 7139 addi sp,sp,-64 + b4a2: da26 sw s1,52(sp) + b4a4: d84a sw s2,48(sp) + b4a6: d64e sw s3,44(sp) + b4a8: 84ae mv s1,a1 + b4aa: de06 sw ra,60(sp) + b4ac: dc22 sw s0,56(sp) + b4ae: 1fff7797 auipc a5,0x1fff7 + b4b2: 52078d23 sb zero,1338(a5) # 200029e8 + b4b6: 1fff7797 auipc a5,0x1fff7 + b4ba: 52079823 sh zero,1328(a5) # 200029e6 + b4be: 209c lbu a5,0(s1) + b4c0: 4705 li a4,1 + b4c2: 892a mv s2,a0 + b4c4: 85b2 mv a1,a2 + b4c6: 1fff7997 auipc s3,0x1fff7 + b4ca: 51e98993 addi s3,s3,1310 # 200029e4 + b4ce: 04e79363 bne a5,a4,b514 + b4d2: 20b0 lbu a2,2(s1) + b4d4: 0028 addi a0,sp,8 + b4d6: e85ff0ef jal ra,b35a + b4da: 842a mv s0,a0 + b4dc: 1fff7517 auipc a0,0x1fff7 + b4e0: 50850513 addi a0,a0,1288 # 200029e4 + b4e4: cbbff0ef jal ra,b19e + b4e8: 0089c503 lbu a0,8(s3) + b4ec: 2094 lbu a3,0(s1) + b4ee: 003c addi a5,sp,8 + b4f0: 4701 li a4,0 + b4f2: 8622 mv a2,s0 + b4f4: 85ca mv a1,s2 + b4f6: 2241 jal b676 + b4f8: 1fff7517 auipc a0,0x1fff7 + b4fc: 4ec50513 addi a0,a0,1260 # 200029e4 + b500: bbdff0ef jal ra,b0bc + b504: 50f2 lw ra,60(sp) + b506: 8522 mv a0,s0 + b508: 5462 lw s0,56(sp) + b50a: 54d2 lw s1,52(sp) + b50c: 5942 lw s2,48(sp) + b50e: 59b2 lw s3,44(sp) + b510: 6121 addi sp,sp,64 + b512: 8082 ret + b514: 474d li a4,19 + b516: 4401 li s0,0 + b518: fee796e3 bne a5,a4,b504 + b51c: 0009c703 lbu a4,0(s3) + b520: 4791 li a5,4 + b522: fef711e3 bne a4,a5,b504 + b526: 20ba lhu a4,2(s1) + b528: 4789 li a5,2 + b52a: 4405 li s0,1 + b52c: faf718e3 bne a4,a5,b4dc + b530: 321c lbu a5,1(a2) + b532: 2218 lbu a4,0(a2) + b534: 4401 li s0,0 + b536: 07a2 slli a5,a5,0x8 + b538: 8fd9 or a5,a5,a4 + b53a: 847c sh a5,8(sp) + b53c: b745 j b4dc + +0000b53e : +l2capProcessRxData(): + b53e: 7179 addi sp,sp,-48 + b540: 85aa mv a1,a0 + b542: d422 sw s0,40(sp) + b544: d226 sw s1,36(sp) + b546: 2122 lhu s0,2(a0) + b548: 84aa mv s1,a0 + b54a: 0828 addi a0,sp,24 + b54c: d606 sw ra,44(sp) + b54e: d04a sw s2,32(sp) + b550: e97ff0ef jal ra,b3e6 + b554: 45f2 lw a1,28(sp) + b556: e599 bnez a1,b564 + b558: e135 bnez a0,b5bc + b55a: 4585 li a1,1 + b55c: 8522 mv a0,s0 + b55e: c61ff0ef jal ra,b1be + b562: a06d j b60c + b564: 84bc lhu a5,24(sp) + b566: 4715 li a4,5 + b568: 06e79463 bne a5,a4,b5d0 + b56c: 85b8 lhu a4,26(sp) + b56e: 478d li a5,3 + b570: 04e7f663 bgeu a5,a4,b5bc + b574: 0068 addi a0,sp,12 + b576: e5dff0ef jal ra,b3d2 + b57a: 00e15903 lhu s2,14(sp) + b57e: 47dd li a5,23 + b580: 0127fa63 bgeu a5,s2,b594 + b584: 868c lbu a1,13(sp) + b586: 001707b7 lui a5,0x170 + b58a: 0785 addi a5,a5,1 # 170001 <_data_lma+0x154a45> + b58c: 0810 addi a2,sp,16 + b58e: 8522 mv a0,s0 + b590: c83e sw a5,16(sp) + b592: 21d9 jal ba58 + b594: 85bc lhu a5,26(sp) + b596: 0911 addi s2,s2,4 + b598: 01278563 beq a5,s2,b5a2 + b59c: 8522 mv a0,s0 + b59e: be5ff0ef jal ra,b182 + b5a2: 861c lbu a5,12(sp) + b5a4: 4672 lw a2,28(sp) + b5a6: 006c addi a1,sp,12 + b5a8: 8b85 andi a5,a5,1 + b5aa: 0611 addi a2,a2,4 + b5ac: 8522 mv a0,s0 + b5ae: cf91 beqz a5,b5ca + b5b0: ef1ff0ef jal ra,b4a0 + b5b4: c501 beqz a0,b5bc + b5b6: 8522 mv a0,s0 + b5b8: bcbff0ef jal ra,b182 + b5bc: 4488 lw a0,8(s1) + b5be: dd51 beqz a0,b55a + b5c0: 1fff6097 auipc ra,0x1fff6 + b5c4: 900080e7 jalr -1792(ra) # 20000ec0 + b5c8: bf49 j b55a + b5ca: e7dff0ef jal ra,b446 + b5ce: b7dd j b5b4 + b5d0: 4711 li a4,4 + b5d2: 00e78963 beq a5,a4,b5e4 + b5d6: ffa78713 addi a4,a5,-6 + b5da: 4685 li a3,1 + b5dc: 08074733 zext.h a4,a4 + b5e0: fce6eee3 bltu a3,a4,b5bc + b5e4: 4731 li a4,12 + b5e6: 17f1 addi a5,a5,-4 + b5e8: 02e787b3 mul a5,a5,a4 + b5ec: 1fff7717 auipc a4,0x1fff7 + b5f0: 3c870713 addi a4,a4,968 # 200029b4 + b5f4: 97ba add a5,a5,a4 + b5f6: 239a lhu a4,0(a5) + b5f8: d371 beqz a4,b5bc + b5fa: 23a8 lbu a0,2(a5) + b5fc: 0830 addi a2,sp,24 + b5fe: 85a2 mv a1,s0 + b600: 2821 jal b618 + b602: fd4d bnez a0,b5bc + b604: 84b8 lhu a4,24(sp) + b606: 4791 li a5,4 + b608: f4f719e3 bne a4,a5,b55a + b60c: 50b2 lw ra,44(sp) + b60e: 5422 lw s0,40(sp) + b610: 5492 lw s1,36(sp) + b612: 5902 lw s2,32(sp) + b614: 6145 addi sp,sp,48 + b616: 8082 ret + +0000b618 : +l2capNotifyData(): + b618: 1101 addi sp,sp,-32 + b61a: c84a sw s2,16(sp) + b61c: 892a mv s2,a0 + b61e: 4531 li a0,12 + b620: ca26 sw s1,20(sp) + b622: c64e sw s3,12(sp) + b624: ce06 sw ra,28(sp) + b626: cc22 sw s0,24(sp) + b628: 89ae mv s3,a1 + b62a: 84b2 mv s1,a2 + b62c: d70fa0ef jal ra,5b9c + b630: c129 beqz a0,b672 + b632: 0a000793 li a5,160 + b636: 01351123 sh s3,2(a0) + b63a: a11e sh a5,0(a0) + b63c: 842a mv s0,a0 + b63e: 4621 li a2,8 + b640: 0511 addi a0,a0,4 + b642: c095 beqz s1,b666 + b644: 85a6 mv a1,s1 + b646: 1fff5097 auipc ra,0x1fff5 + b64a: 216080e7 jalr 534(ra) # 2000085c + b64e: 85a2 mv a1,s0 + b650: 854a mv a0,s2 + b652: e44fa0ef jal ra,5c96 + b656: 4501 li a0,0 + b658: 40f2 lw ra,28(sp) + b65a: 4462 lw s0,24(sp) + b65c: 44d2 lw s1,20(sp) + b65e: 4942 lw s2,16(sp) + b660: 49b2 lw s3,12(sp) + b662: 6105 addi sp,sp,32 + b664: 8082 ret + b666: 4581 li a1,0 + b668: 1fff5097 auipc ra,0x1fff5 + b66c: 232080e7 jalr 562(ra) # 2000089a + b670: bff9 j b64e + b672: 4505 li a0,1 + b674: b7d5 j b658 + +0000b676 : +l2capNotifySignal(): + b676: 1101 addi sp,sp,-32 + b678: c84a sw s2,16(sp) + b67a: 892a mv s2,a0 + b67c: 02000513 li a0,32 + b680: ca26 sw s1,20(sp) + b682: c64e sw s3,12(sp) + b684: c452 sw s4,8(sp) + b686: c256 sw s5,4(sp) + b688: c05a sw s6,0(sp) + b68a: ce06 sw ra,28(sp) + b68c: cc22 sw s0,24(sp) + b68e: 8aae mv s5,a1 + b690: 8b32 mv s6,a2 + b692: 89b6 mv s3,a3 + b694: 8a3a mv s4,a4 + b696: 84be mv s1,a5 + b698: d04fa0ef jal ra,5b9c + b69c: c921 beqz a0,b6ec + b69e: fa200793 li a5,-94 + b6a2: a11c sb a5,0(a0) + b6a4: 016500a3 sb s6,1(a0) + b6a8: 01551123 sh s5,2(a0) + b6ac: 01450223 sb s4,4(a0) + b6b0: 013502a3 sb s3,5(a0) + b6b4: 842a mv s0,a0 + b6b6: 4661 li a2,24 + b6b8: 0521 addi a0,a0,8 + b6ba: c09d beqz s1,b6e0 + b6bc: 85a6 mv a1,s1 + b6be: 1fff5097 auipc ra,0x1fff5 + b6c2: 19e080e7 jalr 414(ra) # 2000085c + b6c6: 85a2 mv a1,s0 + b6c8: 4462 lw s0,24(sp) + b6ca: 40f2 lw ra,28(sp) + b6cc: 44d2 lw s1,20(sp) + b6ce: 49b2 lw s3,12(sp) + b6d0: 4a22 lw s4,8(sp) + b6d2: 4a92 lw s5,4(sp) + b6d4: 4b02 lw s6,0(sp) + b6d6: 854a mv a0,s2 + b6d8: 4942 lw s2,16(sp) + b6da: 6105 addi sp,sp,32 + b6dc: dbafa06f j 5c96 + b6e0: 4581 li a1,0 + b6e2: 1fff5097 auipc ra,0x1fff5 + b6e6: 1b8080e7 jalr 440(ra) # 2000089a + b6ea: bff1 j b6c6 + b6ec: 40f2 lw ra,28(sp) + b6ee: 4462 lw s0,24(sp) + b6f0: 44d2 lw s1,20(sp) + b6f2: 4942 lw s2,16(sp) + b6f4: 49b2 lw s3,12(sp) + b6f6: 4a22 lw s4,8(sp) + b6f8: 4a92 lw s5,4(sp) + b6fa: 4b02 lw s6,0(sp) + b6fc: 6105 addi sp,sp,32 + b6fe: 8082 ret + +0000b700 : +l2capNotifyEvent(): + b700: 2118 lbu a4,0(a0) + b702: 4791 li a5,4 + b704: 02f71663 bne a4,a5,b730 + b708: 1141 addi sp,sp,-16 + b70a: c422 sw s0,8(sp) + b70c: c606 sw ra,12(sp) + b70e: 842a mv s0,a0 + b710: 862e mv a2,a1 + b712: 216e lhu a1,6(a0) + b714: 2508 lbu a0,8(a0) + b716: 4781 li a5,0 + b718: 4701 li a4,0 + b71a: 46cd li a3,19 + b71c: f5bff0ef jal ra,b676 + b720: 206e lhu a1,6(s0) + b722: 4422 lw s0,8(sp) + b724: 40b2 lw ra,12(sp) + b726: 4649 li a2,18 + b728: 4515 li a0,5 + b72a: 0141 addi sp,sp,16 + b72c: a05ff06f j b130 + b730: 8082 ret + +0000b732 : +l2capStoreFCPkt(): + b732: 219a lhu a4,0(a1) + b734: 47b1 li a5,12 + b736: 1771 addi a4,a4,-4 + b738: 02f70733 mul a4,a4,a5 + b73c: 1fff7797 auipc a5,0x1fff7 + b740: 27878793 addi a5,a5,632 # 200029b4 + b744: 97ba add a5,a5,a4 + b746: 43d8 lw a4,4(a5) + b748: eb01 bnez a4,b758 + b74a: 41d8 lw a4,4(a1) + b74c: a7aa sh a0,10(a5) + b74e: 4501 li a0,0 + b750: c3d8 sw a4,4(a5) + b752: 21ba lhu a4,2(a1) + b754: a79a sh a4,8(a5) + b756: 8082 ret + b758: 4559 li a0,22 + b75a: 8082 ret + +0000b75c : +l2capEncapSendData(): + b75c: 21be lhu a5,2(a1) + b75e: cfb5 beqz a5,b7da + b760: 1141 addi sp,sp,-16 + b762: c226 sw s1,4(sp) + b764: c606 sw ra,12(sp) + b766: c422 sw s0,8(sp) + b768: 9bc1d703 lhu a4,-1604(gp) # 20001374 + b76c: 84aa mv s1,a0 + b76e: 456d li a0,27 + b770: 04f76d63 bltu a4,a5,b7ca + b774: 842e mv s0,a1 + b776: 4048 lw a0,4(s0) + b778: 4591 li a1,4 + b77a: 2d9060ef jal ra,12252 + b77e: 203e lhu a5,2(s0) + b780: 86aa mv a3,a0 + b782: 4581 li a1,0 + b784: a11c sb a5,0(a0) + b786: 203e lhu a5,2(s0) + b788: 83a1 srli a5,a5,0x8 + b78a: b11c sb a5,1(a0) + b78c: 201e lhu a5,0(s0) + b78e: a13c sb a5,2(a0) + b790: 201e lhu a5,0(s0) + b792: 83a1 srli a5,a5,0x8 + b794: b13c sb a5,3(a0) + b796: 2032 lhu a2,2(s0) + b798: 8526 mv a0,s1 + b79a: 0611 addi a2,a2,4 + b79c: 08064633 zext.h a2,a2 + b7a0: 644040ef jal ra,fde4 + b7a4: e519 bnez a0,b7b2 + b7a6: 9c018713 addi a4,gp,-1600 # 20001378 + b7aa: 231c lbu a5,0(a4) + b7ac: e785 bnez a5,b7d4 + b7ae: 4501 li a0,0 + b7b0: a829 j b7ca + b7b2: 4789 li a5,2 + b7b4: 02f50563 beq a0,a5,b7de + b7b8: 479d li a5,7 + b7ba: 02f50463 beq a0,a5,b7e2 + b7be: 47c9 li a5,18 + b7c0: 02f50363 beq a0,a5,b7e6 + b7c4: 47fd li a5,31 + b7c6: fef500e3 beq a0,a5,b7a6 + b7ca: 40b2 lw ra,12(sp) + b7cc: 4422 lw s0,8(sp) + b7ce: 4492 lw s1,4(sp) + b7d0: 0141 addi sp,sp,16 + b7d2: 8082 ret + b7d4: 17fd addi a5,a5,-1 + b7d6: a31c sb a5,0(a4) + b7d8: bfd9 j b7ae + b7da: 456d li a0,27 + b7dc: 8082 ret + b7de: 4551 li a0,20 + b7e0: b7ed j b7ca + b7e2: 4511 li a0,4 + b7e4: b7dd j b7ca + b7e6: 4509 li a0,2 + b7e8: b7cd j b7ca + +0000b7ea : +l2capSendFCPkt.part.0(): + b7ea: 1101 addi sp,sp,-32 + b7ec: cc22 sw s0,24(sp) + b7ee: c84a sw s2,16(sp) + b7f0: 4431 li s0,12 + b7f2: ffc50913 addi s2,a0,-4 + b7f6: 02890433 mul s0,s2,s0 + b7fa: ca26 sw s1,20(sp) + b7fc: 1fff7497 auipc s1,0x1fff7 + b800: 1b848493 addi s1,s1,440 # 200029b4 + b804: ce06 sw ra,28(sp) + b806: 9426 add s0,s0,s1 + b808: 405c lw a5,4(s0) + b80a: cf9d beqz a5,b848 + b80c: 9c01c703 lbu a4,-1600(gp) # 20001378 + b810: c70d beqz a4,b83a + b812: 8468 sh a0,8(sp) + b814: c63e sw a5,12(sp) + b816: 242a lhu a0,10(s0) + b818: 241e lhu a5,8(s0) + b81a: 002c addi a1,sp,8 + b81c: 857c sh a5,10(sp) + b81e: f3fff0ef jal ra,b75c + b822: c511 beqz a0,b82e + b824: 4048 lw a0,4(s0) + b826: 1fff5097 auipc ra,0x1fff5 + b82a: 69a080e7 jalr 1690(ra) # 20000ec0 + b82e: 47b1 li a5,12 + b830: 02f90933 mul s2,s2,a5 + b834: 94ca add s1,s1,s2 + b836: 0004a223 sw zero,4(s1) + b83a: 4505 li a0,1 + b83c: 40f2 lw ra,28(sp) + b83e: 4462 lw s0,24(sp) + b840: 44d2 lw s1,20(sp) + b842: 4942 lw s2,16(sp) + b844: 6105 addi sp,sp,32 + b846: 8082 ret + b848: 4501 li a0,0 + b84a: bfcd j b83c + +0000b84c : +L2CAP_SendData(): + b84c: 219e lhu a5,0(a1) + b84e: 470d li a4,3 + b850: 17f1 addi a5,a5,-4 + b852: 0807c7b3 zext.h a5,a5 + b856: 04f76f63 bltu a4,a5,b8b4 + b85a: 41dc lw a5,4(a1) + b85c: 1141 addi sp,sp,-16 + b85e: c422 sw s0,8(sp) + b860: c606 sw ra,12(sp) + b862: c226 sw s1,4(sp) + b864: 842e mv s0,a1 + b866: cba9 beqz a5,b8b8 + b868: 4585 li a1,1 + b86a: 84aa mv s1,a0 + b86c: 21d9 jal bd32 + b86e: c939 beqz a0,b8c4 + b870: 8526 mv a0,s1 + b872: 2ef5 jal bc6e + b874: 67c1 lui a5,0x10 + b876: 17f9 addi a5,a5,-2 # fffe + b878: 00f48d63 beq s1,a5,b892 + b87c: e919 bnez a0,b892 + b87e: 203e lhu a5,2(s0) + b880: cb89 beqz a5,b892 + b882: 2016 lhu a3,0(s0) + b884: 4719 li a4,6 + b886: 04e69163 bne a3,a4,b8c8 + b88a: 9bc1d703 lhu a4,-1604(gp) # 20001374 + b88e: 02e7fd63 bgeu a5,a4,b8c8 + b892: 9c01c783 lbu a5,-1600(gp) # 20001378 + b896: 85a2 mv a1,s0 + b898: 8526 mv a0,s1 + b89a: c799 beqz a5,b8a8 + b89c: 4422 lw s0,8(sp) + b89e: 40b2 lw ra,12(sp) + b8a0: 4492 lw s1,4(sp) + b8a2: 0141 addi sp,sp,16 + b8a4: eb9ff06f j b75c + b8a8: 4422 lw s0,8(sp) + b8aa: 40b2 lw ra,12(sp) + b8ac: 4492 lw s1,4(sp) + b8ae: 0141 addi sp,sp,16 + b8b0: e83ff06f j b732 + b8b4: 4509 li a0,2 + b8b6: 8082 ret + b8b8: 4509 li a0,2 + b8ba: 40b2 lw ra,12(sp) + b8bc: 4422 lw s0,8(sp) + b8be: 4492 lw s1,4(sp) + b8c0: 0141 addi sp,sp,16 + b8c2: 8082 ret + b8c4: 4551 li a0,20 + b8c6: bfd5 j b8ba + b8c8: 456d li a0,27 + b8ca: bfc5 j b8ba + +0000b8cc : +l2capSendCmd(): + b8cc: 7179 addi sp,sp,-48 + b8ce: d226 sw s1,36(sp) + b8d0: cc52 sw s4,24(sp) + b8d2: 84aa mv s1,a0 + b8d4: 8a2e mv s4,a1 + b8d6: 455d li a0,23 + b8d8: 4589 li a1,2 + b8da: d04a sw s2,32(sp) + b8dc: ce4e sw s3,28(sp) + b8de: ca56 sw s5,20(sp) + b8e0: d606 sw ra,44(sp) + b8e2: d422 sw s0,40(sp) + b8e4: 89b2 mv s3,a2 + b8e6: 8ab6 mv s5,a3 + b8e8: 893a mv s2,a4 + b8ea: 919ff0ef jal ra,b202 + b8ee: c135 beqz a0,b952 + b8f0: 842a mv s0,a0 + b8f2: 4501 li a0,0 + b8f4: 00090663 beqz s2,b900 + b8f8: 85d6 mv a1,s5 + b8fa: 00440513 addi a0,s0,4 + b8fe: 9902 jalr s2 + b900: 00855793 srli a5,a0,0x8 + b904: b03c sb a5,3(s0) + b906: 00450793 addi a5,a0,4 + b90a: 01440023 sb s4,0(s0) + b90e: 857c sh a5,10(sp) + b910: 4795 li a5,5 + b912: a028 sb a0,2(s0) + b914: 847c sh a5,8(sp) + b916: 013400a3 sb s3,1(s0) + b91a: c622 sw s0,12(sp) + b91c: 9c01c783 lbu a5,-1600(gp) # 20001378 + b920: 002c addi a1,sp,8 + b922: 8526 mv a0,s1 + b924: c785 beqz a5,b94c + b926: e37ff0ef jal ra,b75c + b92a: 84aa mv s1,a0 + b92c: c511 beqz a0,b938 + b92e: 8522 mv a0,s0 + b930: 1fff5097 auipc ra,0x1fff5 + b934: 590080e7 jalr 1424(ra) # 20000ec0 + b938: 50b2 lw ra,44(sp) + b93a: 5422 lw s0,40(sp) + b93c: 5902 lw s2,32(sp) + b93e: 49f2 lw s3,28(sp) + b940: 4a62 lw s4,24(sp) + b942: 4ad2 lw s5,20(sp) + b944: 8526 mv a0,s1 + b946: 5492 lw s1,36(sp) + b948: 6145 addi sp,sp,48 + b94a: 8082 ret + b94c: de7ff0ef jal ra,b732 + b950: bfe9 j b92a + b952: 44cd li s1,19 + b954: b7d5 j b938 + +0000b956 : +l2capSendReq(): + b956: 1141 addi sp,sp,-16 + b958: c606 sw ra,12(sp) + b95a: c422 sw s0,8(sp) + b95c: 1fff7897 auipc a7,0x1fff7 + b960: 08888893 addi a7,a7,136 # 200029e4 + b964: 00e88023 sb a4,0(a7) + b968: 9be18713 addi a4,gp,-1602 # 20001376 + b96c: 8832 mv a6,a2 + b96e: 2310 lbu a2,0(a4) + b970: 4795 li a5,5 + b972: 00f89123 sh a5,2(a7) + b976: 00160793 addi a5,a2,1 + b97a: 0ff7f793 zext.b a5,a5 + b97e: a31c sb a5,0(a4) + b980: 00c88223 sb a2,4(a7) + b984: e399 bnez a5,b98a + b986: 4785 li a5,1 + b988: a31c sb a5,0(a4) + b98a: 8736 mv a4,a3 + b98c: 86c2 mv a3,a6 + b98e: f3fff0ef jal ra,b8cc + b992: 842a mv s0,a0 + b994: cd01 beqz a0,b9ac + b996: 1fff7517 auipc a0,0x1fff7 + b99a: 04e50513 addi a0,a0,78 # 200029e4 + b99e: f1eff0ef jal ra,b0bc + b9a2: 40b2 lw ra,12(sp) + b9a4: 8522 mv a0,s0 + b9a6: 4422 lw s0,8(sp) + b9a8: 0141 addi sp,sp,16 + b9aa: 8082 ret + b9ac: 45f9 li a1,30 + b9ae: 1fff7517 auipc a0,0x1fff7 + b9b2: 03650513 addi a0,a0,54 # 200029e4 + b9b6: fceff0ef jal ra,b184 + b9ba: b7e5 j b9a2 + +0000b9bc : +l2capSendPkt(): + b9bc: 1141 addi sp,sp,-16 + b9be: 4515 li a0,5 + b9c0: c606 sw ra,12(sp) + b9c2: e29ff0ef jal ra,b7ea + b9c6: c509 beqz a0,b9d0 + b9c8: 4505 li a0,1 + b9ca: 40b2 lw ra,12(sp) + b9cc: 0141 addi sp,sp,16 + b9ce: 8082 ret + b9d0: 4519 li a0,6 + b9d2: e19ff0ef jal ra,b7ea + b9d6: f96d bnez a0,b9c8 + b9d8: 4511 li a0,4 + b9da: e11ff0ef jal ra,b7ea + b9de: f56d bnez a0,b9c8 + b9e0: 451d li a0,7 + b9e2: e09ff0ef jal ra,b7ea + b9e6: 00a03533 snez a0,a0 + b9ea: b7c5 j b9ca + +0000b9ec : +l2capBuildParamUpdateReq(): + b9ec: 219e lhu a5,0(a1) + b9ee: a11c sb a5,0(a0) + b9f0: 219e lhu a5,0(a1) + b9f2: 83a1 srli a5,a5,0x8 + b9f4: b11c sb a5,1(a0) + b9f6: 21be lhu a5,2(a1) + b9f8: a13c sb a5,2(a0) + b9fa: 21be lhu a5,2(a1) + b9fc: 83a1 srli a5,a5,0x8 + b9fe: b13c sb a5,3(a0) + ba00: 21de lhu a5,4(a1) + ba02: a15c sb a5,4(a0) + ba04: 21de lhu a5,4(a1) + ba06: 83a1 srli a5,a5,0x8 + ba08: b15c sb a5,5(a0) + ba0a: 21fe lhu a5,6(a1) + ba0c: a17c sb a5,6(a0) + ba0e: 21fe lhu a5,6(a1) + ba10: 83a1 srli a5,a5,0x8 + ba12: b17c sb a5,7(a0) + ba14: 4521 li a0,8 + ba16: 8082 ret + +0000ba18 : +l2capBuildCmdReject(): + ba18: 219a lhu a4,0(a1) + ba1a: 4685 li a3,1 + ba1c: 87aa mv a5,a0 + ba1e: a118 sb a4,0(a0) + ba20: 219a lhu a4,0(a1) + ba22: 8321 srli a4,a4,0x8 + ba24: b118 sb a4,1(a0) + ba26: 219a lhu a4,0(a1) + ba28: 00d71963 bne a4,a3,ba3a + ba2c: 21ba lhu a4,2(a1) + ba2e: a138 sb a4,2(a0) + ba30: 21ba lhu a4,2(a1) + ba32: 8321 srli a4,a4,0x8 + ba34: b138 sb a4,3(a0) + ba36: 4511 li a0,4 + ba38: 8082 ret + ba3a: 4509 li a0,2 + ba3c: 00a71d63 bne a4,a0,ba56 + ba40: 21ba lhu a4,2(a1) + ba42: 4519 li a0,6 + ba44: a3b8 sb a4,2(a5) + ba46: 21ba lhu a4,2(a1) + ba48: 8321 srli a4,a4,0x8 + ba4a: b3b8 sb a4,3(a5) + ba4c: 21da lhu a4,4(a1) + ba4e: a3d8 sb a4,4(a5) + ba50: 21da lhu a4,4(a1) + ba52: 8321 srli a4,a4,0x8 + ba54: b3d8 sb a4,5(a5) + ba56: 8082 ret + +0000ba58 : +L2CAP_CmdReject(): + ba58: 86b2 mv a3,a2 + ba5a: 00000717 auipc a4,0x0 + ba5e: fbe70713 addi a4,a4,-66 # ba18 + ba62: 862e mv a2,a1 + ba64: 4585 li a1,1 + ba66: e67ff06f j b8cc + +0000ba6a : +L2CAP_ConnParamUpdateReq(): + ba6a: 87b2 mv a5,a2 + ba6c: 4801 li a6,0 + ba6e: 862e mv a2,a1 + ba70: 4711 li a4,4 + ba72: 00000697 auipc a3,0x0 + ba76: f7a68693 addi a3,a3,-134 # b9ec + ba7a: 45c9 li a1,18 + ba7c: edbff06f j b956 + +0000ba80 : +reportStatusChange(): + ba80: 1101 addi sp,sp,-32 + ba82: cc22 sw s0,24(sp) + ba84: ca26 sw s1,20(sp) + ba86: c84a sw s2,16(sp) + ba88: c64e sw s3,12(sp) + ba8a: ce06 sw ra,28(sp) + ba8c: 84aa mv s1,a0 + ba8e: 892e mv s2,a1 + ba90: 1fff7417 auipc s0,0x1fff7 + ba94: f6440413 addi s0,s0,-156 # 200029f4 + ba98: 1fff7997 auipc s3,0x1fff7 + ba9c: f7498993 addi s3,s3,-140 # 20002a0c + baa0: 401c lw a5,0(s0) + baa2: c781 beqz a5,baaa + baa4: 85ca mv a1,s2 + baa6: 8526 mv a0,s1 + baa8: 9782 jalr a5 + baaa: 0411 addi s0,s0,4 + baac: ff341ae3 bne s0,s3,baa0 + bab0: 40f2 lw ra,28(sp) + bab2: 4462 lw s0,24(sp) + bab4: 44d2 lw s1,20(sp) + bab6: 4942 lw s2,16(sp) + bab8: 49b2 lw s3,12(sp) + baba: 6105 addi sp,sp,32 + babc: 8082 ret + +0000babe : +linkDB_Init(): + babe: 1141 addi sp,sp,-16 + bac0: 65a5 lui a1,0x9 + bac2: c606 sw ra,12(sp) + bac4: c422 sw s0,8(sp) + bac6: c226 sw s1,4(sp) + bac8: 9cc18413 addi s0,gp,-1588 # 20001384 + bacc: 4785 li a5,1 + bace: 0585 addi a1,a1,1 # 9001 + bad0: 03c00513 li a0,60 + bad4: b07c sb a5,7(s0) + bad6: a07c sb a5,6(s0) + bad8: 4150e0ef jal ra,1a6ec + badc: 2070 lbu a2,6(s0) + bade: 03c00793 li a5,60 + bae2: 9c418493 addi s1,gp,-1596 # 2000137c + bae6: 02f60633 mul a2,a2,a5 + baea: 4581 li a1,0 + baec: c088 sw a0,0(s1) + baee: 1fff5097 auipc ra,0x1fff5 + baf2: dac080e7 jalr -596(ra) # 2000089a + baf6: 2074 lbu a3,6(s0) + baf8: 409c lw a5,0(s1) + bafa: 4701 li a4,0 + bafc: 567d li a2,-1 + bafe: 02d74063 blt a4,a3,bb1e + bb02: 4422 lw s0,8(sp) + bb04: 40b2 lw ra,12(sp) + bb06: 4492 lw s1,4(sp) + bb08: 4661 li a2,24 + bb0a: 4581 li a1,0 + bb0c: 1fff7517 auipc a0,0x1fff7 + bb10: ee850513 addi a0,a0,-280 # 200029f4 + bb14: 0141 addi sp,sp,16 + bb16: 1fff5317 auipc t1,0x1fff5 + bb1a: d8430067 jr -636(t1) # 2000089a + bb1e: a3b2 sh a2,2(a5) + bb20: 00078223 sb zero,4(a5) + bb24: 0207a623 sw zero,44(a5) + bb28: 0705 addi a4,a4,1 + bb2a: 03c78793 addi a5,a5,60 + bb2e: bfc1 j bafe + +0000bb30 : +linkDB_Find(): + bb30: 9d21c683 lbu a3,-1582(gp) # 2000138a + bb34: 9c41a783 lw a5,-1596(gp) # 2000137c + bb38: 4701 li a4,0 + bb3a: 00e69463 bne a3,a4,bb42 + bb3e: 4501 li a0,0 + bb40: 8082 ret + bb42: 23ae lhu a1,2(a5) + bb44: 03c78613 addi a2,a5,60 + bb48: 00a59463 bne a1,a0,bb50 + bb4c: 853e mv a0,a5 + bb4e: 8082 ret + bb50: 0705 addi a4,a4,1 + bb52: 0ff77713 zext.b a4,a4 + bb56: 87b2 mv a5,a2 + bb58: b7cd j bb3a + +0000bb5a : +linkDB_Authen(): + bb5a: 1141 addi sp,sp,-16 + bb5c: c422 sw s0,8(sp) + bb5e: c226 sw s1,4(sp) + bb60: c04a sw s2,0(sp) + bb62: c606 sw ra,12(sp) + bb64: 892a mv s2,a0 + bb66: 842e mv s0,a1 + bb68: 84b2 mv s1,a2 + bb6a: fc7ff0ef jal ra,bb30 + bb6e: ed09 bnez a0,bb88 + bb70: 67c1 lui a5,0x10 + bb72: 17f9 addi a5,a5,-2 # fffe + bb74: 4551 li a0,20 + bb76: 00f91363 bne s2,a5,bb7c + bb7a: 4501 li a0,0 + bb7c: 40b2 lw ra,12(sp) + bb7e: 4422 lw s0,8(sp) + bb80: 4492 lw s1,4(sp) + bb82: 4902 lw s2,0(sp) + bb84: 0141 addi sp,sp,16 + bb86: 8082 ret + bb88: 5554 lw a3,44(a0) + bb8a: 215c lbu a5,4(a0) + bb8c: c295 beqz a3,bbb0 + bb8e: 0127f713 andi a4,a5,18 + bb92: 4641 li a2,16 + bb94: 00c70b63 beq a4,a2,bbaa + bb98: 8bc1 andi a5,a5,16 + bb9a: 453d li a0,15 + bb9c: d3e5 beqz a5,bb7c + bb9e: 2ebc lbu a5,26(a3) + bba0: 4501 li a0,0 + bba2: fc87fde3 bgeu a5,s0,bb7c + bba6: 4531 li a0,12 + bba8: bfd1 j bb7c + bbaa: 4515 li a0,5 + bbac: d4f5 beqz s1,bb98 + bbae: b7f9 j bb7c + bbb0: 8bc1 andi a5,a5,16 + bbb2: 4501 li a0,0 + bbb4: f7e1 bnez a5,bb7c + bbb6: 4515 li a0,5 + bbb8: b7d1 j bb7c + +0000bbba : +linkDB_FindByAddr(): + bbba: 7179 addi sp,sp,-48 + bbbc: d04a sw s2,32(sp) + bbbe: 6941 lui s2,0x10 + bbc0: d422 sw s0,40(sp) + bbc2: d226 sw s1,36(sp) + bbc4: ce4e sw s3,28(sp) + bbc6: cc52 sw s4,24(sp) + bbc8: ca56 sw s5,20(sp) + bbca: c85a sw s6,16(sp) + bbcc: d606 sw ra,44(sp) + bbce: 84aa mv s1,a0 + bbd0: 4401 li s0,0 + bbd2: 9cc18993 addi s3,gp,-1588 # 20001384 + bbd6: 9c418a13 addi s4,gp,-1596 # 2000137c + bbda: 03c00a93 li s5,60 + bbde: 197d addi s2,s2,-1 # ffff + bbe0: 4b05 li s6,1 + bbe2: 0069c783 lbu a5,6(s3) + bbe6: 00f46463 bltu s0,a5,bbee + bbea: 4501 li a0,0 + bbec: a825 j bc24 + bbee: 03540733 mul a4,s0,s5 + bbf2: 000a2783 lw a5,0(s4) + bbf6: 97ba add a5,a5,a4 + bbf8: 23ba lhu a4,2(a5) + bbfa: 01271663 bne a4,s2,bc06 + bbfe: 0405 addi s0,s0,1 + bc00: 0ff47413 zext.b s0,s0 + bc04: bff9 j bbe2 + bc06: 33c8 lbu a0,5(a5) + bc08: 0030 addi a2,sp,8 + bc0a: 00678593 addi a1,a5,6 + bc0e: 595040ef jal ra,109a2 + bc12: 4619 li a2,6 + bc14: 85a6 mv a1,s1 + bc16: 0028 addi a0,sp,8 + bc18: 1fff5097 auipc ra,0x1fff5 + bc1c: cc2080e7 jalr -830(ra) # 200008da + bc20: fd651fe3 bne a0,s6,bbfe + bc24: 50b2 lw ra,44(sp) + bc26: 5422 lw s0,40(sp) + bc28: 5492 lw s1,36(sp) + bc2a: 5902 lw s2,32(sp) + bc2c: 49f2 lw s3,28(sp) + bc2e: 4a62 lw s4,24(sp) + bc30: 4ad2 lw s5,20(sp) + bc32: 4b42 lw s6,16(sp) + bc34: 6145 addi sp,sp,48 + bc36: 8082 ret + +0000bc38 : +linkDB_FindFirst(): + bc38: 6641 lui a2,0x10 + bc3a: 86aa mv a3,a0 + bc3c: 9d21c583 lbu a1,-1582(gp) # 2000138a + bc40: 9c41a703 lw a4,-1596(gp) # 2000137c + bc44: 4781 li a5,0 + bc46: 167d addi a2,a2,-1 # ffff + bc48: 00f59463 bne a1,a5,bc50 + bc4c: 4501 li a0,0 + bc4e: 8082 ret + bc50: 00275803 lhu a6,2(a4) + bc54: 853a mv a0,a4 + bc56: 00c80663 beq a6,a2,bc62 + bc5a: 00074803 lbu a6,0(a4) + bc5e: fed808e3 beq a6,a3,bc4e + bc62: 0785 addi a5,a5,1 + bc64: 0ff7f793 zext.b a5,a5 + bc68: 03c70713 addi a4,a4,60 + bc6c: bff1 j bc48 + +0000bc6e : +linkDB_MTU(): + bc6e: 1141 addi sp,sp,-16 + bc70: c606 sw ra,12(sp) + bc72: ebfff0ef jal ra,bb30 + bc76: c509 beqz a0,bc80 + bc78: 294a lhu a0,20(a0) + bc7a: 40b2 lw ra,12(sp) + bc7c: 0141 addi sp,sp,16 + bc7e: 8082 ret + bc80: 4501 li a0,0 + bc82: bfe5 j bc7a + +0000bc84 : +linkDB_NumActive(): + bc84: 9c41a703 lw a4,-1596(gp) # 2000137c + bc88: 9d21c683 lbu a3,-1582(gp) # 2000138a + bc8c: 0711 addi a4,a4,4 + bc8e: 4781 li a5,0 + bc90: 4501 li a0,0 + bc92: 00f69363 bne a3,a5,bc98 + bc96: 8082 ret + bc98: 2310 lbu a2,0(a4) + bc9a: c601 beqz a2,bca2 + bc9c: 0505 addi a0,a0,1 + bc9e: 0ff57513 zext.b a0,a0 + bca2: 0785 addi a5,a5,1 + bca4: 0ff7f793 zext.b a5,a5 + bca8: 03c70713 addi a4,a4,60 + bcac: b7dd j bc92 + +0000bcae : +linkDB_NumConns(): + bcae: 9d21c503 lbu a0,-1582(gp) # 2000138a + bcb2: 8082 ret + +0000bcb4 : +linkDB_Register(): + bcb4: 1fff7797 auipc a5,0x1fff7 + bcb8: d4078793 addi a5,a5,-704 # 200029f4 + bcbc: 4681 li a3,0 + bcbe: 863e mv a2,a5 + bcc0: 438c lw a1,0(a5) + bcc2: 8736 mv a4,a3 + bcc4: 0791 addi a5,a5,4 + bcc6: 0685 addi a3,a3,1 + bcc8: fde5 bnez a1,bcc0 + bcca: 20c74733 sh2add a4,a4,a2 + bcce: c308 sw a0,0(a4) + bcd0: 4501 li a0,0 + bcd2: 8082 ret + +0000bcd4 : +linkDB_Remove(): + bcd4: 1141 addi sp,sp,-16 + bcd6: c606 sw ra,12(sp) + bcd8: c422 sw s0,8(sp) + bcda: e57ff0ef jal ra,bb30 + bcde: cd0d beqz a0,bd18 + bce0: 842a mv s0,a0 + bce2: 212a lhu a0,2(a0) + bce4: 4585 li a1,1 + bce6: d9bff0ef jal ra,ba80 + bcea: 5448 lw a0,44(s0) + bcec: c509 beqz a0,bcf6 + bcee: 1fff5097 auipc ra,0x1fff5 + bcf2: 1d2080e7 jalr 466(ra) # 20000ec0 + bcf6: 8522 mv a0,s0 + bcf8: 03c00613 li a2,60 + bcfc: 4581 li a1,0 + bcfe: 1fff5097 auipc ra,0x1fff5 + bd02: b9c080e7 jalr -1124(ra) # 2000089a + bd06: 57fd li a5,-1 + bd08: a03e sh a5,2(s0) + bd0a: 00040223 sb zero,4(s0) + bd0e: 4501 li a0,0 + bd10: 40b2 lw ra,12(sp) + bd12: 4422 lw s0,8(sp) + bd14: 0141 addi sp,sp,16 + bd16: 8082 ret + bd18: 4509 li a0,2 + bd1a: bfdd j bd10 + +0000bd1c : +linkDB_Role(): + bd1c: 1141 addi sp,sp,-16 + bd1e: c606 sw ra,12(sp) + bd20: e11ff0ef jal ra,bb30 + bd24: c509 beqz a0,bd2e + bd26: 2548 lbu a0,12(a0) + bd28: 40b2 lw ra,12(sp) + bd2a: 0141 addi sp,sp,16 + bd2c: 8082 ret + bd2e: 4501 li a0,0 + bd30: bfe5 j bd28 + +0000bd32 : +linkDB_State(): + bd32: 67c1 lui a5,0x10 + bd34: 17f9 addi a5,a5,-2 # fffe + bd36: 02f50363 beq a0,a5,bd5c + bd3a: 1141 addi sp,sp,-16 + bd3c: c422 sw s0,8(sp) + bd3e: c606 sw ra,12(sp) + bd40: 842e mv s0,a1 + bd42: defff0ef jal ra,bb30 + bd46: 87aa mv a5,a0 + bd48: 4501 li a0,0 + bd4a: c789 beqz a5,bd54 + bd4c: 23dc lbu a5,4(a5) + bd4e: 8c7d and s0,s0,a5 + bd50: 00803533 snez a0,s0 + bd54: 40b2 lw ra,12(sp) + bd56: 4422 lw s0,8(sp) + bd58: 0141 addi sp,sp,16 + bd5a: 8082 ret + bd5c: 4505 li a0,1 + bd5e: 8082 ret + +0000bd60 : +linkDB_UpdateMTU(): + bd60: 1141 addi sp,sp,-16 + bd62: c422 sw s0,8(sp) + bd64: c606 sw ra,12(sp) + bd66: 842e mv s0,a1 + bd68: dc9ff0ef jal ra,bb30 + bd6c: cd01 beqz a0,bd84 + bd6e: 295a lhu a4,20(a0) + bd70: 87aa mv a5,a0 + bd72: 4505 li a0,1 + bd74: 00870463 beq a4,s0,bd7c + bd78: abc2 sh s0,20(a5) + bd7a: 4501 li a0,0 + bd7c: 40b2 lw ra,12(sp) + bd7e: 4422 lw s0,8(sp) + bd80: 0141 addi sp,sp,16 + bd82: 8082 ret + bd84: 4505 li a0,1 + bd86: bfdd j bd7c + +0000bd88 : +linkDB_PerformFunc(): + bd88: c939 beqz a0,bdde + bd8a: 1101 addi sp,sp,-32 + bd8c: c84a sw s2,16(sp) + bd8e: 6941 lui s2,0x10 + bd90: cc22 sw s0,24(sp) + bd92: ca26 sw s1,20(sp) + bd94: c64e sw s3,12(sp) + bd96: c452 sw s4,8(sp) + bd98: c256 sw s5,4(sp) + bd9a: ce06 sw ra,28(sp) + bd9c: 84aa mv s1,a0 + bd9e: 4401 li s0,0 + bda0: 9cc18993 addi s3,gp,-1588 # 20001384 + bda4: 9c418a13 addi s4,gp,-1596 # 2000137c + bda8: 03c00a93 li s5,60 + bdac: 197d addi s2,s2,-1 # ffff + bdae: 0069c783 lbu a5,6(s3) + bdb2: 00f44b63 blt s0,a5,bdc8 + bdb6: 40f2 lw ra,28(sp) + bdb8: 4462 lw s0,24(sp) + bdba: 44d2 lw s1,20(sp) + bdbc: 4942 lw s2,16(sp) + bdbe: 49b2 lw s3,12(sp) + bdc0: 4a22 lw s4,8(sp) + bdc2: 4a92 lw s5,4(sp) + bdc4: 6105 addi sp,sp,32 + bdc6: 8082 ret + bdc8: 035407b3 mul a5,s0,s5 + bdcc: 000a2503 lw a0,0(s4) + bdd0: 953e add a0,a0,a5 + bdd2: 213e lhu a5,2(a0) + bdd4: 01278363 beq a5,s2,bdda + bdd8: 9482 jalr s1 + bdda: 0405 addi s0,s0,1 + bddc: bfc9 j bdae + bdde: 8082 ret + +0000bde0 : +linkDB_PeripheralLinkNum(): + bde0: 9c41a783 lw a5,-1596(gp) # 2000137c + bde4: 66c1 lui a3,0x10 + bde6: 9d21c603 lbu a2,-1582(gp) # 2000138a + bdea: 0789 addi a5,a5,2 + bdec: 4701 li a4,0 + bdee: 4501 li a0,0 + bdf0: 16fd addi a3,a3,-1 # ffff + bdf2: 4591 li a1,4 + bdf4: 00c74363 blt a4,a2,bdfa + bdf8: 8082 ret + bdfa: 0007d803 lhu a6,0(a5) + bdfe: 00d80963 beq a6,a3,be10 + be02: 00a7c803 lbu a6,10(a5) + be06: 00b81563 bne a6,a1,be10 + be0a: 0505 addi a0,a0,1 + be0c: 0ff57513 zext.b a0,a0 + be10: 0705 addi a4,a4,1 + be12: 03c78793 addi a5,a5,60 + be16: bff9 j bdf4 + +0000be18 : +linkDB_GetSMEvtID(): + be18: 9c41a683 lw a3,-1596(gp) # 2000137c + be1c: 9d21c603 lbu a2,-1582(gp) # 2000138a + be20: 0691 addi a3,a3,4 + be22: 4701 li a4,0 + be24: 4781 li a5,0 + be26: 00e61f63 bne a2,a4,be44 + be2a: 8385 srli a5,a5,0x1 + be2c: fff7c793 not a5,a5 + be30: 4505 li a0,1 + be32: 0807c7b3 zext.h a5,a5 + be36: 02e56163 bltu a0,a4,be58 + be3a: 28a01533 bset a0,zero,a0 + be3e: 08054533 zext.h a0,a0 + be42: 8082 ret + be44: 228c lbu a1,0(a3) + be46: c199 beqz a1,be4c + be48: 36ce lhu a1,44(a3) + be4a: 8fcd or a5,a5,a1 + be4c: 0705 addi a4,a4,1 + be4e: 0ff77713 zext.b a4,a4 + be52: 03c68693 addi a3,a3,60 + be56: bfc1 j be26 + be58: 0017f693 andi a3,a5,1 + be5c: fef9 bnez a3,be3a + be5e: 0505 addi a0,a0,1 + be60: 8385 srli a5,a5,0x1 + be62: 0ff57513 zext.b a0,a0 + be66: bfc1 j be36 + +0000be68 : +linkDB_Add(): + be68: 7179 addi sp,sp,-48 + be6a: ca56 sw s5,20(sp) + be6c: 8aaa mv s5,a0 + be6e: 852e mv a0,a1 + be70: d226 sw s1,36(sp) + be72: d04a sw s2,32(sp) + be74: ce4e sw s3,28(sp) + be76: cc52 sw s4,24(sp) + be78: c85a sw s6,16(sp) + be7a: c65e sw s7,12(sp) + be7c: c462 sw s8,8(sp) + be7e: d606 sw ra,44(sp) + be80: d422 sw s0,40(sp) + be82: 84ae mv s1,a1 + be84: 8b32 mv s6,a2 + be86: 8c36 mv s8,a3 + be88: 8bba mv s7,a4 + be8a: 8a3e mv s4,a5 + be8c: 89c2 mv s3,a6 + be8e: 8946 mv s2,a7 + be90: ca1ff0ef jal ra,bb30 + be94: ed2d bnez a0,bf0e + be96: 6541 lui a0,0x10 + be98: 157d addi a0,a0,-1 # ffff + be9a: c97ff0ef jal ra,bb30 + be9e: 842a mv s0,a0 + bea0: 4555 li a0,21 + bea2: c831 beqz s0,bef6 + bea4: 4619 li a2,6 + bea6: 85de mv a1,s7 + bea8: 00640513 addi a0,s0,6 + beac: 018402a3 sb s8,5(s0) + beb0: 1fff5097 auipc ra,0x1fff5 + beb4: 9ac080e7 jalr -1620(ra) # 2000085c + beb8: 03015783 lhu a5,48(sp) + bebc: a026 sh s1,2(s0) + bebe: 01640223 sb s6,4(s0) + bec2: a83e sh a5,18(s0) + bec4: 03415783 lhu a5,52(sp) + bec8: 01540023 sb s5,0(s0) + becc: 02042623 sw zero,44(s0) + bed0: a85e sh a5,20(s0) + bed2: 01440623 sb s4,12(s0) + bed6: 01341723 sh s3,14(s0) + beda: 01241823 sh s2,16(s0) + bede: f3bff0ef jal ra,be18 + bee2: b80a sh a0,48(s0) + bee4: 02042a23 sw zero,52(s0) + bee8: 8526 mv a0,s1 + beea: 02042c23 sw zero,56(s0) + beee: 4581 li a1,0 + bef0: b91ff0ef jal ra,ba80 + bef4: 4501 li a0,0 + bef6: 50b2 lw ra,44(sp) + bef8: 5422 lw s0,40(sp) + befa: 5492 lw s1,36(sp) + befc: 5902 lw s2,32(sp) + befe: 49f2 lw s3,28(sp) + bf00: 4a62 lw s4,24(sp) + bf02: 4ad2 lw s5,20(sp) + bf04: 4b42 lw s6,16(sp) + bf06: 4bb2 lw s7,12(sp) + bf08: 4c22 lw s8,8(sp) + bf0a: 6145 addi sp,sp,48 + bf0c: 8082 ret + bf0e: 4545 li a0,17 + bf10: b7dd j bef6 + +0000bf12 : +linkDB_GetHandleFromSMEvtID(): + bf12: 9d21c683 lbu a3,-1582(gp) # 2000138a + bf16: 9c41a703 lw a4,-1596(gp) # 2000137c + bf1a: 4781 li a5,0 + bf1c: 00f69563 bne a3,a5,bf26 + bf20: 6541 lui a0,0x10 + bf22: 157d addi a0,a0,-1 # ffff + bf24: 8082 ret + bf26: 3b0e lhu a1,48(a4) + bf28: 03c70613 addi a2,a4,60 + bf2c: 00a59463 bne a1,a0,bf34 + bf30: 232a lhu a0,2(a4) + bf32: 8082 ret + bf34: 0785 addi a5,a5,1 + bf36: 0ff7f793 zext.b a5,a5 + bf3a: 8732 mv a4,a2 + bf3c: b7c5 j bf1c + +0000bf3e : +linkDB_GetPairingParam(): + bf3e: 6641 lui a2,0x10 + bf40: 9d21c583 lbu a1,-1582(gp) # 2000138a + bf44: 9c41a703 lw a4,-1596(gp) # 2000137c + bf48: 4781 li a5,0 + bf4a: 167d addi a2,a2,-1 # ffff + bf4c: 4815 li a6,5 + bf4e: 00f59463 bne a1,a5,bf56 + bf52: 4501 li a0,0 + bf54: 8082 ret + bf56: 2336 lhu a3,2(a4) + bf58: 853a mv a0,a4 + bf5a: 00c68b63 beq a3,a2,bf70 + bf5e: 5b54 lw a3,52(a4) + bf60: ca81 beqz a3,bf70 + bf62: 32b4 lbu a3,3(a3) + bf64: fdf68693 addi a3,a3,-33 + bf68: 0ff6f693 zext.b a3,a3 + bf6c: fed874e3 bgeu a6,a3,bf54 + bf70: 0785 addi a5,a5,1 + bf72: 0ff7f793 zext.b a5,a5 + bf76: 03c70713 addi a4,a4,60 + bf7a: bfd1 j bf4e + +0000bf7c : +linkDB_NeedSendKey(): + bf7c: 6641 lui a2,0x10 + bf7e: 9d21c583 lbu a1,-1582(gp) # 2000138a + bf82: 9c41a703 lw a4,-1596(gp) # 2000137c + bf86: 4781 li a5,0 + bf88: 167d addi a2,a2,-1 # ffff + bf8a: 4825 li a6,9 + bf8c: 00f59463 bne a1,a5,bf94 + bf90: 4501 li a0,0 + bf92: 8082 ret + bf94: 2336 lhu a3,2(a4) + bf96: 853a mv a0,a4 + bf98: 00c68b63 beq a3,a2,bfae + bf9c: 5b54 lw a3,52(a4) + bf9e: ca81 beqz a3,bfae + bfa0: 32b4 lbu a3,3(a3) + bfa2: fde68693 addi a3,a3,-34 + bfa6: 0ff6f693 zext.b a3,a3 + bfaa: fed874e3 bgeu a6,a3,bf92 + bfae: 0785 addi a5,a5,1 + bfb0: 0ff7f793 zext.b a5,a5 + bfb4: 03c70713 addi a4,a4,60 + bfb8: bfd1 j bf8c + +0000bfba : +smStartRspTimer(): + bfba: 1101 addi sp,sp,-32 + bfbc: cc22 sw s0,24(sp) + bfbe: 842a mv s0,a0 + bfc0: 4511 li a0,4 + bfc2: ce06 sw ra,28(sp) + bfc4: f5cfb0ef jal ra,7720 + bfc8: cd19 beqz a0,bfe6 + bfca: c62a sw a0,12(sp) + bfcc: 8522 mv a0,s0 + bfce: b63ff0ef jal ra,bb30 + bfd2: c911 beqz a0,bfe6 + bfd4: 4462 lw s0,24(sp) + bfd6: 4632 lw a2,12(sp) + bfd8: 390e lhu a1,48(a0) + bfda: 40f2 lw ra,28(sp) + bfdc: 9cf1c503 lbu a0,-1585(gp) # 20001387 + bfe0: 6105 addi sp,sp,32 + bfe2: f3ff906f j 5f20 + bfe6: 40f2 lw ra,28(sp) + bfe8: 4462 lw s0,24(sp) + bfea: 6105 addi sp,sp,32 + bfec: 8082 ret + +0000bfee : +smFreePairingParams(): + bfee: 1141 addi sp,sp,-16 + bff0: c422 sw s0,8(sp) + bff2: 5940 lw s0,52(a0) + bff4: c226 sw s1,4(sp) + bff6: c606 sw ra,12(sp) + bff8: 84aa mv s1,a0 + bffa: c431 beqz s0,c046 + bffc: 5408 lw a0,40(s0) + bffe: c509 beqz a0,c008 + c000: 1fff5097 auipc ra,0x1fff5 + c004: ec0080e7 jalr -320(ra) # 20000ec0 + c008: 5828 lw a0,112(s0) + c00a: c509 beqz a0,c014 + c00c: 1fff5097 auipc ra,0x1fff5 + c010: eb4080e7 jalr -332(ra) # 20000ec0 + c014: 5868 lw a0,116(s0) + c016: c509 beqz a0,c020 + c018: 1fff5097 auipc ra,0x1fff5 + c01c: ea8080e7 jalr -344(ra) # 20000ec0 + c020: 5c28 lw a0,120(s0) + c022: c509 beqz a0,c02c + c024: 1fff5097 auipc ra,0x1fff5 + c028: e9c080e7 jalr -356(ra) # 20000ec0 + c02c: 5c68 lw a0,124(s0) + c02e: c509 beqz a0,c038 + c030: 1fff5097 auipc ra,0x1fff5 + c034: e90080e7 jalr -368(ra) # 20000ec0 + c038: 8522 mv a0,s0 + c03a: 1fff5097 auipc ra,0x1fff5 + c03e: e86080e7 jalr -378(ra) # 20000ec0 + c042: 0204aa23 sw zero,52(s1) + c046: 4422 lw s0,8(sp) + c048: 388e lhu a1,48(s1) + c04a: 40b2 lw ra,12(sp) + c04c: 4492 lw s1,4(sp) + c04e: 9cf1c503 lbu a0,-1585(gp) # 20001387 + c052: 0141 addi sp,sp,16 + c054: 8c4fa06f j 6118 + +0000c058 : +smEndPairing(): + c058: 1141 addi sp,sp,-16 + c05a: c226 sw s1,4(sp) + c05c: c606 sw ra,12(sp) + c05e: c422 sw s0,8(sp) + c060: 84ae mv s1,a1 + c062: acfff0ef jal ra,bb30 + c066: c531 beqz a0,c0b2 + c068: 03452303 lw t1,52(a0) + c06c: 842a mv s0,a0 + c06e: 04030263 beqz t1,c0b2 + c072: 07c32883 lw a7,124(t1) + c076: 07832803 lw a6,120(t1) + c07a: 07432783 lw a5,116(t1) + c07e: 07032703 lw a4,112(t1) + c082: 00634683 lbu a3,6(t1) + c086: 00035603 lhu a2,0(t1) + c08a: 00234583 lbu a1,2(t1) + c08e: 8526 mv a0,s1 + c090: f06fb0ef jal ra,7796 + c094: 8522 mv a0,s0 + c096: f59ff0ef jal ra,bfee + c09a: ee3ff0ef jal ra,bf7c + c09e: c911 beqz a0,c0b2 + c0a0: 4422 lw s0,8(sp) + c0a2: 40b2 lw ra,12(sp) + c0a4: 4492 lw s1,4(sp) + c0a6: 9cf1c503 lbu a0,-1585(gp) # 20001387 + c0aa: 4585 li a1,1 + c0ac: 0141 addi sp,sp,16 + c0ae: 3960e06f j 1a444 + c0b2: 40b2 lw ra,12(sp) + c0b4: 4422 lw s0,8(sp) + c0b6: 4492 lw s1,4(sp) + c0b8: 0141 addi sp,sp,16 + c0ba: 8082 ret + +0000c0bc : +smLinkCheck(): + c0bc: 1141 addi sp,sp,-16 + c0be: c422 sw s0,8(sp) + c0c0: c226 sw s1,4(sp) + c0c2: c606 sw ra,12(sp) + c0c4: 84aa mv s1,a0 + c0c6: 842e mv s0,a1 + c0c8: a69ff0ef jal ra,bb30 + c0cc: 595c lw a5,52(a0) + c0ce: cf89 beqz a5,c0e8 + c0d0: 239e lhu a5,0(a5) + c0d2: 00979b63 bne a5,s1,c0e8 + c0d6: 4785 li a5,1 + c0d8: 00f41863 bne s0,a5,c0e8 + c0dc: 4422 lw s0,8(sp) + c0de: 40b2 lw ra,12(sp) + c0e0: 4492 lw s1,4(sp) + c0e2: 0141 addi sp,sp,16 + c0e4: f0bff06f j bfee + c0e8: 40b2 lw ra,12(sp) + c0ea: 4422 lw s0,8(sp) + c0ec: 4492 lw s1,4(sp) + c0ee: 0141 addi sp,sp,16 + c0f0: 8082 ret + +0000c0f2 : +smNextPairingState(): + c0f2: 1141 addi sp,sp,-16 + c0f4: c606 sw ra,12(sp) + c0f6: c422 sw s0,8(sp) + c0f8: c226 sw s1,4(sp) + c0fa: e45ff0ef jal ra,bf3e + c0fe: c505 beqz a0,c126 + c100: 5944 lw s1,52(a0) + c102: 842a mv s0,a0 + c104: c08d beqz s1,c126 + c106: 8526 mv a0,s1 + c108: 573000ef jal ra,ce7a + c10c: 30b8 lbu a4,3(s1) + c10e: 02f00793 li a5,47 + c112: 00f71a63 bne a4,a5,c126 + c116: 202a lhu a0,2(s0) + c118: 4422 lw s0,8(sp) + c11a: 40b2 lw ra,12(sp) + c11c: 4492 lw s1,4(sp) + c11e: 4581 li a1,0 + c120: 0141 addi sp,sp,16 + c122: f37ff06f j c058 + c126: 40b2 lw ra,12(sp) + c128: 4422 lw s0,8(sp) + c12a: 4492 lw s1,4(sp) + c12c: 0141 addi sp,sp,16 + c12e: 8082 ret + +0000c130 : +smProcessEncryptChange(): + c130: 1101 addi sp,sp,-32 + c132: cc22 sw s0,24(sp) + c134: ca26 sw s1,20(sp) + c136: ce06 sw ra,28(sp) + c138: c84a sw s2,16(sp) + c13a: c64e sw s3,12(sp) + c13c: 84aa mv s1,a0 + c13e: 842e mv s0,a1 + c140: 9f1ff0ef jal ra,bb30 + c144: cd05 beqz a0,c17c + c146: 03452903 lw s2,52(a0) + c14a: 04090b63 beqz s2,c1a0 + c14e: 00095983 lhu s3,0(s2) + c152: 04999763 bne s3,s1,c1a0 + c156: 00394783 lbu a5,3(s2) + c15a: 02100713 li a4,33 + c15e: 02e79763 bne a5,a4,c18c + c162: 854a mv a0,s2 + c164: 517000ef jal ra,ce7a + c168: 00394703 lbu a4,3(s2) + c16c: 02f00793 li a5,47 + c170: 00f71663 bne a4,a5,c17c + c174: 4581 li a1,0 + c176: 854e mv a0,s3 + c178: ee1ff0ef jal ra,c058 + c17c: 40f2 lw ra,28(sp) + c17e: 4462 lw s0,24(sp) + c180: 44d2 lw s1,20(sp) + c182: 4942 lw s2,16(sp) + c184: 49b2 lw s3,12(sp) + c186: 4505 li a0,1 + c188: 6105 addi sp,sp,32 + c18a: 8082 ret + c18c: 02a00713 li a4,42 + c190: 00e79863 bne a5,a4,c1a0 + c194: c019 beqz s0,c19a + c196: 03200413 li s0,50 + c19a: 85a2 mv a1,s0 + c19c: 8526 mv a0,s1 + c19e: bfe9 j c178 + c1a0: e809 bnez s0,c1b2 + c1a2: 8526 mv a0,s1 + c1a4: 98dff0ef jal ra,bb30 + c1a8: c509 beqz a0,c1b2 + c1aa: 215c lbu a5,4(a0) + c1ac: 0107e793 ori a5,a5,16 + c1b0: a15c sb a5,4(a0) + c1b2: 85a6 mv a1,s1 + c1b4: 8522 mv a0,s0 + c1b6: 93cfb0ef jal ra,72f2 + c1ba: b7c9 j c17c + +0000c1bc : +smSendSMMsg(): + c1bc: 1101 addi sp,sp,-32 + c1be: ca26 sw s1,20(sp) + c1c0: 4799 li a5,6 + c1c2: 856c sh a1,10(sp) + c1c4: 84aa mv s1,a0 + c1c6: 852e mv a0,a1 + c1c8: 458d li a1,3 + c1ca: cc22 sw s0,24(sp) + c1cc: c84a sw s2,16(sp) + c1ce: ce06 sw ra,28(sp) + c1d0: 8932 mv s2,a2 + c1d2: 8436 mv s0,a3 + c1d4: 847c sh a5,8(sp) + c1d6: 82cff0ef jal ra,b202 + c1da: c62a sw a0,12(sp) + c1dc: c91d beqz a0,c212 + c1de: 85aa mv a1,a0 + c1e0: 854a mv a0,s2 + c1e2: 9402 jalr s0 + c1e4: 842a mv s0,a0 + c1e6: e519 bnez a0,c1f4 + c1e8: 002c addi a1,sp,8 + c1ea: 8526 mv a0,s1 + c1ec: e60ff0ef jal ra,b84c + c1f0: 842a mv s0,a0 + c1f2: c511 beqz a0,c1fe + c1f4: 4532 lw a0,12(sp) + c1f6: 1fff5097 auipc ra,0x1fff5 + c1fa: cca080e7 jalr -822(ra) # 20000ec0 + c1fe: 8526 mv a0,s1 + c200: dbbff0ef jal ra,bfba + c204: 40f2 lw ra,28(sp) + c206: 8522 mv a0,s0 + c208: 4462 lw s0,24(sp) + c20a: 44d2 lw s1,20(sp) + c20c: 4942 lw s2,16(sp) + c20e: 6105 addi sp,sp,32 + c210: 8082 ret + c212: 444d li s0,19 + c214: b7ed j c1fe + +0000c216 : +smSendFailAndEnd(): + c216: 1141 addi sp,sp,-16 + c218: c422 sw s0,8(sp) + c21a: 862e mv a2,a1 + c21c: 842e mv s0,a1 + c21e: 00001697 auipc a3,0x1 + c222: b0268693 addi a3,a3,-1278 # cd20 + c226: 4589 li a1,2 + c228: c606 sw ra,12(sp) + c22a: c226 sw s1,4(sp) + c22c: c04a sw s2,0(sp) + c22e: 892a mv s2,a0 + c230: f8dff0ef jal ra,c1bc + c234: 200c lbu a1,0(s0) + c236: 84aa mv s1,a0 + c238: 854a mv a0,s2 + c23a: e1fff0ef jal ra,c058 + c23e: 40b2 lw ra,12(sp) + c240: 4422 lw s0,8(sp) + c242: 4902 lw s2,0(sp) + c244: 8526 mv a0,s1 + c246: 4492 lw s1,4(sp) + c248: 0141 addi sp,sp,16 + c24a: 8082 ret + +0000c24c : +smProcessPairingReq(): + c24c: 7179 addi sp,sp,-48 + c24e: d422 sw s0,40(sp) + c250: d606 sw ra,44(sp) + c252: 419c lw a5,0(a1) + c254: 0810 addi a2,sp,16 + c256: 842a mv s0,a0 + c258: c83e sw a5,16(sp) + c25a: 41dc lw a5,4(a1) + c25c: 4585 li a1,1 + c25e: ca3e sw a5,20(sp) + c260: 75d000ef jal ra,d1bc + c264: c511 beqz a0,c270 + c266: 8648 sb a0,12(sp) + c268: 202a lhu a0,2(s0) + c26a: 006c addi a1,sp,12 + c26c: fabff0ef jal ra,c216 + c270: 50b2 lw ra,44(sp) + c272: 5422 lw s0,40(sp) + c274: 6145 addi sp,sp,48 + c276: 8082 ret + +0000c278 : +smSetPairingReqRsp(): + c278: 87aa mv a5,a0 + c27a: 852e mv a0,a1 + c27c: cf91 beqz a5,c298 + c27e: 57fc lw a5,108(a5) + c280: cf81 beqz a5,c298 + c282: 2398 lbu a4,0(a5) + c284: a198 sb a4,0(a1) + c286: 3398 lbu a4,1(a5) + c288: b198 sb a4,1(a1) + c28a: 2bb8 lbu a4,18(a5) + c28c: a1b8 sb a4,2(a1) + c28e: 2f98 lbu a4,24(a5) + c290: 4bdc lw a5,20(a5) + c292: b1b8 sb a4,3(a1) + c294: c1dc sw a5,4(a1) + c296: 8082 ret + c298: 4641 li a2,16 + c29a: 4581 li a1,0 + c29c: 1fff4317 auipc t1,0x1fff4 + c2a0: 5fe30067 jr 1534(t1) # 2000089a + +0000c2a4 : +sm_c1(): + c2a4: c935 beqz a0,c318 + c2a6: 711d addi sp,sp,-96 + c2a8: cca2 sw s0,88(sp) + c2aa: 842a mv s0,a0 + c2ac: 210a lhu a0,0(a0) + c2ae: caa6 sw s1,84(sp) + c2b0: c8ca sw s2,80(sp) + c2b2: c6ce sw s3,76(sp) + c2b4: c4d2 sw s4,72(sp) + c2b6: ce86 sw ra,92(sp) + c2b8: 892e mv s2,a1 + c2ba: 89b2 mv s3,a2 + c2bc: 8a36 mv s4,a3 + c2be: 873ff0ef jal ra,bb30 + c2c2: 84aa mv s1,a0 + c2c4: c131 beqz a0,c308 + c2c6: 180c addi a1,sp,48 + c2c8: 8522 mv a0,s0 + c2ca: fafff0ef jal ra,c278 + c2ce: d7bfa0ef jal ra,7048 + c2d2: 30d8 lbu a4,5(s1) + c2d4: ce2a sw a0,28(sp) + c2d6: 4501 li a0,0 + c2d8: cc3a sw a4,24(sp) + c2da: d4bfa0ef jal ra,7024 + c2de: ca2a sw a0,20(sp) + c2e0: 5408 lw a0,40(s0) + c2e2: 100c addi a1,sp,32 + c2e4: 233000ef jal ra,cd16 + c2e8: 102c addi a1,sp,40 + c2ea: 1808 addi a0,sp,48 + c2ec: 0bf000ef jal ra,cbaa + c2f0: 48d2 lw a7,20(sp) + c2f2: 4872 lw a6,28(sp) + c2f4: 4762 lw a4,24(sp) + c2f6: c052 sw s4,0(sp) + c2f8: 00648793 addi a5,s1,6 + c2fc: 1014 addi a3,sp,32 + c2fe: 1030 addi a2,sp,40 + c300: 85ce mv a1,s3 + c302: 854a mv a0,s2 + c304: 4a8010ef jal ra,d7ac + c308: 40f6 lw ra,92(sp) + c30a: 4466 lw s0,88(sp) + c30c: 44d6 lw s1,84(sp) + c30e: 4946 lw s2,80(sp) + c310: 49b6 lw s3,76(sp) + c312: 4a26 lw s4,72(sp) + c314: 6125 addi sp,sp,96 + c316: 8082 ret + c318: 8082 ret + +0000c31a : +smDetermineKeySize(): + c31a: 87aa mv a5,a0 + c31c: cd01 beqz a0,c334 + c31e: 5518 lw a4,40(a0) + c320: 4541 li a0,16 + c322: cb11 beqz a4,c336 + c324: 57fc lw a5,108(a5) + c326: cb81 beqz a5,c336 + c328: 3328 lbu a0,3(a4) + c32a: 473d li a4,15 + c32c: 00a77563 bgeu a4,a0,c336 + c330: 2f88 lbu a0,24(a5) + c332: 8082 ret + c334: 4541 li a0,16 + c336: 8082 ret + +0000c338 : +smpParsePairingReq(): + c338: c56d beqz a0,c422 + c33a: 1141 addi sp,sp,-16 + c33c: c422 sw s0,8(sp) + c33e: c606 sw ra,12(sp) + c340: c226 sw s1,4(sp) + c342: 87aa mv a5,a0 + c344: 842e mv s0,a1 + c346: 4509 li a0,2 + c348: c9e1 beqz a1,c418 + c34a: 3398 lbu a4,1(a5) + c34c: 767d lui a2,0xfffff + c34e: 7ff60613 addi a2,a2,2047 # fffff7ff <_eusrstack+0xdfffc7ff> + c352: a198 sb a4,0(a1) + c354: 23b8 lbu a4,2(a5) + c356: 4515 li a0,5 + c358: b198 sb a4,1(a1) + c35a: 33b8 lbu a4,3(a5) + c35c: a1b8 sb a4,2(a1) + c35e: 23d8 lbu a4,4(a5) + c360: b1b8 sb a4,3(a1) + c362: 33d4 lbu a3,5(a5) + c364: 21da lhu a4,4(a1) + c366: 8a85 andi a3,a3,1 + c368: 06a2 slli a3,a3,0x8 + c36a: eff77713 andi a4,a4,-257 + c36e: 8f55 or a4,a4,a3 + c370: a1da sh a4,4(a1) + c372: 33d4 lbu a3,5(a5) + c374: 08074733 zext.h a4,a4 + c378: dff77713 andi a4,a4,-513 + c37c: 4816d693 bexti a3,a3,0x1 + c380: 06a6 slli a3,a3,0x9 + c382: 8f55 or a4,a4,a3 + c384: a1da sh a4,4(a1) + c386: 33d4 lbu a3,5(a5) + c388: 08074733 zext.h a4,a4 + c38c: bff77713 andi a4,a4,-1025 + c390: 4826d693 bexti a3,a3,0x2 + c394: 06aa slli a3,a3,0xa + c396: 8f55 or a4,a4,a3 + c398: a1da sh a4,4(a1) + c39a: 33d4 lbu a3,5(a5) + c39c: 08074733 zext.h a4,a4 + c3a0: 8f71 and a4,a4,a2 + c3a2: 4836d693 bexti a3,a3,0x3 + c3a6: 06ae slli a3,a3,0xb + c3a8: 8f55 or a4,a4,a3 + c3aa: a1da sh a4,4(a1) + c3ac: 23f4 lbu a3,6(a5) + c3ae: 08074733 zext.h a4,a4 + c3b2: 9b79 andi a4,a4,-2 + c3b4: 8a85 andi a3,a3,1 + c3b6: 8f55 or a4,a4,a3 + c3b8: a1da sh a4,4(a1) + c3ba: 23f4 lbu a3,6(a5) + c3bc: 08074733 zext.h a4,a4 + c3c0: 9b75 andi a4,a4,-3 + c3c2: 8a89 andi a3,a3,2 + c3c4: 8f55 or a4,a4,a3 + c3c6: a1da sh a4,4(a1) + c3c8: 23f4 lbu a3,6(a5) + c3ca: 08074733 zext.h a4,a4 + c3ce: 9b6d andi a4,a4,-5 + c3d0: 8a91 andi a3,a3,4 + c3d2: 8f55 or a4,a4,a3 + c3d4: a1da sh a4,4(a1) + c3d6: 23f8 lbu a4,6(a5) + c3d8: 21de lhu a5,4(a1) + c3da: 8b21 andi a4,a4,8 + c3dc: 9bdd andi a5,a5,-9 + c3de: 8fd9 or a5,a5,a4 + c3e0: a1de sh a5,4(a1) + c3e2: b3efb0ef jal ra,7720 + c3e6: 84aa mv s1,a0 + c3e8: 4519 li a0,6 + c3ea: b36fb0ef jal ra,7720 + c3ee: 3038 lbu a4,3(s0) + c3f0: 0ff4f493 zext.b s1,s1 + c3f4: 87aa mv a5,a0 + c3f6: 4549 li a0,18 + c3f8: 02976063 bltu a4,s1,c418 + c3fc: 0ff7f793 zext.b a5,a5 + c400: 00e7ec63 bltu a5,a4,c418 + c404: 2018 lbu a4,0(s0) + c406: 4791 li a5,4 + c408: 4561 li a0,24 + c40a: 00e7e763 bltu a5,a4,c418 + c40e: 3018 lbu a4,1(s0) + c410: 4785 li a5,1 + c412: 00e7e363 bltu a5,a4,c418 + c416: 4501 li a0,0 + c418: 40b2 lw ra,12(sp) + c41a: 4422 lw s0,8(sp) + c41c: 4492 lw s1,4(sp) + c41e: 0141 addi sp,sp,16 + c420: 8082 ret + c422: 4509 li a0,2 + c424: 8082 ret + +0000c426 : +smpParseIdentityAddrInfo(): + c426: c515 beqz a0,c452 + c428: 872a mv a4,a0 + c42a: 87ae mv a5,a1 + c42c: 4509 li a0,2 + c42e: c585 beqz a1,c456 + c430: 1141 addi sp,sp,-16 + c432: c606 sw ra,12(sp) + c434: 3314 lbu a3,1(a4) + c436: 00178513 addi a0,a5,1 + c43a: 4619 li a2,6 + c43c: a194 sb a3,0(a1) + c43e: 00270593 addi a1,a4,2 + c442: 1fff4097 auipc ra,0x1fff4 + c446: 41a080e7 jalr 1050(ra) # 2000085c + c44a: 40b2 lw ra,12(sp) + c44c: 4501 li a0,0 + c44e: 0141 addi sp,sp,16 + c450: 8082 ret + c452: 4509 li a0,2 + c454: 8082 ret + c456: 8082 ret + +0000c458 : +smpParseMasterID(): + c458: c90d beqz a0,c48a + c45a: 87aa mv a5,a0 + c45c: 872e mv a4,a1 + c45e: 4509 li a0,2 + c460: c59d beqz a1,c48e + c462: 1141 addi sp,sp,-16 + c464: c606 sw ra,12(sp) + c466: 23b4 lbu a3,2(a5) + c468: 3390 lbu a2,1(a5) + c46a: 00270513 addi a0,a4,2 + c46e: 06a2 slli a3,a3,0x8 + c470: 8ed1 or a3,a3,a2 + c472: a196 sh a3,0(a1) + c474: 4621 li a2,8 + c476: 00378593 addi a1,a5,3 + c47a: 1fff4097 auipc ra,0x1fff4 + c47e: 3e2080e7 jalr 994(ra) # 2000085c + c482: 40b2 lw ra,12(sp) + c484: 4501 li a0,0 + c486: 0141 addi sp,sp,16 + c488: 8082 ret + c48a: 4509 li a0,2 + c48c: 8082 ret + c48e: 8082 ret + +0000c490 : +smpParsePairingConfirm(): + c490: c11d beqz a0,c4b6 + c492: 872a mv a4,a0 + c494: 87ae mv a5,a1 + c496: 4509 li a0,2 + c498: c18d beqz a1,c4ba + c49a: 1141 addi sp,sp,-16 + c49c: 853e mv a0,a5 + c49e: 4641 li a2,16 + c4a0: 00170593 addi a1,a4,1 + c4a4: c606 sw ra,12(sp) + c4a6: 1fff4097 auipc ra,0x1fff4 + c4aa: 3b6080e7 jalr 950(ra) # 2000085c + c4ae: 40b2 lw ra,12(sp) + c4b0: 4501 li a0,0 + c4b2: 0141 addi sp,sp,16 + c4b4: 8082 ret + c4b6: 4509 li a0,2 + c4b8: 8082 ret + c4ba: 8082 ret + +0000c4bc : +smpParsePairingFailed(): + c4bc: 87aa mv a5,a0 + c4be: 4509 li a0,2 + c4c0: cb91 beqz a5,c4d4 + c4c2: c989 beqz a1,c4d4 + c4c4: 339c lbu a5,1(a5) + c4c6: 473d li a4,15 + c4c8: 4561 li a0,24 + c4ca: 00f76563 bltu a4,a5,c4d4 + c4ce: a19c sb a5,0(a1) + c4d0: 4501 li a0,0 + c4d2: 8082 ret + c4d4: 8082 ret + +0000c4d6 : +smProcessDataMsg(): + c4d6: 7179 addi sp,sp,-48 + c4d8: d422 sw s0,40(sp) + c4da: 842a mv s0,a0 + c4dc: 4508 lw a0,8(a0) + c4de: d606 sw ra,44(sp) + c4e0: d226 sw s1,36(sp) + c4e2: 00010623 sb zero,12(sp) + c4e6: 2104 lbu s1,0(a0) + c4e8: 4729 li a4,10 + c4ea: fff48793 addi a5,s1,-1 + c4ee: 0ff7f793 zext.b a5,a5 + c4f2: 08f76263 bltu a4,a5,c576 + c4f6: 0000d717 auipc a4,0xd + c4fa: 69a70713 addi a4,a4,1690 # 19b90 + c4fe: 20e7c7b3 sh2add a5,a5,a4 + c502: 439c lw a5,0(a5) + c504: 97ba add a5,a5,a4 + c506: 8782 jr a5 + c508: 080c addi a1,sp,16 + c50a: e2fff0ef jal ra,c338 + c50e: 47c9 li a5,18 + c510: 04f51063 bne a0,a5,c550 + c514: 4799 li a5,6 + c516: 865c sb a5,12(sp) + c518: 202a lhu a0,2(s0) + c51a: 006c addi a1,sp,12 + c51c: cfbff0ef jal ra,c216 + c520: 50b2 lw ra,44(sp) + c522: 5422 lw s0,40(sp) + c524: 5492 lw s1,36(sp) + c526: 6145 addi sp,sp,48 + c528: 8082 ret + c52a: 080c addi a1,sp,16 + c52c: f91ff0ef jal ra,c4bc + c530: e11d bnez a0,c556 + c532: 202a lhu a0,2(s0) + c534: dfcff0ef jal ra,bb30 + c538: 47a1 li a5,8 + c53a: c511 beqz a0,c546 + c53c: 0810 addi a2,sp,16 + c53e: 85a6 mv a1,s1 + c540: 47d000ef jal ra,d1bc + c544: 87aa mv a5,a0 + c546: 865c sb a5,12(sp) + c548: a029 j c552 + c54a: 080c addi a1,sp,16 + c54c: f0dff0ef jal ra,c458 + c550: d16d beqz a0,c532 + c552: 861c lbu a5,12(sp) + c554: f3f1 bnez a5,c518 + c556: 202a lhu a0,2(s0) + c558: a63ff0ef jal ra,bfba + c55c: b7d1 j c520 + c55e: 080c addi a1,sp,16 + c560: ec7ff0ef jal ra,c426 + c564: b7f5 j c550 + c566: 080c addi a1,sp,16 + c568: f29ff0ef jal ra,c490 + c56c: b7d5 j c550 + c56e: 311c lbu a5,1(a0) + c570: 00f10823 sb a5,16(sp) + c574: bf7d j c532 + c576: 479d li a5,7 + c578: bf79 j c516 + +0000c57a : +smProcessTMOSMsg(): + c57a: 1141 addi sp,sp,-16 + c57c: c422 sw s0,8(sp) + c57e: c606 sw ra,12(sp) + c580: c226 sw s1,4(sp) + c582: c04a sw s2,0(sp) + c584: 2118 lbu a4,0(a0) + c586: 09200793 li a5,146 + c58a: 842a mv s0,a0 + c58c: 0ef71e63 bne a4,a5,c688 + c590: 311c lbu a5,1(a0) + c592: 4739 li a4,14 + c594: 08e79f63 bne a5,a4,c632 + c598: 2156 lhu a3,4(a0) + c59a: 6709 lui a4,0x2 + c59c: 0761 addi a4,a4,24 # 2018 + c59e: 4781 li a5,0 + c5a0: 08e69263 bne a3,a4,c624 + c5a4: 9c818493 addi s1,gp,-1592 # 20001380 + c5a8: 4088 lw a0,0(s1) + c5aa: cd2d beqz a0,c624 + c5ac: 440c lw a1,8(s0) + c5ae: 0005c903 lbu s2,0(a1) + c5b2: 00091d63 bnez s2,c5cc + c5b6: 211c lbu a5,0(a0) + c5b8: 0585 addi a1,a1,1 + c5ba: 4621 li a2,8 + c5bc: c7b9 beqz a5,c60a + c5be: 0529 addi a0,a0,10 + c5c0: 1fff4097 auipc ra,0x1fff4 + c5c4: 29c080e7 jalr 668(ra) # 2000085c + c5c8: 409c lw a5,0(s1) + c5ca: cfa1 beqz a5,c622 + c5cc: 4549 li a0,18 + c5ce: dcef90ef jal ra,5b9c + c5d2: 842a mv s0,a0 + c5d4: c11d beqz a0,c5fa + c5d6: fc100793 li a5,-63 + c5da: a11c sb a5,0(a0) + c5dc: 012500a3 sb s2,1(a0) + c5e0: 408c lw a1,0(s1) + c5e2: 0509 addi a0,a0,2 + c5e4: 4641 li a2,16 + c5e6: 0589 addi a1,a1,2 + c5e8: 1fff4097 auipc ra,0x1fff4 + c5ec: 274080e7 jalr 628(ra) # 2000085c + c5f0: 409c lw a5,0(s1) + c5f2: 85a2 mv a1,s0 + c5f4: 3388 lbu a0,1(a5) + c5f6: ea0f90ef jal ra,5c96 + c5fa: 4088 lw a0,0(s1) + c5fc: 1fff5097 auipc ra,0x1fff5 + c600: 8c4080e7 jalr -1852(ra) # 20000ec0 + c604: 9c01a423 sw zero,-1592(gp) # 20001380 + c608: a829 j c622 + c60a: 0509 addi a0,a0,2 + c60c: 1fff4097 auipc ra,0x1fff4 + c610: 250080e7 jalr 592(ra) # 2000085c + c614: 61f020ef jal ra,f432 + c618: 4905 li s2,1 + c61a: f55d bnez a0,c5c8 + c61c: 409c lw a5,0(s1) + c61e: 01278023 sb s2,0(a5) + c622: 4785 li a5,1 + c624: 40b2 lw ra,12(sp) + c626: 4422 lw s0,8(sp) + c628: 4492 lw s1,4(sp) + c62a: 4902 lw s2,0(sp) + c62c: 853e mv a0,a5 + c62e: 0141 addi sp,sp,16 + c630: 8082 ret + c632: 03e00713 li a4,62 + c636: 06e79763 bne a5,a4,c6a4 + c63a: 2138 lbu a4,2(a0) + c63c: 4795 li a5,5 + c63e: 02f71363 bne a4,a5,c664 + c642: 214a lhu a0,4(a0) + c644: ed8ff0ef jal ra,bd1c + c648: 4791 li a5,4 + c64a: fcf51ce3 bne a0,a5,c622 + c64e: 2472 lhu a2,14(s0) + c650: 204a lhu a0,4(s0) + c652: 00640593 addi a1,s0,6 + c656: 4422 lw s0,8(sp) + c658: 40b2 lw ra,12(sp) + c65a: 4492 lw s1,4(sp) + c65c: 4902 lw s2,0(sp) + c65e: 0141 addi sp,sp,16 + c660: 22d0006f j d08c + c664: 47a1 li a5,8 + c666: 00f71b63 bne a4,a5,c67c + c66a: 206c lbu a1,6(s0) + c66c: 204a lhu a0,4(s0) + c66e: 4422 lw s0,8(sp) + c670: 40b2 lw ra,12(sp) + c672: 4492 lw s1,4(sp) + c674: 4902 lw s2,0(sp) + c676: 0141 addi sp,sp,16 + c678: ab9ff06f j c130 + c67c: 03000693 li a3,48 + c680: 4781 li a5,0 + c682: fad711e3 bne a4,a3,c624 + c686: b7d5 j c66a + c688: 0a000693 li a3,160 + c68c: 4781 li a5,0 + c68e: f8d71be3 bne a4,a3,c624 + c692: e45ff0ef jal ra,c4d6 + c696: 4408 lw a0,8(s0) + c698: d549 beqz a0,c622 + c69a: 1fff5097 auipc ra,0x1fff5 + c69e: 826080e7 jalr -2010(ra) # 20000ec0 + c6a2: b741 j c622 + c6a4: 4781 li a5,0 + c6a6: bfbd j c624 + +0000c6a8 : +SM_GenerateAuthenSig(): + c6a8: 715d addi sp,sp,-80 + c6aa: de4e sw s3,60(sp) + c6ac: c686 sw ra,76(sp) + c6ae: c4a2 sw s0,72(sp) + c6b0: c2a6 sw s1,68(sp) + c6b2: c0ca sw s2,64(sp) + c6b4: dc52 sw s4,56(sp) + c6b6: da56 sw s5,52(sp) + c6b8: d85a sw s6,48(sp) + c6ba: d65e sw s7,44(sp) + c6bc: 4989 li s3,2 + c6be: c155 beqz a0,c762 + c6c0: 8932 mv s2,a2 + c6c2: 4989 li s3,2 + c6c4: ce59 beqz a2,c762 + c6c6: 00458b13 addi s6,a1,4 + c6ca: 8a2a mv s4,a0 + c6cc: 8aae mv s5,a1 + c6ce: 080b4b33 zext.h s6,s6 + c6d2: 05300593 li a1,83 + c6d6: 855a mv a0,s6 + c6d8: 0140e0ef jal ra,1a6ec + c6dc: 842a mv s0,a0 + c6de: 49cd li s3,19 + c6e0: c149 beqz a0,c762 + c6e2: 985fa0ef jal ra,7066 + c6e6: 84aa mv s1,a0 + c6e8: 8656 mv a2,s5 + c6ea: 85d2 mv a1,s4 + c6ec: 0084da93 srli s5,s1,0x8 + c6f0: 0104da13 srli s4,s1,0x10 + c6f4: 0ff4fb93 zext.b s7,s1 + c6f8: 00440513 addi a0,s0,4 + c6fc: 0ffafa93 zext.b s5,s5 + c700: 0ffa7a13 zext.b s4,s4 + c704: 80e1 srli s1,s1,0x18 + c706: 3cb0d0ef jal ra,1a2d0 + c70a: 017401a3 sb s7,3(s0) + c70e: 01540123 sb s5,2(s0) + c712: 014400a3 sb s4,1(s0) + c716: a004 sb s1,0(s0) + c718: 945fa0ef jal ra,705c + c71c: 85aa mv a1,a0 + c71e: 4641 li a2,16 + c720: 0808 addi a0,sp,16 + c722: 3af0d0ef jal ra,1a2d0 + c726: 4721 li a4,8 + c728: 0034 addi a3,sp,8 + c72a: 865a mv a2,s6 + c72c: 85a2 mv a1,s0 + c72e: 0808 addi a0,sp,16 + c730: 220010ef jal ra,d950 + c734: 89aa mv s3,a0 + c736: e10d bnez a0,c758 + c738: 4621 li a2,8 + c73a: 002c addi a1,sp,8 + c73c: 01790023 sb s7,0(s2) + c740: 015900a3 sb s5,1(s2) + c744: 01490123 sb s4,2(s2) + c748: 009901a3 sb s1,3(s2) + c74c: 00490513 addi a0,s2,4 + c750: 3810d0ef jal ra,1a2d0 + c754: 91ffa0ef jal ra,7072 + c758: 8522 mv a0,s0 + c75a: 1fff4097 auipc ra,0x1fff4 + c75e: 766080e7 jalr 1894(ra) # 20000ec0 + c762: 40b6 lw ra,76(sp) + c764: 4426 lw s0,72(sp) + c766: 4496 lw s1,68(sp) + c768: 4906 lw s2,64(sp) + c76a: 5a62 lw s4,56(sp) + c76c: 5ad2 lw s5,52(sp) + c76e: 5b42 lw s6,48(sp) + c770: 5bb2 lw s7,44(sp) + c772: 854e mv a0,s3 + c774: 59f2 lw s3,60(sp) + c776: 6161 addi sp,sp,80 + c778: 8082 ret + +0000c77a : +SM_PasskeyUpdate(): + c77a: 1101 addi sp,sp,-32 + c77c: ca26 sw s1,20(sp) + c77e: 84aa mv s1,a0 + c780: 852e mv a0,a1 + c782: c84a sw s2,16(sp) + c784: ce06 sw ra,28(sp) + c786: cc22 sw s0,24(sp) + c788: 892e mv s2,a1 + c78a: ba6ff0ef jal ra,bb30 + c78e: c959 beqz a0,c824 + c790: 5940 lw s0,52(a0) + c792: c859 beqz s0,c828 + c794: 305c lbu a5,5(s0) + c796: 4709 li a4,2 + c798: 0fb7f693 andi a3,a5,251 + c79c: 00e68763 beq a3,a4,c7aa + c7a0: 4711 li a4,4 + c7a2: 0fe00513 li a0,254 + c7a6: 06e79963 bne a5,a4,c818 + c7aa: 201e lhu a5,0(s0) + c7ac: 4509 li a0,2 + c7ae: 07279563 bne a5,s2,c818 + c7b2: 00840913 addi s2,s0,8 + c7b6: 4641 li a2,16 + c7b8: 85a6 mv a1,s1 + c7ba: 854a mv a0,s2 + c7bc: 1fff4097 auipc ra,0x1fff4 + c7c0: 0a0080e7 jalr 160(ra) # 2000085c + c7c4: 4641 li a2,16 + c7c6: 85a6 mv a1,s1 + c7c8: 01840513 addi a0,s0,24 + c7cc: 1fff4097 auipc ra,0x1fff4 + c7d0: 090080e7 jalr 144(ra) # 2000085c + c7d4: 303c lbu a5,3(s0) + c7d6: 4705 li a4,1 + c7d8: 17bd addi a5,a5,-17 + c7da: 0ff7f793 zext.b a5,a5 + c7de: 02f76c63 bltu a4,a5,c816 + c7e2: 03c40613 addi a2,s0,60 + c7e6: 8532 mv a0,a2 + c7e8: 45c1 li a1,16 + c7ea: c632 sw a2,12(sp) + c7ec: ddafa0ef jal ra,6dc6 + c7f0: 4632 lw a2,12(sp) + c7f2: 02c40693 addi a3,s0,44 + c7f6: 85ca mv a1,s2 + c7f8: 8522 mv a0,s0 + c7fa: aabff0ef jal ra,c2a4 + c7fe: 3038 lbu a4,3(s0) + c800: 47c9 li a5,18 + c802: 00f71963 bne a4,a5,c814 + c806: 8522 mv a0,s0 + c808: 4462 lw s0,24(sp) + c80a: 40f2 lw ra,28(sp) + c80c: 44d2 lw s1,20(sp) + c80e: 4942 lw s2,16(sp) + c810: 6105 addi sp,sp,32 + c812: a3a5 j cd7a + c814: b03c sb a5,3(s0) + c816: 4501 li a0,0 + c818: 40f2 lw ra,28(sp) + c81a: 4462 lw s0,24(sp) + c81c: 44d2 lw s1,20(sp) + c81e: 4942 lw s2,16(sp) + c820: 6105 addi sp,sp,32 + c822: 8082 ret + c824: 4509 li a0,2 + c826: bfcd j c818 + c828: 4549 li a0,18 + c82a: b7fd j c818 + +0000c82c : +SM_ResolveRandomAddrs(): + c82c: c939 beqz a0,c882 + c82e: 1101 addi sp,sp,-32 + c830: cc22 sw s0,24(sp) + c832: ca26 sw s1,20(sp) + c834: ce06 sw ra,28(sp) + c836: 84aa mv s1,a0 + c838: 842e mv s0,a1 + c83a: 4509 li a0,2 + c83c: cd95 beqz a1,c878 + c83e: 460d li a2,3 + c840: 058d addi a1,a1,3 + c842: 0028 addi a0,sp,8 + c844: 1fff4097 auipc ra,0x1fff4 + c848: 018080e7 jalr 24(ra) # 2000085c + c84c: 851c lbu a5,10(sp) + c84e: 0070 addi a2,sp,12 + c850: 002c addi a1,sp,8 + c852: 03f7f793 andi a5,a5,63 + c856: 0407e793 ori a5,a5,64 + c85a: 8526 mv a0,s1 + c85c: 855c sb a5,10(sp) + c85e: 6cf000ef jal ra,d72c + c862: e919 bnez a0,c878 + c864: 460d li a2,3 + c866: 85a2 mv a1,s0 + c868: 0068 addi a0,sp,12 + c86a: 1fff4097 auipc ra,0x1fff4 + c86e: 070080e7 jalr 112(ra) # 200008da + c872: 157d addi a0,a0,-1 + c874: 00a03533 snez a0,a0 + c878: 40f2 lw ra,28(sp) + c87a: 4462 lw s0,24(sp) + c87c: 44d2 lw s1,20(sp) + c87e: 6105 addi sp,sp,32 + c880: 8082 ret + c882: 4509 li a0,2 + c884: 8082 ret + +0000c886 : +SM_StartPairing(): + c886: 1101 addi sp,sp,-32 + c888: c256 sw s5,4(sp) + c88a: 8aaa mv s5,a0 + c88c: 8532 mv a0,a2 + c88e: ca26 sw s1,20(sp) + c890: c64e sw s3,12(sp) + c892: c452 sw s4,8(sp) + c894: ce06 sw ra,28(sp) + c896: cc22 sw s0,24(sp) + c898: c84a sw s2,16(sp) + c89a: 8a2e mv s4,a1 + c89c: 89b2 mv s3,a2 + c89e: 84b6 mv s1,a3 + c8a0: a90ff0ef jal ra,bb30 + c8a4: ed01 bnez a0,c8bc + c8a6: 4789 li a5,2 + c8a8: 40f2 lw ra,28(sp) + c8aa: 4462 lw s0,24(sp) + c8ac: 44d2 lw s1,20(sp) + c8ae: 4942 lw s2,16(sp) + c8b0: 49b2 lw s3,12(sp) + c8b2: 4a22 lw s4,8(sp) + c8b4: 4a92 lw s5,4(sp) + c8b6: 853e mv a0,a5 + c8b8: 6105 addi sp,sp,32 + c8ba: 8082 ret + c8bc: 5958 lw a4,52(a0) + c8be: 892a mv s2,a0 + c8c0: 47c5 li a5,17 + c8c2: f37d bnez a4,c8a8 + c8c4: 4515 li a0,5 + c8c6: e5bfa0ef jal ra,7720 + c8ca: 0ff57413 zext.b s0,a0 + c8ce: 4519 li a0,6 + c8d0: e51fa0ef jal ra,7720 + c8d4: d8e9 beqz s1,c8a6 + c8d6: 2c98 lbu a4,24(s1) + c8d8: fc8767e3 bltu a4,s0,c8a6 + c8dc: 0ff57793 zext.b a5,a0 + c8e0: fce7e3e3 bltu a5,a4,c8a6 + c8e4: 05300593 li a1,83 + c8e8: 08000513 li a0,128 + c8ec: 6010d0ef jal ra,1a6ec + c8f0: 02a92a23 sw a0,52(s2) + c8f4: 842a mv s0,a0 + c8f6: 47cd li a5,19 + c8f8: d945 beqz a0,c8a8 + c8fa: 08000613 li a2,128 + c8fe: 4581 li a1,0 + c900: 1fff4097 auipc ra,0x1fff4 + c904: f9a080e7 jalr -102(ra) # 2000089a + c908: 4781 li a5,0 + c90a: 000401a3 sb zero,3(s0) + c90e: 01540123 sb s5,2(s0) + c912: 01440223 sb s4,4(s0) + c916: 01341023 sh s3,0(s0) + c91a: d464 sw s1,108(s0) + c91c: 02042423 sw zero,40(s0) + c920: 000402a3 sb zero,5(s0) + c924: b751 j c8a8 + +0000c926 : +SM_VerifyAuthenSig(): + c926: 7139 addi sp,sp,-64 + c928: dc22 sw s0,56(sp) + c92a: de06 sw ra,60(sp) + c92c: da26 sw s1,52(sp) + c92e: d84a sw s2,48(sp) + c930: d64e sw s3,44(sp) + c932: d452 sw s4,40(sp) + c934: d256 sw s5,36(sp) + c936: d05a sw s6,32(sp) + c938: ce5e sw s7,28(sp) + c93a: cc62 sw s8,24(sp) + c93c: ca66 sw s9,20(sp) + c93e: 4409 li s0,2 + c940: 0e060c63 beqz a2,ca38 + c944: 84ba mv s1,a4 + c946: 4409 li s0,2 + c948: 0e070863 beqz a4,ca38 + c94c: 8baa mv s7,a0 + c94e: 892e mv s2,a1 + c950: 8b32 mv s6,a2 + c952: 8c36 mv s8,a3 + c954: 9dcff0ef jal ra,bb30 + c958: 8aaa mv s5,a0 + c95a: 4451 li s0,20 + c95c: cd71 beqz a0,ca38 + c95e: 05300593 li a1,83 + c962: 4541 li a0,16 + c964: 5890d0ef jal ra,1a6ec + c968: 89aa mv s3,a0 + c96a: 444d li s0,19 + c96c: c571 beqz a0,ca38 + c96e: 3098 lbu a4,1(s1) + c970: 209c lbu a5,0(s1) + c972: 0034ca03 lbu s4,3(s1) + c976: 0722 slli a4,a4,0x8 + c978: 8f5d or a4,a4,a5 + c97a: 20bc lbu a5,2(s1) + c97c: 0a62 slli s4,s4,0x18 + c97e: 07c2 slli a5,a5,0x10 + c980: 8fd9 or a5,a5,a4 + c982: 00fa6a33 or s4,s4,a5 + c986: 028aa783 lw a5,40(s5) + c98a: 0147e663 bltu a5,s4,c996 + c98e: 577d li a4,-1 + c990: 4409 li s0,2 + c992: 08e79e63 bne a5,a4,ca2e + c996: 00090763 beqz s2,c9a4 + c99a: 004ac783 lbu a5,4(s5) + c99e: 4405 li s0,1 + c9a0: 8b89 andi a5,a5,2 + c9a2: c7d1 beqz a5,ca2e + c9a4: 4621 li a2,8 + c9a6: 4581 li a1,0 + c9a8: 850a mv a0,sp + c9aa: 1fff4097 auipc ra,0x1fff4 + c9ae: ef0080e7 jalr -272(ra) # 2000089a + c9b2: 004c0c93 addi s9,s8,4 + c9b6: 05300593 li a1,83 + c9ba: 080cccb3 zext.h s9,s9 + c9be: 8566 mv a0,s9 + c9c0: 52d0d0ef jal ra,1a6ec + c9c4: 892a mv s2,a0 + c9c6: 444d li s0,19 + c9c8: c13d beqz a0,ca2e + c9ca: 8662 mv a2,s8 + c9cc: 85da mv a1,s6 + c9ce: 0511 addi a0,a0,4 + c9d0: 1010d0ef jal ra,1a2d0 + c9d4: 4611 li a2,4 + c9d6: 85a6 mv a1,s1 + c9d8: 854a mv a0,s2 + c9da: 0f70d0ef jal ra,1a2d0 + c9de: 4641 li a2,16 + c9e0: 018a8593 addi a1,s5,24 + c9e4: 854e mv a0,s3 + c9e6: 0eb0d0ef jal ra,1a2d0 + c9ea: 4721 li a4,8 + c9ec: 868a mv a3,sp + c9ee: 8666 mv a2,s9 + c9f0: 85ca mv a1,s2 + c9f2: 854e mv a0,s3 + c9f4: 75d000ef jal ra,d950 + c9f8: 842a mv s0,a0 + c9fa: e50d bnez a0,ca24 + c9fc: 4621 li a2,8 + c9fe: 858a mv a1,sp + ca00: 0028 addi a0,sp,8 + ca02: 0cf0d0ef jal ra,1a2d0 + ca06: 4621 li a2,8 + ca08: 00448593 addi a1,s1,4 + ca0c: 0028 addi a0,sp,8 + ca0e: 1fff4097 auipc ra,0x1fff4 + ca12: ecc080e7 jalr -308(ra) # 200008da + ca16: 4785 li a5,1 + ca18: 02f51e63 bne a0,a5,ca54 + ca1c: 85d2 mv a1,s4 + ca1e: 855e mv a0,s7 + ca20: fe1fa0ef jal ra,7a00 + ca24: 854a mv a0,s2 + ca26: 1fff4097 auipc ra,0x1fff4 + ca2a: 49a080e7 jalr 1178(ra) # 20000ec0 + ca2e: 854e mv a0,s3 + ca30: 1fff4097 auipc ra,0x1fff4 + ca34: 490080e7 jalr 1168(ra) # 20000ec0 + ca38: 50f2 lw ra,60(sp) + ca3a: 8522 mv a0,s0 + ca3c: 5462 lw s0,56(sp) + ca3e: 54d2 lw s1,52(sp) + ca40: 5942 lw s2,48(sp) + ca42: 59b2 lw s3,44(sp) + ca44: 5a22 lw s4,40(sp) + ca46: 5a92 lw s5,36(sp) + ca48: 5b02 lw s6,32(sp) + ca4a: 4bf2 lw s7,28(sp) + ca4c: 4c62 lw s8,24(sp) + ca4e: 4cd2 lw s9,20(sp) + ca50: 6121 addi sp,sp,64 + ca52: 8082 ret + ca54: 4405 li s0,1 + ca56: b7f9 j ca24 + +0000ca58 : +SM_ProcessEvent(): + ca58: 7179 addi sp,sp,-48 + ca5a: d422 sw s0,40(sp) + ca5c: d606 sw ra,44(sp) + ca5e: d226 sw s1,36(sp) + ca60: d04a sw s2,32(sp) + ca62: ce4e sw s3,28(sp) + ca64: 842e mv s0,a1 + ca66: 60559793 sext.h a5,a1 + ca6a: 0407d263 bgez a5,caae + ca6e: 9cc18493 addi s1,gp,-1588 # 20001384 + ca72: 30a8 lbu a0,3(s1) + ca74: 98af90ef jal ra,5bfe + ca78: c62a sw a0,12(sp) + ca7a: cd09 beqz a0,ca94 + ca7c: affff0ef jal ra,c57a + ca80: 45b2 lw a1,12(sp) + ca82: e511 bnez a0,ca8e + ca84: 20a8 lbu a0,2(s1) + ca86: 0ff00793 li a5,255 + ca8a: 00f51f63 bne a0,a5,caa8 + ca8e: 852e mv a0,a1 + ca90: 8baf90ef jal ra,5b4a + ca94: 68f41913 binvi s2,s0,0xf + ca98: 50b2 lw ra,44(sp) + ca9a: 5422 lw s0,40(sp) + ca9c: 5492 lw s1,36(sp) + ca9e: 49f2 lw s3,28(sp) + caa0: 854a mv a0,s2 + caa2: 5902 lw s2,32(sp) + caa4: 6145 addi sp,sp,48 + caa6: 8082 ret + caa8: 9eef90ef jal ra,5c96 + caac: b7e5 j ca94 + caae: 0015f913 andi s2,a1,1 + cab2: 00090763 beqz s2,cac0 + cab6: e3cff0ef jal ra,c0f2 + caba: 00144913 xori s2,s0,1 + cabe: bfe9 j ca98 + cac0: dde1 beqz a1,ca98 + cac2: 4485 li s1,1 + cac4: a021 j cacc + cac6: 0485 addi s1,s1,1 + cac8: 0ff4f493 zext.b s1,s1 + cacc: 9e2ff0ef jal ra,bcae + cad0: fca4f4e3 bgeu s1,a0,ca98 + cad4: 289017b3 bset a5,zero,s1 + cad8: 0807c9b3 zext.h s3,a5 + cadc: 8fe1 and a5,a5,s0 + cade: d7e5 beqz a5,cac6 + cae0: 854e mv a0,s3 + cae2: c30ff0ef jal ra,bf12 + cae6: 67c1 lui a5,0x10 + cae8: 17fd addi a5,a5,-1 # ffff + caea: 00f50563 beq a0,a5,caf4 + caee: 45dd li a1,23 + caf0: d68ff0ef jal ra,c058 + caf4: 01344933 xor s2,s0,s3 + caf8: b745 j ca98 + +0000cafa : +SM_Init(): + cafa: 1141 addi sp,sp,-16 + cafc: 4599 li a1,6 + cafe: c606 sw ra,12(sp) + cb00: 9c01a423 sw zero,-1592(gp) # 20001380 + cb04: 9ca187a3 sb a0,-1585(gp) # 20001387 + cb08: eb8fe0ef jal ra,b1c0 + cb0c: 40b2 lw ra,12(sp) + cb0e: fffff517 auipc a0,0xfffff + cb12: 5ae50513 addi a0,a0,1454 # c0bc + cb16: 0141 addi sp,sp,16 + cb18: 99cff06f j bcb4 + +0000cb1c : +smpBuildPairingReqRsp(): + cb1c: 87aa mv a5,a0 + cb1e: 4509 li a0,2 + cb20: c641 beqz a2,cba8 + cb22: c1d9 beqz a1,cba8 + cb24: a21c sb a5,0(a2) + cb26: 219c lbu a5,0(a1) + cb28: b21c sb a5,1(a2) + cb2a: 319c lbu a5,1(a1) + cb2c: a23c sb a5,2(a2) + cb2e: 21bc lbu a5,2(a1) + cb30: b23c sb a5,3(a2) + cb32: 31bc lbu a5,3(a1) + cb34: 000602a3 sb zero,5(a2) + cb38: a25c sb a5,4(a2) + cb3a: 21de lhu a5,4(a1) + cb3c: 4887d793 bexti a5,a5,0x8 + cb40: b25c sb a5,5(a2) + cb42: 21da lhu a4,4(a1) + cb44: 20077713 andi a4,a4,512 + cb48: c701 beqz a4,cb50 + cb4a: 0027e793 ori a5,a5,2 + cb4e: b25c sb a5,5(a2) + cb50: 21de lhu a5,4(a1) + cb52: 4007f793 andi a5,a5,1024 + cb56: c789 beqz a5,cb60 + cb58: 325c lbu a5,5(a2) + cb5a: 0047e793 ori a5,a5,4 + cb5e: b25c sb a5,5(a2) + cb60: 21de lhu a5,4(a1) + cb62: 28b01713 bseti a4,zero,0xb + cb66: 8ff9 and a5,a5,a4 + cb68: c789 beqz a5,cb72 + cb6a: 325c lbu a5,5(a2) + cb6c: 0087e793 ori a5,a5,8 + cb70: b25c sb a5,5(a2) + cb72: 00060323 sb zero,6(a2) + cb76: 21de lhu a5,4(a1) + cb78: 8b85 andi a5,a5,1 + cb7a: a27c sb a5,6(a2) + cb7c: 21da lhu a4,4(a1) + cb7e: 8b09 andi a4,a4,2 + cb80: c701 beqz a4,cb88 + cb82: 0027e793 ori a5,a5,2 + cb86: a27c sb a5,6(a2) + cb88: 21de lhu a5,4(a1) + cb8a: 8b91 andi a5,a5,4 + cb8c: c789 beqz a5,cb96 + cb8e: 227c lbu a5,6(a2) + cb90: 0047e793 ori a5,a5,4 + cb94: a27c sb a5,6(a2) + cb96: 21de lhu a5,4(a1) + cb98: 8ba1 andi a5,a5,8 + cb9a: c789 beqz a5,cba4 + cb9c: 227c lbu a5,6(a2) + cb9e: 0087e793 ori a5,a5,8 + cba2: a27c sb a5,6(a2) + cba4: 4501 li a0,0 + cba6: 8082 ret + cba8: 8082 ret + +0000cbaa : +smpBuildPairingRsp(): + cbaa: 862e mv a2,a1 + cbac: 85aa mv a1,a0 + cbae: 4509 li a0,2 + cbb0: f6dff06f j cb1c + +0000cbb4 : +smpBuildPairingConfirm(): + cbb4: c58d beqz a1,cbde + cbb6: 872a mv a4,a0 + cbb8: 4509 li a0,2 + cbba: c705 beqz a4,cbe2 + cbbc: 1141 addi sp,sp,-16 + cbbe: c606 sw ra,12(sp) + cbc0: 87ae mv a5,a1 + cbc2: 468d li a3,3 + cbc4: a194 sb a3,0(a1) + cbc6: 00178513 addi a0,a5,1 + cbca: 4641 li a2,16 + cbcc: 85ba mv a1,a4 + cbce: 1fff4097 auipc ra,0x1fff4 + cbd2: c8e080e7 jalr -882(ra) # 2000085c + cbd6: 40b2 lw ra,12(sp) + cbd8: 4501 li a0,0 + cbda: 0141 addi sp,sp,16 + cbdc: 8082 ret + cbde: 4509 li a0,2 + cbe0: 8082 ret + cbe2: 8082 ret + +0000cbe4 : +smpBuildPairingRandom(): + cbe4: c58d beqz a1,cc0e + cbe6: 872a mv a4,a0 + cbe8: 4509 li a0,2 + cbea: c705 beqz a4,cc12 + cbec: 1141 addi sp,sp,-16 + cbee: c606 sw ra,12(sp) + cbf0: 87ae mv a5,a1 + cbf2: 4691 li a3,4 + cbf4: a194 sb a3,0(a1) + cbf6: 00178513 addi a0,a5,1 + cbfa: 4641 li a2,16 + cbfc: 85ba mv a1,a4 + cbfe: 1fff4097 auipc ra,0x1fff4 + cc02: c5e080e7 jalr -930(ra) # 2000085c + cc06: 40b2 lw ra,12(sp) + cc08: 4501 li a0,0 + cc0a: 0141 addi sp,sp,16 + cc0c: 8082 ret + cc0e: 4509 li a0,2 + cc10: 8082 ret + cc12: 8082 ret + +0000cc14 : +smpBuildEncInfo(): + cc14: c58d beqz a1,cc3e + cc16: 872a mv a4,a0 + cc18: 4509 li a0,2 + cc1a: c705 beqz a4,cc42 + cc1c: 1141 addi sp,sp,-16 + cc1e: c606 sw ra,12(sp) + cc20: 87ae mv a5,a1 + cc22: 4699 li a3,6 + cc24: a194 sb a3,0(a1) + cc26: 00178513 addi a0,a5,1 + cc2a: 4641 li a2,16 + cc2c: 85ba mv a1,a4 + cc2e: 1fff4097 auipc ra,0x1fff4 + cc32: c2e080e7 jalr -978(ra) # 2000085c + cc36: 40b2 lw ra,12(sp) + cc38: 4501 li a0,0 + cc3a: 0141 addi sp,sp,16 + cc3c: 8082 ret + cc3e: 4509 li a0,2 + cc40: 8082 ret + cc42: 8082 ret + +0000cc44 : +smpBuildMasterID(): + cc44: c99d beqz a1,cc7a + cc46: 872a mv a4,a0 + cc48: 4509 li a0,2 + cc4a: cb15 beqz a4,cc7e + cc4c: 1141 addi sp,sp,-16 + cc4e: c606 sw ra,12(sp) + cc50: 469d li a3,7 + cc52: a194 sb a3,0(a1) + cc54: 2316 lhu a3,0(a4) + cc56: 87ae mv a5,a1 + cc58: 00378513 addi a0,a5,3 + cc5c: b194 sb a3,1(a1) + cc5e: 2316 lhu a3,0(a4) + cc60: 4621 li a2,8 + cc62: 82a1 srli a3,a3,0x8 + cc64: a1b4 sb a3,2(a1) + cc66: 00270593 addi a1,a4,2 + cc6a: 1fff4097 auipc ra,0x1fff4 + cc6e: bf2080e7 jalr -1038(ra) # 2000085c + cc72: 40b2 lw ra,12(sp) + cc74: 4501 li a0,0 + cc76: 0141 addi sp,sp,16 + cc78: 8082 ret + cc7a: 4509 li a0,2 + cc7c: 8082 ret + cc7e: 8082 ret + +0000cc80 : +smpBuildIdentityInfo(): + cc80: c58d beqz a1,ccaa + cc82: 872a mv a4,a0 + cc84: 4509 li a0,2 + cc86: c705 beqz a4,ccae + cc88: 1141 addi sp,sp,-16 + cc8a: c606 sw ra,12(sp) + cc8c: 87ae mv a5,a1 + cc8e: 46a1 li a3,8 + cc90: a194 sb a3,0(a1) + cc92: 00178513 addi a0,a5,1 + cc96: 4641 li a2,16 + cc98: 85ba mv a1,a4 + cc9a: 1fff4097 auipc ra,0x1fff4 + cc9e: bc2080e7 jalr -1086(ra) # 2000085c + cca2: 40b2 lw ra,12(sp) + cca4: 4501 li a0,0 + cca6: 0141 addi sp,sp,16 + cca8: 8082 ret + ccaa: 4509 li a0,2 + ccac: 8082 ret + ccae: 8082 ret + +0000ccb0 : +smpBuildIdentityAddrInfo(): + ccb0: c985 beqz a1,cce0 + ccb2: 872a mv a4,a0 + ccb4: 4509 li a0,2 + ccb6: c71d beqz a4,cce4 + ccb8: 1141 addi sp,sp,-16 + ccba: c606 sw ra,12(sp) + ccbc: 46a5 li a3,9 + ccbe: a194 sb a3,0(a1) + ccc0: 2314 lbu a3,0(a4) + ccc2: 87ae mv a5,a1 + ccc4: 00278513 addi a0,a5,2 + ccc8: b194 sb a3,1(a1) + ccca: 4619 li a2,6 + cccc: 00170593 addi a1,a4,1 + ccd0: 1fff4097 auipc ra,0x1fff4 + ccd4: b8c080e7 jalr -1140(ra) # 2000085c + ccd8: 40b2 lw ra,12(sp) + ccda: 4501 li a0,0 + ccdc: 0141 addi sp,sp,16 + ccde: 8082 ret + cce0: 4509 li a0,2 + cce2: 8082 ret + cce4: 8082 ret + +0000cce6 : +smpBuildSigningInfo(): + cce6: c58d beqz a1,cd10 + cce8: 872a mv a4,a0 + ccea: 4509 li a0,2 + ccec: c705 beqz a4,cd14 + ccee: 1141 addi sp,sp,-16 + ccf0: c606 sw ra,12(sp) + ccf2: 87ae mv a5,a1 + ccf4: 46a9 li a3,10 + ccf6: a194 sb a3,0(a1) + ccf8: 00178513 addi a0,a5,1 + ccfc: 4641 li a2,16 + ccfe: 85ba mv a1,a4 + cd00: 1fff4097 auipc ra,0x1fff4 + cd04: b5c080e7 jalr -1188(ra) # 2000085c + cd08: 40b2 lw ra,12(sp) + cd0a: 4501 li a0,0 + cd0c: 0141 addi sp,sp,16 + cd0e: 8082 ret + cd10: 4509 li a0,2 + cd12: 8082 ret + cd14: 8082 ret + +0000cd16 : +smpBuildPairingReq(): + cd16: 862e mv a2,a1 + cd18: 85aa mv a1,a0 + cd1a: 4505 li a0,1 + cd1c: e01ff06f j cb1c + +0000cd20 : +smpBuildPairingFailed(): + cd20: 87aa mv a5,a0 + cd22: 4509 li a0,2 + cd24: c981 beqz a1,cd34 + cd26: c799 beqz a5,cd34 + cd28: 4715 li a4,5 + cd2a: a198 sb a4,0(a1) + cd2c: 239c lbu a5,0(a5) + cd2e: 4501 li a0,0 + cd30: b19c sb a5,1(a1) + cd32: 8082 ret + cd34: 8082 ret + +0000cd36 : +smpBuildSecurityReq(): + cd36: 87aa mv a5,a0 + cd38: 4509 li a0,2 + cd3a: c981 beqz a1,cd4a + cd3c: c799 beqz a5,cd4a + cd3e: 472d li a4,11 + cd40: a198 sb a4,0(a1) + cd42: 239c lbu a5,0(a5) + cd44: 4501 li a0,0 + cd46: b19c sb a5,1(a1) + cd48: 8082 ret + cd4a: 8082 ret + +0000cd4c : +smGeneratePairingRsp(): + cd4c: c50d beqz a0,cd76 + cd4e: 1101 addi sp,sp,-32 + cd50: 858a mv a1,sp + cd52: ce06 sw ra,28(sp) + cd54: cc22 sw s0,24(sp) + cd56: 842a mv s0,a0 + cd58: d20ff0ef jal ra,c278 + cd5c: 200a lhu a0,0(s0) + cd5e: 860a mv a2,sp + cd60: 00000697 auipc a3,0x0 + cd64: e4a68693 addi a3,a3,-438 # cbaa + cd68: 459d li a1,7 + cd6a: c52ff0ef jal ra,c1bc + cd6e: 40f2 lw ra,28(sp) + cd70: 4462 lw s0,24(sp) + cd72: 6105 addi sp,sp,32 + cd74: 8082 ret + cd76: 4505 li a0,1 + cd78: 8082 ret + +0000cd7a : +smGenerateConfirm(): + cd7a: 1101 addi sp,sp,-32 + cd7c: cc22 sw s0,24(sp) + cd7e: 02c50593 addi a1,a0,44 + cd82: 842a mv s0,a0 + cd84: 4641 li a2,16 + cd86: 850a mv a0,sp + cd88: ce06 sw ra,28(sp) + cd8a: 1fff4097 auipc ra,0x1fff4 + cd8e: ad2080e7 jalr -1326(ra) # 2000085c + cd92: 200a lhu a0,0(s0) + cd94: 860a mv a2,sp + cd96: 00000697 auipc a3,0x0 + cd9a: e1e68693 addi a3,a3,-482 # cbb4 + cd9e: 45c5 li a1,17 + cda0: c1cff0ef jal ra,c1bc + cda4: 40f2 lw ra,28(sp) + cda6: 4462 lw s0,24(sp) + cda8: 6105 addi sp,sp,32 + cdaa: 8082 ret + +0000cdac : +smGenerateRandMsg(): + cdac: 1101 addi sp,sp,-32 + cdae: cc22 sw s0,24(sp) + cdb0: 03c50593 addi a1,a0,60 + cdb4: 842a mv s0,a0 + cdb6: 4641 li a2,16 + cdb8: 850a mv a0,sp + cdba: ce06 sw ra,28(sp) + cdbc: 1fff4097 auipc ra,0x1fff4 + cdc0: aa0080e7 jalr -1376(ra) # 2000085c + cdc4: 200a lhu a0,0(s0) + cdc6: 860a mv a2,sp + cdc8: 00000697 auipc a3,0x0 + cdcc: e1c68693 addi a3,a3,-484 # cbe4 + cdd0: 45c5 li a1,17 + cdd2: beaff0ef jal ra,c1bc + cdd6: 40f2 lw ra,28(sp) + cdd8: 4462 lw s0,24(sp) + cdda: 6105 addi sp,sp,32 + cddc: 8082 ret + +0000cdde : +smPairingSendEncInfo(): + cdde: 862e mv a2,a1 + cde0: 00000697 auipc a3,0x0 + cde4: e3468693 addi a3,a3,-460 # cc14 + cde8: 45c5 li a1,17 + cdea: bd2ff06f j c1bc + +0000cdee : +smPairingSendIdentityAddrInfo(): + cdee: 1101 addi sp,sp,-32 + cdf0: 87b2 mv a5,a2 + cdf2: cc22 sw s0,24(sp) + cdf4: 804c sb a1,0(sp) + cdf6: 842a mv s0,a0 + cdf8: 85be mv a1,a5 + cdfa: 00110513 addi a0,sp,1 + cdfe: 4619 li a2,6 + ce00: ce06 sw ra,28(sp) + ce02: 1fff4097 auipc ra,0x1fff4 + ce06: a5a080e7 jalr -1446(ra) # 2000085c + ce0a: 860a mv a2,sp + ce0c: 8522 mv a0,s0 + ce0e: 00000697 auipc a3,0x0 + ce12: ea268693 addi a3,a3,-350 # ccb0 + ce16: 45a1 li a1,8 + ce18: ba4ff0ef jal ra,c1bc + ce1c: 40f2 lw ra,28(sp) + ce1e: 4462 lw s0,24(sp) + ce20: 6105 addi sp,sp,32 + ce22: 8082 ret + +0000ce24 : +smPairingSendIdentityInfo(): + ce24: 862e mv a2,a1 + ce26: 00000697 auipc a3,0x0 + ce2a: e5a68693 addi a3,a3,-422 # cc80 + ce2e: 45c5 li a1,17 + ce30: b8cff06f j c1bc + +0000ce34 : +smPairingSendMasterID(): + ce34: 1101 addi sp,sp,-32 + ce36: 87b2 mv a5,a2 + ce38: cc22 sw s0,24(sp) + ce3a: 806c sh a1,0(sp) + ce3c: 842a mv s0,a0 + ce3e: 85be mv a1,a5 + ce40: 00210513 addi a0,sp,2 + ce44: 4621 li a2,8 + ce46: ce06 sw ra,28(sp) + ce48: 1fff4097 auipc ra,0x1fff4 + ce4c: a14080e7 jalr -1516(ra) # 2000085c + ce50: 860a mv a2,sp + ce52: 8522 mv a0,s0 + ce54: 00000697 auipc a3,0x0 + ce58: df068693 addi a3,a3,-528 # cc44 + ce5c: 45ad li a1,11 + ce5e: b5eff0ef jal ra,c1bc + ce62: 40f2 lw ra,28(sp) + ce64: 4462 lw s0,24(sp) + ce66: 6105 addi sp,sp,32 + ce68: 8082 ret + +0000ce6a : +smPairingSendSingingInfo(): + ce6a: 862e mv a2,a1 + ce6c: 00000697 auipc a3,0x0 + ce70: e7a68693 addi a3,a3,-390 # cce6 + ce74: 45c5 li a1,17 + ce76: b46ff06f j c1bc + +0000ce7a : +smResponderSendNextKeyInfo(): + ce7a: 7179 addi sp,sp,-48 + ce7c: d422 sw s0,40(sp) + ce7e: d606 sw ra,44(sp) + ce80: d226 sw s1,36(sp) + ce82: 3138 lbu a4,3(a0) + ce84: 02100793 li a5,33 + ce88: 842a mv s0,a0 + ce8a: 00f71e63 bne a4,a5,cea6 + ce8e: 557c lw a5,108(a0) + ce90: 2bde lhu a5,20(a5) + ce92: 0017f713 andi a4,a5,1 + ce96: cb45 beqz a4,cf46 + ce98: 5518 lw a4,40(a0) + ce9a: 235a lhu a4,4(a4) + ce9c: 8b05 andi a4,a4,1 + ce9e: c745 beqz a4,cf46 + cea0: 02200793 li a5,34 + cea4: b03c sb a5,3(s0) + cea6: 303c lbu a5,3(s0) + cea8: 02200713 li a4,34 + ceac: 0ce79363 bne a5,a4,cf72 + ceb0: 583c lw a5,112(s0) + ceb2: e799 bnez a5,cec0 + ceb4: 05300593 li a1,83 + ceb8: 4571 li a0,28 + ceba: 0330d0ef jal ra,1a6ec + cebe: d828 sw a0,112(s0) + cec0: 5824 lw s1,112(s0) + cec2: ccb5 beqz s1,cf3e + cec4: 8522 mv a0,s0 + cec6: c54ff0ef jal ra,c31a + ceca: aca8 sb a0,26(s1) + cecc: 5828 lw a0,112(s0) + cece: 4581 li a1,0 + ced0: 4641 li a2,16 + ced2: 1fff4097 auipc ra,0x1fff4 + ced6: 9c8080e7 jalr -1592(ra) # 2000089a + ceda: 5828 lw a0,112(s0) + cedc: 473d li a4,15 + cede: 2d2c lbu a1,26(a0) + cee0: fff58793 addi a5,a1,-1 + cee4: 0ff7f793 zext.b a5,a5 + cee8: 02f76b63 bltu a4,a5,cf1e + ceec: a0c1c783 lbu a5,-1524(gp) # 200013c4 + cef0: cfb5 beqz a5,cf6c + cef2: 4641 li a2,16 + cef4: 4581 li a1,0 + cef6: 0808 addi a0,sp,16 + cef8: 1fff4097 auipc ra,0x1fff4 + cefc: 9a2080e7 jalr -1630(ra) # 2000089a + cf00: 4619 li a2,6 + cf02: 1fff6597 auipc a1,0x1fff6 + cf06: a3a58593 addi a1,a1,-1478 # 2000293c + cf0a: 0808 addi a0,sp,16 + cf0c: 1fff4097 auipc ra,0x1fff4 + cf10: 950080e7 jalr -1712(ra) # 2000085c + cf14: 5830 lw a2,112(s0) + cf16: 080c addi a1,sp,16 + cf18: 852e mv a0,a1 + cf1a: 406010ef jal ra,e320 + cf1e: 1fff4097 auipc ra,0x1fff4 + cf22: 8f8080e7 jalr -1800(ra) # 20000816 + cf26: 583c lw a5,112(s0) + cf28: 45a1 li a1,8 + cf2a: ab8a sh a0,16(a5) + cf2c: 01278513 addi a0,a5,18 + cf30: e97f90ef jal ra,6dc6 + cf34: 582c lw a1,112(s0) + cf36: 200a lhu a0,0(s0) + cf38: ea7ff0ef jal ra,cdde + cf3c: e535 bnez a0,cfa8 + cf3e: 02300793 li a5,35 + cf42: b03c sb a5,3(s0) + cf44: a095 j cfa8 + cf46: 0027f713 andi a4,a5,2 + cf4a: cb01 beqz a4,cf5a + cf4c: 5418 lw a4,40(s0) + cf4e: 235a lhu a4,4(a4) + cf50: 8b09 andi a4,a4,2 + cf52: c701 beqz a4,cf5a + cf54: 02400793 li a5,36 + cf58: b7b1 j cea4 + cf5a: 8b91 andi a5,a5,4 + cf5c: d7a9 beqz a5,cea6 + cf5e: 541c lw a5,40(s0) + cf60: 23de lhu a5,4(a5) + cf62: 8b91 andi a5,a5,4 + cf64: d3a9 beqz a5,cea6 + cf66: 02600793 li a5,38 + cf6a: bf2d j cea4 + cf6c: e5bf90ef jal ra,6dc6 + cf70: b77d j cf1e + cf72: 02300713 li a4,35 + cf76: 06e79063 bne a5,a4,cfd6 + cf7a: 583c lw a5,112(s0) + cf7c: ef99 bnez a5,cf9a + cf7e: 547c lw a5,108(s0) + cf80: 2bde lhu a5,20(a5) + cf82: 0027f713 andi a4,a5,2 + cf86: e329 bnez a4,cfc8 + cf88: 8b91 andi a5,a5,4 + cf8a: c7d5 beqz a5,d036 + cf8c: 541c lw a5,40(s0) + cf8e: 23de lhu a5,4(a5) + cf90: 8b91 andi a5,a5,4 + cf92: c3d5 beqz a5,d036 + cf94: 02600793 li a5,38 + cf98: b76d j cf42 + cf9a: 2b8e lhu a1,16(a5) + cf9c: 200a lhu a0,0(s0) + cf9e: 01278613 addi a2,a5,18 + cfa2: e93ff0ef jal ra,ce34 + cfa6: dd61 beqz a0,cf7e + cfa8: 200a lhu a0,0(s0) + cfaa: b87fe0ef jal ra,bb30 + cfae: 4641 li a2,16 + cfb0: c111 beqz a0,cfb4 + cfb2: 2572 lhu a2,14(a0) + cfb4: 5422 lw s0,40(sp) + cfb6: 50b2 lw ra,44(sp) + cfb8: 5492 lw s1,36(sp) + cfba: 9cf1c503 lbu a0,-1585(gp) # 20001387 + cfbe: 0606 slli a2,a2,0x1 + cfc0: 4585 li a1,1 + cfc2: 6145 addi sp,sp,48 + cfc4: f5df806f j 5f20 + cfc8: 5418 lw a4,40(s0) + cfca: 235a lhu a4,4(a4) + cfcc: 8b09 andi a4,a4,2 + cfce: df4d beqz a4,cf88 + cfd0: 02400793 li a5,36 + cfd4: b7bd j cf42 + cfd6: 02400713 li a4,36 + cfda: 00e79c63 bne a5,a4,cff2 + cfde: 874fa0ef jal ra,7052 + cfe2: 85aa mv a1,a0 + cfe4: 200a lhu a0,0(s0) + cfe6: e3fff0ef jal ra,ce24 + cfea: fd5d bnez a0,cfa8 + cfec: 02500793 li a5,37 + cff0: bf89 j cf42 + cff2: 02500713 li a4,37 + cff6: 02e79563 bne a5,a4,d020 + cffa: 84efa0ef jal ra,7048 + cffe: 85aa mv a1,a0 + d000: 4505 li a0,1 + d002: c199 beqz a1,d008 + d004: 4585 li a1,1 + d006: 4501 li a0,0 + d008: c62e sw a1,12(sp) + d00a: 81afa0ef jal ra,7024 + d00e: 862a mv a2,a0 + d010: 45b2 lw a1,12(sp) + d012: 200a lhu a0,0(s0) + d014: ddbff0ef jal ra,cdee + d018: f941 bnez a0,cfa8 + d01a: 547c lw a5,108(s0) + d01c: 2bde lhu a5,20(a5) + d01e: b7ad j cf88 + d020: 02600713 li a4,38 + d024: 00e79963 bne a5,a4,d036 + d028: 834fa0ef jal ra,705c + d02c: 85aa mv a1,a0 + d02e: 200a lhu a0,0(s0) + d030: e3bff0ef jal ra,ce6a + d034: f935 bnez a0,cfa8 + d036: 547c lw a5,108(s0) + d038: 2bde lhu a5,20(a5) + d03a: 1007f713 andi a4,a5,256 + d03e: ef01 bnez a4,d056 + d040: 2007f713 andi a4,a5,512 + d044: c715 beqz a4,d070 + d046: 5418 lw a4,40(s0) + d048: 235a lhu a4,4(a4) + d04a: 20077713 andi a4,a4,512 + d04e: c30d beqz a4,d070 + d050: 02900793 li a5,41 + d054: a801 j d064 + d056: 5418 lw a4,40(s0) + d058: 235a lhu a4,4(a4) + d05a: 10077713 andi a4,a4,256 + d05e: d36d beqz a4,d040 + d060: 02700793 li a5,39 + d064: b03c sb a5,3(s0) + d066: 50b2 lw ra,44(sp) + d068: 5422 lw s0,40(sp) + d06a: 5492 lw s1,36(sp) + d06c: 6145 addi sp,sp,48 + d06e: 8082 ret + d070: 4007f793 andi a5,a5,1024 + d074: cb89 beqz a5,d086 + d076: 541c lw a5,40(s0) + d078: 23de lhu a5,4(a5) + d07a: 4007f793 andi a5,a5,1024 + d07e: c781 beqz a5,d086 + d080: 02b00793 li a5,43 + d084: b7c5 j d064 + d086: 02f00793 li a5,47 + d08a: bfe9 j d064 + +0000d08c : +smResponderProcessLTKReq(): + d08c: 7139 addi sp,sp,-64 + d08e: dc22 sw s0,56(sp) + d090: da26 sw s1,52(sp) + d092: d84a sw s2,48(sp) + d094: d64e sw s3,44(sp) + d096: de06 sw ra,60(sp) + d098: d452 sw s4,40(sp) + d09a: 892e mv s2,a1 + d09c: 89b2 mv s3,a2 + d09e: 842a mv s0,a0 + d0a0: a91fe0ef jal ra,bb30 + d0a4: 5944 lw s1,52(a0) + d0a6: 4641 li a2,16 + d0a8: 4581 li a1,0 + d0aa: 850a mv a0,sp + d0ac: 1fff3097 auipc ra,0x1fff3 + d0b0: 7ee080e7 jalr 2030(ra) # 2000089a + d0b4: c48d beqz s1,d0de + d0b6: 0004da03 lhu s4,0(s1) + d0ba: 028a1263 bne s4,s0,d0de + d0be: 30b8 lbu a4,3(s1) + d0c0: 02100793 li a5,33 + d0c4: 06f71663 bne a4,a5,d130 + d0c8: 03c48593 addi a1,s1,60 + d0cc: 868a mv a3,sp + d0ce: 05c48613 addi a2,s1,92 + d0d2: 00848513 addi a0,s1,8 + d0d6: 7f8000ef jal ra,d8ce + d0da: 858a mv a1,sp + d0dc: c925 beqz a0,d14c + d0de: 8522 mv a0,s0 + d0e0: a51fe0ef jal ra,bb30 + d0e4: 84aa mv s1,a0 + d0e6: c535 beqz a0,d152 + d0e8: 554c lw a1,44(a0) + d0ea: cdad beqz a1,d164 + d0ec: 299e lhu a5,16(a1) + d0ee: 07379b63 bne a5,s3,d164 + d0f2: 4621 li a2,8 + d0f4: 05c9 addi a1,a1,18 + d0f6: 854a mv a0,s2 + d0f8: 1fff3097 auipc ra,0x1fff3 + d0fc: 7e2080e7 jalr 2018(ra) # 200008da + d100: 4785 li a5,1 + d102: 06f51163 bne a0,a5,d164 + d106: 82d1c783 lbu a5,-2003(gp) # 200011e5 + d10a: c789 beqz a5,d114 + d10c: 54cc lw a1,44(s1) + d10e: 3dbc lbu a5,27(a1) + d110: 08a79c63 bne a5,a0,d1a8 + d114: 45bd li a1,15 + d116: 8522 mv a0,s0 + d118: 26e020ef jal ra,f386 + d11c: 1fff5797 auipc a5,0x1fff5 + d120: 7d47a783 lw a5,2004(a5) # 200028f0 + d124: c781 beqz a5,d12c + d126: 4589 li a1,2 + d128: 451d li a0,7 + d12a: 9782 jalr a5 + d12c: 4501 li a0,0 + d12e: a01d j d154 + d130: 58ac lw a1,112(s1) + d132: d5d5 beqz a1,d0de + d134: 299e lhu a5,16(a1) + d136: fb3794e3 bne a5,s3,d0de + d13a: 4621 li a2,8 + d13c: 05c9 addi a1,a1,18 + d13e: 854a mv a0,s2 + d140: 1fff3097 auipc ra,0x1fff3 + d144: 79a080e7 jalr 1946(ra) # 200008da + d148: d959 beqz a0,d0de + d14a: 58ac lw a1,112(s1) + d14c: 8552 mv a0,s4 + d14e: 304020ef jal ra,f452 + d152: 4505 li a0,1 + d154: 50f2 lw ra,60(sp) + d156: 5462 lw s0,56(sp) + d158: 54d2 lw s1,52(sp) + d15a: 5942 lw s2,48(sp) + d15c: 59b2 lw s3,44(sp) + d15e: 5a22 lw s4,40(sp) + d160: 6121 addi sp,sp,64 + d162: 8082 ret + d164: a0c1c703 lbu a4,-1524(gp) # 200013c4 + d168: 1fff5797 auipc a5,0x1fff5 + d16c: 7887a783 lw a5,1928(a5) # 200028f0 + d170: cf15 beqz a4,d1ac + d172: c781 beqz a5,d17a + d174: 458d li a1,3 + d176: 451d li a0,7 + d178: 9782 jalr a5 + d17a: 4641 li a2,16 + d17c: 4581 li a1,0 + d17e: 0808 addi a0,sp,16 + d180: 1fff3097 auipc ra,0x1fff3 + d184: 71a080e7 jalr 1818(ra) # 2000089a + d188: 4619 li a2,6 + d18a: 1fff5597 auipc a1,0x1fff5 + d18e: 7b258593 addi a1,a1,1970 # 2000293c + d192: 0808 addi a0,sp,16 + d194: 1fff3097 auipc ra,0x1fff3 + d198: 6c8080e7 jalr 1736(ra) # 2000085c + d19c: 080c addi a1,sp,16 + d19e: 852e mv a0,a1 + d1a0: 860a mv a2,sp + d1a2: 17e010ef jal ra,e320 + d1a6: 858a mv a1,sp + d1a8: 8522 mv a0,s0 + d1aa: b755 j d14e + d1ac: c781 beqz a5,d1b4 + d1ae: 4585 li a1,1 + d1b0: 451d li a0,7 + d1b2: 9782 jalr a5 + d1b4: 8522 mv a0,s0 + d1b6: 2c4020ef jal ra,f47a + d1ba: bf61 j d152 + +0000d1bc : +smpResponderProcessIncoming(): + d1bc: 7179 addi sp,sp,-48 + d1be: d422 sw s0,40(sp) + d1c0: 5940 lw s0,52(a0) + d1c2: d226 sw s1,36(sp) + d1c4: d04a sw s2,32(sp) + d1c6: ce4e sw s3,28(sp) + d1c8: d606 sw ra,44(sp) + d1ca: 89aa mv s3,a0 + d1cc: 892e mv s2,a1 + d1ce: 84b2 mv s1,a2 + d1d0: 3c040763 beqz s0,d59e + d1d4: 212a lhu a0,2(a0) + d1d6: 201e lhu a5,0(s0) + d1d8: 00a78b63 beq a5,a0,d1ee + d1dc: 4921 li s2,8 + d1de: 50b2 lw ra,44(sp) + d1e0: 5422 lw s0,40(sp) + d1e2: 5492 lw s1,36(sp) + d1e4: 49f2 lw s3,28(sp) + d1e6: 854a mv a0,s2 + d1e8: 5902 lw s2,32(sp) + d1ea: 6145 addi sp,sp,48 + d1ec: 8082 ret + d1ee: fff58793 addi a5,a1,-1 + d1f2: 0ff7f793 zext.b a5,a5 + d1f6: 4725 li a4,9 + d1f8: 3cf76163 bltu a4,a5,d5ba + d1fc: 0000d717 auipc a4,0xd + d200: 9dc70713 addi a4,a4,-1572 # 19bd8 + d204: 20e7c7b3 sh2add a5,a5,a4 + d208: 439c lw a5,0(a5) + d20a: 97ba add a5,a5,a4 + d20c: 8782 jr a5 + d20e: 541c lw a5,40(s0) + d210: f7f1 bnez a5,d1dc + d212: 05300593 li a1,83 + d216: 4541 li a0,16 + d218: 4d40d0ef jal ra,1a6ec + d21c: d408 sw a0,40(s0) + d21e: dd5d beqz a0,d1dc + d220: 2098 lbu a4,0(s1) + d222: 4791 li a5,4 + d224: 00e7f463 bgeu a5,a4,d22c + d228: 490d li s2,3 + d22a: bf55 j d1de + d22c: 3098 lbu a4,1(s1) + d22e: 4785 li a5,1 + d230: fee7ece3 bltu a5,a4,d228 + d234: 4641 li a2,16 + d236: 85a6 mv a1,s1 + d238: 1fff3097 auipc ra,0x1fff3 + d23c: 624080e7 jalr 1572(ra) # 2000085c + d240: 5418 lw a4,40(s0) + d242: 547c lw a5,108(s0) + d244: 000402a3 sb zero,5(s0) + d248: 4354 lw a3,4(a4) + d24a: 4bd0 lw a2,20(a5) + d24c: 75fd lui a1,0xfffff + d24e: 8a85 andi a3,a3,1 + d250: 8e75 and a2,a2,a3 + d252: 2bd6 lhu a3,20(a5) + d254: 7ff58593 addi a1,a1,2047 # fffff7ff <_eusrstack+0xdfffc7ff> + d258: 9af9 andi a3,a3,-2 + d25a: 8ed1 or a3,a3,a2 + d25c: abd6 sh a3,20(a5) + d25e: 4354 lw a3,4(a4) + d260: 4bd0 lw a2,20(a5) + d262: 8e75 and a2,a2,a3 + d264: 2bd6 lhu a3,20(a5) + d266: 8a09 andi a2,a2,2 + d268: 9af5 andi a3,a3,-3 + d26a: 8ed1 or a3,a3,a2 + d26c: abd6 sh a3,20(a5) + d26e: 4354 lw a3,4(a4) + d270: 4bd0 lw a2,20(a5) + d272: 8e75 and a2,a2,a3 + d274: 2bd6 lhu a3,20(a5) + d276: 8a11 andi a2,a2,4 + d278: 9aed andi a3,a3,-5 + d27a: 8ed1 or a3,a3,a2 + d27c: abd6 sh a3,20(a5) + d27e: 4354 lw a3,4(a4) + d280: 4bd0 lw a2,20(a5) + d282: 8e75 and a2,a2,a3 + d284: 2bd6 lhu a3,20(a5) + d286: 8a21 andi a2,a2,8 + d288: 9add andi a3,a3,-9 + d28a: 8ed1 or a3,a3,a2 + d28c: abd6 sh a3,20(a5) + d28e: 4354 lw a3,4(a4) + d290: 4bd0 lw a2,20(a5) + d292: 8e75 and a2,a2,a3 + d294: 2bd6 lhu a3,20(a5) + d296: 10067613 andi a2,a2,256 + d29a: eff6f693 andi a3,a3,-257 + d29e: 8ed1 or a3,a3,a2 + d2a0: abd6 sh a3,20(a5) + d2a2: 4354 lw a3,4(a4) + d2a4: 4bd0 lw a2,20(a5) + d2a6: 8e75 and a2,a2,a3 + d2a8: 2bd6 lhu a3,20(a5) + d2aa: 20067613 andi a2,a2,512 + d2ae: dff6f693 andi a3,a3,-513 + d2b2: 8ed1 or a3,a3,a2 + d2b4: abd6 sh a3,20(a5) + d2b6: 4354 lw a3,4(a4) + d2b8: 4bd0 lw a2,20(a5) + d2ba: 8e75 and a2,a2,a3 + d2bc: 2bd6 lhu a3,20(a5) + d2be: 40067613 andi a2,a2,1024 + d2c2: bff6f693 andi a3,a3,-1025 + d2c6: 8ed1 or a3,a3,a2 + d2c8: abd6 sh a3,20(a5) + d2ca: 4bd4 lw a3,20(a5) + d2cc: 4350 lw a2,4(a4) + d2ce: 8ef1 and a3,a3,a2 + d2d0: 2bd2 lhu a2,20(a5) + d2d2: 48b6d693 bexti a3,a3,0xb + d2d6: 06ae slli a3,a3,0xb + d2d8: 8e6d and a2,a2,a1 + d2da: 8ed1 or a3,a3,a2 + d2dc: abd6 sh a3,20(a5) + d2de: 2bb4 lbu a3,18(a5) + d2e0: 0086f613 andi a2,a3,8 + d2e4: c601 beqz a2,d2ec + d2e6: 2338 lbu a4,2(a4) + d2e8: 8b21 andi a4,a4,8 + d2ea: ff1d bnez a4,d228 + d2ec: 3398 lbu a4,1(a5) + d2ee: c319 beqz a4,d2f4 + d2f0: 3098 lbu a4,1(s1) + d2f2: e749 bnez a4,d37c + d2f4: 8a91 andi a3,a3,4 + d2f6: e681 bnez a3,d2fe + d2f8: 20b8 lbu a4,2(s1) + d2fa: 8b11 andi a4,a4,4 + d2fc: cf11 beqz a4,d318 + d2fe: 2398 lbu a4,0(a5) + d300: 4795 li a5,5 + d302: 2094 lbu a3,0(s1) + d304: 02f70733 mul a4,a4,a5 + d308: 0000d797 auipc a5,0xd + d30c: 8b478793 addi a5,a5,-1868 # 19bbc + d310: 97ba add a5,a5,a4 + d312: 97b6 add a5,a5,a3 + d314: 0007c903 lbu s2,0(a5) + d318: 012402a3 sb s2,5(s0) + d31c: 8522 mv a0,s0 + d31e: a2fff0ef jal ra,cd4c + d322: 546c lw a1,108(s0) + d324: 29bc lbu a5,18(a1) + d326: 8b85 andi a5,a5,1 + d328: cb89 beqz a5,d33a + d32a: 541c lw a5,40(s0) + d32c: 23bc lbu a5,2(a5) + d32e: 8b8d andi a5,a5,3 + d330: c789 beqz a5,d33a + d332: 207c lbu a5,6(s0) + d334: 0017e793 ori a5,a5,1 + d338: a07c sb a5,6(s0) + d33a: 305c lbu a5,5(s0) + d33c: 4705 li a4,1 + d33e: 04e79163 bne a5,a4,d380 + d342: 4641 li a2,16 + d344: 4581 li a1,0 + d346: 00840513 addi a0,s0,8 + d34a: 1fff3097 auipc ra,0x1fff3 + d34e: 550080e7 jalr 1360(ra) # 2000089a + d352: 4641 li a2,16 + d354: 4581 li a1,0 + d356: 01840513 addi a0,s0,24 + d35a: 1fff3097 auipc ra,0x1fff3 + d35e: 540080e7 jalr 1344(ra) # 2000089a + d362: 45c1 li a1,16 + d364: 03c40513 addi a0,s0,60 + d368: a5ff90ef jal ra,6dc6 + d36c: 200a lhu a0,0(s0) + d36e: 47c1 li a5,16 + d370: b03c sb a5,3(s0) + d372: 4581 li a1,0 + d374: de8fa0ef jal ra,795c + d378: 4901 li s2,0 + d37a: b595 j d1de + d37c: 4961 li s2,24 + d37e: bf69 j d318 + d380: 0187f713 andi a4,a5,24 + d384: c729 beqz a4,d3ce + d386: 8bc1 andi a5,a5,16 + d388: 00840513 addi a0,s0,8 + d38c: 4641 li a2,16 + d38e: cb95 beqz a5,d3c2 + d390: 0589 addi a1,a1,2 + d392: 1fff3097 auipc ra,0x1fff3 + d396: 4ca080e7 jalr 1226(ra) # 2000085c + d39a: 4641 li a2,16 + d39c: 4581 li a1,0 + d39e: 01840513 addi a0,s0,24 + d3a2: 1fff3097 auipc ra,0x1fff3 + d3a6: 4f8080e7 jalr 1272(ra) # 2000089a + d3aa: 207c lbu a5,6(s0) + d3ac: 45c1 li a1,16 + d3ae: 03c40513 addi a0,s0,60 + d3b2: 0047e793 ori a5,a5,4 + d3b6: a07c sb a5,6(s0) + d3b8: a0ff90ef jal ra,6dc6 + d3bc: 47cd li a5,19 + d3be: b03c sb a5,3(s0) + d3c0: bf65 j d378 + d3c2: 4581 li a1,0 + d3c4: 1fff3097 auipc ra,0x1fff3 + d3c8: 4d6080e7 jalr 1238(ra) # 2000089a + d3cc: b7f9 j d39a + d3ce: 4709 li a4,2 + d3d0: 4589 li a1,2 + d3d2: 00e78663 beq a5,a4,d3de + d3d6: 4711 li a4,4 + d3d8: 00e79763 bne a5,a4,d3e6 + d3dc: 4585 li a1,1 + d3de: 200a lhu a0,0(s0) + d3e0: d7cfa0ef jal ra,795c + d3e4: a021 j d3ec + d3e6: 4719 li a4,6 + d3e8: fee78ae3 beq a5,a4,d3dc + d3ec: 207c lbu a5,6(s0) + d3ee: 0047e793 ori a5,a5,4 + d3f2: a07c sb a5,6(s0) + d3f4: 47c5 li a5,17 + d3f6: b7e1 j d3be + d3f8: 4641 li a2,16 + d3fa: 85a6 mv a1,s1 + d3fc: 04c40513 addi a0,s0,76 + d400: 1fff3097 auipc ra,0x1fff3 + d404: 45c080e7 jalr 1116(ra) # 2000085c + d408: 3038 lbu a4,3(s0) + d40a: 47c5 li a5,17 + d40c: 02f70463 beq a4,a5,d434 + d410: 02c40693 addi a3,s0,44 + d414: 03c40613 addi a2,s0,60 + d418: 00840593 addi a1,s0,8 + d41c: 8522 mv a0,s0 + d41e: e87fe0ef jal ra,c2a4 + d422: 8522 mv a0,s0 + d424: 957ff0ef jal ra,cd7a + d428: 00a03933 snez s2,a0 + d42c: 47d1 li a5,20 + d42e: 090e slli s2,s2,0x3 + d430: b03c sb a5,3(s0) + d432: b375 j d1de + d434: 47c9 li a5,18 + d436: b761 j d3be + d438: 05c40513 addi a0,s0,92 + d43c: 85a6 mv a1,s1 + d43e: 4641 li a2,16 + d440: 84aa mv s1,a0 + d442: 1fff3097 auipc ra,0x1fff3 + d446: 41a080e7 jalr 1050(ra) # 2000085c + d44a: 868a mv a3,sp + d44c: 8626 mv a2,s1 + d44e: 00840593 addi a1,s0,8 + d452: 8522 mv a0,s0 + d454: e51fe0ef jal ra,c2a4 + d458: 4641 li a2,16 + d45a: 04c40593 addi a1,s0,76 + d45e: 850a mv a0,sp + d460: 1fff3097 auipc ra,0x1fff3 + d464: 47a080e7 jalr 1146(ra) # 200008da + d468: 4785 li a5,1 + d46a: d6f51ae3 bne a0,a5,d1de + d46e: 8522 mv a0,s0 + d470: 93dff0ef jal ra,cdac + d474: 02100793 li a5,33 + d478: d139 beqz a0,d3be + d47a: b38d j d1dc + d47c: 3038 lbu a4,3(s0) + d47e: 02700793 li a5,39 + d482: 12f71c63 bne a4,a5,d5ba + d486: 587c lw a5,116(s0) + d488: e799 bnez a5,d496 + d48a: 05300593 li a1,83 + d48e: 4571 li a0,28 + d490: 25c0d0ef jal ra,1a6ec + d494: d868 sw a0,116(s0) + d496: 5868 lw a0,116(s0) + d498: 12050163 beqz a0,d5ba + d49c: 85a6 mv a1,s1 + d49e: 4641 li a2,16 + d4a0: 1fff3097 auipc ra,0x1fff3 + d4a4: 3bc080e7 jalr 956(ra) # 2000085c + d4a8: 5864 lw s1,116(s0) + d4aa: 8522 mv a0,s0 + d4ac: e6ffe0ef jal ra,c31a + d4b0: aca8 sb a0,26(s1) + d4b2: 02800793 li a5,40 + d4b6: b721 j d3be + d4b8: 3038 lbu a4,3(s0) + d4ba: 02800793 li a5,40 + d4be: 0ef71e63 bne a4,a5,d5ba + d4c2: 221e lhu a5,0(a2) + d4c4: 5868 lw a0,116(s0) + d4c6: 4621 li a2,8 + d4c8: 00248593 addi a1,s1,2 + d4cc: a91e sh a5,16(a0) + d4ce: 0549 addi a0,a0,18 + d4d0: 1fff3097 auipc ra,0x1fff3 + d4d4: 38c080e7 jalr 908(ra) # 2000085c + d4d8: 547c lw a5,108(s0) + d4da: 2bde lhu a5,20(a5) + d4dc: 2007f713 andi a4,a5,512 + d4e0: c33d beqz a4,d546 + d4e2: 5418 lw a4,40(s0) + d4e4: 235a lhu a4,4(a4) + d4e6: 20077713 andi a4,a4,512 + d4ea: cf31 beqz a4,d546 + d4ec: 02900793 li a5,41 + d4f0: b5f9 j d3be + d4f2: 3038 lbu a4,3(s0) + d4f4: 02900793 li a5,41 + d4f8: 0cf71163 bne a4,a5,d5ba + d4fc: 5c3c lw a5,120(s0) + d4fe: e799 bnez a5,d50c + d500: 05300593 li a1,83 + d504: 455d li a0,23 + d506: 1e60d0ef jal ra,1a6ec + d50a: dc28 sw a0,120(s0) + d50c: 5c28 lw a0,120(s0) + d50e: c555 beqz a0,d5ba + d510: 4641 li a2,16 + d512: 85a6 mv a1,s1 + d514: 1fff3097 auipc ra,0x1fff3 + d518: 348080e7 jalr 840(ra) # 2000085c + d51c: 02a00793 li a5,42 + d520: bd79 j d3be + d522: 3038 lbu a4,3(s0) + d524: 02a00793 li a5,42 + d528: 08f71963 bne a4,a5,d5ba + d52c: 221c lbu a5,0(a2) + d52e: 5c28 lw a0,120(s0) + d530: 4619 li a2,6 + d532: 00148593 addi a1,s1,1 + d536: a97c sb a5,22(a0) + d538: 0541 addi a0,a0,16 + d53a: 1fff3097 auipc ra,0x1fff3 + d53e: 322080e7 jalr 802(ra) # 2000085c + d542: 547c lw a5,108(s0) + d544: 2bde lhu a5,20(a5) + d546: 4007f793 andi a5,a5,1024 + d54a: c3b1 beqz a5,d58e + d54c: 541c lw a5,40(s0) + d54e: 23de lhu a5,4(a5) + d550: 4007f793 andi a5,a5,1024 + d554: cf8d beqz a5,d58e + d556: 02b00793 li a5,43 + d55a: b595 j d3be + d55c: 3038 lbu a4,3(s0) + d55e: 02b00793 li a5,43 + d562: 04f71c63 bne a4,a5,d5ba + d566: 5c7c lw a5,124(s0) + d568: e799 bnez a5,d576 + d56a: 05300593 li a1,83 + d56e: 4551 li a0,20 + d570: 17c0d0ef jal ra,1a6ec + d574: dc68 sw a0,124(s0) + d576: 5c68 lw a0,124(s0) + d578: c60502e3 beqz a0,d1dc + d57c: 4641 li a2,16 + d57e: 85a6 mv a1,s1 + d580: 1fff3097 auipc ra,0x1fff3 + d584: 2dc080e7 jalr 732(ra) # 2000085c + d588: 5c7c lw a5,124(s0) + d58a: 577d li a4,-1 + d58c: cb98 sw a4,16(a5) + d58e: 0029d503 lhu a0,2(s3) + d592: 4581 li a1,0 + d594: ac5fe0ef jal ra,c058 + d598: b3c5 j d378 + d59a: 220c lbu a1,0(a2) + d59c: bfe5 j d594 + d59e: 4785 li a5,1 + d5a0: dcf59ce3 bne a1,a5,d378 + d5a4: 00462803 lw a6,4(a2) + d5a8: 323c lbu a5,3(a2) + d5aa: 2238 lbu a4,2(a2) + d5ac: 3214 lbu a3,1(a2) + d5ae: 212e lhu a1,2(a0) + d5b0: 2210 lbu a2,0(a2) + d5b2: 4501 li a0,0 + d5b4: daff90ef jal ra,7362 + d5b8: b3c1 j d378 + d5ba: 491d li s2,7 + d5bc: b10d j d1de + +0000d5be : +xor_128(): + d5be: 4781 li a5,0 + d5c0: 46c1 li a3,16 + d5c2: 00f50733 add a4,a0,a5 + d5c6: 00f588b3 add a7,a1,a5 + d5ca: 2318 lbu a4,0(a4) + d5cc: 0008c883 lbu a7,0(a7) + d5d0: 00f60833 add a6,a2,a5 + d5d4: 0785 addi a5,a5,1 + d5d6: 01174733 xor a4,a4,a7 + d5da: 00e80023 sb a4,0(a6) + d5de: fed792e3 bne a5,a3,d5c2 + d5e2: 8082 ret + +0000d5e4 : +leftshift_onebit(): + d5e4: 473d li a4,15 + d5e6: 4781 li a5,0 + d5e8: 587d li a6,-1 + d5ea: 00e50633 add a2,a0,a4 + d5ee: 2214 lbu a3,0(a2) + d5f0: 00e588b3 add a7,a1,a4 + d5f4: 177d addi a4,a4,-1 + d5f6: 0686 slli a3,a3,0x1 + d5f8: 8fd5 or a5,a5,a3 + d5fa: 00f88023 sb a5,0(a7) + d5fe: 221c lbu a5,0(a2) + d600: 839d srli a5,a5,0x7 + d602: ff0714e3 bne a4,a6,d5ea + d606: 8082 ret + +0000d608 : +padding(): + d608: 4701 li a4,0 + d60a: 46c1 li a3,16 + d60c: 0ff77793 zext.b a5,a4 + d610: 00c7fd63 bgeu a5,a2,d62a + d614: 00e507b3 add a5,a0,a4 + d618: 239c lbu a5,0(a5) + d61a: 00e58833 add a6,a1,a4 + d61e: 00f80023 sb a5,0(a6) + d622: 0705 addi a4,a4,1 + d624: fed714e3 bne a4,a3,d60c + d628: 8082 ret + d62a: 8f91 sub a5,a5,a2 + d62c: 0017b793 seqz a5,a5 + d630: 079e slli a5,a5,0x7 + d632: b7e5 j d61a + +0000d634 : +generate_subkey(): + d634: 1101 addi sp,sp,-32 + d636: c84a sw s2,16(sp) + d638: c64e sw s3,12(sp) + d63a: 892e mv s2,a1 + d63c: 89aa mv s3,a0 + d63e: 05300593 li a1,83 + d642: 4541 li a0,16 + d644: ce06 sw ra,28(sp) + d646: cc22 sw s0,24(sp) + d648: ca26 sw s1,20(sp) + d64a: c452 sw s4,8(sp) + d64c: 8a32 mv s4,a2 + d64e: 09e0d0ef jal ra,1a6ec + d652: 842a mv s0,a0 + d654: 05300593 li a1,83 + d658: 4541 li a0,16 + d65a: 0920d0ef jal ra,1a6ec + d65e: 84aa mv s1,a0 + d660: c05d beqz s0,d706 + d662: c159 beqz a0,d6e8 + d664: 4641 li a2,16 + d666: 4581 li a1,0 + d668: 1fff3097 auipc ra,0x1fff3 + d66c: 232080e7 jalr 562(ra) # 2000089a + d670: 854e mv a0,s3 + d672: 8622 mv a2,s0 + d674: 85a6 mv a1,s1 + d676: 4ab000ef jal ra,e320 + d67a: 89aa mv s3,a0 + d67c: e129 bnez a0,d6be + d67e: 00040783 lb a5,0(s0) + d682: 0407d963 bgez a5,d6d4 + d686: 85a6 mv a1,s1 + d688: 8522 mv a0,s0 + d68a: f5bff0ef jal ra,d5e4 + d68e: 864a mv a2,s2 + d690: 0000c597 auipc a1,0xc + d694: 57058593 addi a1,a1,1392 # 19c00 + d698: 8526 mv a0,s1 + d69a: f25ff0ef jal ra,d5be + d69e: 00090783 lb a5,0(s2) + d6a2: 0207de63 bgez a5,d6de + d6a6: 85a6 mv a1,s1 + d6a8: 854a mv a0,s2 + d6aa: f3bff0ef jal ra,d5e4 + d6ae: 8652 mv a2,s4 + d6b0: 0000c597 auipc a1,0xc + d6b4: 55058593 addi a1,a1,1360 # 19c00 + d6b8: 8526 mv a0,s1 + d6ba: f05ff0ef jal ra,d5be + d6be: 8522 mv a0,s0 + d6c0: 1fff4097 auipc ra,0x1fff4 + d6c4: 800080e7 jalr -2048(ra) # 20000ec0 + d6c8: 8526 mv a0,s1 + d6ca: 1fff3097 auipc ra,0x1fff3 + d6ce: 7f6080e7 jalr 2038(ra) # 20000ec0 + d6d2: a00d j d6f4 + d6d4: 85ca mv a1,s2 + d6d6: 8522 mv a0,s0 + d6d8: f0dff0ef jal ra,d5e4 + d6dc: b7c9 j d69e + d6de: 85d2 mv a1,s4 + d6e0: 854a mv a0,s2 + d6e2: f03ff0ef jal ra,d5e4 + d6e6: bfe1 j d6be + d6e8: 8522 mv a0,s0 + d6ea: 1fff3097 auipc ra,0x1fff3 + d6ee: 7d6080e7 jalr 2006(ra) # 20000ec0 + d6f2: 49cd li s3,19 + d6f4: 40f2 lw ra,28(sp) + d6f6: 4462 lw s0,24(sp) + d6f8: 44d2 lw s1,20(sp) + d6fa: 4942 lw s2,16(sp) + d6fc: 4a22 lw s4,8(sp) + d6fe: 854e mv a0,s3 + d700: 49b2 lw s3,12(sp) + d702: 6105 addi sp,sp,32 + d704: 8082 ret + d706: d575 beqz a0,d6f2 + d708: 49cd li s3,19 + d70a: bf7d j d6c8 + +0000d70c : +sm_xor(): + d70c: 4781 li a5,0 + d70e: 4641 li a2,16 + d710: 00f506b3 add a3,a0,a5 + d714: 00f58733 add a4,a1,a5 + d718: 2318 lbu a4,0(a4) + d71a: 0006c803 lbu a6,0(a3) + d71e: 0785 addi a5,a5,1 + d720: 01074733 xor a4,a4,a6 + d724: a298 sb a4,0(a3) + d726: fec795e3 bne a5,a2,d710 + d72a: 8082 ret + +0000d72c : +sm_ah(): + d72c: 1101 addi sp,sp,-32 + d72e: ca26 sw s1,20(sp) + d730: c64e sw s3,12(sp) + d732: 84ae mv s1,a1 + d734: 89aa mv s3,a0 + d736: 05300593 li a1,83 + d73a: 03000513 li a0,48 + d73e: c84a sw s2,16(sp) + d740: ce06 sw ra,28(sp) + d742: cc22 sw s0,24(sp) + d744: 8932 mv s2,a2 + d746: 7a70c0ef jal ra,1a6ec + d74a: cd39 beqz a0,d7a8 + d74c: 03000613 li a2,48 + d750: 4581 li a1,0 + d752: 842a mv s0,a0 + d754: 1fff3097 auipc ra,0x1fff3 + d758: 146080e7 jalr 326(ra) # 2000089a + d75c: 4641 li a2,16 + d75e: 85ce mv a1,s3 + d760: 8522 mv a0,s0 + d762: 36f0c0ef jal ra,1a2d0 + d766: 85a6 mv a1,s1 + d768: 460d li a2,3 + d76a: 01d40513 addi a0,s0,29 + d76e: 3630c0ef jal ra,1a2d0 + d772: 02040613 addi a2,s0,32 + d776: 01040593 addi a1,s0,16 + d77a: 8522 mv a0,s0 + d77c: 3a5000ef jal ra,e320 + d780: 84aa mv s1,a0 + d782: 460d li a2,3 + d784: 02d40593 addi a1,s0,45 + d788: 854a mv a0,s2 + d78a: 3470c0ef jal ra,1a2d0 + d78e: 8522 mv a0,s0 + d790: 1fff3097 auipc ra,0x1fff3 + d794: 730080e7 jalr 1840(ra) # 20000ec0 + d798: 40f2 lw ra,28(sp) + d79a: 4462 lw s0,24(sp) + d79c: 4942 lw s2,16(sp) + d79e: 49b2 lw s3,12(sp) + d7a0: 8526 mv a0,s1 + d7a2: 44d2 lw s1,20(sp) + d7a4: 6105 addi sp,sp,32 + d7a6: 8082 ret + d7a8: 44cd li s1,19 + d7aa: b7fd j d798 + +0000d7ac : +sm_c1new(): + d7ac: 715d addi sp,sp,-80 + d7ae: dc52 sw s4,56(sp) + d7b0: d462 sw s8,40(sp) + d7b2: 8a2e mv s4,a1 + d7b4: 8c2a mv s8,a0 + d7b6: 05300593 li a1,83 + d7ba: 03000513 li a0,48 + d7be: c2a6 sw s1,68(sp) + d7c0: c0ca sw s2,64(sp) + d7c2: de4e sw s3,60(sp) + d7c4: da56 sw s5,52(sp) + d7c6: d85a sw s6,48(sp) + d7c8: d65e sw s7,44(sp) + d7ca: c686 sw ra,76(sp) + d7cc: c4a2 sw s0,72(sp) + d7ce: 8bb2 mv s7,a2 + d7d0: 8b36 mv s6,a3 + d7d2: 84ba mv s1,a4 + d7d4: 8abe mv s5,a5 + d7d6: 8942 mv s2,a6 + d7d8: 89c6 mv s3,a7 + d7da: 7130c0ef jal ra,1a6ec + d7de: 0e050663 beqz a0,d8ca + d7e2: 03000613 li a2,48 + d7e6: 4581 li a1,0 + d7e8: 842a mv s0,a0 + d7ea: 1fff3097 auipc ra,0x1fff3 + d7ee: 0b0080e7 jalr 176(ra) # 2000089a + d7f2: 4641 li a2,16 + d7f4: 85e2 mv a1,s8 + d7f6: 8522 mv a0,s0 + d7f8: 2d90c0ef jal ra,1a2d0 + d7fc: 4641 li a2,16 + d7fe: 4581 li a1,0 + d800: 850a mv a0,sp + d802: 1fff3097 auipc ra,0x1fff3 + d806: 098080e7 jalr 152(ra) # 2000089a + d80a: 461d li a2,7 + d80c: 85de mv a1,s7 + d80e: 850a mv a0,sp + d810: 2c10c0ef jal ra,1a2d0 + d814: 461d li a2,7 + d816: 85da mv a1,s6 + d818: 00710513 addi a0,sp,7 + d81c: 2b50c0ef jal ra,1a2d0 + d820: 01203933 snez s2,s2 + d824: 009034b3 snez s1,s1 + d828: 4641 li a2,16 + d82a: 4581 li a1,0 + d82c: 0808 addi a0,sp,16 + d82e: 01210723 sb s2,14(sp) + d832: 87c4 sb s1,15(sp) + d834: 1fff3097 auipc ra,0x1fff3 + d838: 066080e7 jalr 102(ra) # 2000089a + d83c: 4619 li a2,6 + d83e: 85d6 mv a1,s5 + d840: 0848 addi a0,sp,20 + d842: 28f0c0ef jal ra,1a2d0 + d846: 85ce mv a1,s3 + d848: 4619 li a2,6 + d84a: 01a10513 addi a0,sp,26 + d84e: 2830c0ef jal ra,1a2d0 + d852: 01040913 addi s2,s0,16 + d856: 4641 li a2,16 + d858: 85d2 mv a1,s4 + d85a: 854a mv a0,s2 + d85c: 2750c0ef jal ra,1a2d0 + d860: 858a mv a1,sp + d862: 854a mv a0,s2 + d864: ea9ff0ef jal ra,d70c + d868: 02040993 addi s3,s0,32 + d86c: 864e mv a2,s3 + d86e: 85ca mv a1,s2 + d870: 8522 mv a0,s0 + d872: 2af000ef jal ra,e320 + d876: 84aa mv s1,a0 + d878: e51d bnez a0,d8a6 + d87a: 4641 li a2,16 + d87c: 85ce mv a1,s3 + d87e: 854a mv a0,s2 + d880: 1fff3097 auipc ra,0x1fff3 + d884: fdc080e7 jalr -36(ra) # 2000085c + d888: 080c addi a1,sp,16 + d88a: 854a mv a0,s2 + d88c: e81ff0ef jal ra,d70c + d890: 864e mv a2,s3 + d892: 85ca mv a1,s2 + d894: 8522 mv a0,s0 + d896: 28b000ef jal ra,e320 + d89a: 84aa mv s1,a0 + d89c: 4546 lw a0,80(sp) + d89e: 4641 li a2,16 + d8a0: 85ce mv a1,s3 + d8a2: 22f0c0ef jal ra,1a2d0 + d8a6: 8522 mv a0,s0 + d8a8: 1fff3097 auipc ra,0x1fff3 + d8ac: 618080e7 jalr 1560(ra) # 20000ec0 + d8b0: 40b6 lw ra,76(sp) + d8b2: 4426 lw s0,72(sp) + d8b4: 4906 lw s2,64(sp) + d8b6: 59f2 lw s3,60(sp) + d8b8: 5a62 lw s4,56(sp) + d8ba: 5ad2 lw s5,52(sp) + d8bc: 5b42 lw s6,48(sp) + d8be: 5bb2 lw s7,44(sp) + d8c0: 5c22 lw s8,40(sp) + d8c2: 8526 mv a0,s1 + d8c4: 4496 lw s1,68(sp) + d8c6: 6161 addi sp,sp,80 + d8c8: 8082 ret + d8ca: 44cd li s1,19 + d8cc: b7d5 j d8b0 + +0000d8ce : +sm_s1(): + d8ce: 1101 addi sp,sp,-32 + d8d0: c64e sw s3,12(sp) + d8d2: c452 sw s4,8(sp) + d8d4: 89ae mv s3,a1 + d8d6: 8a2a mv s4,a0 + d8d8: 05300593 li a1,83 + d8dc: 03000513 li a0,48 + d8e0: ca26 sw s1,20(sp) + d8e2: c84a sw s2,16(sp) + d8e4: ce06 sw ra,28(sp) + d8e6: cc22 sw s0,24(sp) + d8e8: 84b2 mv s1,a2 + d8ea: 8936 mv s2,a3 + d8ec: 6010c0ef jal ra,1a6ec + d8f0: cd31 beqz a0,d94c + d8f2: 842a mv s0,a0 + d8f4: 85d2 mv a1,s4 + d8f6: 4641 li a2,16 + d8f8: 1d90c0ef jal ra,1a2d0 + d8fc: 01040a13 addi s4,s0,16 + d900: 85ce mv a1,s3 + d902: 4621 li a2,8 + d904: 8552 mv a0,s4 + d906: 1cb0c0ef jal ra,1a2d0 + d90a: 85a6 mv a1,s1 + d90c: 4621 li a2,8 + d90e: 01840513 addi a0,s0,24 + d912: 1bf0c0ef jal ra,1a2d0 + d916: 02040993 addi s3,s0,32 + d91a: 864e mv a2,s3 + d91c: 85d2 mv a1,s4 + d91e: 8522 mv a0,s0 + d920: 201000ef jal ra,e320 + d924: 84aa mv s1,a0 + d926: 4641 li a2,16 + d928: 85ce mv a1,s3 + d92a: 854a mv a0,s2 + d92c: 1a50c0ef jal ra,1a2d0 + d930: 8522 mv a0,s0 + d932: 1fff3097 auipc ra,0x1fff3 + d936: 58e080e7 jalr 1422(ra) # 20000ec0 + d93a: 40f2 lw ra,28(sp) + d93c: 4462 lw s0,24(sp) + d93e: 4942 lw s2,16(sp) + d940: 49b2 lw s3,12(sp) + d942: 4a22 lw s4,8(sp) + d944: 8526 mv a0,s1 + d946: 44d2 lw s1,20(sp) + d948: 6105 addi sp,sp,32 + d94a: 8082 ret + d94c: 44cd li s1,19 + d94e: b7f5 j d93a + +0000d950 : +sm_CMAC(): + d950: 7139 addi sp,sp,-64 + d952: ce5e sw s7,28(sp) + d954: cc62 sw s8,24(sp) + d956: 8baa mv s7,a0 + d958: 8c2e mv s8,a1 + d95a: 4541 li a0,16 + d95c: 05300593 li a1,83 + d960: de06 sw ra,60(sp) + d962: d64e sw s3,44(sp) + d964: d452 sw s4,40(sp) + d966: d05a sw s6,32(sp) + d968: ca66 sw s9,20(sp) + d96a: c86a sw s10,16(sp) + d96c: 89b2 mv s3,a2 + d96e: 8cb6 mv s9,a3 + d970: 8d3a mv s10,a4 + d972: dc22 sw s0,56(sp) + d974: da26 sw s1,52(sp) + d976: d84a sw s2,48(sp) + d978: d256 sw s5,36(sp) + d97a: 5730c0ef jal ra,1a6ec + d97e: 8a2a mv s4,a0 + d980: 05300593 li a1,83 + d984: 4541 li a0,16 + d986: 5670c0ef jal ra,1a6ec + d98a: 8b2a mv s6,a0 + d98c: 140a0063 beqz s4,dacc + d990: e515 bnez a0,d9bc + d992: 8552 mv a0,s4 + d994: 1fff3097 auipc ra,0x1fff3 + d998: 52c080e7 jalr 1324(ra) # 20000ec0 + d99c: 444d li s0,19 + d99e: 50f2 lw ra,60(sp) + d9a0: 8522 mv a0,s0 + d9a2: 5462 lw s0,56(sp) + d9a4: 54d2 lw s1,52(sp) + d9a6: 5942 lw s2,48(sp) + d9a8: 59b2 lw s3,44(sp) + d9aa: 5a22 lw s4,40(sp) + d9ac: 5a92 lw s5,36(sp) + d9ae: 5b02 lw s6,32(sp) + d9b0: 4bf2 lw s7,28(sp) + d9b2: 4c62 lw s8,24(sp) + d9b4: 4cd2 lw s9,20(sp) + d9b6: 4d42 lw s10,16(sp) + d9b8: 6121 addi sp,sp,64 + d9ba: 8082 ret + d9bc: 862a mv a2,a0 + d9be: 85d2 mv a1,s4 + d9c0: 855e mv a0,s7 + d9c2: c73ff0ef jal ra,d634 + d9c6: 842a mv s0,a0 + d9c8: cd01 beqz a0,d9e0 + d9ca: 8552 mv a0,s4 + d9cc: 1fff3097 auipc ra,0x1fff3 + d9d0: 4f4080e7 jalr 1268(ra) # 20000ec0 + d9d4: 855a mv a0,s6 + d9d6: 1fff3097 auipc ra,0x1fff3 + d9da: 4ea080e7 jalr 1258(ra) # 20000ec0 + d9de: b7c1 j d99e + d9e0: 05300593 li a1,83 + d9e4: 4541 li a0,16 + d9e6: 5070c0ef jal ra,1a6ec + d9ea: 84aa mv s1,a0 + d9ec: 05300593 li a1,83 + d9f0: 4541 li a0,16 + d9f2: 4fb0c0ef jal ra,1a6ec + d9f6: 8aaa mv s5,a0 + d9f8: c4f9 beqz s1,dac6 + d9fa: ed09 bnez a0,da14 + d9fc: 8526 mv a0,s1 + d9fe: 1fff3097 auipc ra,0x1fff3 + da02: 4c2080e7 jalr 1218(ra) # 20000ec0 + da06: 8552 mv a0,s4 + da08: 1fff3097 auipc ra,0x1fff3 + da0c: 4b8080e7 jalr 1208(ra) # 20000ec0 + da10: 444d li s0,19 + da12: b7c9 j d9d4 + da14: 00f98913 addi s2,s3,15 + da18: 40495913 srai s2,s2,0x4 + da1c: 00f9f613 andi a2,s3,15 + da20: 04090563 beqz s2,da6a + da24: 197d addi s2,s2,-1 + da26: 08094933 zext.h s2,s2 + da2a: e229 bnez a2,da6c + da2c: 00491513 slli a0,s2,0x4 + da30: 8656 mv a2,s5 + da32: 85d2 mv a1,s4 + da34: 9562 add a0,a0,s8 + da36: b89ff0ef jal ra,d5be + da3a: 4641 li a2,16 + da3c: 4581 li a1,0 + da3e: 8526 mv a0,s1 + da40: 1fff3097 auipc ra,0x1fff3 + da44: e5a080e7 jalr -422(ra) # 2000089a + da48: 4981 li s3,0 + da4a: 0809c7b3 zext.h a5,s3 + da4e: 0527f863 bgeu a5,s2,da9e + da52: c41d beqz s0,da80 + da54: 8526 mv a0,s1 + da56: 1fff3097 auipc ra,0x1fff3 + da5a: 46a080e7 jalr 1130(ra) # 20000ec0 + da5e: 8556 mv a0,s5 + da60: 1fff3097 auipc ra,0x1fff3 + da64: 460080e7 jalr 1120(ra) # 20000ec0 + da68: b78d j d9ca + da6a: 4901 li s2,0 + da6c: 00491513 slli a0,s2,0x4 + da70: 858a mv a1,sp + da72: 9562 add a0,a0,s8 + da74: b95ff0ef jal ra,d608 + da78: 8656 mv a2,s5 + da7a: 85da mv a1,s6 + da7c: 850a mv a0,sp + da7e: bf65 j da36 + da80: 00499593 slli a1,s3,0x4 + da84: 860a mv a2,sp + da86: 95e2 add a1,a1,s8 + da88: 8526 mv a0,s1 + da8a: b35ff0ef jal ra,d5be + da8e: 8626 mv a2,s1 + da90: 858a mv a1,sp + da92: 855e mv a0,s7 + da94: 08d000ef jal ra,e320 + da98: 842a mv s0,a0 + da9a: 0985 addi s3,s3,1 + da9c: b77d j da4a + da9e: f85d bnez s0,da54 + daa0: 860a mv a2,sp + daa2: 85d6 mv a1,s5 + daa4: 8526 mv a0,s1 + daa6: b19ff0ef jal ra,d5be + daaa: 8626 mv a2,s1 + daac: 858a mv a1,sp + daae: 855e mv a0,s7 + dab0: 071000ef jal ra,e320 + dab4: 842a mv s0,a0 + dab6: 866a mv a2,s10 + dab8: 85a6 mv a1,s1 + daba: 8566 mv a0,s9 + dabc: 1fff3097 auipc ra,0x1fff3 + dac0: da0080e7 jalr -608(ra) # 2000085c + dac4: bf41 j da54 + dac6: d121 beqz a0,da06 + dac8: 444d li s0,19 + daca: bf51 j da5e + dacc: ec0508e3 beqz a0,d99c + dad0: b781 j da10 + +0000dad2 : +HOST_LE_ConnectionCompleteEvent(): + dad2: 1101 addi sp,sp,-32 + dad4: c62a sw a0,12(sp) + dad6: 4559 li a0,22 + dad8: ce06 sw ra,28(sp) + dada: cc22 sw s0,24(sp) + dadc: 8c0f80ef jal ra,5b9c + dae0: c139 beqz a0,db26 + dae2: 45b2 lw a1,12(sp) + dae4: 4659 li a2,22 + dae6: 842a mv s0,a0 + dae8: 1fff3097 auipc ra,0x1fff3 + daec: d74080e7 jalr -652(ra) # 2000085c + daf0: 6791 lui a5,0x4 + daf2: e9178793 addi a5,a5,-367 # 3e91 + daf6: a01e sh a5,0(s0) + daf8: 4785 li a5,1 + dafa: a03c sb a5,2(s0) + dafc: 303c lbu a5,3(s0) + dafe: cf81 beqz a5,db16 + db00: 03100793 li a5,49 + db04: b03c sb a5,3(s0) + db06: 4619 li a2,6 + db08: 4581 li a1,0 + db0a: 00840513 addi a0,s0,8 + db0e: 1fff3097 auipc ra,0x1fff3 + db12: d8c080e7 jalr -628(ra) # 2000089a + db16: 85a2 mv a1,s0 + db18: 4462 lw s0,24(sp) + db1a: 40f2 lw ra,28(sp) + db1c: 9cc1c503 lbu a0,-1588(gp) # 20001384 + db20: 6105 addi sp,sp,32 + db22: 974f806f j 5c96 + db26: 40f2 lw ra,28(sp) + db28: 4462 lw s0,24(sp) + db2a: 6105 addi sp,sp,32 + db2c: 8082 ret + +0000db2e : +HOST_LE_ConnectionUpdateCompleteEvent(): + db2e: 1101 addi sp,sp,-32 + db30: c62a sw a0,12(sp) + db32: 4531 li a0,12 + db34: ce06 sw ra,28(sp) + db36: cc22 sw s0,24(sp) + db38: 864f80ef jal ra,5b9c + db3c: c515 beqz a0,db68 + db3e: 45b2 lw a1,12(sp) + db40: 4631 li a2,12 + db42: 842a mv s0,a0 + db44: 1fff3097 auipc ra,0x1fff3 + db48: d18080e7 jalr -744(ra) # 2000085c + db4c: 6791 lui a5,0x4 + db4e: e9178793 addi a5,a5,-367 # 3e91 + db52: a01e sh a5,0(s0) + db54: 478d li a5,3 + db56: a03c sb a5,2(s0) + db58: 85a2 mv a1,s0 + db5a: 4462 lw s0,24(sp) + db5c: 40f2 lw ra,28(sp) + db5e: 9cc1c503 lbu a0,-1588(gp) # 20001384 + db62: 6105 addi sp,sp,32 + db64: 932f806f j 5c96 + db68: 40f2 lw ra,28(sp) + db6a: 4462 lw s0,24(sp) + db6c: 6105 addi sp,sp,32 + db6e: 8082 ret + +0000db70 : +HOST_LE_ReadRemoteUsedFeaturesCompleteEvent(): + db70: 1101 addi sp,sp,-32 + db72: c64e sw s3,12(sp) + db74: 89aa mv s3,a0 + db76: 4539 li a0,14 + db78: ca26 sw s1,20(sp) + db7a: c84a sw s2,16(sp) + db7c: ce06 sw ra,28(sp) + db7e: cc22 sw s0,24(sp) + db80: 892e mv s2,a1 + db82: 84b2 mv s1,a2 + db84: 818f80ef jal ra,5b9c + db88: cd15 beqz a0,dbc4 + db8a: 6791 lui a5,0x4 + db8c: e9278793 addi a5,a5,-366 # 3e92 + db90: a11e sh a5,0(a0) + db92: 4791 li a5,4 + db94: 013501a3 sb s3,3(a0) + db98: 01251223 sh s2,4(a0) + db9c: 842a mv s0,a0 + db9e: a13c sb a5,2(a0) + dba0: 85a6 mv a1,s1 + dba2: 0519 addi a0,a0,6 + dba4: 4621 li a2,8 + dba6: 1fff3097 auipc ra,0x1fff3 + dbaa: cb6080e7 jalr -842(ra) # 2000085c + dbae: 85a2 mv a1,s0 + dbb0: 4462 lw s0,24(sp) + dbb2: 40f2 lw ra,28(sp) + dbb4: 44d2 lw s1,20(sp) + dbb6: 4942 lw s2,16(sp) + dbb8: 49b2 lw s3,12(sp) + dbba: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dbbe: 6105 addi sp,sp,32 + dbc0: 8d6f806f j 5c96 + dbc4: 40f2 lw ra,28(sp) + dbc6: 4462 lw s0,24(sp) + dbc8: 44d2 lw s1,20(sp) + dbca: 4942 lw s2,16(sp) + dbcc: 49b2 lw s3,12(sp) + dbce: 6105 addi sp,sp,32 + dbd0: 8082 ret + +0000dbd2 : +HOST_LE_LongTermKeyRequestEvent(): + dbd2: 1101 addi sp,sp,-32 + dbd4: c84a sw s2,16(sp) + dbd6: 892a mv s2,a0 + dbd8: 4541 li a0,16 + dbda: ca26 sw s1,20(sp) + dbdc: ce06 sw ra,28(sp) + dbde: cc22 sw s0,24(sp) + dbe0: c62e sw a1,12(sp) + dbe2: 84b2 mv s1,a2 + dbe4: fb9f70ef jal ra,5b9c + dbe8: cd05 beqz a0,dc20 + dbea: 6791 lui a5,0x4 + dbec: 45b2 lw a1,12(sp) + dbee: e9278793 addi a5,a5,-366 # 3e92 + dbf2: a11e sh a5,0(a0) + dbf4: 4795 li a5,5 + dbf6: 842a mv s0,a0 + dbf8: 01251223 sh s2,4(a0) + dbfc: a13c sb a5,2(a0) + dbfe: 4621 li a2,8 + dc00: 0519 addi a0,a0,6 + dc02: 1fff3097 auipc ra,0x1fff3 + dc06: c5a080e7 jalr -934(ra) # 2000085c + dc0a: 85a2 mv a1,s0 + dc0c: a466 sh s1,14(s0) + dc0e: 4462 lw s0,24(sp) + dc10: 40f2 lw ra,28(sp) + dc12: 44d2 lw s1,20(sp) + dc14: 4942 lw s2,16(sp) + dc16: 9cf1c503 lbu a0,-1585(gp) # 20001387 + dc1a: 6105 addi sp,sp,32 + dc1c: 87af806f j 5c96 + dc20: 40f2 lw ra,28(sp) + dc22: 4462 lw s0,24(sp) + dc24: 44d2 lw s1,20(sp) + dc26: 4942 lw s2,16(sp) + dc28: 6105 addi sp,sp,32 + dc2a: 8082 ret + +0000dc2c : +HOST_LE_RemoteConnectionParameterRequestEvent(): + dc2c: 1101 addi sp,sp,-32 + dc2e: c62a sw a0,12(sp) + dc30: 4539 li a0,14 + dc32: ce06 sw ra,28(sp) + dc34: cc22 sw s0,24(sp) + dc36: f67f70ef jal ra,5b9c + dc3a: c515 beqz a0,dc66 + dc3c: 45b2 lw a1,12(sp) + dc3e: 4639 li a2,14 + dc40: 842a mv s0,a0 + dc42: 1fff3097 auipc ra,0x1fff3 + dc46: c1a080e7 jalr -998(ra) # 2000085c + dc4a: 6791 lui a5,0x4 + dc4c: e9178793 addi a5,a5,-367 # 3e91 + dc50: a01e sh a5,0(s0) + dc52: 4799 li a5,6 + dc54: a03c sb a5,2(s0) + dc56: 85a2 mv a1,s0 + dc58: 4462 lw s0,24(sp) + dc5a: 40f2 lw ra,28(sp) + dc5c: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dc60: 6105 addi sp,sp,32 + dc62: 834f806f j 5c96 + dc66: 40f2 lw ra,28(sp) + dc68: 4462 lw s0,24(sp) + dc6a: 6105 addi sp,sp,32 + dc6c: 8082 ret + +0000dc6e : +HOST_RemoteConnectionParameterRequestEvent(): + dc6e: 7179 addi sp,sp,-48 + dc70: d422 sw s0,40(sp) + dc72: d226 sw s1,36(sp) + dc74: d04a sw s2,32(sp) + dc76: ce4e sw s3,28(sp) + dc78: cc52 sw s4,24(sp) + dc7a: d606 sw ra,44(sp) + dc7c: 842a mv s0,a0 + dc7e: 8a2e mv s4,a1 + dc80: 89b2 mv s3,a2 + dc82: 8936 mv s2,a3 + dc84: 84ba mv s1,a4 + dc86: eabfd0ef jal ra,bb30 + dc8a: cd11 beqz a0,dca6 + dc8c: 0ff00613 li a2,255 + dc90: 002c addi a1,sp,8 + dc92: 8522 mv a0,s0 + dc94: 01411423 sh s4,8(sp) + dc98: 01311523 sh s3,10(sp) + dc9c: 01211623 sh s2,12(sp) + dca0: 8764 sh s1,14(sp) + dca2: dc9fd0ef jal ra,ba6a + dca6: 50b2 lw ra,44(sp) + dca8: 5422 lw s0,40(sp) + dcaa: 5492 lw s1,36(sp) + dcac: 5902 lw s2,32(sp) + dcae: 49f2 lw s3,28(sp) + dcb0: 4a62 lw s4,24(sp) + dcb2: 6145 addi sp,sp,48 + dcb4: 8082 ret + +0000dcb6 : +HOST_LE_DataLengthChangeEvent(): + dcb6: 1101 addi sp,sp,-32 + dcb8: c62a sw a0,12(sp) + dcba: 4539 li a0,14 + dcbc: ce06 sw ra,28(sp) + dcbe: cc22 sw s0,24(sp) + dcc0: eddf70ef jal ra,5b9c + dcc4: c515 beqz a0,dcf0 + dcc6: 45b2 lw a1,12(sp) + dcc8: 4639 li a2,14 + dcca: 842a mv s0,a0 + dccc: 1fff3097 auipc ra,0x1fff3 + dcd0: b90080e7 jalr -1136(ra) # 2000085c + dcd4: 6791 lui a5,0x4 + dcd6: e9178793 addi a5,a5,-367 # 3e91 + dcda: a01e sh a5,0(s0) + dcdc: 479d li a5,7 + dcde: a03c sb a5,2(s0) + dce0: 85a2 mv a1,s0 + dce2: 4462 lw s0,24(sp) + dce4: 40f2 lw ra,28(sp) + dce6: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dcea: 6105 addi sp,sp,32 + dcec: fabf706f j 5c96 + dcf0: 40f2 lw ra,28(sp) + dcf2: 4462 lw s0,24(sp) + dcf4: 6105 addi sp,sp,32 + dcf6: 8082 ret + +0000dcf8 : +HOST_LE_PHYUpdateCompleteReportEvent(): + dcf8: 1101 addi sp,sp,-32 + dcfa: c64e sw s3,12(sp) + dcfc: 89aa mv s3,a0 + dcfe: 4521 li a0,8 + dd00: cc22 sw s0,24(sp) + dd02: ca26 sw s1,20(sp) + dd04: c84a sw s2,16(sp) + dd06: ce06 sw ra,28(sp) + dd08: 892e mv s2,a1 + dd0a: 84b2 mv s1,a2 + dd0c: 8436 mv s0,a3 + dd0e: e8ff70ef jal ra,5b9c + dd12: c905 beqz a0,dd42 + dd14: 6791 lui a5,0x4 + dd16: e9178793 addi a5,a5,-367 # 3e91 + dd1a: a11e sh a5,0(a0) + dd1c: 47b1 li a5,12 + dd1e: a13c sb a5,2(a0) + dd20: 013501a3 sb s3,3(a0) + dd24: a164 sb s1,6(a0) + dd26: b160 sb s0,7(a0) + dd28: 4462 lw s0,24(sp) + dd2a: 01251223 sh s2,4(a0) + dd2e: 40f2 lw ra,28(sp) + dd30: 44d2 lw s1,20(sp) + dd32: 4942 lw s2,16(sp) + dd34: 49b2 lw s3,12(sp) + dd36: 85aa mv a1,a0 + dd38: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dd3c: 6105 addi sp,sp,32 + dd3e: f59f706f j 5c96 + dd42: 40f2 lw ra,28(sp) + dd44: 4462 lw s0,24(sp) + dd46: 44d2 lw s1,20(sp) + dd48: 4942 lw s2,16(sp) + dd4a: 49b2 lw s3,12(sp) + dd4c: 6105 addi sp,sp,32 + dd4e: 8082 ret + +0000dd50 : +HOST_LE_ScanRequestReceivedEvent(): + dd50: 1101 addi sp,sp,-32 + dd52: c64e sw s3,12(sp) + dd54: 89aa mv s3,a0 + dd56: 452d li a0,11 + dd58: ca26 sw s1,20(sp) + dd5a: c84a sw s2,16(sp) + dd5c: ce06 sw ra,28(sp) + dd5e: cc22 sw s0,24(sp) + dd60: 892e mv s2,a1 + dd62: 84b2 mv s1,a2 + dd64: e39f70ef jal ra,5b9c + dd68: c121 beqz a0,dda8 + dd6a: f9100793 li a5,-111 + dd6e: a11c sb a5,0(a0) + dd70: 03e00793 li a5,62 + dd74: b11c sb a5,1(a0) + dd76: 47cd li a5,19 + dd78: 013501a3 sb s3,3(a0) + dd7c: 01250223 sb s2,4(a0) + dd80: 842a mv s0,a0 + dd82: a13c sb a5,2(a0) + dd84: 85a6 mv a1,s1 + dd86: 0515 addi a0,a0,5 + dd88: 4619 li a2,6 + dd8a: 1fff3097 auipc ra,0x1fff3 + dd8e: ad2080e7 jalr -1326(ra) # 2000085c + dd92: 85a2 mv a1,s0 + dd94: 4462 lw s0,24(sp) + dd96: 40f2 lw ra,28(sp) + dd98: 44d2 lw s1,20(sp) + dd9a: 4942 lw s2,16(sp) + dd9c: 49b2 lw s3,12(sp) + dd9e: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dda2: 6105 addi sp,sp,32 + dda4: ef3f706f j 5c96 + dda8: 40f2 lw ra,28(sp) + ddaa: 4462 lw s0,24(sp) + ddac: 44d2 lw s1,20(sp) + ddae: 4942 lw s2,16(sp) + ddb0: 49b2 lw s3,12(sp) + ddb2: 6105 addi sp,sp,32 + ddb4: 8082 ret + +0000ddb6 : +HOST_DisconnectionCompleteEvent(): + ddb6: 1141 addi sp,sp,-16 + ddb8: c04a sw s2,0(sp) + ddba: 892a mv s2,a0 + ddbc: 4521 li a0,8 + ddbe: c422 sw s0,8(sp) + ddc0: c226 sw s1,4(sp) + ddc2: c606 sw ra,12(sp) + ddc4: 84ae mv s1,a1 + ddc6: 8432 mv s0,a2 + ddc8: dd5f70ef jal ra,5b9c + ddcc: c115 beqz a0,ddf0 + ddce: 59100793 li a5,1425 + ddd2: a11e sh a5,0(a0) + ddd4: 01250123 sb s2,2(a0) + ddd8: a160 sb s0,6(a0) + ddda: 4422 lw s0,8(sp) + dddc: a146 sh s1,4(a0) + ddde: 40b2 lw ra,12(sp) + dde0: 4492 lw s1,4(sp) + dde2: 4902 lw s2,0(sp) + dde4: 85aa mv a1,a0 + dde6: 9cc1c503 lbu a0,-1588(gp) # 20001384 + ddea: 0141 addi sp,sp,16 + ddec: eabf706f j 5c96 + ddf0: 40b2 lw ra,12(sp) + ddf2: 4422 lw s0,8(sp) + ddf4: 4492 lw s1,4(sp) + ddf6: 4902 lw s2,0(sp) + ddf8: 0141 addi sp,sp,16 + ddfa: 8082 ret + +0000ddfc : +HOST_EncryptionChangeEvent(): + ddfc: 1141 addi sp,sp,-16 + ddfe: c226 sw s1,4(sp) + de00: 84aa mv s1,a0 + de02: 4521 li a0,8 + de04: c422 sw s0,8(sp) + de06: c04a sw s2,0(sp) + de08: c606 sw ra,12(sp) + de0a: 892e mv s2,a1 + de0c: 8432 mv s0,a2 + de0e: d8ff70ef jal ra,5b9c + de12: c50d beqz a0,de3c + de14: 6791 lui a5,0x4 + de16: e9278793 addi a5,a5,-366 # 3e92 + de1a: a11e sh a5,0(a0) + de1c: 47a1 li a5,8 + de1e: a13c sb a5,2(a0) + de20: a164 sb s1,6(a0) + de22: b160 sb s0,7(a0) + de24: 4422 lw s0,8(sp) + de26: 01251223 sh s2,4(a0) + de2a: 40b2 lw ra,12(sp) + de2c: 4492 lw s1,4(sp) + de2e: 4902 lw s2,0(sp) + de30: 85aa mv a1,a0 + de32: 9cf1c503 lbu a0,-1585(gp) # 20001387 + de36: 0141 addi sp,sp,16 + de38: e5ff706f j 5c96 + de3c: 40b2 lw ra,12(sp) + de3e: 4422 lw s0,8(sp) + de40: 4492 lw s1,4(sp) + de42: 4902 lw s2,0(sp) + de44: 0141 addi sp,sp,16 + de46: 8082 ret + +0000de48 : +HOST_ReadRemoteVersionInfoEvent(): + de48: 1101 addi sp,sp,-32 + de4a: c62a sw a0,12(sp) + de4c: 4531 li a0,12 + de4e: ce06 sw ra,28(sp) + de50: cc22 sw s0,24(sp) + de52: d4bf70ef jal ra,5b9c + de56: c505 beqz a0,de7e + de58: 45b2 lw a1,12(sp) + de5a: 4631 li a2,12 + de5c: 842a mv s0,a0 + de5e: 1fff3097 auipc ra,0x1fff3 + de62: 9fe080e7 jalr -1538(ra) # 2000085c + de66: 6785 lui a5,0x1 + de68: c9178793 addi a5,a5,-879 # c91 <_sinit-0x36f> + de6c: a01e sh a5,0(s0) + de6e: 85a2 mv a1,s0 + de70: 4462 lw s0,24(sp) + de72: 40f2 lw ra,28(sp) + de74: 9cc1c503 lbu a0,-1588(gp) # 20001384 + de78: 6105 addi sp,sp,32 + de7a: e1df706f j 5c96 + de7e: 40f2 lw ra,28(sp) + de80: 4462 lw s0,24(sp) + de82: 6105 addi sp,sp,32 + de84: 8082 ret + +0000de86 : +HOST_CommandCompleteEvent(): + de86: 1101 addi sp,sp,-32 + de88: c84a sw s2,16(sp) + de8a: 892a mv s2,a0 + de8c: 00c58513 addi a0,a1,12 + de90: ca26 sw s1,20(sp) + de92: ce06 sw ra,28(sp) + de94: cc22 sw s0,24(sp) + de96: 84ae mv s1,a1 + de98: c632 sw a2,12(sp) + de9a: d03f70ef jal ra,5b9c + de9e: c91d beqz a0,ded4 + dea0: 6785 lui a5,0x1 + dea2: 45b2 lw a1,12(sp) + dea4: e9178793 addi a5,a5,-367 # e91 <_sinit-0x16f> + dea8: a124 sb s1,2(a0) + deaa: 01251223 sh s2,4(a0) + deae: 842a mv s0,a0 + deb0: a11e sh a5,0(a0) + deb2: 0531 addi a0,a0,12 + deb4: c408 sw a0,8(s0) + deb6: 8626 mv a2,s1 + deb8: 1fff3097 auipc ra,0x1fff3 + debc: 9a4080e7 jalr -1628(ra) # 2000085c + dec0: 85a2 mv a1,s0 + dec2: 4462 lw s0,24(sp) + dec4: 40f2 lw ra,28(sp) + dec6: 44d2 lw s1,20(sp) + dec8: 4942 lw s2,16(sp) + deca: 9cc1c503 lbu a0,-1588(gp) # 20001384 + dece: 6105 addi sp,sp,32 + ded0: dc7f706f j 5c96 + ded4: 40f2 lw ra,28(sp) + ded6: 4462 lw s0,24(sp) + ded8: 44d2 lw s1,20(sp) + deda: 4942 lw s2,16(sp) + dedc: 6105 addi sp,sp,32 + dede: 8082 ret + +0000dee0 : +HOST_CommandStatusEvent(): + dee0: 1141 addi sp,sp,-16 + dee2: c226 sw s1,4(sp) + dee4: 84aa mv s1,a0 + dee6: 4519 li a0,6 + dee8: c422 sw s0,8(sp) + deea: c606 sw ra,12(sp) + deec: 842e mv s0,a1 + deee: caff70ef jal ra,5b9c + def2: c115 beqz a0,df16 + def4: 6785 lui a5,0x1 + def6: f9178793 addi a5,a5,-111 # f91 <_sinit-0x6f> + defa: a11e sh a5,0(a0) + defc: 4785 li a5,1 + defe: a124 sb s1,2(a0) + df00: b13c sb a5,3(a0) + df02: a142 sh s0,4(a0) + df04: 4422 lw s0,8(sp) + df06: 40b2 lw ra,12(sp) + df08: 4492 lw s1,4(sp) + df0a: 85aa mv a1,a0 + df0c: 9cc1c503 lbu a0,-1588(gp) # 20001384 + df10: 0141 addi sp,sp,16 + df12: d85f706f j 5c96 + df16: 40b2 lw ra,12(sp) + df18: 4422 lw s0,8(sp) + df1a: 4492 lw s1,4(sp) + df1c: 0141 addi sp,sp,16 + df1e: 8082 ret + +0000df20 : +HOST_EncryptionKeyRefreshCompleteEvent(): + df20: 1141 addi sp,sp,-16 + df22: c422 sw s0,8(sp) + df24: 842a mv s0,a0 + df26: 4521 li a0,8 + df28: c226 sw s1,4(sp) + df2a: c606 sw ra,12(sp) + df2c: 84ae mv s1,a1 + df2e: c6ff70ef jal ra,5b9c + df32: c11d beqz a0,df58 + df34: 6791 lui a5,0x4 + df36: e9278793 addi a5,a5,-366 # 3e92 + df3a: a11e sh a5,0(a0) + df3c: 03000793 li a5,48 + df40: a13c sb a5,2(a0) + df42: a160 sb s0,6(a0) + df44: 4422 lw s0,8(sp) + df46: a146 sh s1,4(a0) + df48: 40b2 lw ra,12(sp) + df4a: 4492 lw s1,4(sp) + df4c: 85aa mv a1,a0 + df4e: 9cf1c503 lbu a0,-1585(gp) # 20001387 + df52: 0141 addi sp,sp,16 + df54: d43f706f j 5c96 + df58: 40b2 lw ra,12(sp) + df5a: 4422 lw s0,8(sp) + df5c: 4492 lw s1,4(sp) + df5e: 0141 addi sp,sp,16 + df60: 8082 ret + +0000df62 : +HOST_NumberOfCompletedPacketsEvent(): + df62: 1141 addi sp,sp,-16 + df64: 4521 li a0,8 + df66: c422 sw s0,8(sp) + df68: c226 sw s1,4(sp) + df6a: c606 sw ra,12(sp) + df6c: 84ae mv s1,a1 + df6e: 8432 mv s0,a2 + df70: c2df70ef jal ra,5b9c + df74: c115 beqz a0,df98 + df76: 6785 lui a5,0x1 + df78: 39078793 addi a5,a5,912 # 1390 <_einit+0x38c> + df7c: a11e sh a5,0(a0) + df7e: 4785 li a5,1 + df80: a13c sb a5,2(a0) + df82: a162 sh s0,6(a0) + df84: 4422 lw s0,8(sp) + df86: a146 sh s1,4(a0) + df88: 40b2 lw ra,12(sp) + df8a: 4492 lw s1,4(sp) + df8c: 85aa mv a1,a0 + df8e: 9c11c503 lbu a0,-1599(gp) # 20001379 + df92: 0141 addi sp,sp,16 + df94: d03f706f j 5c96 + df98: 40b2 lw ra,12(sp) + df9a: 4422 lw s0,8(sp) + df9c: 4492 lw s1,4(sp) + df9e: 0141 addi sp,sp,16 + dfa0: 8082 ret + +0000dfa2 : +HOST_RecvDataPackets(): + dfa2: 1101 addi sp,sp,-32 + dfa4: cc22 sw s0,24(sp) + dfa6: ca26 sw s1,20(sp) + dfa8: c64e sw s3,12(sp) + dfaa: c452 sw s4,8(sp) + dfac: c256 sw s5,4(sp) + dfae: c05a sw s6,0(sp) + dfb0: fff50413 addi s0,a0,-1 + dfb4: ce06 sw ra,28(sp) + dfb6: c84a sw s2,16(sp) + dfb8: 4b09 li s6,2 + dfba: 89aa mv s3,a0 + dfbc: 84ae mv s1,a1 + dfbe: 8a32 mv s4,a2 + dfc0: 8ab6 mv s5,a3 + dfc2: 08044433 zext.h s0,s0 + dfc6: 11659863 bne a1,s6,e0d6 + dfca: 9bf18b13 addi s6,gp,-1601 # 20001377 + dfce: 000b4783 lbu a5,0(s6) + dfd2: cfbd beqz a5,e050 + dfd4: 0016c903 lbu s2,1(a3) + dfd8: 229c lbu a5,0(a3) + dfda: 0922 slli s2,s2,0x8 + dfdc: 00f96933 or s2,s2,a5 + dfe0: 1fff5797 auipc a5,0x1fff5 + dfe4: 8f87d783 lhu a5,-1800(a5) # 200028d8 + dfe8: 17f5 addi a5,a5,-3 + dfea: 1af95d63 bge s2,a5,e1a4 + dfee: ffc60793 addi a5,a2,-4 + dff2: 06f91a63 bne s2,a5,e066 + dff6: 4531 li a0,12 + dff8: ba5f70ef jal ra,5b9c + dffc: 842a mv s0,a0 + dffe: c539 beqz a0,e04c + e000: f9000793 li a5,-112 + e004: 65a1 lui a1,0x8 + e006: a11e sh a5,0(a0) + e008: 01351123 sh s3,2(a0) + e00c: a144 sb s1,4(a0) + e00e: 01451323 sh s4,6(a0) + e012: 0585 addi a1,a1,1 # 8001 + e014: 8552 mv a0,s4 + e016: 6d60c0ef jal ra,1a6ec + e01a: c408 sw a0,8(s0) + e01c: c11d beqz a0,e042 + e01e: 000b4783 lbu a5,0(s6) + e022: 85d6 mv a1,s5 + e024: 8652 mv a2,s4 + e026: 17fd addi a5,a5,-1 + e028: 00fb0023 sb a5,0(s6) + e02c: 1fff3097 auipc ra,0x1fff3 + e030: 830080e7 jalr -2000(ra) # 2000085c + e034: 85a2 mv a1,s0 + e036: 9c11c503 lbu a0,-1599(gp) # 20001379 + e03a: c5df70ef jal ra,5c96 + e03e: 4481 li s1,0 + e040: a801 j e050 + e042: 8522 mv a0,s0 + e044: 1fff3097 auipc ra,0x1fff3 + e048: e7c080e7 jalr -388(ra) # 20000ec0 + e04c: 0ff00493 li s1,255 + e050: 40f2 lw ra,28(sp) + e052: 4462 lw s0,24(sp) + e054: 4942 lw s2,16(sp) + e056: 49b2 lw s3,12(sp) + e058: 4a22 lw s4,8(sp) + e05a: 4a92 lw s5,4(sp) + e05c: 4b02 lw s6,0(sp) + e05e: 8526 mv a0,s1 + e060: 44d2 lw s1,20(sp) + e062: 6105 addi sp,sp,32 + e064: 8082 ret + e066: ffd60793 addi a5,a2,-3 + e06a: fef941e3 blt s2,a5,e04c + e06e: 47b1 li a5,12 + e070: 02f40433 mul s0,s0,a5 + e074: 9b818493 addi s1,gp,-1608 # 20001370 + e078: 409c lw a5,0(s1) + e07a: 97a2 add a5,a5,s0 + e07c: 27b8 lbu a4,10(a5) + e07e: c719 beqz a4,e08c + e080: 4388 lw a0,0(a5) + e082: c509 beqz a0,e08c + e084: 1fff3097 auipc ra,0x1fff3 + e088: e3c080e7 jalr -452(ra) # 20000ec0 + e08c: 65a1 lui a1,0x8 + e08e: 00490513 addi a0,s2,4 + e092: 0585 addi a1,a1,1 # 8001 + e094: 0004a983 lw s3,0(s1) + e098: 08054533 zext.h a0,a0 + e09c: 6500c0ef jal ra,1a6ec + e0a0: 409c lw a5,0(s1) + e0a2: 99a2 add s3,s3,s0 + e0a4: 00a9a023 sw a0,0(s3) + e0a8: 97a2 add a5,a5,s0 + e0aa: 4388 lw a0,0(a5) + e0ac: d145 beqz a0,e04c + e0ae: 4705 li a4,1 + e0b0: a7b8 sb a4,10(a5) + e0b2: 000b4783 lbu a5,0(s6) + e0b6: 8652 mv a2,s4 + e0b8: 85d6 mv a1,s5 + e0ba: 17fd addi a5,a5,-1 + e0bc: 00fb0023 sb a5,0(s6) + e0c0: 1fff2097 auipc ra,0x1fff2 + e0c4: 79c080e7 jalr 1948(ra) # 2000085c + e0c8: 409c lw a5,0(s1) + e0ca: 97a2 add a5,a5,s0 + e0cc: 01479323 sh s4,6(a5) + e0d0: 01279223 sh s2,4(a5) + e0d4: b7ad j e03e + e0d6: 4785 li a5,1 + e0d8: f6f59ae3 bne a1,a5,e04c + e0dc: 47b1 li a5,12 + e0de: 02f40433 mul s0,s0,a5 + e0e2: 9b818913 addi s2,gp,-1608 # 20001370 + e0e6: 00092783 lw a5,0(s2) + e0ea: 97a2 add a5,a5,s0 + e0ec: 23fa lhu a4,6(a5) + e0ee: 4388 lw a0,0(a5) + e0f0: cb41 beqz a4,e180 + e0f2: 23de lhu a5,4(a5) + e0f4: 00c706b3 add a3,a4,a2 + e0f8: 0791 addi a5,a5,4 + e0fa: 08d7c363 blt a5,a3,e180 + e0fe: 953a add a0,a0,a4 + e100: 85d6 mv a1,s5 + e102: 1fff2097 auipc ra,0x1fff2 + e106: 75a080e7 jalr 1882(ra) # 2000085c + e10a: 00092783 lw a5,0(s2) + e10e: 97a2 add a5,a5,s0 + e110: 23fa lhu a4,6(a5) + e112: 00ea0633 add a2,s4,a4 + e116: 08064633 zext.h a2,a2 + e11a: a3f2 sh a2,6(a5) + e11c: 23de lhu a5,4(a5) + e11e: 0791 addi a5,a5,4 + e120: f0f61fe3 bne a2,a5,e03e + e124: 4531 li a0,12 + e126: a77f70ef jal ra,5b9c + e12a: 85aa mv a1,a0 + e12c: c91d beqz a0,e162 + e12e: f9000793 li a5,-112 + e132: a11e sh a5,0(a0) + e134: 00092783 lw a5,0(s2) + e138: 01650223 sb s6,4(a0) + e13c: 01351123 sh s3,2(a0) + e140: 97a2 add a5,a5,s0 + e142: 23fa lhu a4,6(a5) + e144: 439c lw a5,0(a5) + e146: a17a sh a4,6(a0) + e148: c51c sw a5,8(a0) + e14a: 9c11c503 lbu a0,-1599(gp) # 20001379 + e14e: b49f70ef jal ra,5c96 + e152: 00092783 lw a5,0(s2) + e156: 97a2 add a5,a5,s0 + e158: 00079323 sh zero,6(a5) + e15c: 00078523 sb zero,10(a5) + e160: bdf9 j e03e + e162: 00092783 lw a5,0(s2) + e166: 97a2 add a5,a5,s0 + e168: 4388 lw a0,0(a5) + e16a: d565 beqz a0,e152 + e16c: 1fff3097 auipc ra,0x1fff3 + e170: d54080e7 jalr -684(ra) # 20000ec0 + e174: 00092783 lw a5,0(s2) + e178: 97a2 add a5,a5,s0 + e17a: 0007a023 sw zero,0(a5) + e17e: bfd1 j e152 + e180: c911 beqz a0,e194 + e182: 1fff3097 auipc ra,0x1fff3 + e186: d3e080e7 jalr -706(ra) # 20000ec0 + e18a: 00092783 lw a5,0(s2) + e18e: 97a2 add a5,a5,s0 + e190: 0007a023 sw zero,0(a5) + e194: 00092783 lw a5,0(s2) + e198: 97a2 add a5,a5,s0 + e19a: 00079323 sh zero,6(a5) + e19e: 00078523 sb zero,10(a5) + e1a2: b57d j e050 + e1a4: 4491 li s1,4 + e1a6: b56d j e050 + +0000e1a8 : +AES_DevAESEnc(): + e1a8: 9d418713 addi a4,gp,-1580 # 2000138c + e1ac: 431c lw a5,0(a4) + e1ae: 10000693 li a3,256 + e1b2: c394 sw a3,0(a5) + e1b4: 0001 nop + e1b6: 0001 nop + e1b8: 0001 nop + e1ba: 0001 nop + e1bc: 431c lw a5,0(a4) + e1be: 0007a023 sw zero,0(a5) + e1c2: 3114 lbu a3,1(a0) + e1c4: 00054803 lbu a6,0(a0) + e1c8: 06a2 slli a3,a3,0x8 + e1ca: 0106e6b3 or a3,a3,a6 + e1ce: 00254803 lbu a6,2(a0) + e1d2: 0842 slli a6,a6,0x10 + e1d4: 00d86833 or a6,a6,a3 + e1d8: 3134 lbu a3,3(a0) + e1da: 06e2 slli a3,a3,0x18 + e1dc: 0106e6b3 or a3,a3,a6 + e1e0: d794 sw a3,40(a5) + e1e2: 3154 lbu a3,5(a0) + e1e4: 00454803 lbu a6,4(a0) + e1e8: 06a2 slli a3,a3,0x8 + e1ea: 0106e6b3 or a3,a3,a6 + e1ee: 00654803 lbu a6,6(a0) + e1f2: 0842 slli a6,a6,0x10 + e1f4: 00d86833 or a6,a6,a3 + e1f8: 3174 lbu a3,7(a0) + e1fa: 06e2 slli a3,a3,0x18 + e1fc: 0106e6b3 or a3,a3,a6 + e200: d7d4 sw a3,44(a5) + e202: 3514 lbu a3,9(a0) + e204: 00854803 lbu a6,8(a0) + e208: 06a2 slli a3,a3,0x8 + e20a: 0106e6b3 or a3,a3,a6 + e20e: 00a54803 lbu a6,10(a0) + e212: 0842 slli a6,a6,0x10 + e214: 00d86833 or a6,a6,a3 + e218: 3534 lbu a3,11(a0) + e21a: 06e2 slli a3,a3,0x18 + e21c: 0106e6b3 or a3,a3,a6 + e220: db94 sw a3,48(a5) + e222: 3554 lbu a3,13(a0) + e224: 00c54803 lbu a6,12(a0) + e228: 06a2 slli a3,a3,0x8 + e22a: 0106e6b3 or a3,a3,a6 + e22e: 00e54803 lbu a6,14(a0) + e232: 0842 slli a6,a6,0x10 + e234: 00d86833 or a6,a6,a3 + e238: 3574 lbu a3,15(a0) + e23a: 06e2 slli a3,a3,0x18 + e23c: 0106e6b3 or a3,a3,a6 + e240: dbd4 sw a3,52(a5) + e242: 3194 lbu a3,1(a1) + e244: 2188 lbu a0,0(a1) + e246: 06a2 slli a3,a3,0x8 + e248: 8ec9 or a3,a3,a0 + e24a: 21a8 lbu a0,2(a1) + e24c: 0542 slli a0,a0,0x10 + e24e: 8d55 or a0,a0,a3 + e250: 31b4 lbu a3,3(a1) + e252: 06e2 slli a3,a3,0x18 + e254: 8ec9 or a3,a3,a0 + e256: cf94 sw a3,24(a5) + e258: 31d4 lbu a3,5(a1) + e25a: 21c8 lbu a0,4(a1) + e25c: 06a2 slli a3,a3,0x8 + e25e: 8ec9 or a3,a3,a0 + e260: 21e8 lbu a0,6(a1) + e262: 0542 slli a0,a0,0x10 + e264: 8d55 or a0,a0,a3 + e266: 31f4 lbu a3,7(a1) + e268: 06e2 slli a3,a3,0x18 + e26a: 8ec9 or a3,a3,a0 + e26c: cfd4 sw a3,28(a5) + e26e: 2588 lbu a0,8(a1) + e270: 3594 lbu a3,9(a1) + e272: 06a2 slli a3,a3,0x8 + e274: 8ec9 or a3,a3,a0 + e276: 25a8 lbu a0,10(a1) + e278: 0542 slli a0,a0,0x10 + e27a: 8d55 or a0,a0,a3 + e27c: 35b4 lbu a3,11(a1) + e27e: 06e2 slli a3,a3,0x18 + e280: 8ec9 or a3,a3,a0 + e282: d394 sw a3,32(a5) + e284: 35d4 lbu a3,13(a1) + e286: 25c8 lbu a0,12(a1) + e288: 06a2 slli a3,a3,0x8 + e28a: 8ec9 or a3,a3,a0 + e28c: 25e8 lbu a0,14(a1) + e28e: 0542 slli a0,a0,0x10 + e290: 8d55 or a0,a0,a3 + e292: 35f4 lbu a3,15(a1) + e294: 06e2 slli a3,a3,0x18 + e296: 8ec9 or a3,a3,a0 + e298: d3d4 sw a3,36(a5) + e29a: 43d4 lw a3,4(a5) + e29c: 9af5 andi a3,a3,-3 + e29e: c3d4 sw a3,4(a5) + e2a0: 43d4 lw a3,4(a5) + e2a2: 0016e693 ori a3,a3,1 + e2a6: c3d4 sw a3,4(a5) + e2a8: 4394 lw a3,0(a5) + e2aa: 0016e693 ori a3,a3,1 + e2ae: c394 sw a3,0(a5) + e2b0: 4314 lw a3,0(a4) + e2b2: 42dc lw a5,4(a3) + e2b4: 8b85 andi a5,a5,1 + e2b6: e3bd bnez a5,e31c + e2b8: 4e9c lw a5,24(a3) + e2ba: 4501 li a0,0 + e2bc: a21c sb a5,0(a2) + e2be: 431c lw a5,0(a4) + e2c0: 4f9c lw a5,24(a5) + e2c2: 83a1 srli a5,a5,0x8 + e2c4: b21c sb a5,1(a2) + e2c6: 431c lw a5,0(a4) + e2c8: 4f9c lw a5,24(a5) + e2ca: 83c1 srli a5,a5,0x10 + e2cc: a23c sb a5,2(a2) + e2ce: 431c lw a5,0(a4) + e2d0: 4f9c lw a5,24(a5) + e2d2: 83e1 srli a5,a5,0x18 + e2d4: b23c sb a5,3(a2) + e2d6: 431c lw a5,0(a4) + e2d8: 4fd8 lw a4,28(a5) + e2da: a258 sb a4,4(a2) + e2dc: 4fd8 lw a4,28(a5) + e2de: 8321 srli a4,a4,0x8 + e2e0: b258 sb a4,5(a2) + e2e2: 4fd8 lw a4,28(a5) + e2e4: 8341 srli a4,a4,0x10 + e2e6: a278 sb a4,6(a2) + e2e8: 4fd8 lw a4,28(a5) + e2ea: 8361 srli a4,a4,0x18 + e2ec: b278 sb a4,7(a2) + e2ee: 5398 lw a4,32(a5) + e2f0: a618 sb a4,8(a2) + e2f2: 5398 lw a4,32(a5) + e2f4: 8321 srli a4,a4,0x8 + e2f6: b618 sb a4,9(a2) + e2f8: 5398 lw a4,32(a5) + e2fa: 8341 srli a4,a4,0x10 + e2fc: a638 sb a4,10(a2) + e2fe: 5398 lw a4,32(a5) + e300: 8361 srli a4,a4,0x18 + e302: b638 sb a4,11(a2) + e304: 53d8 lw a4,36(a5) + e306: a658 sb a4,12(a2) + e308: 53d8 lw a4,36(a5) + e30a: 8321 srli a4,a4,0x8 + e30c: b658 sb a4,13(a2) + e30e: 53d8 lw a4,36(a5) + e310: 8341 srli a4,a4,0x10 + e312: a678 sb a4,14(a2) + e314: 53dc lw a5,36(a5) + e316: 83e1 srli a5,a5,0x18 + e318: b67c sb a5,15(a2) + e31a: 8082 ret + e31c: 0001 nop + e31e: bf49 j e2b0 + +0000e320 : +LL_Encrypt(): + e320: 1101 addi sp,sp,-32 + e322: cc22 sw s0,24(sp) + e324: 842a mv s0,a0 + e326: 4535 li a0,13 + e328: ce06 sw ra,28(sp) + e32a: c62e sw a1,12(sp) + e32c: c432 sw a2,8(sp) + e32e: 3660c0ef jal ra,1a694 + e332: 9f01a703 lw a4,-1552(gp) # 200013a8 + e336: 4b3c lw a5,80(a4) + e338: 8522 mv a0,s0 + e33a: 0807e793 ori a5,a5,128 + e33e: cb3c sw a5,80(a4) + e340: 4622 lw a2,8(sp) + e342: 45b2 lw a1,12(sp) + e344: e65ff0ef jal ra,e1a8 + e348: 40f2 lw ra,28(sp) + e34a: 4462 lw s0,24(sp) + e34c: 4501 li a0,0 + e34e: 6105 addi sp,sp,32 + e350: 8082 ret + +0000e352 : +AES_DevPktEnc(): + e352: 9f01a703 lw a4,-1552(gp) # 200013a8 + e356: 4b3c lw a5,80(a4) + e358: 0807e793 ori a5,a5,128 + e35c: cb3c sw a5,80(a4) + e35e: 0001 nop + e360: 0001 nop + e362: 0001 nop + e364: 0001 nop + e366: 08058713 addi a4,a1,128 + e36a: 5b14 lw a3,48(a4) + e36c: 0516 slli a0,a0,0x5 + e36e: 9d41a783 lw a5,-1580(gp) # 2000138c + e372: 08056513 ori a0,a0,128 + e376: c388 sw a0,0(a5) + e378: cb94 sw a3,16(a5) + e37a: 0b45c683 lbu a3,180(a1) + e37e: 4501 li a0,0 + e380: cbd4 sw a3,20(a5) + e382: 4b34 lw a3,80(a4) + e384: cf94 sw a3,24(a5) + e386: 4b74 lw a3,84(a4) + e388: cfd4 sw a3,28(a5) + e38a: 4f34 lw a3,88(a4) + e38c: d394 sw a3,32(a5) + e38e: 4f74 lw a3,92(a4) + e390: d3d4 sw a3,36(a5) + e392: 5334 lw a3,96(a4) + e394: d794 sw a3,40(a5) + e396: 5374 lw a3,100(a4) + e398: d7d4 sw a3,44(a5) + e39a: 5734 lw a3,104(a4) + e39c: db94 sw a3,48(a5) + e39e: 5774 lw a3,108(a4) + e3a0: dbd4 sw a3,52(a5) + e3a2: 5b34 lw a3,112(a4) + e3a4: 5b78 lw a4,116(a4) + e3a6: c794 sw a3,8(a5) + e3a8: c7d8 sw a4,12(a5) + e3aa: 4398 lw a4,0(a5) + e3ac: 04076713 ori a4,a4,64 + e3b0: c398 sw a4,0(a5) + e3b2: 8082 ret + +0000e3b4 : +AES_DevPktDec(): + e3b4: 9f01a703 lw a4,-1552(gp) # 200013a8 + e3b8: 4b3c lw a5,80(a4) + e3ba: 0807e793 ori a5,a5,128 + e3be: cb3c sw a5,80(a4) + e3c0: 0001 nop + e3c2: 0001 nop + e3c4: 0001 nop + e3c6: 0001 nop + e3c8: 08058713 addi a4,a1,128 + e3cc: 5f14 lw a3,56(a4) + e3ce: 0516 slli a0,a0,0x5 + e3d0: 9d41a783 lw a5,-1580(gp) # 2000138c + e3d4: 08056513 ori a0,a0,128 + e3d8: c388 sw a0,0(a5) + e3da: cb94 sw a3,16(a5) + e3dc: 0bc5c683 lbu a3,188(a1) + e3e0: 4501 li a0,0 + e3e2: cbd4 sw a3,20(a5) + e3e4: 4b34 lw a3,80(a4) + e3e6: cf94 sw a3,24(a5) + e3e8: 4b74 lw a3,84(a4) + e3ea: cfd4 sw a3,28(a5) + e3ec: 4f34 lw a3,88(a4) + e3ee: d394 sw a3,32(a5) + e3f0: 4f74 lw a3,92(a4) + e3f2: d3d4 sw a3,36(a5) + e3f4: 5334 lw a3,96(a4) + e3f6: d794 sw a3,40(a5) + e3f8: 5374 lw a3,100(a4) + e3fa: d7d4 sw a3,44(a5) + e3fc: 5734 lw a3,104(a4) + e3fe: db94 sw a3,48(a5) + e400: 5774 lw a3,108(a4) + e402: dbd4 sw a3,52(a5) + e404: 5b34 lw a3,112(a4) + e406: 5b78 lw a4,116(a4) + e408: c794 sw a3,8(a5) + e40a: c7d8 sw a4,12(a5) + e40c: 4398 lw a4,0(a5) + e40e: 04076713 ori a4,a4,64 + e412: c398 sw a4,0(a5) + e414: 8082 ret + +0000e416 : +GetTxPower(): + e416: 4779 li a4,30 + e418: 87aa mv a5,a0 + e41a: 04a76f63 bltu a4,a0,e478 + e41e: 4769 li a4,26 + e420: 450d li a0,3 + e422: 04f76c63 bltu a4,a5,e47a + e426: 475d li a4,23 + e428: 4509 li a0,2 + e42a: 04f76863 bltu a4,a5,e47a + e42e: 4751 li a4,20 + e430: 4505 li a0,1 + e432: 04f76463 bltu a4,a5,e47a + e436: 4745 li a4,17 + e438: 4501 li a0,0 + e43a: 04f76063 bltu a4,a5,e47a + e43e: 473d li a4,15 + e440: 557d li a0,-1 + e442: 02f76c63 bltu a4,a5,e47a + e446: 472d li a4,11 + e448: 5575 li a0,-3 + e44a: 02f76863 bltu a4,a5,e47a + e44e: 4725 li a4,9 + e450: 556d li a0,-5 + e452: 02f76463 bltu a4,a5,e47a + e456: 4719 li a4,6 + e458: 5561 li a0,-8 + e45a: 02f76063 bltu a4,a5,e47a + e45e: 4711 li a4,4 + e460: 5559 li a0,-10 + e462: 00f76c63 bltu a4,a5,e47a + e466: 4709 li a4,2 + e468: 5545 li a0,-15 + e46a: 00f76863 bltu a4,a5,e47a + e46e: 5531 li a0,-20 + e470: 00e78563 beq a5,a4,e47a + e474: 551d li a0,-25 + e476: 8082 ret + e478: 451d li a0,7 + e47a: 8082 ret + +0000e47c : +SetTxPower(): + e47c: 5721 li a4,-24 + e47e: 87aa mv a5,a0 + e480: 04e54963 blt a0,a4,e4d2 + e484: 5735 li a4,-19 + e486: 4509 li a0,2 + e488: 04e7c663 blt a5,a4,e4d4 + e48c: 5749 li a4,-14 + e48e: 450d li a0,3 + e490: 04e7c263 blt a5,a4,e4d4 + e494: 575d li a4,-9 + e496: 4515 li a0,5 + e498: 02e7ce63 blt a5,a4,e4d4 + e49c: 5765 li a4,-7 + e49e: 451d li a0,7 + e4a0: 02e7ca63 blt a5,a4,e4d4 + e4a4: 5771 li a4,-4 + e4a6: 4529 li a0,10 + e4a8: 02e7c663 blt a5,a4,e4d4 + e4ac: 5779 li a4,-2 + e4ae: 4531 li a0,12 + e4b0: 02e7c263 blt a5,a4,e4d4 + e4b4: 4541 li a0,16 + e4b6: 0007cf63 bltz a5,e4d4 + e4ba: 4719 li a4,6 + e4bc: 03b00513 li a0,59 + e4c0: 00f74a63 blt a4,a5,e4d4 + e4c4: 8a818713 addi a4,gp,-1880 # 20001260 + e4c8: 0ff7f793 zext.b a5,a5 + e4cc: 97ba add a5,a5,a4 + e4ce: 2388 lbu a0,0(a5) + e4d0: 8082 ret + e4d2: 4505 li a0,1 + e4d4: 8082 ret + +0000e4d6 : +ble_ll_set_timeout(): + e4d6: 9f018793 addi a5,gp,-1552 # 200013a8 + e4da: 4394 lw a3,0(a5) + e4dc: 46d8 lw a4,12(a3) + e4de: 49171613 bclri a2,a4,0x11 + e4e2: c6d0 sw a2,12(a3) + e4e4: 0000100f fence.i + e4e8: 439c lw a5,0(a5) + e4ea: 000206b7 lui a3,0x20 + e4ee: 0506 slli a0,a0,0x1 + e4f0: c794 sw a3,8(a5) + e4f2: d3e8 sw a0,100(a5) + e4f4: c7d8 sw a4,12(a5) + e4f6: 8082 ret + +0000e4f8 : +BLE_RegInit(): + e4f8: 1fff4717 auipc a4,0x1fff4 + e4fc: 51974703 lbu a4,1305(a4) # 20002a11 + e500: 4791 li a5,4 + e502: 04f70d63 beq a4,a5,e55c + e506: 4000c7b7 lui a5,0x4000c + e50a: 9d41a703 lw a4,-1580(gp) # 2000138c + e50e: 30078793 addi a5,a5,768 # 4000c300 <_eusrstack+0x20009300> + e512: 04f71563 bne a4,a5,e55c + e516: 1141 addi sp,sp,-16 + e518: 4535 li a0,13 + e51a: c606 sw ra,12(sp) + e51c: 1780c0ef jal ra,1a694 + e520: 3b70c0ef jal ra,1b0d6 + e524: 284d jal e5d6 + e526: 31b0c0ef jal ra,1b040 + e52a: 9d81a703 lw a4,-1576(gp) # 20001390 + e52e: 431c lw a5,0(a4) + e530: 55800513 li a0,1368 + e534: cff7f793 andi a5,a5,-769 + e538: c31c sw a5,0(a4) + e53a: 3530c0ef jal ra,1b08c + e53e: 2ad1 jal e712 + e540: 623000ef jal ra,f362 + e544: 2231 jal e650 + e546: 2a59 jal e6dc + e548: 4501 li a0,0 + e54a: 3430c0ef jal ra,1b08c + e54e: 40b2 lw ra,12(sp) + e550: 1fff4797 auipc a5,0x1fff4 + e554: 4c0780a3 sb zero,1217(a5) # 20002a11 + e558: 0141 addi sp,sp,16 + e55a: 8082 ret + e55c: 8082 ret + +0000e55e : +BLE_IPCoreInit(): + e55e: 57fd li a5,-1 + e560: 9ef18023 sb a5,-1568(gp) # 20001398 + e564: 9e01a223 sw zero,-1564(gp) # 2000139c + e568: 4000c7b7 lui a5,0x4000c + e56c: 30078713 addi a4,a5,768 # 4000c300 <_eusrstack+0x20009300> + e570: 9ce1aa23 sw a4,-1580(gp) # 2000138c + e574: 20078713 addi a4,a5,512 + e578: 9ee1a823 sw a4,-1552(gp) # 200013a8 + e57c: 10078793 addi a5,a5,256 + e580: 4000d737 lui a4,0x4000d + e584: 1141 addi sp,sp,-16 + e586: a0e1a023 sw a4,-1536(gp) # 200013b8 + e58a: 9cf1ac23 sw a5,-1576(gp) # 20001390 + e58e: c606 sw ra,12(sp) + e590: 1fff4717 auipc a4,0x1fff4 + e594: 47c70713 addi a4,a4,1148 # 20002a0c + e598: 4785 li a5,1 + e59a: b35c sb a5,5(a4) + e59c: 1fff4797 auipc a5,0x1fff4 + e5a0: 32c7a783 lw a5,812(a5) # 200028c8 + e5a4: cb5c sw a5,20(a4) + e5a6: 10c78793 addi a5,a5,268 + e5aa: cb1c sw a5,16(a4) + e5ac: f4dff0ef jal ra,e4f8 + e5b0: e000e7b7 lui a5,0xe000e + e5b4: 4157c703 lbu a4,1045(a5) # e000e415 <_eusrstack+0xc000b415> + e5b8: 08076713 ori a4,a4,128 + e5bc: 40e78aa3 sb a4,1045(a5) + e5c0: 40b2 lw ra,12(sp) + e5c2: 00100737 lui a4,0x100 + e5c6: 10e7a023 sw a4,256(a5) + e5ca: 00200737 lui a4,0x200 + e5ce: 10e7a023 sw a4,256(a5) + e5d2: 0141 addi sp,sp,16 + e5d4: 8082 ret + +0000e5d6 : +RFEND_DevInit(): + e5d6: a001a783 lw a5,-1536(gp) # 200013b8 + e5da: 48000713 li a4,1152 + e5de: d798 sw a4,40(a5) + e5e0: 5fd8 lw a4,60(a5) + e5e2: f90006b7 lui a3,0xf9000 + e5e6: 16fd addi a3,a3,-1 # f8ffffff <_eusrstack+0xd8ffcfff> + e5e8: 8f75 and a4,a4,a3 + e5ea: 29971713 bseti a4,a4,0x19 + e5ee: dfd8 sw a4,60(a5) + e5f0: 5fd8 lw a4,60(a5) + e5f2: fffa06b7 lui a3,0xfffa0 + e5f6: 16fd addi a3,a3,-1 # fff9ffff <_eusrstack+0xdff9cfff> + e5f8: 070e slli a4,a4,0x3 + e5fa: 830d srli a4,a4,0x3 + e5fc: 29e71713 bseti a4,a4,0x1e + e600: dfd8 sw a4,60(a5) + e602: 5b98 lw a4,48(a5) + e604: 8f75 and a4,a4,a3 + e606: db98 sw a4,48(a5) + e608: 5b98 lw a4,48(a5) + e60a: 900006b7 lui a3,0x90000 + e60e: 16fd addi a3,a3,-1 # 8fffffff <_eusrstack+0x6fffcfff> + e610: 8f75 and a4,a4,a3 + e612: 29e71713 bseti a4,a4,0x1e + e616: db98 sw a4,48(a5) + e618: 47b8 lw a4,72(a5) + e61a: fff906b7 lui a3,0xfff90 + e61e: 16fd addi a3,a3,-1 # fff8ffff <_eusrstack+0xdff8cfff> + e620: 8f75 and a4,a4,a3 + e622: c7b8 sw a4,72(a5) + e624: 4bb8 lw a4,80(a5) + e626: 000706b7 lui a3,0x70 + e62a: 8ff77713 andi a4,a4,-1793 + e62e: 30076713 ori a4,a4,768 + e632: cbb8 sw a4,80(a5) + e634: 4ff8 lw a4,92(a5) + e636: 8f55 or a4,a4,a3 + e638: cff8 sw a4,92(a5) + e63a: 4ff8 lw a4,92(a5) + e63c: 070006b7 lui a3,0x7000 + e640: 8f55 or a4,a4,a3 + e642: cff8 sw a4,92(a5) + e644: 06400793 li a5,100 + e648: 0001 nop + e64a: 17fd addi a5,a5,-1 + e64c: fff5 bnez a5,e648 + e64e: 8082 ret + +0000e650 : +RFEND_RXFilter(): + e650: a0018713 addi a4,gp,-1536 # 200013b8 + e654: 431c lw a5,0(a4) + e656: 4bb4 lw a3,80(a5) + e658: 49069693 bclri a3,a3,0x10 + e65c: cbb4 sw a3,80(a5) + e65e: 4794 lw a3,8(a5) + e660: 29569693 bseti a3,a3,0x15 + e664: c794 sw a3,8(a5) + e666: 47d4 lw a3,12(a5) + e668: 0106e693 ori a3,a3,16 + e66c: c7d4 sw a3,12(a5) + e66e: 47d4 lw a3,12(a5) + e670: 9abd andi a3,a3,-17 + e672: c7d4 sw a3,12(a5) + e674: 0001 nop + e676: 0001 nop + e678: 0001 nop + e67a: 0001 nop + e67c: 431c lw a5,0(a4) + e67e: 47d4 lw a3,12(a5) + e680: 0106e693 ori a3,a3,16 + e684: c7d4 sw a3,12(a5) + e686: 43d4 lw a3,4(a5) + e688: 28c69693 bseti a3,a3,0xc + e68c: c3d4 sw a3,4(a5) + e68e: 9f01a603 lw a2,-1552(gp) # 200013a8 + e692: 06400693 li a3,100 + e696: d274 sw a3,100(a2) + e698: 5274 lw a3,100(a2) + e69a: c691 beqz a3,e6a6 + e69c: 09c7a683 lw a3,156(a5) + e6a0: 4886d693 bexti a3,a3,0x8 + e6a4: daf5 beqz a3,e698 + e6a6: 0001 nop + e6a8: 0001 nop + e6aa: 0001 nop + e6ac: 0001 nop + e6ae: 4318 lw a4,0(a4) + e6b0: 08070793 addi a5,a4,128 # 200080 <_data_lma+0x1e4ac4> + e6b4: 4fdc lw a5,28(a5) + e6b6: 8bfd andi a5,a5,31 + e6b8: 9ef18aa3 sb a5,-1547(gp) # 200013ad + e6bc: 4b34 lw a3,80(a4) + e6be: 29069693 bseti a3,a3,0x10 + e6c2: cb34 sw a3,80(a4) + e6c4: 4b34 lw a3,80(a4) + e6c6: 9a81 andi a3,a3,-32 + e6c8: 8edd or a3,a3,a5 + e6ca: cb34 sw a3,80(a4) + e6cc: 4714 lw a3,8(a4) + e6ce: 17f5 addi a5,a5,-3 + e6d0: 49569693 bclri a3,a3,0x15 + e6d4: c714 sw a3,8(a4) + e6d6: 9ef18a23 sb a5,-1548(gp) # 200013ac + e6da: 8082 ret + +0000e6dc : +RFEND_RXAdc(): + e6dc: a001a783 lw a5,-1536(gp) # 200013b8 + e6e0: 4fb4 lw a3,88(a5) + e6e2: 7741 lui a4,0xffff0 + e6e4: 177d addi a4,a4,-1 # fffeffff <_eusrstack+0xdffecfff> + e6e6: 8ef9 and a3,a3,a4 + e6e8: cfb4 sw a3,88(a5) + e6ea: 4794 lw a3,8(a5) + e6ec: 29069693 bseti a3,a3,0x10 + e6f0: c794 sw a3,8(a5) + e6f2: 47d4 lw a3,12(a5) + e6f4: eff6f693 andi a3,a3,-257 + e6f8: c7d4 sw a3,12(a5) + e6fa: 43d4 lw a3,4(a5) + e6fc: 8f75 and a4,a4,a3 + e6fe: c3d8 sw a4,4(a5) + e700: 47d8 lw a4,12(a5) + e702: 10076713 ori a4,a4,256 + e706: c7d8 sw a4,12(a5) + e708: 43d8 lw a4,4(a5) + e70a: 29071713 bseti a4,a4,0x10 + e70e: c3d8 sw a4,4(a5) + e710: 8082 ret + +0000e712 : +RFEND_TXCtune(): + e712: 715d addi sp,sp,-80 + e714: c4a2 sw s0,72(sp) + e716: de4e sw s3,60(sp) + e718: dc52 sw s4,56(sp) + e71a: c686 sw ra,76(sp) + e71c: c2a6 sw s1,68(sp) + e71e: c0ca sw s2,64(sp) + e720: da56 sw s5,52(sp) + e722: d85a sw s6,48(sp) + e724: d65e sw s7,44(sp) + e726: d462 sw s8,40(sp) + e728: d266 sw s9,36(sp) + e72a: d06a sw s10,32(sp) + e72c: ce6e sw s11,28(sp) + e72e: a001a403 lw s0,-1536(gp) # 200013b8 + e732: 405c lw a5,4(s0) + e734: 9fd18993 addi s3,gp,-1539 # 200013b5 + e738: 9fb18a13 addi s4,gp,-1541 # 200013b3 + e73c: eff7f793 andi a5,a5,-257 + e740: c05c sw a5,4(s0) + e742: 541c lw a5,40(s0) + e744: 48c79793 bclri a5,a5,0xc + e748: d41c sw a5,40(s0) + e74a: 545c lw a5,44(s0) + e74c: 9bbd andi a5,a5,-17 + e74e: d45c sw a5,44(s0) + e750: 441c lw a5,8(s0) + e752: 29179793 bseti a5,a5,0x11 + e756: c41c sw a5,8(s0) + e758: 405c lw a5,4(s0) + e75a: 0107e793 ori a5,a5,16 + e75e: c05c sw a5,4(s0) + e760: 6785 lui a5,0x1 + e762: 9f61d703 lhu a4,-1546(gp) # 200013ae + e766: 23478793 addi a5,a5,564 # 1234 <_einit+0x230> + e76a: 3ef708e3 beq a4,a5,f35a + e76e: 405c lw a5,4(s0) + e770: 7901 lui s2,0xfffe0 + e772: 0ff90913 addi s2,s2,255 # fffe00ff <_eusrstack+0xdffdd0ff> + e776: 9bf9 andi a5,a5,-2 + e778: c05c sw a5,4(s0) + e77a: 5c1c lw a5,56(s0) + e77c: 6731 lui a4,0xc + e77e: f0070713 addi a4,a4,-256 # bf00 + e782: 0127f7b3 and a5,a5,s2 + e786: 8fd9 or a5,a5,a4 + e788: dc1c sw a5,56(s0) + e78a: 405c lw a5,4(s0) + e78c: 08040493 addi s1,s0,128 + e790: 0017e793 ori a5,a5,1 + e794: c05c sw a5,4(s0) + e796: 1a30c0ef jal ra,1b138 + e79a: 489c lw a5,16(s1) + e79c: 03f7f793 andi a5,a5,63 + e7a0: 00f98023 sb a5,0(s3) + e7a4: 48dc lw a5,20(s1) + e7a6: 83a9 srli a5,a5,0xa + e7a8: 07f7f793 andi a5,a5,127 + e7ac: 9ef18e23 sb a5,-1540(gp) # 200013b4 + e7b0: 405c lw a5,4(s0) + e7b2: 6739 lui a4,0xe + e7b4: 70070713 addi a4,a4,1792 # e700 + e7b8: 9bf9 andi a5,a5,-2 + e7ba: c05c sw a5,4(s0) + e7bc: 5c1c lw a5,56(s0) + e7be: 0127f7b3 and a5,a5,s2 + e7c2: 8fd9 or a5,a5,a4 + e7c4: dc1c sw a5,56(s0) + e7c6: 405c lw a5,4(s0) + e7c8: 0017e793 ori a5,a5,1 + e7cc: c05c sw a5,4(s0) + e7ce: 16b0c0ef jal ra,1b138 + e7d2: 489c lw a5,16(s1) + e7d4: 03f7f793 andi a5,a5,63 + e7d8: 9ef18ca3 sb a5,-1543(gp) # 200013b1 + e7dc: 48dc lw a5,20(s1) + e7de: 83a9 srli a5,a5,0xa + e7e0: 07f7f793 andi a5,a5,127 + e7e4: 9ef18c23 sb a5,-1544(gp) # 200013b0 + e7e8: 405c lw a5,4(s0) + e7ea: 6735 lui a4,0xd + e7ec: 30070713 addi a4,a4,768 # d300 + e7f0: 9bf9 andi a5,a5,-2 + e7f2: c05c sw a5,4(s0) + e7f4: 5c1c lw a5,56(s0) + e7f6: 0127f7b3 and a5,a5,s2 + e7fa: 8fd9 or a5,a5,a4 + e7fc: dc1c sw a5,56(s0) + e7fe: 405c lw a5,4(s0) + e800: 0017e793 ori a5,a5,1 + e804: c05c sw a5,4(s0) + e806: 1330c0ef jal ra,1b138 + e80a: 489c lw a5,16(s1) + e80c: 03f7f793 andi a5,a5,63 + e810: 00fa0023 sb a5,0(s4) + e814: 48dc lw a5,20(s1) + e816: 83a9 srli a5,a5,0xa + e818: 07f7f793 andi a5,a5,127 + e81c: 9ef18d23 sb a5,-1542(gp) # 200013b2 + e820: 000a4783 lbu a5,0(s4) + e824: 0009c683 lbu a3,0(s3) + e828: 7e7d lui t3,0xfffff + e82a: c63e sw a5,12(sp) + e82c: 8e9d sub a3,a3,a5 + e82e: 08040793 addi a5,s0,128 + e832: 5398 lw a4,32(a5) + e834: 00f6f613 andi a2,a3,15 + e838: 0ffe0e13 addi t3,t3,255 # fffff0ff <_eusrstack+0xdfffc0ff> + e83c: 9b41 andi a4,a4,-16 + e83e: 8f51 or a4,a4,a2 + e840: d398 sw a4,32(a5) + e842: 02600713 li a4,38 + e846: 02e68733 mul a4,a3,a4 + e84a: 02700613 li a2,39 + e84e: 538c lw a1,32(a5) + e850: 02400513 li a0,36 + e854: 7345 lui t1,0xffff1 + e856: f0f5f593 andi a1,a1,-241 + e85a: 137d addi t1,t1,-1 # ffff0fff <_eusrstack+0xdffedfff> + e85c: 02300493 li s1,35 + e860: fff108b7 lui a7,0xfff10 + e864: 18fd addi a7,a7,-1 # fff0ffff <_eusrstack+0xdff0cfff> + e866: 02c74733 div a4,a4,a2 + e86a: 02200813 li a6,34 + e86e: 02100e93 li t4,33 + e872: 4f7d li t5,31 + e874: 4ff9 li t6,30 + e876: 42f5 li t0,29 + e878: 43f1 li t2,28 + e87a: 4d6d li s10,27 + e87c: 4c51 li s8,20 + e87e: 4bc5 li s7,17 + e880: 493d li s2,15 + e882: 49b9 li s3,14 + e884: 4ab1 li s5,12 + e886: 4b2d li s6,11 + e888: 4a35 li s4,13 + e88a: 8b3d andi a4,a4,15 + e88c: 0712 slli a4,a4,0x4 + e88e: 8f4d or a4,a4,a1 + e890: 02500593 li a1,37 + e894: d398 sw a4,32(a5) + e896: 02b68733 mul a4,a3,a1 + e89a: 538c lw a1,32(a5) + e89c: 01c5f5b3 and a1,a1,t3 + e8a0: 02c74733 div a4,a4,a2 + e8a4: 8b3d andi a4,a4,15 + e8a6: 0722 slli a4,a4,0x8 + e8a8: 8f4d or a4,a4,a1 + e8aa: d398 sw a4,32(a5) + e8ac: 02a68733 mul a4,a3,a0 + e8b0: 538c lw a1,32(a5) + e8b2: f1000537 lui a0,0xf1000 + e8b6: 157d addi a0,a0,-1 # f0ffffff <_eusrstack+0xd0ffcfff> + e8b8: 0065f5b3 and a1,a1,t1 + e8bc: 02c74733 div a4,a4,a2 + e8c0: 8b3d andi a4,a4,15 + e8c2: 0732 slli a4,a4,0xc + e8c4: 8f4d or a4,a4,a1 + e8c6: d398 sw a4,32(a5) + e8c8: 02968733 mul a4,a3,s1 + e8cc: 538c lw a1,32(a5) + e8ce: 44e1 li s1,24 + e8d0: 0115f5b3 and a1,a1,a7 + e8d4: 02c74733 div a4,a4,a2 + e8d8: 8b3d andi a4,a4,15 + e8da: 0742 slli a4,a4,0x10 + e8dc: 8f4d or a4,a4,a1 + e8de: d398 sw a4,32(a5) + e8e0: 03068733 mul a4,a3,a6 + e8e4: 538c lw a1,32(a5) + e8e6: ff100837 lui a6,0xff100 + e8ea: 187d addi a6,a6,-1 # ff0fffff <_eusrstack+0xdf0fcfff> + e8ec: 0105f5b3 and a1,a1,a6 + e8f0: 02c74733 div a4,a4,a2 + e8f4: 8b3d andi a4,a4,15 + e8f6: 0752 slli a4,a4,0x14 + e8f8: 8f4d or a4,a4,a1 + e8fa: d398 sw a4,32(a5) + e8fc: 03d68733 mul a4,a3,t4 + e900: 538c lw a1,32(a5) + e902: 10000eb7 lui t4,0x10000 + e906: 1efd addi t4,t4,-1 # fffffff <_data_lma+0xffe4a43> + e908: 8de9 and a1,a1,a0 + e90a: 02c74733 div a4,a4,a2 + e90e: 8b3d andi a4,a4,15 + e910: 0762 slli a4,a4,0x18 + e912: 8f4d or a4,a4,a1 + e914: 00569593 slli a1,a3,0x5 + e918: 02c5c5b3 div a1,a1,a2 + e91c: d398 sw a4,32(a5) + e91e: 5398 lw a4,32(a5) + e920: 01d77733 and a4,a4,t4 + e924: 05f2 slli a1,a1,0x1c + e926: 8f4d or a4,a4,a1 + e928: 03e685b3 mul a1,a3,t5 + e92c: d398 sw a4,32(a5) + e92e: 53d8 lw a4,36(a5) + e930: 4f5d li t5,23 + e932: 9b41 andi a4,a4,-16 + e934: 02c5c5b3 div a1,a1,a2 + e938: 89bd andi a1,a1,15 + e93a: 8f4d or a4,a4,a1 + e93c: d3d8 sw a4,36(a5) + e93e: 03f68733 mul a4,a3,t6 + e942: 53cc lw a1,36(a5) + e944: 4fd9 li t6,22 + e946: f0f5f593 andi a1,a1,-241 + e94a: 02c74733 div a4,a4,a2 + e94e: 8b3d andi a4,a4,15 + e950: 0712 slli a4,a4,0x4 + e952: 8f4d or a4,a4,a1 + e954: d3d8 sw a4,36(a5) + e956: 02568733 mul a4,a3,t0 + e95a: 53cc lw a1,36(a5) + e95c: 42d5 li t0,21 + e95e: 01c5f5b3 and a1,a1,t3 + e962: 02c74733 div a4,a4,a2 + e966: 8b3d andi a4,a4,15 + e968: 0722 slli a4,a4,0x8 + e96a: 8f4d or a4,a4,a1 + e96c: d3d8 sw a4,36(a5) + e96e: 02768733 mul a4,a3,t2 + e972: 53cc lw a1,36(a5) + e974: 43cd li t2,19 + e976: 0065f5b3 and a1,a1,t1 + e97a: 02c74733 div a4,a4,a2 + e97e: 8b3d andi a4,a4,15 + e980: 0732 slli a4,a4,0xc + e982: 8f4d or a4,a4,a1 + e984: d3d8 sw a4,36(a5) + e986: 03a68733 mul a4,a3,s10 + e98a: 53cc lw a1,36(a5) + e98c: 4d49 li s10,18 + e98e: 0115f5b3 and a1,a1,a7 + e992: 02c74733 div a4,a4,a2 + e996: 8b3d andi a4,a4,15 + e998: 0742 slli a4,a4,0x10 + e99a: 8f4d or a4,a4,a1 + e99c: d3d8 sw a4,36(a5) + e99e: 4769 li a4,26 + e9a0: 02e68733 mul a4,a3,a4 + e9a4: 53cc lw a1,36(a5) + e9a6: 0105f5b3 and a1,a1,a6 + e9aa: 02c74733 div a4,a4,a2 + e9ae: 8b3d andi a4,a4,15 + e9b0: 0752 slli a4,a4,0x14 + e9b2: 8f4d or a4,a4,a1 + e9b4: 45e5 li a1,25 + e9b6: d3d8 sw a4,36(a5) + e9b8: 02b68733 mul a4,a3,a1 + e9bc: 53cc lw a1,36(a5) + e9be: 8de9 and a1,a1,a0 + e9c0: 02c74733 div a4,a4,a2 + e9c4: 8b3d andi a4,a4,15 + e9c6: 0762 slli a4,a4,0x18 + e9c8: 8f4d or a4,a4,a1 + e9ca: 029685b3 mul a1,a3,s1 + e9ce: d3d8 sw a4,36(a5) + e9d0: 53d8 lw a4,36(a5) + e9d2: 448d li s1,3 + e9d4: 01d77733 and a4,a4,t4 + e9d8: 02c5c5b3 div a1,a1,a2 + e9dc: 05f2 slli a1,a1,0x1c + e9de: 8f4d or a4,a4,a1 + e9e0: 03e685b3 mul a1,a3,t5 + e9e4: d3d8 sw a4,36(a5) + e9e6: 5798 lw a4,40(a5) + e9e8: 4f25 li t5,9 + e9ea: 9b41 andi a4,a4,-16 + e9ec: 02c5c5b3 div a1,a1,a2 + e9f0: 89bd andi a1,a1,15 + e9f2: 8f4d or a4,a4,a1 + e9f4: d798 sw a4,40(a5) + e9f6: 03f68733 mul a4,a3,t6 + e9fa: 578c lw a1,40(a5) + e9fc: 4f9d li t6,7 + e9fe: f0f5f593 andi a1,a1,-241 + ea02: 02c74733 div a4,a4,a2 + ea06: 8b3d andi a4,a4,15 + ea08: 0712 slli a4,a4,0x4 + ea0a: 8dd9 or a1,a1,a4 + ea0c: 02568733 mul a4,a3,t0 + ea10: d78c sw a1,40(a5) + ea12: 578c lw a1,40(a5) + ea14: 4299 li t0,6 + ea16: 01c5f5b3 and a1,a1,t3 + ea1a: 02c74733 div a4,a4,a2 + ea1e: 8b3d andi a4,a4,15 + ea20: 0722 slli a4,a4,0x8 + ea22: 8dd9 or a1,a1,a4 + ea24: 03868733 mul a4,a3,s8 + ea28: d78c sw a1,40(a5) + ea2a: 578c lw a1,40(a5) + ea2c: 0065f5b3 and a1,a1,t1 + ea30: 02c74733 div a4,a4,a2 + ea34: 8b3d andi a4,a4,15 + ea36: 0732 slli a4,a4,0xc + ea38: 8dd9 or a1,a1,a4 + ea3a: 02768733 mul a4,a3,t2 + ea3e: d78c sw a1,40(a5) + ea40: 578c lw a1,40(a5) + ea42: 4395 li t2,5 + ea44: 0115f5b3 and a1,a1,a7 + ea48: 02c74733 div a4,a4,a2 + ea4c: 8b3d andi a4,a4,15 + ea4e: 0742 slli a4,a4,0x10 + ea50: 8dd9 or a1,a1,a4 + ea52: 03a68733 mul a4,a3,s10 + ea56: d78c sw a1,40(a5) + ea58: 578c lw a1,40(a5) + ea5a: 4d29 li s10,10 + ea5c: 0105f5b3 and a1,a1,a6 + ea60: 02c74733 div a4,a4,a2 + ea64: 8b3d andi a4,a4,15 + ea66: 0752 slli a4,a4,0x14 + ea68: 8dd9 or a1,a1,a4 + ea6a: 03768733 mul a4,a3,s7 + ea6e: d78c sw a1,40(a5) + ea70: 578c lw a1,40(a5) + ea72: 8de9 and a1,a1,a0 + ea74: 02c74733 div a4,a4,a2 + ea78: 8b3d andi a4,a4,15 + ea7a: 0762 slli a4,a4,0x18 + ea7c: 8dd9 or a1,a1,a4 + ea7e: d78c sw a1,40(a5) + ea80: 00469593 slli a1,a3,0x4 + ea84: 02c5c5b3 div a1,a1,a2 + ea88: 5798 lw a4,40(a5) + ea8a: 01d77733 and a4,a4,t4 + ea8e: 05f2 slli a1,a1,0x1c + ea90: 8f4d or a4,a4,a1 + ea92: 032685b3 mul a1,a3,s2 + ea96: d798 sw a4,40(a5) + ea98: 57d8 lw a4,44(a5) + ea9a: 9b41 andi a4,a4,-16 + ea9c: 02c5c5b3 div a1,a1,a2 + eaa0: 89bd andi a1,a1,15 + eaa2: 8f4d or a4,a4,a1 + eaa4: d7d8 sw a4,44(a5) + eaa6: 03368733 mul a4,a3,s3 + eaaa: 57cc lw a1,44(a5) + eaac: f0f5f593 andi a1,a1,-241 + eab0: 02c74733 div a4,a4,a2 + eab4: 8b3d andi a4,a4,15 + eab6: 0712 slli a4,a4,0x4 + eab8: 8dd9 or a1,a1,a4 + eaba: d7cc sw a1,44(a5) + eabc: 0296c5b3 div a1,a3,s1 + eac0: 57d8 lw a4,44(a5) + eac2: 01c77733 and a4,a4,t3 + eac6: 89bd andi a1,a1,15 + eac8: 05a2 slli a1,a1,0x8 + eaca: 8f4d or a4,a4,a1 + eacc: d7d8 sw a4,44(a5) + eace: 03568733 mul a4,a3,s5 + ead2: 57cc lw a1,44(a5) + ead4: 0065f5b3 and a1,a1,t1 + ead8: 02c74733 div a4,a4,a2 + eadc: 8b3d andi a4,a4,15 + eade: 0732 slli a4,a4,0xc + eae0: 8dd9 or a1,a1,a4 + eae2: 03668733 mul a4,a3,s6 + eae6: d7cc sw a1,44(a5) + eae8: 57cc lw a1,44(a5) + eaea: 0115f5b3 and a1,a1,a7 + eaee: 02c74733 div a4,a4,a2 + eaf2: 8b3d andi a4,a4,15 + eaf4: 0742 slli a4,a4,0x10 + eaf6: 8dd9 or a1,a1,a4 + eaf8: 03a68733 mul a4,a3,s10 + eafc: d7cc sw a1,44(a5) + eafe: 57cc lw a1,44(a5) + eb00: 0105f5b3 and a1,a1,a6 + eb04: 02c74733 div a4,a4,a2 + eb08: 8b3d andi a4,a4,15 + eb0a: 0752 slli a4,a4,0x14 + eb0c: 8dd9 or a1,a1,a4 + eb0e: 03e68733 mul a4,a3,t5 + eb12: d7cc sw a1,44(a5) + eb14: 57cc lw a1,44(a5) + eb16: 8de9 and a1,a1,a0 + eb18: 02c74733 div a4,a4,a2 + eb1c: 8b3d andi a4,a4,15 + eb1e: 0762 slli a4,a4,0x18 + eb20: 8dd9 or a1,a1,a4 + eb22: d7cc sw a1,44(a5) + eb24: 00369593 slli a1,a3,0x3 + eb28: 02c5c5b3 div a1,a1,a2 + eb2c: 57d8 lw a4,44(a5) + eb2e: 01d77733 and a4,a4,t4 + eb32: 05f2 slli a1,a1,0x1c + eb34: 8f4d or a4,a4,a1 + eb36: 03f685b3 mul a1,a3,t6 + eb3a: d7d8 sw a4,44(a5) + eb3c: 5b98 lw a4,48(a5) + eb3e: 9b41 andi a4,a4,-16 + eb40: 02c5c5b3 div a1,a1,a2 + eb44: 89bd andi a1,a1,15 + eb46: 8f4d or a4,a4,a1 + eb48: db98 sw a4,48(a5) + eb4a: 02568733 mul a4,a3,t0 + eb4e: 5b8c lw a1,48(a5) + eb50: f0f5f593 andi a1,a1,-241 + eb54: 02c74733 div a4,a4,a2 + eb58: 8b3d andi a4,a4,15 + eb5a: 0712 slli a4,a4,0x4 + eb5c: 8dd9 or a1,a1,a4 + eb5e: 02768733 mul a4,a3,t2 + eb62: db8c sw a1,48(a5) + eb64: 5b8c lw a1,48(a5) + eb66: 01c5f5b3 and a1,a1,t3 + eb6a: 02c74733 div a4,a4,a2 + eb6e: 8b3d andi a4,a4,15 + eb70: 0722 slli a4,a4,0x8 + eb72: 8dd9 or a1,a1,a4 + eb74: 00269713 slli a4,a3,0x2 + eb78: 02c74733 div a4,a4,a2 + eb7c: db8c sw a1,48(a5) + eb7e: 5b8c lw a1,48(a5) + eb80: 0065f5b3 and a1,a1,t1 + eb84: 8b3d andi a4,a4,15 + eb86: 0732 slli a4,a4,0xc + eb88: 8dd9 or a1,a1,a4 + eb8a: db8c sw a1,48(a5) + eb8c: 0346c5b3 div a1,a3,s4 + eb90: 5b98 lw a4,48(a5) + eb92: 01177733 and a4,a4,a7 + eb96: 89bd andi a1,a1,15 + eb98: 05c2 slli a1,a1,0x10 + eb9a: 8f4d or a4,a4,a1 + eb9c: db98 sw a4,48(a5) + eb9e: 00169713 slli a4,a3,0x1 + eba2: 02c74733 div a4,a4,a2 + eba6: 5b8c lw a1,48(a5) + eba8: 0105f5b3 and a1,a1,a6 + ebac: 8b3d andi a4,a4,15 + ebae: 0752 slli a4,a4,0x14 + ebb0: 8dd9 or a1,a1,a4 + ebb2: db8c sw a1,48(a5) + ebb4: 02c6c5b3 div a1,a3,a2 + ebb8: 5b98 lw a4,48(a5) + ebba: 8f69 and a4,a4,a0 + ebbc: 89bd andi a1,a1,15 + ebbe: 05e2 slli a1,a1,0x18 + ebc0: 8f4d or a4,a4,a1 + ebc2: db98 sw a4,48(a5) + ebc4: 5b98 lw a4,48(a5) + ebc6: 01d77733 and a4,a4,t4 + ebca: db98 sw a4,48(a5) + ebcc: 45b2 lw a1,12(sp) + ebce: 9f91c703 lbu a4,-1543(gp) # 200013b1 + ebd2: 0347ac83 lw s9,52(a5) + ebd6: 40e58733 sub a4,a1,a4 + ebda: 02800593 li a1,40 + ebde: 02b74db3 div s11,a4,a1 + ebe2: ff0cfc93 andi s9,s9,-16 + ebe6: 03874c33 div s8,a4,s8 + ebea: 00fdfd93 andi s11,s11,15 + ebee: 01bcecb3 or s9,s9,s11 + ebf2: 0397aa23 sw s9,52(a5) + ebf6: 0347ac83 lw s9,52(a5) + ebfa: 4dcd li s11,19 + ebfc: f0fcfc93 andi s9,s9,-241 + ec00: 00fc7c13 andi s8,s8,15 + ec04: 0c12 slli s8,s8,0x4 + ec06: 018cecb3 or s9,s9,s8 + ec0a: 02970c33 mul s8,a4,s1 + ec0e: 0397aa23 sw s9,52(a5) + ec12: 0347ac83 lw s9,52(a5) + ec16: 01ccfcb3 and s9,s9,t3 + ec1a: 02bc4c33 div s8,s8,a1 + ec1e: 00fc7c13 andi s8,s8,15 + ec22: 0c22 slli s8,s8,0x8 + ec24: 018cecb3 or s9,s9,s8 + ec28: 0397aa23 sw s9,52(a5) + ec2c: 03a74cb3 div s9,a4,s10 + ec30: 0347ac03 lw s8,52(a5) + ec34: 006c7c33 and s8,s8,t1 + ec38: 00fcfc93 andi s9,s9,15 + ec3c: 0cb2 slli s9,s9,0xc + ec3e: 019c6c33 or s8,s8,s9 + ec42: 0387aa23 sw s8,52(a5) + ec46: 4c21 li s8,8 + ec48: 03874c33 div s8,a4,s8 + ec4c: 0347ac83 lw s9,52(a5) + ec50: 011cfcb3 and s9,s9,a7 + ec54: 00fc7c13 andi s8,s8,15 + ec58: 0c42 slli s8,s8,0x10 + ec5a: 018cecb3 or s9,s9,s8 + ec5e: 02570c33 mul s8,a4,t0 + ec62: 0397aa23 sw s9,52(a5) + ec66: 0347ac83 lw s9,52(a5) + ec6a: 010cfcb3 and s9,s9,a6 + ec6e: 02bc4c33 div s8,s8,a1 + ec72: 00fc7c13 andi s8,s8,15 + ec76: 0c52 slli s8,s8,0x14 + ec78: 018cecb3 or s9,s9,s8 + ec7c: 03f70c33 mul s8,a4,t6 + ec80: 0397aa23 sw s9,52(a5) + ec84: 0347ac83 lw s9,52(a5) + ec88: 00acfcb3 and s9,s9,a0 + ec8c: 02bc4c33 div s8,s8,a1 + ec90: 00fc7c13 andi s8,s8,15 + ec94: 0c62 slli s8,s8,0x18 + ec96: 018cecb3 or s9,s9,s8 + ec9a: 0397aa23 sw s9,52(a5) + ec9e: 02774cb3 div s9,a4,t2 + eca2: 0347ac03 lw s8,52(a5) + eca6: 01dc7c33 and s8,s8,t4 + ecaa: 0cf2 slli s9,s9,0x1c + ecac: 019c6c33 or s8,s8,s9 + ecb0: 03e70cb3 mul s9,a4,t5 + ecb4: 0387aa23 sw s8,52(a5) + ecb8: 0387ac03 lw s8,56(a5) + ecbc: ff0c7c13 andi s8,s8,-16 + ecc0: 02bcccb3 div s9,s9,a1 + ecc4: 03670b33 mul s6,a4,s6 + ecc8: 00fcfc93 andi s9,s9,15 + eccc: 019c6c33 or s8,s8,s9 + ecd0: 0387ac23 sw s8,56(a5) + ecd4: 4c11 li s8,4 + ecd6: 0387ac83 lw s9,56(a5) + ecda: f0fcfc93 andi s9,s9,-241 + ecde: 03874c33 div s8,a4,s8 + ece2: 03570ab3 mul s5,a4,s5 + ece6: 00fc7c13 andi s8,s8,15 + ecea: 0c12 slli s8,s8,0x4 + ecec: 018cecb3 or s9,s9,s8 + ecf0: 0397ac23 sw s9,56(a5) + ecf4: 0387ac03 lw s8,56(a5) + ecf8: 4cd5 li s9,21 + ecfa: 01cc7c33 and s8,s8,t3 + ecfe: 02bb4b33 div s6,s6,a1 + ed02: 03470a33 mul s4,a4,s4 + ed06: 00fb7b13 andi s6,s6,15 + ed0a: 0b22 slli s6,s6,0x8 + ed0c: 016c6c33 or s8,s8,s6 + ed10: 0387ac23 sw s8,56(a5) + ed14: 0387ab03 lw s6,56(a5) + ed18: 4c59 li s8,22 + ed1a: 006b7b33 and s6,s6,t1 + ed1e: 02bacab3 div s5,s5,a1 + ed22: 033709b3 mul s3,a4,s3 + ed26: 00fafa93 andi s5,s5,15 + ed2a: 0ab2 slli s5,s5,0xc + ed2c: 015b6b33 or s6,s6,s5 + ed30: 0367ac23 sw s6,56(a5) + ed34: 0387aa83 lw s5,56(a5) + ed38: 4b61 li s6,24 + ed3a: 011afab3 and s5,s5,a7 + ed3e: 02ba4a33 div s4,s4,a1 + ed42: 03270933 mul s2,a4,s2 + ed46: 00fa7a13 andi s4,s4,15 + ed4a: 0a42 slli s4,s4,0x10 + ed4c: 014aeab3 or s5,s5,s4 + ed50: 0357ac23 sw s5,56(a5) + ed54: 0387aa03 lw s4,56(a5) + ed58: 4ae5 li s5,25 + ed5a: 010a7a33 and s4,s4,a6 + ed5e: 02b9c9b3 div s3,s3,a1 + ed62: 02b94933 div s2,s2,a1 + ed66: 00f9f993 andi s3,s3,15 + ed6a: 09d2 slli s3,s3,0x14 + ed6c: 013a6a33 or s4,s4,s3 + ed70: 0347ac23 sw s4,56(a5) + ed74: 0387a983 lw s3,56(a5) + ed78: 4a69 li s4,26 + ed7a: 00a9f9b3 and s3,s3,a0 + ed7e: 03770bb3 mul s7,a4,s7 + ed82: 00f97913 andi s2,s2,15 + ed86: 0962 slli s2,s2,0x18 + ed88: 0129e9b3 or s3,s3,s2 + ed8c: 0337ac23 sw s3,56(a5) + ed90: 00471993 slli s3,a4,0x4 + ed94: 0387a903 lw s2,56(a5) + ed98: 01d97933 and s2,s2,t4 + ed9c: 02b9c9b3 div s3,s3,a1 + eda0: 02bbcbb3 div s7,s7,a1 + eda4: 09f2 slli s3,s3,0x1c + eda6: 01396933 or s2,s2,s3 + edaa: 0327ac23 sw s2,56(a5) + edae: 03c7a903 lw s2,60(a5) + edb2: ff097913 andi s2,s2,-16 + edb6: 00fbfb93 andi s7,s7,15 + edba: 01796933 or s2,s2,s7 + edbe: 0327ae23 sw s2,60(a5) + edc2: 4949 li s2,18 + edc4: 03270933 mul s2,a4,s2 + edc8: 03c7a983 lw s3,60(a5) + edcc: 4bdd li s7,23 + edce: f0f9f993 andi s3,s3,-241 + edd2: 02b94933 div s2,s2,a1 + edd6: 00f97913 andi s2,s2,15 + edda: 0912 slli s2,s2,0x4 + eddc: 0129e9b3 or s3,s3,s2 + ede0: 03b70933 mul s2,a4,s11 + ede4: 0337ae23 sw s3,60(a5) + ede8: 03c7a983 lw s3,60(a5) + edec: 4df5 li s11,29 + edee: 01c9f9b3 and s3,s3,t3 + edf2: 02b94933 div s2,s2,a1 + edf6: 00f97913 andi s2,s2,15 + edfa: 0922 slli s2,s2,0x8 + edfc: 0129e9b3 or s3,s3,s2 + ee00: 4909 li s2,2 + ee02: 03274933 div s2,a4,s2 + ee06: 0337ae23 sw s3,60(a5) + ee0a: 03c7a983 lw s3,60(a5) + ee0e: 0069f9b3 and s3,s3,t1 + ee12: 00f97913 andi s2,s2,15 + ee16: 0932 slli s2,s2,0xc + ee18: 0129e9b3 or s3,s3,s2 + ee1c: 03970933 mul s2,a4,s9 + ee20: 0337ae23 sw s3,60(a5) + ee24: 03c7a983 lw s3,60(a5) + ee28: 4cf9 li s9,30 + ee2a: 0119f9b3 and s3,s3,a7 + ee2e: 02b94933 div s2,s2,a1 + ee32: 00f97913 andi s2,s2,15 + ee36: 0942 slli s2,s2,0x10 + ee38: 0129e9b3 or s3,s3,s2 + ee3c: 03870933 mul s2,a4,s8 + ee40: 0337ae23 sw s3,60(a5) + ee44: 03c7a983 lw s3,60(a5) + ee48: 4c7d li s8,31 + ee4a: 0109f9b3 and s3,s3,a6 + ee4e: 02b94933 div s2,s2,a1 + ee52: 00f97913 andi s2,s2,15 + ee56: 0952 slli s2,s2,0x14 + ee58: 0129e9b3 or s3,s3,s2 + ee5c: 03770933 mul s2,a4,s7 + ee60: 0337ae23 sw s3,60(a5) + ee64: 03c7a983 lw s3,60(a5) + ee68: 02100b93 li s7,33 + ee6c: 00a9f9b3 and s3,s3,a0 + ee70: 02b94933 div s2,s2,a1 + ee74: 00f97913 andi s2,s2,15 + ee78: 0962 slli s2,s2,0x18 + ee7a: 0129e9b3 or s3,s3,s2 + ee7e: 03670933 mul s2,a4,s6 + ee82: 0337ae23 sw s3,60(a5) + ee86: 03c7a983 lw s3,60(a5) + ee8a: 02200b13 li s6,34 + ee8e: 01d9f9b3 and s3,s3,t4 + ee92: 02b94933 div s2,s2,a1 + ee96: 0972 slli s2,s2,0x1c + ee98: 0129e9b3 or s3,s3,s2 + ee9c: 03570933 mul s2,a4,s5 + eea0: 0337ae23 sw s3,60(a5) + eea4: 0407a983 lw s3,64(a5) + eea8: 02300a93 li s5,35 + eeac: ff09f993 andi s3,s3,-16 + eeb0: 02b94933 div s2,s2,a1 + eeb4: 00f97913 andi s2,s2,15 + eeb8: 0129e9b3 or s3,s3,s2 + eebc: 03470933 mul s2,a4,s4 + eec0: 0537a023 sw s3,64(a5) + eec4: 0407a983 lw s3,64(a5) + eec8: 02400a13 li s4,36 + eecc: f0f9f993 andi s3,s3,-241 + eed0: 02b94933 div s2,s2,a1 + eed4: 00f97913 andi s2,s2,15 + eed8: 0912 slli s2,s2,0x4 + eeda: 0129e9b3 or s3,s3,s2 + eede: 0537a023 sw s3,64(a5) + eee2: 49ed li s3,27 + eee4: 03370933 mul s2,a4,s3 + eee8: 0407a983 lw s3,64(a5) + eeec: 01c9f9b3 and s3,s3,t3 + eef0: 02b94933 div s2,s2,a1 + eef4: 00f97913 andi s2,s2,15 + eef8: 0922 slli s2,s2,0x8 + eefa: 0129e9b3 or s3,s3,s2 + eefe: 4971 li s2,28 + ef00: 03270933 mul s2,a4,s2 + ef04: 0537a023 sw s3,64(a5) + ef08: 0407a983 lw s3,64(a5) + ef0c: 0069f9b3 and s3,s3,t1 + ef10: 02b94933 div s2,s2,a1 + ef14: 00f97913 andi s2,s2,15 + ef18: 0932 slli s2,s2,0xc + ef1a: 0129e9b3 or s3,s3,s2 + ef1e: 03b70933 mul s2,a4,s11 + ef22: 0537a023 sw s3,64(a5) + ef26: 0407a983 lw s3,64(a5) + ef2a: 0119f9b3 and s3,s3,a7 + ef2e: 02b94933 div s2,s2,a1 + ef32: 00f97913 andi s2,s2,15 + ef36: 0942 slli s2,s2,0x10 + ef38: 0129e9b3 or s3,s3,s2 + ef3c: 03970933 mul s2,a4,s9 + ef40: 0537a023 sw s3,64(a5) + ef44: 0407a983 lw s3,64(a5) + ef48: 0109f9b3 and s3,s3,a6 + ef4c: 02b94933 div s2,s2,a1 + ef50: 00f97913 andi s2,s2,15 + ef54: 0952 slli s2,s2,0x14 + ef56: 0129e9b3 or s3,s3,s2 + ef5a: 03870933 mul s2,a4,s8 + ef5e: 0537a023 sw s3,64(a5) + ef62: 0407a983 lw s3,64(a5) + ef66: 00a9f9b3 and s3,s3,a0 + ef6a: 02b94933 div s2,s2,a1 + ef6e: 00f97913 andi s2,s2,15 + ef72: 0962 slli s2,s2,0x18 + ef74: 0129e933 or s2,s3,s2 + ef78: 00571993 slli s3,a4,0x5 + ef7c: 02b9c9b3 div s3,s3,a1 + ef80: 0527a023 sw s2,64(a5) + ef84: 0407a903 lw s2,64(a5) + ef88: 01d97933 and s2,s2,t4 + ef8c: 09f2 slli s3,s3,0x1c + ef8e: 01396933 or s2,s2,s3 + ef92: 0527a023 sw s2,64(a5) + ef96: 03770933 mul s2,a4,s7 + ef9a: 0447a983 lw s3,68(a5) + ef9e: ff09f993 andi s3,s3,-16 + efa2: 02b94933 div s2,s2,a1 + efa6: 00f97913 andi s2,s2,15 + efaa: 0129e933 or s2,s3,s2 + efae: 0527a223 sw s2,68(a5) + efb2: 03670933 mul s2,a4,s6 + efb6: 0447a983 lw s3,68(a5) + efba: f0f9f993 andi s3,s3,-241 + efbe: 02b94933 div s2,s2,a1 + efc2: 00f97913 andi s2,s2,15 + efc6: 0912 slli s2,s2,0x4 + efc8: 0129e933 or s2,s3,s2 + efcc: 0527a223 sw s2,68(a5) + efd0: 03570933 mul s2,a4,s5 + efd4: 0447a983 lw s3,68(a5) + efd8: 01c9f9b3 and s3,s3,t3 + efdc: 02b94933 div s2,s2,a1 + efe0: 00f97913 andi s2,s2,15 + efe4: 0922 slli s2,s2,0x8 + efe6: 0129e933 or s2,s3,s2 + efea: 0527a223 sw s2,68(a5) + efee: 03470933 mul s2,a4,s4 + eff2: 0447a983 lw s3,68(a5) + eff6: 0069f9b3 and s3,s3,t1 + effa: 02b94933 div s2,s2,a1 + effe: 00f97913 andi s2,s2,15 + f002: 0932 slli s2,s2,0xc + f004: 0129e933 or s2,s3,s2 + f008: 02500993 li s3,37 + f00c: 0527a223 sw s2,68(a5) + f010: 03370933 mul s2,a4,s3 + f014: 0447a983 lw s3,68(a5) + f018: 0119f9b3 and s3,s3,a7 + f01c: 02b94933 div s2,s2,a1 + f020: 00f97913 andi s2,s2,15 + f024: 0942 slli s2,s2,0x10 + f026: 0129e933 or s2,s3,s2 + f02a: 0527a223 sw s2,68(a5) + f02e: 02600913 li s2,38 + f032: 03270933 mul s2,a4,s2 + f036: 0447a983 lw s3,68(a5) + f03a: 0109f9b3 and s3,s3,a6 + f03e: 02c70633 mul a2,a4,a2 + f042: 02b94933 div s2,s2,a1 + f046: 02b64633 div a2,a2,a1 + f04a: 00f97913 andi s2,s2,15 + f04e: 0952 slli s2,s2,0x14 + f050: 0129e933 or s2,s3,s2 + f054: 0527a223 sw s2,68(a5) + f058: 0447a903 lw s2,68(a5) + f05c: 00a97933 and s2,s2,a0 + f060: 8a3d andi a2,a2,15 + f062: 0662 slli a2,a2,0x18 + f064: 00c96633 or a2,s2,a2 + f068: c3f0 sw a2,68(a5) + f06a: 43f0 lw a2,68(a5) + f06c: 01c71913 slli s2,a4,0x1c + f070: 01d67633 and a2,a2,t4 + f074: 01266633 or a2,a2,s2 + f078: c3f0 sw a2,68(a5) + f07a: 02900613 li a2,41 + f07e: 02c70633 mul a2,a4,a2 + f082: 0487a903 lw s2,72(a5) + f086: ff097913 andi s2,s2,-16 + f08a: 02b64633 div a2,a2,a1 + f08e: 8a3d andi a2,a2,15 + f090: 00c96633 or a2,s2,a2 + f094: c7b0 sw a2,72(a5) + f096: 02a00613 li a2,42 + f09a: 02c70633 mul a2,a4,a2 + f09e: 02b64633 div a2,a2,a1 + f0a2: 47ac lw a1,72(a5) + f0a4: f0f5f593 andi a1,a1,-241 + f0a8: 8a3d andi a2,a2,15 + f0aa: 0612 slli a2,a2,0x4 + f0ac: 8e4d or a2,a2,a1 + f0ae: c7b0 sw a2,72(a5) + f0b0: 9fa1c583 lbu a1,-1542(gp) # 200013b2 + f0b4: 9f81c603 lbu a2,-1544(gp) # 200013b0 + f0b8: 40c58633 sub a2,a1,a2 + f0bc: 03a60933 mul s2,a2,s10 + f0c0: 0487a983 lw s3,72(a5) + f0c4: 01c9f9b3 and s3,s3,t3 + f0c8: 02e94933 div s2,s2,a4 + f0cc: 00896913 ori s2,s2,8 + f0d0: 00f97913 andi s2,s2,15 + f0d4: 0922 slli s2,s2,0x8 + f0d6: 0129e933 or s2,s3,s2 + f0da: 0527a423 sw s2,72(a5) + f0de: 03e60933 mul s2,a2,t5 + f0e2: 0487a983 lw s3,72(a5) + f0e6: 0069f9b3 and s3,s3,t1 + f0ea: 02e94933 div s2,s2,a4 + f0ee: 00896913 ori s2,s2,8 + f0f2: 00f97913 andi s2,s2,15 + f0f6: 0932 slli s2,s2,0xc + f0f8: 0129e933 or s2,s3,s2 + f0fc: 0527a423 sw s2,72(a5) + f100: 00361913 slli s2,a2,0x3 + f104: 02e94933 div s2,s2,a4 + f108: 0487a983 lw s3,72(a5) + f10c: 0119f9b3 and s3,s3,a7 + f110: 00896913 ori s2,s2,8 + f114: 00f97913 andi s2,s2,15 + f118: 0942 slli s2,s2,0x10 + f11a: 0129e933 or s2,s3,s2 + f11e: 0527a423 sw s2,72(a5) + f122: 03f60933 mul s2,a2,t6 + f126: 0487a983 lw s3,72(a5) + f12a: 0109f9b3 and s3,s3,a6 + f12e: 02e94933 div s2,s2,a4 + f132: 00896913 ori s2,s2,8 + f136: 00f97913 andi s2,s2,15 + f13a: 0952 slli s2,s2,0x14 + f13c: 0129e933 or s2,s3,s2 + f140: 0527a423 sw s2,72(a5) + f144: 02560933 mul s2,a2,t0 + f148: 0487a983 lw s3,72(a5) + f14c: 00a9f9b3 and s3,s3,a0 + f150: 02e94933 div s2,s2,a4 + f154: 00896913 ori s2,s2,8 + f158: 00f97913 andi s2,s2,15 + f15c: 0962 slli s2,s2,0x18 + f15e: 0129e933 or s2,s3,s2 + f162: 0527a423 sw s2,72(a5) + f166: 02760933 mul s2,a2,t2 + f16a: 0487a983 lw s3,72(a5) + f16e: 01d9f9b3 and s3,s3,t4 + f172: 02e94933 div s2,s2,a4 + f176: 00896913 ori s2,s2,8 + f17a: 0972 slli s2,s2,0x1c + f17c: 0129e933 or s2,s3,s2 + f180: 0527a423 sw s2,72(a5) + f184: 00261913 slli s2,a2,0x2 + f188: 02e94933 div s2,s2,a4 + f18c: 04c7a983 lw s3,76(a5) + f190: ff09f993 andi s3,s3,-16 + f194: 00896913 ori s2,s2,8 + f198: 00f97913 andi s2,s2,15 + f19c: 0129e933 or s2,s3,s2 + f1a0: 0527a623 sw s2,76(a5) + f1a4: 02960933 mul s2,a2,s1 + f1a8: 04c7a983 lw s3,76(a5) + f1ac: f0f9f993 andi s3,s3,-241 + f1b0: 02e94933 div s2,s2,a4 + f1b4: 00896913 ori s2,s2,8 + f1b8: 00f97913 andi s2,s2,15 + f1bc: 0912 slli s2,s2,0x4 + f1be: 0129e933 or s2,s3,s2 + f1c2: 0527a623 sw s2,76(a5) + f1c6: 00161913 slli s2,a2,0x1 + f1ca: 02e94933 div s2,s2,a4 + f1ce: 04c7a983 lw s3,76(a5) + f1d2: 01c9f9b3 and s3,s3,t3 + f1d6: 02e64633 div a2,a2,a4 + f1da: 00896913 ori s2,s2,8 + f1de: 00f97913 andi s2,s2,15 + f1e2: 0922 slli s2,s2,0x8 + f1e4: 0129e933 or s2,s3,s2 + f1e8: 0527a623 sw s2,76(a5) + f1ec: 47f8 lw a4,76(a5) + f1ee: 00677733 and a4,a4,t1 + f1f2: 00866613 ori a2,a2,8 + f1f6: 8a3d andi a2,a2,15 + f1f8: 0632 slli a2,a2,0xc + f1fa: 8f51 or a4,a4,a2 + f1fc: c7f8 sw a4,76(a5) + f1fe: 47f8 lw a4,76(a5) + f200: 01177733 and a4,a4,a7 + f204: c7f8 sw a4,76(a5) + f206: 9fc1c703 lbu a4,-1540(gp) # 200013b4 + f20a: 8f0d sub a4,a4,a1 + f20c: 02d74933 div s2,a4,a3 + f210: 47f0 lw a2,76(a5) + f212: 07f5f593 andi a1,a1,127 + f216: 05e2 slli a1,a1,0x18 + f218: 01067633 and a2,a2,a6 + f21c: 00f97913 andi s2,s2,15 + f220: 0952 slli s2,s2,0x14 + f222: 01266633 or a2,a2,s2 + f226: c7f0 sw a2,76(a5) + f228: 00171613 slli a2,a4,0x1 + f22c: 02d64633 div a2,a2,a3 + f230: 04c7a903 lw s2,76(a5) + f234: 00a97933 and s2,s2,a0 + f238: 029704b3 mul s1,a4,s1 + f23c: 8a3d andi a2,a2,15 + f23e: 0662 slli a2,a2,0x18 + f240: 00c96633 or a2,s2,a2 + f244: c7f0 sw a2,76(a5) + f246: 47f0 lw a2,76(a5) + f248: 01d67633 and a2,a2,t4 + f24c: 00271e93 slli t4,a4,0x2 + f250: 02d4c4b3 div s1,s1,a3 + f254: 027703b3 mul t2,a4,t2 + f258: 04f2 slli s1,s1,0x1c + f25a: 8e45 or a2,a2,s1 + f25c: c7f0 sw a2,76(a5) + f25e: 4bb0 lw a2,80(a5) + f260: 9a41 andi a2,a2,-16 + f262: 02deceb3 div t4,t4,a3 + f266: 025702b3 mul t0,a4,t0 + f26a: 00fefe93 andi t4,t4,15 + f26e: 01d66633 or a2,a2,t4 + f272: cbb0 sw a2,80(a5) + f274: 4bb0 lw a2,80(a5) + f276: f0f67613 andi a2,a2,-241 + f27a: 02d3c3b3 div t2,t2,a3 + f27e: 03f70fb3 mul t6,a4,t6 + f282: 00f3f393 andi t2,t2,15 + f286: 0392 slli t2,t2,0x4 + f288: 00766633 or a2,a2,t2 + f28c: cbb0 sw a2,80(a5) + f28e: 4bb0 lw a2,80(a5) + f290: 01c67633 and a2,a2,t3 + f294: 02d2c2b3 div t0,t0,a3 + f298: 02dfcfb3 div t6,t6,a3 + f29c: 00f2f293 andi t0,t0,15 + f2a0: 02a2 slli t0,t0,0x8 + f2a2: 00566633 or a2,a2,t0 + f2a6: cbb0 sw a2,80(a5) + f2a8: 4bb0 lw a2,80(a5) + f2aa: 00667633 and a2,a2,t1 + f2ae: 03e70f33 mul t5,a4,t5 + f2b2: 00ffff93 andi t6,t6,15 + f2b6: 0fb2 slli t6,t6,0xc + f2b8: 01f66633 or a2,a2,t6 + f2bc: cbb0 sw a2,80(a5) + f2be: 00371613 slli a2,a4,0x3 + f2c2: 0507a303 lw t1,80(a5) + f2c6: 011378b3 and a7,t1,a7 + f2ca: 02d64633 div a2,a2,a3 + f2ce: 03a70733 mul a4,a4,s10 + f2d2: 8a3d andi a2,a2,15 + f2d4: 0642 slli a2,a2,0x10 + f2d6: 00c8e633 or a2,a7,a2 + f2da: cbb0 sw a2,80(a5) + f2dc: 4bb0 lw a2,80(a5) + f2de: 01067633 and a2,a2,a6 + f2e2: 02df4f33 div t5,t5,a3 + f2e6: 02d74733 div a4,a4,a3 + f2ea: 00ff7f13 andi t5,t5,15 + f2ee: 0f52 slli t5,t5,0x14 + f2f0: 01e66633 or a2,a2,t5 + f2f4: cbb0 sw a2,80(a5) + f2f6: 4bb4 lw a3,80(a5) + f2f8: 8ee9 and a3,a3,a0 + f2fa: 8b3d andi a4,a4,15 + f2fc: 0762 slli a4,a4,0x18 + f2fe: 8f55 or a4,a4,a3 + f300: cbb8 sw a4,80(a5) + f302: 405c lw a5,4(s0) + f304: 9bbd andi a5,a5,-17 + f306: c05c sw a5,4(s0) + f308: 405c lw a5,4(s0) + f30a: 9bf9 andi a5,a5,-2 + f30c: c05c sw a5,4(s0) + f30e: 541c lw a5,40(s0) + f310: 28c79793 bseti a5,a5,0xc + f314: d41c sw a5,40(s0) + f316: 545c lw a5,44(s0) + f318: 0107e793 ori a5,a5,16 + f31c: d45c sw a5,44(s0) + f31e: 47b2 lw a5,12(sp) + f320: 03f7f713 andi a4,a5,63 + f324: 5c1c lw a5,56(s0) + f326: fc07f793 andi a5,a5,-64 + f32a: 8fd9 or a5,a5,a4 + f32c: dc1c sw a5,56(s0) + f32e: 5c1c lw a5,56(s0) + f330: 81000737 lui a4,0x81000 + f334: 177d addi a4,a4,-1 # 80ffffff <_eusrstack+0x60ffcfff> + f336: 8ff9 and a5,a5,a4 + f338: 8fcd or a5,a5,a1 + f33a: dc1c sw a5,56(s0) + f33c: 40b6 lw ra,76(sp) + f33e: 4426 lw s0,72(sp) + f340: 4496 lw s1,68(sp) + f342: 4906 lw s2,64(sp) + f344: 59f2 lw s3,60(sp) + f346: 5a62 lw s4,56(sp) + f348: 5ad2 lw s5,52(sp) + f34a: 5b42 lw s6,48(sp) + f34c: 5bb2 lw s7,44(sp) + f34e: 5c22 lw s8,40(sp) + f350: 5c92 lw s9,36(sp) + f352: 5d02 lw s10,32(sp) + f354: 4df2 lw s11,28(sp) + f356: 6161 addi sp,sp,80 + f358: 8082 ret + f35a: 9e019b23 sh zero,-1546(gp) # 200013ae + f35e: cc2ff06f j e820 + +0000f362 : +RFEND_TXFtune(): + f362: a001a703 lw a4,-1536(gp) # 200013b8 + f366: 435c lw a5,4(a4) + f368: 1007e793 ori a5,a5,256 + f36c: c35c sw a5,4(a4) + f36e: 8082 ret + +0000f370 : +API_DisconnectCmd(): + f370: 1141 addi sp,sp,-16 + f372: c606 sw ra,12(sp) + f374: 2c71 jal f610 + f376: 40600593 li a1,1030 + f37a: b67fe0ef jal ra,dee0 + f37e: 40b2 lw ra,12(sp) + f380: 4501 li a0,0 + f382: 0141 addi sp,sp,16 + f384: 8082 ret + +0000f386 : +API_MD_DisconnectCmd(): + f386: ac65 j f63e + +0000f388 : +API_ReadBDADDRCmd(): + f388: 1101 addi sp,sp,-32 + f38a: 00910513 addi a0,sp,9 + f38e: ce06 sw ra,28(sp) + f390: 2cd9 jal f666 + f392: 8448 sb a0,8(sp) + f394: 6505 lui a0,0x1 + f396: 0030 addi a2,sp,8 + f398: 0525 addi a0,a0,9 # 1009 <_einit+0x5> + f39a: 459d li a1,7 + f39c: aebfe0ef jal ra,de86 + f3a0: 40f2 lw ra,28(sp) + f3a2: 8408 lbu a0,8(sp) + f3a4: 6105 addi sp,sp,32 + f3a6: 8082 ret + +0000f3a8 : +API_ReadRssiCmd(): + f3a8: 1101 addi sp,sp,-32 + f3aa: 00f10593 addi a1,sp,15 + f3ae: ce06 sw ra,28(sp) + f3b0: cc22 sw s0,24(sp) + f3b2: 842a mv s0,a0 + f3b4: 2cd1 jal f688 + f3b6: 8648 sb a0,12(sp) + f3b8: 6505 lui a0,0x1 + f3ba: 86c0 sb s0,13(sp) + f3bc: 0070 addi a2,sp,12 + f3be: 8021 srli s0,s0,0x8 + f3c0: 40550513 addi a0,a0,1029 # 1405 <_einit+0x401> + f3c4: 4591 li a1,4 + f3c6: 8740 sb s0,14(sp) + f3c8: abffe0ef jal ra,de86 + f3cc: 40f2 lw ra,28(sp) + f3ce: 4462 lw s0,24(sp) + f3d0: 8608 lbu a0,12(sp) + f3d2: 6105 addi sp,sp,32 + f3d4: 8082 ret + +0000f3d6 : +API_LE_ReadBufSizeCmd(): + f3d6: 1101 addi sp,sp,-32 + f3d8: 00d10513 addi a0,sp,13 + f3dc: ce06 sw ra,28(sp) + f3de: 2cc1 jal f6ae + f3e0: 8648 sb a0,12(sp) + f3e2: 6509 lui a0,0x2 + f3e4: 0070 addi a2,sp,12 + f3e6: 0509 addi a0,a0,2 # 2002 <_einit+0xffe> + f3e8: 4591 li a1,4 + f3ea: a9dfe0ef jal ra,de86 + f3ee: 40f2 lw ra,28(sp) + f3f0: 8608 lbu a0,12(sp) + f3f2: 6105 addi sp,sp,32 + f3f4: 8082 ret + +0000f3f6 : +API_LE_ClearWhiteListCmd(): + f3f6: 1101 addi sp,sp,-32 + f3f8: ce06 sw ra,28(sp) + f3fa: 298d jal f86c + f3fc: 87c8 sb a0,15(sp) + f3fe: 6509 lui a0,0x2 + f400: 00f10613 addi a2,sp,15 + f404: 0541 addi a0,a0,16 # 2010 <_einit+0x100c> + f406: 4585 li a1,1 + f408: a7ffe0ef jal ra,de86 + f40c: 40f2 lw ra,28(sp) + f40e: 8788 lbu a0,15(sp) + f410: 6105 addi sp,sp,32 + f412: 8082 ret + +0000f414 : +API_LE_AddWhiteListCmd(): + f414: 1101 addi sp,sp,-32 + f416: ce06 sw ra,28(sp) + f418: 2101 jal f818 + f41a: 87c8 sb a0,15(sp) + f41c: 6509 lui a0,0x2 + f41e: 00f10613 addi a2,sp,15 + f422: 0545 addi a0,a0,17 # 2011 <_einit+0x100d> + f424: 4585 li a1,1 + f426: a61fe0ef jal ra,de86 + f42a: 40f2 lw ra,28(sp) + f42c: 8788 lbu a0,15(sp) + f42e: 6105 addi sp,sp,32 + f430: 8082 ret + +0000f432 : +API_LE_RandCmd(): + f432: 1101 addi sp,sp,-32 + f434: 00510513 addi a0,sp,5 + f438: ce06 sw ra,28(sp) + f43a: 29a1 jal f892 + f43c: 8248 sb a0,4(sp) + f43e: 6509 lui a0,0x2 + f440: 0050 addi a2,sp,4 + f442: 0561 addi a0,a0,24 # 2018 + f444: 45a5 li a1,9 + f446: a41fe0ef jal ra,de86 + f44a: 40f2 lw ra,28(sp) + f44c: 4501 li a0,0 + f44e: 6105 addi sp,sp,32 + f450: 8082 ret + +0000f452 : +API_LE_LtkReqReplyCmd(): + f452: 1101 addi sp,sp,-32 + f454: ce06 sw ra,28(sp) + f456: cc22 sw s0,24(sp) + f458: 842a mv s0,a0 + f45a: 21b5 jal f8c6 + f45c: 8648 sb a0,12(sp) + f45e: 6509 lui a0,0x2 + f460: 86c0 sb s0,13(sp) + f462: 0070 addi a2,sp,12 + f464: 8021 srli s0,s0,0x8 + f466: 0569 addi a0,a0,26 # 201a + f468: 458d li a1,3 + f46a: 8740 sb s0,14(sp) + f46c: a1bfe0ef jal ra,de86 + f470: 40f2 lw ra,28(sp) + f472: 4462 lw s0,24(sp) + f474: 4501 li a0,0 + f476: 6105 addi sp,sp,32 + f478: 8082 ret + +0000f47a : +API_LE_LtkReqNegReplyCmd(): + f47a: 1101 addi sp,sp,-32 + f47c: ce06 sw ra,28(sp) + f47e: cc22 sw s0,24(sp) + f480: 842a mv s0,a0 + f482: 2b31 jal f99e + f484: 8648 sb a0,12(sp) + f486: 6509 lui a0,0x2 + f488: 86c0 sb s0,13(sp) + f48a: 0070 addi a2,sp,12 + f48c: 8021 srli s0,s0,0x8 + f48e: 056d addi a0,a0,27 # 201b + f490: 458d li a1,3 + f492: 8740 sb s0,14(sp) + f494: 9f3fe0ef jal ra,de86 + f498: 40f2 lw ra,28(sp) + f49a: 4462 lw s0,24(sp) + f49c: 4501 li a0,0 + f49e: 6105 addi sp,sp,32 + f4a0: 8082 ret + +0000f4a2 : +API_LE_RemoteConnParamReqReplyCmd(): + f4a2: 1101 addi sp,sp,-32 + f4a4: ce06 sw ra,28(sp) + f4a6: cc22 sw s0,24(sp) + f4a8: 842a mv s0,a0 + f4aa: 2c39 jal f6c8 + f4ac: 8648 sb a0,12(sp) + f4ae: 6509 lui a0,0x2 + f4b0: 86c0 sb s0,13(sp) + f4b2: 0070 addi a2,sp,12 + f4b4: 8021 srli s0,s0,0x8 + f4b6: 02050513 addi a0,a0,32 # 2020 + f4ba: 458d li a1,3 + f4bc: 8740 sb s0,14(sp) + f4be: 9c9fe0ef jal ra,de86 + f4c2: 40f2 lw ra,28(sp) + f4c4: 4462 lw s0,24(sp) + f4c6: 4501 li a0,0 + f4c8: 6105 addi sp,sp,32 + f4ca: 8082 ret + +0000f4cc : +API_LE_RemoteConnParamReqNegReplyCmd(): + f4cc: 1101 addi sp,sp,-32 + f4ce: ce06 sw ra,28(sp) + f4d0: cc22 sw s0,24(sp) + f4d2: 842a mv s0,a0 + f4d4: 2471 jal f760 + f4d6: 8648 sb a0,12(sp) + f4d8: 6509 lui a0,0x2 + f4da: 86c0 sb s0,13(sp) + f4dc: 0070 addi a2,sp,12 + f4de: 8021 srli s0,s0,0x8 + f4e0: 02150513 addi a0,a0,33 # 2021 + f4e4: 458d li a1,3 + f4e6: 8740 sb s0,14(sp) + f4e8: 99ffe0ef jal ra,de86 + f4ec: 40f2 lw ra,28(sp) + f4ee: 4462 lw s0,24(sp) + f4f0: 4501 li a0,0 + f4f2: 6105 addi sp,sp,32 + f4f4: 8082 ret + +0000f4f6 : +API_LE_SetDataLengthCmd(): + f4f6: 1101 addi sp,sp,-32 + f4f8: ce06 sw ra,28(sp) + f4fa: cc22 sw s0,24(sp) + f4fc: 842a mv s0,a0 + f4fe: 2c71 jal f79a + f500: 8648 sb a0,12(sp) + f502: 6509 lui a0,0x2 + f504: 86c0 sb s0,13(sp) + f506: 0070 addi a2,sp,12 + f508: 8021 srli s0,s0,0x8 + f50a: 02250513 addi a0,a0,34 # 2022 + f50e: 458d li a1,3 + f510: 8740 sb s0,14(sp) + f512: 975fe0ef jal ra,de86 + f516: 40f2 lw ra,28(sp) + f518: 4462 lw s0,24(sp) + f51a: 4501 li a0,0 + f51c: 6105 addi sp,sp,32 + f51e: 8082 ret + +0000f520 : +API_LE_SetDefaultPHYCmd(): + f520: 1101 addi sp,sp,-32 + f522: ce06 sw ra,28(sp) + f524: 2965 jal f9dc + f526: 87c8 sb a0,15(sp) + f528: 6509 lui a0,0x2 + f52a: 00f10613 addi a2,sp,15 + f52e: 03150513 addi a0,a0,49 # 2031 + f532: 4585 li a1,1 + f534: 953fe0ef jal ra,de86 + f538: 40f2 lw ra,28(sp) + f53a: 8788 lbu a0,15(sp) + f53c: 6105 addi sp,sp,32 + f53e: 8082 ret + +0000f540 : +API_LE_SetPHYCmd(): + f540: 1141 addi sp,sp,-16 + f542: c606 sw ra,12(sp) + f544: c422 sw s0,8(sp) + f546: 296d jal fa00 + f548: 6589 lui a1,0x2 + f54a: 03258593 addi a1,a1,50 # 2032 + f54e: 842a mv s0,a0 + f550: 991fe0ef jal ra,dee0 + f554: 40b2 lw ra,12(sp) + f556: 8522 mv a0,s0 + f558: 4422 lw s0,8(sp) + f55a: 0141 addi sp,sp,16 + f55c: 8082 ret + +0000f55e : +API_LE_SetExtendedAdvertisingParametersCmd(): + f55e: 7139 addi sp,sp,-64 + f560: 02d10313 addi t1,sp,45 + f564: ce1a sw t1,28(sp) + f566: 05814303 lbu t1,88(sp) + f56a: de06 sw ra,60(sp) + f56c: cc1a sw t1,24(sp) + f56e: 05414303 lbu t1,84(sp) + f572: ca1a sw t1,20(sp) + f574: 05014303 lbu t1,80(sp) + f578: c81a sw t1,16(sp) + f57a: 04c14303 lbu t1,76(sp) + f57e: c61a sw t1,12(sp) + f580: 04814303 lbu t1,72(sp) + f584: c41a sw t1,8(sp) + f586: 04410303 lb t1,68(sp) + f58a: c21a sw t1,4(sp) + f58c: 04014303 lbu t1,64(sp) + f590: c01a sw t1,0(sp) + f592: 21d9 jal fa58 + f594: 02a10623 sb a0,44(sp) + f598: 6509 lui a0,0x2 + f59a: 1070 addi a2,sp,44 + f59c: 03650513 addi a0,a0,54 # 2036 + f5a0: 4589 li a1,2 + f5a2: 8e5fe0ef jal ra,de86 + f5a6: 50f2 lw ra,60(sp) + f5a8: 02c14503 lbu a0,44(sp) + f5ac: 6121 addi sp,sp,64 + f5ae: 8082 ret + +0000f5b0 : +API_LE_SetExtendedAdvertisingDataCmd(): + f5b0: 1101 addi sp,sp,-32 + f5b2: ce06 sw ra,28(sp) + f5b4: 2d9d jal fc2a + f5b6: 87c8 sb a0,15(sp) + f5b8: 6509 lui a0,0x2 + f5ba: 00f10613 addi a2,sp,15 + f5be: 03750513 addi a0,a0,55 # 2037 + f5c2: 4585 li a1,1 + f5c4: 8c3fe0ef jal ra,de86 + f5c8: 40f2 lw ra,28(sp) + f5ca: 8788 lbu a0,15(sp) + f5cc: 6105 addi sp,sp,32 + f5ce: 8082 ret + +0000f5d0 : +API_LE_SetExtendedScanResponseDataCmd(): + f5d0: 1101 addi sp,sp,-32 + f5d2: ce06 sw ra,28(sp) + f5d4: 25f5 jal fcc0 + f5d6: 87c8 sb a0,15(sp) + f5d8: 6509 lui a0,0x2 + f5da: 00f10613 addi a2,sp,15 + f5de: 03850513 addi a0,a0,56 # 2038 + f5e2: 4585 li a1,1 + f5e4: 8a3fe0ef jal ra,de86 + f5e8: 40f2 lw ra,28(sp) + f5ea: 8788 lbu a0,15(sp) + f5ec: 6105 addi sp,sp,32 + f5ee: 8082 ret + +0000f5f0 : +API_LE_SetExtendedAdvertisingEnableCmd(): + f5f0: 1101 addi sp,sp,-32 + f5f2: ce06 sw ra,28(sp) + f5f4: 278d jal fd56 + f5f6: 87c8 sb a0,15(sp) + f5f8: 6509 lui a0,0x2 + f5fa: 00f10613 addi a2,sp,15 + f5fe: 03950513 addi a0,a0,57 # 2039 + f602: 4585 li a1,1 + f604: 883fe0ef jal ra,de86 + f608: 40f2 lw ra,28(sp) + f60a: 8788 lbu a0,15(sp) + f60c: 6105 addi sp,sp,32 + f60e: 8082 ret + +0000f610 : +LL_Disconnect(): + f610: 1141 addi sp,sp,-16 + f612: c422 sw s0,8(sp) + f614: c606 sw ra,12(sp) + f616: 842e mv s0,a1 + f618: 67a040ef jal ra,13c92 + f61c: cd19 beqz a0,f63a + f61e: 2138 lbu a4,2(a0) + f620: 87aa mv a5,a0 + f622: 4549 li a0,18 + f624: 8b41 andi a4,a4,16 + f626: c711 beqz a4,f632 + f628: 476d li a4,27 + f62a: 08878723 sb s0,142(a5) + f62e: a798 sb a4,8(a5) + f630: 4501 li a0,0 + f632: 40b2 lw ra,12(sp) + f634: 4422 lw s0,8(sp) + f636: 0141 addi sp,sp,16 + f638: 8082 ret + f63a: 4549 li a0,18 + f63c: bfdd j f632 + +0000f63e : +LL_MD_Disconnect(): + f63e: 1101 addi sp,sp,-32 + f640: ce06 sw ra,28(sp) + f642: cc22 sw s0,24(sp) + f644: c62e sw a1,12(sp) + f646: 64c040ef jal ra,13c92 + f64a: cd01 beqz a0,f662 + f64c: 45b2 lw a1,12(sp) + f64e: 842a mv s0,a0 + f650: 7ed030ef jal ra,1363c + f654: 0aa40aa3 sb a0,181(s0) + f658: 4501 li a0,0 + f65a: 40f2 lw ra,28(sp) + f65c: 4462 lw s0,24(sp) + f65e: 6105 addi sp,sp,32 + f660: 8082 ret + f662: 4549 li a0,18 + f664: bfdd j f65a + +0000f666 : +LL_ReadBDAddr(): + f666: 1fff3717 auipc a4,0x1fff3 + f66a: 4aa70713 addi a4,a4,1194 # 20002b10 + f66e: 4781 li a5,0 + f670: 4699 li a3,6 + f672: 04574583 lbu a1,69(a4) + f676: 00f50633 add a2,a0,a5 + f67a: 0785 addi a5,a5,1 + f67c: a20c sb a1,0(a2) + f67e: 0705 addi a4,a4,1 + f680: fed799e3 bne a5,a3,f672 + f684: 4501 li a0,0 + f686: 8082 ret + +0000f688 : +LL_ReadRssi(): + f688: 1141 addi sp,sp,-16 + f68a: c422 sw s0,8(sp) + f68c: c606 sw ra,12(sp) + f68e: 842e mv s0,a1 + f690: 602040ef jal ra,13c92 + f694: c909 beqz a0,f6a6 + f696: 01e50783 lb a5,30(a0) + f69a: 4501 li a0,0 + f69c: a01c sb a5,0(s0) + f69e: 40b2 lw ra,12(sp) + f6a0: 4422 lw s0,8(sp) + f6a2: 0141 addi sp,sp,16 + f6a4: 8082 ret + f6a6: 07f00793 li a5,127 + f6aa: 4509 li a0,2 + f6ac: bfc5 j f69c + +0000f6ae : +LL_LE_ReadBufSize(): + f6ae: 1fff3797 auipc a5,0x1fff3 + f6b2: 21a78793 addi a5,a5,538 # 200028c8 + f6b6: 2b9a lhu a4,16(a5) + f6b8: a118 sb a4,0(a0) + f6ba: 2b9a lhu a4,16(a5) + f6bc: 8321 srli a4,a4,0x8 + f6be: b118 sb a4,1(a0) + f6c0: 37fc lbu a5,15(a5) + f6c2: a13c sb a5,2(a0) + f6c4: 4501 li a0,0 + f6c6: 8082 ret + +0000f6c8 : +LL_RemoteConnParamReqReply(): + f6c8: 1101 addi sp,sp,-32 + f6ca: cc22 sw s0,24(sp) + f6cc: ca26 sw s1,20(sp) + f6ce: c84a sw s2,16(sp) + f6d0: c64e sw s3,12(sp) + f6d2: 8432 mv s0,a2 + f6d4: 89ae mv s3,a1 + f6d6: 8936 mv s2,a3 + f6d8: 84ba mv s1,a4 + f6da: ce06 sw ra,28(sp) + f6dc: 5b6040ef jal ra,13c92 + f6e0: 6705 lui a4,0x1 + f6e2: ffa98693 addi a3,s3,-6 + f6e6: c7a70613 addi a2,a4,-902 # c7a <_sinit-0x386> + f6ea: 0806c6b3 zext.h a3,a3 + f6ee: 06d66763 bltu a2,a3,f75c + f6f2: c8070713 addi a4,a4,-896 + f6f6: 87aa mv a5,a0 + f6f8: 4549 li a0,18 + f6fa: 04876a63 bltu a4,s0,f74e + f6fe: 05346863 bltu s0,s3,f74e + f702: 1f300693 li a3,499 + f706: 0526e463 bltu a3,s2,f74e + f70a: 04976263 bltu a4,s1,f74e + f70e: 00190713 addi a4,s2,1 + f712: 08074733 zext.h a4,a4 + f716: 02870733 mul a4,a4,s0 + f71a: 00349693 slli a3,s1,0x3 + f71e: 02d75863 bge a4,a3,f74e + f722: c795 beqz a5,f74e + f724: 3798 lbu a4,9(a5) + f726: 00477693 andi a3,a4,4 + f72a: ce89 beqz a3,f744 + f72c: 9b6d andi a4,a4,-5 + f72e: b798 sb a4,9(a5) + f730: 3b9a lhu a4,48(a5) + f732: 0b379623 sh s3,172(a5) + f736: 0a879723 sh s0,174(a5) + f73a: 02076713 ori a4,a4,32 + f73e: bb9a sh a4,48(a5) + f740: 4741 li a4,16 + f742: b7f8 sb a4,15(a5) + f744: 09279a23 sh s2,148(a5) + f748: 08979b23 sh s1,150(a5) + f74c: 4501 li a0,0 + f74e: 40f2 lw ra,28(sp) + f750: 4462 lw s0,24(sp) + f752: 44d2 lw s1,20(sp) + f754: 4942 lw s2,16(sp) + f756: 49b2 lw s3,12(sp) + f758: 6105 addi sp,sp,32 + f75a: 8082 ret + f75c: 4549 li a0,18 + f75e: bfc5 j f74e + +0000f760 : +LL_RemoteConnParamReqNegReply(): + f760: 1141 addi sp,sp,-16 + f762: c422 sw s0,8(sp) + f764: c606 sw ra,12(sp) + f766: 842e mv s0,a1 + f768: 52a040ef jal ra,13c92 + f76c: e511 bnez a0,f778 + f76e: 4549 li a0,18 + f770: 40b2 lw ra,12(sp) + f772: 4422 lw s0,8(sp) + f774: 0141 addi sp,sp,16 + f776: 8082 ret + f778: 351c lbu a5,9(a0) + f77a: 0a850aa3 sb s0,181(a0) + f77e: 0047f713 andi a4,a5,4 + f782: d775 beqz a4,f76e + f784: 9bed andi a5,a5,-5 + f786: b51c sb a5,9(a0) + f788: 47bd li a5,15 + f78a: 0af50b23 sb a5,182(a0) + f78e: 391e lhu a5,48(a0) + f790: 0027e793 ori a5,a5,2 + f794: b91e sh a5,48(a0) + f796: 4501 li a0,0 + f798: bfe1 j f770 + +0000f79a : +LL_SetDataLength(): + f79a: 1141 addi sp,sp,-16 + f79c: c422 sw s0,8(sp) + f79e: c226 sw s1,4(sp) + f7a0: c606 sw ra,12(sp) + f7a2: 842e mv s0,a1 + f7a4: 84b2 mv s1,a2 + f7a6: 4ec040ef jal ra,13c92 + f7aa: 11255703 lhu a4,274(a0) + f7ae: 02077713 andi a4,a4,32 + f7b2: c32d beqz a4,f814 + f7b4: fe540713 addi a4,s0,-27 + f7b8: 0e000693 li a3,224 + f7bc: 87aa mv a5,a0 + f7be: 08074733 zext.h a4,a4 + f7c2: 4549 li a0,18 + f7c4: 02e6e063 bltu a3,a4,f7e4 + f7c8: 6711 lui a4,0x4 + f7ca: eb848693 addi a3,s1,-328 + f7ce: 14870713 addi a4,a4,328 # 4148 + f7d2: 0806c6b3 zext.h a3,a3 + f7d6: 00d76763 bltu a4,a3,f7e4 + f7da: 12a7d703 lhu a4,298(a5) + f7de: 00871863 bne a4,s0,f7ee + f7e2: 4501 li a0,0 + f7e4: 40b2 lw ra,12(sp) + f7e6: 4422 lw s0,8(sp) + f7e8: 4492 lw s1,4(sp) + f7ea: 0141 addi sp,sp,16 + f7ec: 8082 ret + f7ee: 1fff3697 auipc a3,0x1fff3 + f7f2: 32268693 addi a3,a3,802 # 20002b10 + f7f6: 22d8 lbu a4,4(a3) + f7f8: 0a875733 minu a4,a4,s0 + f7fc: 10e79d23 sh a4,282(a5) + f800: 26da lhu a4,12(a3) + f802: 0a975733 minu a4,a4,s1 + f806: 10e79e23 sh a4,284(a5) + f80a: 37fa lhu a4,46(a5) + f80c: 28b71713 bseti a4,a4,0xb + f810: b7fa sh a4,46(a5) + f812: bfc1 j f7e2 + f814: 4545 li a0,17 + f816: b7f9 j f7e4 + +0000f818 : +LL_AddWhiteListDevice(): + f818: 1fff3717 auipc a4,0x1fff3 + f81c: 2f870713 addi a4,a4,760 # 20002b10 + f820: 4b54 lw a3,20(a4) + f822: 87aa mv a5,a0 + f824: c691 beqz a3,f830 + f826: 22f0 lbu a2,6(a3) + f828: c601 beqz a2,f830 + f82a: 2694 lbu a3,8(a3) + f82c: 4549 li a0,18 + f82e: ea81 bnez a3,f83e + f830: 03874683 lbu a3,56(a4) + f834: 03974703 lbu a4,57(a4) + f838: 00e6e863 bltu a3,a4,f848 + f83c: 451d li a0,7 + f83e: 8082 ret + f840: 451d li a0,7 + f842: 40f2 lw ra,28(sp) + f844: 6105 addi sp,sp,32 + f846: 8082 ret + f848: 1101 addi sp,sp,-32 + f84a: 4619 li a2,6 + f84c: 00a10513 addi a0,sp,10 + f850: 84dc sb a5,9(sp) + f852: ce06 sw ra,28(sp) + f854: 1fff1097 auipc ra,0x1fff1 + f858: 008080e7 jalr 8(ra) # 2000085c + f85c: 0028 addi a0,sp,8 + f85e: 606050ef jal ra,14e64 + f862: 4785 li a5,1 + f864: fcf51ee3 bne a0,a5,f840 + f868: 4501 li a0,0 + f86a: bfe1 j f842 + +0000f86c : +LL_ClearWhiteList(): + f86c: 1fff3797 auipc a5,0x1fff3 + f870: 2b87a783 lw a5,696(a5) # 20002b24 + f874: c791 beqz a5,f880 + f876: 23f8 lbu a4,6(a5) + f878: c701 beqz a4,f880 + f87a: 279c lbu a5,8(a5) + f87c: 4549 li a0,18 + f87e: eb89 bnez a5,f890 + f880: 1141 addi sp,sp,-16 + f882: c606 sw ra,12(sp) + f884: 688050ef jal ra,14f0c + f888: 40b2 lw ra,12(sp) + f88a: 4501 li a0,0 + f88c: 0141 addi sp,sp,16 + f88e: 8082 ret + f890: 8082 ret + +0000f892 : +LL_Rand(): + f892: 1141 addi sp,sp,-16 + f894: c422 sw s0,8(sp) + f896: c226 sw s1,4(sp) + f898: c04a sw s2,0(sp) + f89a: c606 sw ra,12(sp) + f89c: 84aa mv s1,a0 + f89e: 4401 li s0,0 + f8a0: 4921 li s2,8 + f8a2: 0ff00593 li a1,255 + f8a6: 4505 li a0,1 + f8a8: d53f60ef jal ra,65fa + f8ac: 008487b3 add a5,s1,s0 + f8b0: a388 sb a0,0(a5) + f8b2: 0405 addi s0,s0,1 + f8b4: ff2417e3 bne s0,s2,f8a2 + f8b8: 40b2 lw ra,12(sp) + f8ba: 4422 lw s0,8(sp) + f8bc: 4492 lw s1,4(sp) + f8be: 4902 lw s2,0(sp) + f8c0: 4501 li a0,0 + f8c2: 0141 addi sp,sp,16 + f8c4: 8082 ret + +0000f8c6 : +LL_LtkReqReply(): + f8c6: 1141 addi sp,sp,-16 + f8c8: c422 sw s0,8(sp) + f8ca: c606 sw ra,12(sp) + f8cc: 842e mv s0,a1 + f8ce: 3c4040ef jal ra,13c92 + f8d2: c561 beqz a0,f99a + f8d4: 2518 lbu a4,8(a0) + f8d6: 02400793 li a5,36 + f8da: 06f71663 bne a4,a5,f946 + f8de: 247c lbu a5,14(s0) + f8e0: 3458 lbu a4,13(s0) + f8e2: 07a2 slli a5,a5,0x8 + f8e4: 0742 slli a4,a4,0x10 + f8e6: 97ba add a5,a5,a4 + f8e8: 3478 lbu a4,15(s0) + f8ea: 97ba add a5,a5,a4 + f8ec: 2458 lbu a4,12(s0) + f8ee: 0762 slli a4,a4,0x18 + f8f0: 97ba add a5,a5,a4 + f8f2: 0be54703 lbu a4,190(a0) + f8f6: cf29 beqz a4,f950 + f8f8: 08050713 addi a4,a0,128 + f8fc: c33c sw a5,64(a4) + f8fe: 243c lbu a5,10(s0) + f900: 3414 lbu a3,9(s0) + f902: 07a2 slli a5,a5,0x8 + f904: 06c2 slli a3,a3,0x10 + f906: 97b6 add a5,a5,a3 + f908: 3434 lbu a3,11(s0) + f90a: 97b6 add a5,a5,a3 + f90c: 2414 lbu a3,8(s0) + f90e: 06e2 slli a3,a3,0x18 + f910: 97b6 add a5,a5,a3 + f912: c37c sw a5,68(a4) + f914: 207c lbu a5,6(s0) + f916: 3054 lbu a3,5(s0) + f918: 07a2 slli a5,a5,0x8 + f91a: 06c2 slli a3,a3,0x10 + f91c: 97b6 add a5,a5,a3 + f91e: 3074 lbu a3,7(s0) + f920: 97b6 add a5,a5,a3 + f922: 2054 lbu a3,4(s0) + f924: 06e2 slli a3,a3,0x18 + f926: 97b6 add a5,a5,a3 + f928: c73c sw a5,72(a4) + f92a: 203c lbu a5,2(s0) + f92c: 3014 lbu a3,1(s0) + f92e: 07a2 slli a5,a5,0x8 + f930: 06c2 slli a3,a3,0x10 + f932: 97b6 add a5,a5,a3 + f934: 3034 lbu a3,3(s0) + f936: 97b6 add a5,a5,a3 + f938: 2014 lbu a3,0(s0) + f93a: 06e2 slli a3,a3,0x18 + f93c: 97b6 add a5,a5,a3 + f93e: c77c sw a5,76(a4) + f940: 02a00793 li a5,42 + f944: a51c sb a5,8(a0) + f946: 4501 li a0,0 + f948: 40b2 lw ra,12(sp) + f94a: 4422 lw s0,8(sp) + f94c: 0141 addi sp,sp,16 + f94e: 8082 ret + f950: 08050713 addi a4,a0,128 + f954: d33c sw a5,96(a4) + f956: 243c lbu a5,10(s0) + f958: 3414 lbu a3,9(s0) + f95a: 07a2 slli a5,a5,0x8 + f95c: 06c2 slli a3,a3,0x10 + f95e: 97b6 add a5,a5,a3 + f960: 3434 lbu a3,11(s0) + f962: 97b6 add a5,a5,a3 + f964: 2414 lbu a3,8(s0) + f966: 06e2 slli a3,a3,0x18 + f968: 97b6 add a5,a5,a3 + f96a: d37c sw a5,100(a4) + f96c: 207c lbu a5,6(s0) + f96e: 3054 lbu a3,5(s0) + f970: 07a2 slli a5,a5,0x8 + f972: 06c2 slli a3,a3,0x10 + f974: 97b6 add a5,a5,a3 + f976: 3074 lbu a3,7(s0) + f978: 97b6 add a5,a5,a3 + f97a: 2054 lbu a3,4(s0) + f97c: 06e2 slli a3,a3,0x18 + f97e: 97b6 add a5,a5,a3 + f980: d73c sw a5,104(a4) + f982: 203c lbu a5,2(s0) + f984: 3014 lbu a3,1(s0) + f986: 07a2 slli a5,a5,0x8 + f988: 06c2 slli a3,a3,0x10 + f98a: 97b6 add a5,a5,a3 + f98c: 3034 lbu a3,3(s0) + f98e: 97b6 add a5,a5,a3 + f990: 2014 lbu a3,0(s0) + f992: 06e2 slli a3,a3,0x18 + f994: 97b6 add a5,a5,a3 + f996: d77c sw a5,108(a4) + f998: b765 j f940 + f99a: 4505 li a0,1 + f99c: b775 j f948 + +0000f99e : +LL_LtkReqNegReply(): + f99e: 1141 addi sp,sp,-16 + f9a0: c606 sw ra,12(sp) + f9a2: 2f0040ef jal ra,13c92 + f9a6: c90d beqz a0,f9d8 + f9a8: 2514 lbu a3,8(a0) + f9aa: 02400713 li a4,36 + f9ae: 87aa mv a5,a0 + f9b0: 4509 li a0,2 + f9b2: 02e69063 bne a3,a4,f9d2 + f9b6: 470d li a4,3 + f9b8: 0ae78b23 sb a4,182(a5) + f9bc: 4719 li a4,6 + f9be: 0ae78aa3 sb a4,181(a5) + f9c2: 02500713 li a4,37 + f9c6: a798 sb a4,8(a5) + f9c8: 3bb8 lbu a4,19(a5) + f9ca: 4501 li a0,0 + f9cc: 00176713 ori a4,a4,1 + f9d0: bbb8 sb a4,19(a5) + f9d2: 40b2 lw ra,12(sp) + f9d4: 0141 addi sp,sp,16 + f9d6: 8082 ret + f9d8: 4509 li a0,2 + f9da: bfe5 j f9d2 + +0000f9dc : +LL_SetDefaultPHY(): + f9dc: 1fff3797 auipc a5,0x1fff3 + f9e0: 13478793 addi a5,a5,308 # 20002b10 + f9e4: 2bb8 lbu a4,18(a5) + f9e6: 8f6d and a4,a4,a1 + f9e8: 00b70463 beq a4,a1,f9f0 + f9ec: 4549 li a0,18 + f9ee: 8082 ret + f9f0: ab98 sb a4,16(a5) + f9f2: 3bb8 lbu a4,19(a5) + f9f4: 8f71 and a4,a4,a2 + f9f6: fec71be3 bne a4,a2,f9ec + f9fa: bb98 sb a4,17(a5) + f9fc: 4501 li a0,0 + f9fe: 8082 ret + +0000fa00 : +LL_SetPHY(): + fa00: 1141 addi sp,sp,-16 + fa02: c422 sw s0,8(sp) + fa04: c226 sw s1,4(sp) + fa06: c04a sw s2,0(sp) + fa08: c606 sw ra,12(sp) + fa0a: 842e mv s0,a1 + fa0c: 8932 mv s2,a2 + fa0e: 84b6 mv s1,a3 + fa10: 282040ef jal ra,13c92 + fa14: c121 beqz a0,fa54 + fa16: 00147793 andi a5,s0,1 + fa1a: ef89 bnez a5,fa34 + fa1c: 478d li a5,3 + fa1e: 0127f963 bgeu a5,s2,fa30 + fa22: 4545 li a0,17 + fa24: 40b2 lw ra,12(sp) + fa26: 4422 lw s0,8(sp) + fa28: 4492 lw s1,4(sp) + fa2a: 4902 lw s2,0(sp) + fa2c: 0141 addi sp,sp,16 + fa2e: 8082 ret + fa30: 13250923 sb s2,306(a0) + fa34: 8809 andi s0,s0,2 + fa36: e411 bnez s0,fa42 + fa38: 478d li a5,3 + fa3a: fe97e4e3 bltu a5,s1,fa22 + fa3e: 129509a3 sb s1,307(a0) + fa42: 4785 li a5,1 + fa44: 12f508a3 sb a5,305(a0) + fa48: 357e lhu a5,46(a0) + fa4a: 28c79793 bseti a5,a5,0xc + fa4e: b57e sh a5,46(a0) + fa50: 4501 li a0,0 + fa52: bfc9 j fa24 + fa54: 4549 li a0,18 + fa56: b7f9 j fa24 + +0000fa58 : +LL_SetExtendedAdvertisingParameters(): + fa58: 715d addi sp,sp,-80 + fa5a: ce6e sw s11,28(sp) + fa5c: 1fff3d97 auipc s11,0x1fff3 + fa60: 0b4d8d93 addi s11,s11,180 # 20002b10 + fa64: d85a sw s6,48(sp) + fa66: 8b3e mv s6,a5 + fa68: 014da783 lw a5,20(s11) + fa6c: c4a2 sw s0,72(sp) + fa6e: c2a6 sw s1,68(sp) + fa70: c0ca sw s2,64(sp) + fa72: de4e sw s3,60(sp) + fa74: dc52 sw s4,56(sp) + fa76: d65e sw s7,44(sp) + fa78: d462 sw s8,40(sp) + fa7a: d266 sw s9,36(sp) + fa7c: c686 sw ra,76(sp) + fa7e: da56 sw s5,52(sp) + fa80: d06a sw s10,32(sp) + fa82: c646 sw a7,12(sp) + fa84: 89b6 mv s3,a3 + fa86: 05410b83 lb s7,84(sp) + fa8a: 05814683 lbu a3,88(sp) + fa8e: 5cb6 lw s9,108(sp) + fa90: 8a2a mv s4,a0 + fa92: 842e mv s0,a1 + fa94: 84b2 mv s1,a2 + fa96: 893a mv s2,a4 + fa98: 8c42 mv s8,a6 + fa9a: c799 beqz a5,faa8 + fa9c: 47b8 lw a4,72(a5) + fa9e: 040007b7 lui a5,0x4000 + faa2: 4531 li a0,12 + faa4: 8ff9 and a5,a5,a4 + faa6: eb95 bnez a5,fada + faa8: 470d li a4,3 + faaa: 4549 li a0,18 + faac: 03676763 bltu a4,s6,fada + fab0: 01047d13 andi s10,s0,16 + fab4: 040d0263 beqz s10,faf8 + fab8: 4785 li a5,1 + faba: 02f69063 bne a3,a5,fada + fabe: 8552 mv a0,s4 + fac0: 4ec030ef jal ra,12fac + fac4: 8aaa mv s5,a0 + fac6: 10051363 bnez a0,fbcc + faca: 018da783 lw a5,24(s11) + face: 4505 li a0,1 + fad0: 9782 jalr a5 + fad2: 8aaa mv s5,a0 + fad4: 451d li a0,7 + fad6: 0e0a9763 bnez s5,fbc4 + fada: 40b6 lw ra,76(sp) + fadc: 4426 lw s0,72(sp) + fade: 4496 lw s1,68(sp) + fae0: 4906 lw s2,64(sp) + fae2: 59f2 lw s3,60(sp) + fae4: 5a62 lw s4,56(sp) + fae6: 5ad2 lw s5,52(sp) + fae8: 5b42 lw s6,48(sp) + faea: 5bb2 lw s7,44(sp) + faec: 5c22 lw s8,40(sp) + faee: 5c92 lw s9,36(sp) + faf0: 5d02 lw s10,32(sp) + faf2: 4df2 lw s11,28(sp) + faf4: 6161 addi sp,sp,80 + faf6: 8082 ret + faf8: 00347793 andi a5,s0,3 + fafc: 4549 li a0,18 + fafe: fce78ee3 beq a5,a4,fada + fb02: 00847793 andi a5,s0,8 + fb06: fbf1 bnez a5,fada + fb08: 8552 mv a0,s4 + fb0a: 4a2030ef jal ra,12fac + fb0e: 8aaa mv s5,a0 + fb10: dd4d beqz a0,faca + fb12: 007ac683 lbu a3,7(s5) + fb16: 4705 li a4,1 + fb18: 0ee68063 beq a3,a4,fbf8 + fb1c: 4545 li a0,17 + fb1e: fa99eee3 bltu s3,s1,fada + fb22: 477d li a4,31 + fb24: fa977be3 bgeu a4,s1,fada + fb28: 6711 lui a4,0x4 + fb2a: fb3768e3 bltu a4,s3,fada + fb2e: 94ce add s1,s1,s3 + fb30: 8085 srli s1,s1,0x1 + fb32: 0804c4b3 zext.h s1,s1 + fb36: 009a9c23 sh s1,24(s5) + fb3a: 012a84a3 sb s2,9(s5) + fb3e: 471d li a4,7 + fb40: 0ae91e63 bne s2,a4,fbfc + fb44: 470d li a4,3 + fb46: 00ea89a3 sb a4,19(s5) + fb4a: 4532 lw a0,12(sp) + fb4c: 036a84a3 sb s6,41(s5) + fb50: 4619 li a2,6 + fb52: 4581 li a1,0 + fb54: 7b20a0ef jal ra,1a306 + fb58: ed4d bnez a0,fc12 + fb5a: 45b2 lw a1,12(sp) + fb5c: 4705 li a4,1 + fb5e: 02ea8823 sb a4,48(s5) + fb62: 038a88a3 sb s8,49(s5) + fb66: 4619 li a2,6 + fb68: 032a8513 addi a0,s5,50 + fb6c: 1fff1097 auipc ra,0x1fff1 + fb70: cf0080e7 jalr -784(ra) # 2000085c + fb74: 05014703 lbu a4,80(sp) + fb78: 00ea8423 sb a4,8(s5) + fb7c: 07f00713 li a4,127 + fb80: 08eb9c63 bne s7,a4,fc18 + fb84: 1fff3717 auipc a4,0x1fff3 + fb88: d5874703 lbu a4,-680(a4) # 200028dc + fb8c: 00ec8023 sb a4,0(s9) + fb90: 00fa8503 lb a0,15(s5) + fb94: 8e9fe0ef jal ra,e47c + fb98: 04aa8a23 sb a0,84(s5) + fb9c: 87bfe0ef jal ra,e416 + fba0: 06814703 lbu a4,104(sp) + fba4: 00aa87a3 sb a0,15(s5) + fba8: 00ac8023 sb a0,0(s9) + fbac: 04ea89a3 sb a4,83(s5) + fbb0: 048aa703 lw a4,72(s5) + fbb4: 040a8923 sb zero,82(s5) + fbb8: 4501 li a0,0 + fbba: 29b71713 bseti a4,a4,0x1b + fbbe: 04eaa423 sw a4,72(s5) + fbc2: bf21 j fada + fbc4: 014a8223 sb s4,4(s5) + fbc8: f40d05e3 beqz s10,fb12 + fbcc: 883d andi s0,s0,15 + fbce: 4715 li a4,5 + fbd0: 00e41763 bne s0,a4,fbde + fbd4: 08100713 li a4,129 + fbd8: 00ea83a3 sb a4,7(s5) + fbdc: bf1d j fb12 + fbde: 46b5 li a3,13 + fbe0: 4705 li a4,1 + fbe2: fed40be3 beq s0,a3,fbd8 + fbe6: 4689 li a3,2 + fbe8: 4719 li a4,6 + fbea: fed407e3 beq s0,a3,fbd8 + fbee: 00143413 seqz s0,s0 + fbf2: 00141713 slli a4,s0,0x1 + fbf6: b7cd j fbd8 + fbf8: 4489 li s1,2 + fbfa: bf35 j fb36 + fbfc: fff90713 addi a4,s2,-1 + fc00: 01277733 and a4,a4,s2 + fc04: e709 bnez a4,fc0e + fc06: 4705 li a4,1 + fc08: 00ea84a3 sb a4,9(s5) + fc0c: bf3d j fb4a + fc0e: 4709 li a4,2 + fc10: bfe5 j fc08 + fc12: 020a8823 sb zero,48(s5) + fc16: bfb9 j fb74 + fc18: 4719 li a4,6 + fc1a: 01774563 blt a4,s7,fc24 + fc1e: 017a87a3 sb s7,15(s5) + fc22: b7bd j fb90 + fc24: 00ea87a3 sb a4,15(s5) + fc28: b7a5 j fb90 + +0000fc2a : +LL_SetExtendedAdvertisingData(): + fc2a: 1101 addi sp,sp,-32 + fc2c: c64e sw s3,12(sp) + fc2e: 1fff3997 auipc s3,0x1fff3 + fc32: ee298993 addi s3,s3,-286 # 20002b10 + fc36: 0149a783 lw a5,20(s3) + fc3a: cc22 sw s0,24(sp) + fc3c: ca26 sw s1,20(sp) + fc3e: c84a sw s2,16(sp) + fc40: ce06 sw ra,28(sp) + fc42: 892e mv s2,a1 + fc44: 8436 mv s0,a3 + fc46: 84ba mv s1,a4 + fc48: cf91 beqz a5,fc64 + fc4a: 47b8 lw a4,72(a5) + fc4c: 040007b7 lui a5,0x4000 + fc50: 8ff9 and a5,a5,a4 + fc52: cb89 beqz a5,fc64 + fc54: 4531 li a0,12 + fc56: 40f2 lw ra,28(sp) + fc58: 4462 lw s0,24(sp) + fc5a: 44d2 lw s1,20(sp) + fc5c: 4942 lw s2,16(sp) + fc5e: 49b2 lw s3,12(sp) + fc60: 6105 addi sp,sp,32 + fc62: 8082 ret + fc64: 348030ef jal ra,12fac + fc68: 87aa mv a5,a0 + fc6a: e519 bnez a0,fc78 + fc6c: 0149a783 lw a5,20(s3) + fc70: 04200513 li a0,66 + fc74: f3e5 bnez a5,fc54 + fc76: b7c5 j fc56 + fc78: 3178 lbu a4,7(a0) + fc7a: 4685 li a3,1 + fc7c: 8b3d andi a4,a4,15 + fc7e: 02d70063 beq a4,a3,fc9e + fc82: 470d li a4,3 + fc84: 4549 li a0,18 + fc86: fce918e3 bne s2,a4,fc56 + fc8a: 477d li a4,31 + fc8c: fc8765e3 bltu a4,s0,fc56 + fc90: 00078b23 sb zero,22(a5) # 4000016 <_data_lma+0x3fe4a5a> + fc94: e419 bnez s0,fca2 + fc96: 47b8 lw a4,72(a5) + fc98: 49871713 bclri a4,a4,0x18 + fc9c: c7b8 sw a4,72(a5) + fc9e: 4501 li a0,0 + fca0: bf5d j fc56 + fca2: e000e6b7 lui a3,0xe000e + fca6: 4290 lw a2,0(a3) + fca8: 00200737 lui a4,0x200 + fcac: 18e6a023 sw a4,384(a3) # e000e180 <_eusrstack+0xc000b180> + fcb0: 8e79 and a2,a2,a4 + fcb2: 0000100f fence.i + fcb6: d384 sw s1,32(a5) + fcb8: abe0 sb s0,22(a5) + fcba: 10c6a023 sw a2,256(a3) + fcbe: b7c5 j fc9e + +0000fcc0 : +LL_SetExtendedScanResponseData(): + fcc0: 1101 addi sp,sp,-32 + fcc2: c64e sw s3,12(sp) + fcc4: 1fff3997 auipc s3,0x1fff3 + fcc8: e4c98993 addi s3,s3,-436 # 20002b10 + fccc: 0149a783 lw a5,20(s3) + fcd0: cc22 sw s0,24(sp) + fcd2: ca26 sw s1,20(sp) + fcd4: c84a sw s2,16(sp) + fcd6: ce06 sw ra,28(sp) + fcd8: 892e mv s2,a1 + fcda: 8436 mv s0,a3 + fcdc: 84ba mv s1,a4 + fcde: c791 beqz a5,fcea + fce0: 47b8 lw a4,72(a5) + fce2: 040007b7 lui a5,0x4000 + fce6: 8ff9 and a5,a5,a4 + fce8: eb91 bnez a5,fcfc + fcea: 2c2030ef jal ra,12fac + fcee: 87aa mv a5,a0 + fcf0: e901 bnez a0,fd00 + fcf2: 0149a783 lw a5,20(s3) + fcf6: 04200513 li a0,66 + fcfa: cb89 beqz a5,fd0c + fcfc: 4531 li a0,12 + fcfe: a039 j fd0c + fd00: 3178 lbu a4,7(a0) + fd02: 4685 li a3,1 + fd04: 8b3d andi a4,a4,15 + fd06: 00d71a63 bne a4,a3,fd1a + fd0a: 4501 li a0,0 + fd0c: 40f2 lw ra,28(sp) + fd0e: 4462 lw s0,24(sp) + fd10: 44d2 lw s1,20(sp) + fd12: 4942 lw s2,16(sp) + fd14: 49b2 lw s3,12(sp) + fd16: 6105 addi sp,sp,32 + fd18: 8082 ret + fd1a: 470d li a4,3 + fd1c: 4549 li a0,18 + fd1e: fee917e3 bne s2,a4,fd0c + fd22: 477d li a4,31 + fd24: fe8764e3 bltu a4,s0,fd0c + fd28: 00078ba3 sb zero,23(a5) # 4000017 <_data_lma+0x3fe4a5b> + fd2c: e411 bnez s0,fd38 + fd2e: 47b8 lw a4,72(a5) + fd30: 49971713 bclri a4,a4,0x19 + fd34: c7b8 sw a4,72(a5) + fd36: bfd1 j fd0a + fd38: e000e6b7 lui a3,0xe000e + fd3c: 4290 lw a2,0(a3) + fd3e: 00200737 lui a4,0x200 + fd42: 18e6a023 sw a4,384(a3) # e000e180 <_eusrstack+0xc000b180> + fd46: 8e79 and a2,a2,a4 + fd48: 0000100f fence.i + fd4c: d3c4 sw s1,36(a5) + fd4e: bbe0 sb s0,23(a5) + fd50: 10c6a023 sw a2,256(a3) + fd54: bf5d j fd0a + +0000fd56 : +LL_SetExtendedAdvertisingEnable(): + fd56: 1141 addi sp,sp,-16 + fd58: c226 sw s1,4(sp) + fd5a: 1fff3497 auipc s1,0x1fff3 + fd5e: db648493 addi s1,s1,-586 # 20002b10 + fd62: 87aa mv a5,a0 + fd64: 48c8 lw a0,20(s1) + fd66: c422 sw s0,8(sp) + fd68: c04a sw s2,0(sp) + fd6a: c606 sw ra,12(sp) + fd6c: 8432 mv s0,a2 + fd6e: 8936 mv s2,a3 + fd70: c115 beqz a0,fd94 + fd72: 4534 lw a3,72(a0) + fd74: 04000737 lui a4,0x4000 + fd78: 8f75 and a4,a4,a3 + fd7a: cb01 beqz a4,fd8a + fd7c: 4531 li a0,12 + fd7e: 40b2 lw ra,12(sp) + fd80: 4422 lw s0,8(sp) + fd82: 4492 lw s1,4(sp) + fd84: 4902 lw s2,0(sp) + fd86: 0141 addi sp,sp,16 + fd88: 8082 ret + fd8a: 8b85 andi a5,a5,1 + fd8c: cb81 beqz a5,fd9c + fd8e: e991 bnez a1,fda2 + fd90: 4549 li a0,18 + fd92: b7f5 j fd7e + fd94: 8b85 andi a5,a5,1 + fd96: ffe5 bnez a5,fd8e + fd98: 4501 li a0,0 + fd9a: b7d5 j fd7e + fd9c: 2ee030ef jal ra,1308a + fda0: bfe5 j fd98 + fda2: 2008 lbu a0,0(s0) + fda4: 208030ef jal ra,12fac + fda8: e511 bnez a0,fdb4 + fdaa: 48dc lw a5,20(s1) + fdac: 04200513 li a0,66 + fdb0: f7f1 bnez a5,fd7c + fdb2: b7f1 j fd7e + fdb4: 4538 lw a4,72(a0) + fdb6: 030007b7 lui a5,0x3000 + fdba: 8ff9 and a5,a5,a4 + fdbc: f3e1 bnez a5,fd7c + fdbe: 3178 lbu a4,7(a0) + fdc0: 4785 li a5,1 + fdc2: 00f71863 bne a4,a5,fdd2 + fdc6: 00095703 lhu a4,0(s2) + fdca: 08000793 li a5,128 + fdce: fce7e1e3 bltu a5,a4,fd90 + fdd2: 4cdc lw a5,28(s1) + fdd4: dfd5 beqz a5,fd90 + fdd6: 2008 lbu a0,0(s0) + fdd8: 4422 lw s0,8(sp) + fdda: 40b2 lw ra,12(sp) + fddc: 4492 lw s1,4(sp) + fdde: 4902 lw s2,0(sp) + fde0: 0141 addi sp,sp,16 + fde2: 8782 jr a5 + +0000fde4 : +LL_SendDataPkt(): + fde4: 1101 addi sp,sp,-32 + fde6: ca26 sw s1,20(sp) + fde8: c84a sw s2,16(sp) + fdea: c452 sw s4,8(sp) + fdec: ce06 sw ra,28(sp) + fdee: cc22 sw s0,24(sp) + fdf0: c64e sw s3,12(sp) + fdf2: 8a2e mv s4,a1 + fdf4: 8932 mv s2,a2 + fdf6: 84b6 mv s1,a3 + fdf8: 69b030ef jal ra,13c92 + fdfc: c945 beqz a0,feac + fdfe: a0418793 addi a5,gp,-1532 # 200013bc + fe02: 00091d63 bnez s2,fe1c + fe06: 4705 li a4,1 + fe08: a398 sb a4,0(a5) + fe0a: 4501 li a0,0 + fe0c: 40f2 lw ra,28(sp) + fe0e: 4462 lw s0,24(sp) + fe10: 44d2 lw s1,20(sp) + fe12: 4942 lw s2,16(sp) + fe14: 49b2 lw s3,12(sp) + fe16: 4a22 lw s4,8(sp) + fe18: 6105 addi sp,sp,32 + fe1a: 8082 ret + fe1c: 2398 lbu a4,0(a5) + fe1e: 4785 li a5,1 + fe20: 842a mv s0,a0 + fe22: 00f71563 bne a4,a5,fe2c + fe26: a0018223 sb zero,-1532(gp) # 200013bc + fe2a: 4a09 li s4,2 + fe2c: e000e7b7 lui a5,0xe000e + fe30: 0007a983 lw s3,0(a5) # e000e000 <_eusrstack+0xc000b000> + fe34: 00200737 lui a4,0x200 + fe38: 18e7a023 sw a4,384(a5) + fe3c: 00e9f9b3 and s3,s3,a4 + fe40: 0000100f fence.i + fe44: 67d030ef jal ra,13cc0 + fe48: c131 beqz a0,fe8c + fe4a: 253c lbu a5,10(a0) + fe4c: a53e sh a5,10(a0) + fe4e: 507c lw a5,100(s0) + fe50: eb9d bnez a5,fe86 + fe52: d068 sw a0,100(s0) + fe54: d428 sw a0,104(s0) + fe56: f8100793 li a5,-127 + fe5a: 14f9 addi s1,s1,-2 + fe5c: b51c sb a5,9(a0) + fe5e: 00052023 sw zero,0(a0) + fe62: 01251623 sh s2,12(a0) + fe66: 01450423 sb s4,8(a0) + fe6a: c144 sw s1,4(a0) + fe6c: 286c lbu a1,22(s0) + fe6e: 4501 li a0,0 + fe70: 28b015b3 bset a1,zero,a1 + fe74: 0805c5b3 zext.h a1,a1 + fe78: 5cc0a0ef jal ra,1a444 + fe7c: e000e7b7 lui a5,0xe000e + fe80: 1137a023 sw s3,256(a5) # e000e100 <_eusrstack+0xc000b100> + fe84: b759 j fe0a + fe86: 543c lw a5,104(s0) + fe88: c388 sw a0,0(a5) + fe8a: b7e9 j fe54 + fe8c: 1fff3797 auipc a5,0x1fff3 + fe90: a647a783 lw a5,-1436(a5) # 200028f0 + fe94: c791 beqz a5,fea0 + fe96: 6595 lui a1,0x5 + fe98: 55558593 addi a1,a1,1365 # 5555 + fe9c: 4505 li a0,1 + fe9e: 9782 jalr a5 + fea0: e000e7b7 lui a5,0xe000e + fea4: 1137a023 sw s3,256(a5) # e000e100 <_eusrstack+0xc000b100> + fea8: 451d li a0,7 + feaa: b78d j fe0c + feac: 4509 li a0,2 + feae: bfb9 j fe0c + +0000feb0 : +gapBondMgrInvertCharCfgItem(): + feb0: 03050713 addi a4,a0,48 + feb4: 211e lhu a5,0(a0) + feb6: 0511 addi a0,a0,4 + feb8: fff7c793 not a5,a5 + febc: fef51e23 sh a5,-4(a0) + fec0: ffe54783 lbu a5,-2(a0) + fec4: fff7c793 not a5,a5 + fec8: fef50f23 sb a5,-2(a0) + fecc: fee514e3 bne a0,a4,feb4 + fed0: 8082 ret + +0000fed2 : +mainRecordNvID_Erase(): + fed2: 1141 addi sp,sp,-16 + fed4: 4619 li a2,6 + fed6: 0ff00593 li a1,255 + feda: c606 sw ra,12(sp) + fedc: c422 sw s0,8(sp) + fede: 842a mv s0,a0 + fee0: 1fff1097 auipc ra,0x1fff1 + fee4: 9ba080e7 jalr -1606(ra) # 2000089a + fee8: 00640513 addi a0,s0,6 + feec: 4619 li a2,6 + feee: 0ff00593 li a1,255 + fef2: 1fff1097 auipc ra,0x1fff1 + fef6: 9a8080e7 jalr -1624(ra) # 2000089a + fefa: 00040723 sb zero,14(s0) + fefe: 40b2 lw ra,12(sp) + ff00: 00041623 sh zero,12(s0) + ff04: 00042823 sw zero,16(s0) + ff08: 4422 lw s0,8(sp) + ff0a: 0141 addi sp,sp,16 + ff0c: 8082 ret + +0000ff0e : +gapBondMgrBondTotal(): + ff0e: 1101 addi sp,sp,-32 + ff10: cc22 sw s0,24(sp) + ff12: ca26 sw s1,20(sp) + ff14: c84a sw s2,16(sp) + ff16: c64e sw s3,12(sp) + ff18: c452 sw s4,8(sp) + ff1a: ce06 sw ra,28(sp) + ff1c: 4481 li s1,0 + ff1e: 4401 li s0,0 + ff20: a1518913 addi s2,gp,-1515 # 200013cd + ff24: a1818993 addi s3,gp,-1512 # 200013d0 + ff28: 4a51 li s4,20 + ff2a: 00094783 lbu a5,0(s2) + ff2e: 00f46b63 bltu s0,a5,ff44 + ff32: 40f2 lw ra,28(sp) + ff34: 4462 lw s0,24(sp) + ff36: 4942 lw s2,16(sp) + ff38: 49b2 lw s3,12(sp) + ff3a: 4a22 lw s4,8(sp) + ff3c: 8526 mv a0,s1 + ff3e: 44d2 lw s1,20(sp) + ff40: 6105 addi sp,sp,32 + ff42: 8082 ret + ff44: 03440533 mul a0,s0,s4 + ff48: 0009a783 lw a5,0(s3) + ff4c: 4619 li a2,6 + ff4e: 0ff00593 li a1,255 + ff52: 953e add a0,a0,a5 + ff54: 3b20a0ef jal ra,1a306 + ff58: e501 bnez a0,ff60 + ff5a: 0485 addi s1,s1,1 + ff5c: 0ff4f493 zext.b s1,s1 + ff60: 0405 addi s0,s0,1 + ff62: 0ff47413 zext.b s0,s0 + ff66: b7d1 j ff2a + +0000ff68 : +gapBondMgrFindEmpty(): + ff68: 1101 addi sp,sp,-32 + ff6a: cc22 sw s0,24(sp) + ff6c: ca26 sw s1,20(sp) + ff6e: c84a sw s2,16(sp) + ff70: c64e sw s3,12(sp) + ff72: ce06 sw ra,28(sp) + ff74: 4401 li s0,0 + ff76: a1518493 addi s1,gp,-1515 # 200013cd + ff7a: a1818913 addi s2,gp,-1512 # 200013d0 + ff7e: 49d1 li s3,20 + ff80: 209c lbu a5,0(s1) + ff82: 00f46b63 bltu s0,a5,ff98 + ff86: 843e mv s0,a5 + ff88: 40f2 lw ra,28(sp) + ff8a: 8522 mv a0,s0 + ff8c: 4462 lw s0,24(sp) + ff8e: 44d2 lw s1,20(sp) + ff90: 4942 lw s2,16(sp) + ff92: 49b2 lw s3,12(sp) + ff94: 6105 addi sp,sp,32 + ff96: 8082 ret + ff98: 03340533 mul a0,s0,s3 + ff9c: 00092783 lw a5,0(s2) + ffa0: 4619 li a2,6 + ffa2: 0ff00593 li a1,255 + ffa6: 953e add a0,a0,a5 + ffa8: 35e0a0ef jal ra,1a306 + ffac: fd71 bnez a0,ff88 + ffae: 0405 addi s0,s0,1 + ffb0: 0ff47413 zext.b s0,s0 + ffb4: b7f1 j ff80 + +0000ffb6 : +gapBondFreeAuthEvt(): + ffb6: a101a503 lw a0,-1520(gp) # 200013c8 + ffba: cd11 beqz a0,ffd6 + ffbc: 1141 addi sp,sp,-16 + ffbe: c606 sw ra,12(sp) + ffc0: b8bf50ef jal ra,5b4a + ffc4: 40b2 lw ra,12(sp) + ffc6: a001a823 sw zero,-1520(gp) # 200013c8 + ffca: a151c783 lbu a5,-1515(gp) # 200013cd + ffce: a0f18a23 sb a5,-1516(gp) # 200013cc + ffd2: 0141 addi sp,sp,16 + ffd4: 8082 ret + ffd6: a151c783 lbu a5,-1515(gp) # 200013cd + ffda: a0f18a23 sb a5,-1516(gp) # 200013cc + ffde: 8082 ret + +0000ffe0 : +gapBondMgrEraseBonding(): + ffe0: 7119 addi sp,sp,-128 + ffe2: daa6 sw s1,116(sp) + ffe4: de86 sw ra,124(sp) + ffe6: dca2 sw s0,120(sp) + ffe8: d8ca sw s2,112(sp) + ffea: d6ce sw s3,108(sp) + ffec: d4d2 sw s4,104(sp) + ffee: a141c783 lbu a5,-1516(gp) # 200013cc + fff2: 84aa mv s1,a0 + fff4: 00a79e63 bne a5,a0,10010 + fff8: a2d18413 addi s0,gp,-1491 # 200013e5 + fffc: 2008 lbu a0,0(s0) + fffe: 4585 li a1,1 + 10000: e13f50ef jal ra,5e12 + 10004: 2008 lbu a0,0(s0) + 10006: 4589 li a1,2 + 10008: e0bf50ef jal ra,5e12 + 1000c: fabff0ef jal ra,ffb6 + 10010: 4919 li s2,6 + 10012: 03248933 mul s2,s1,s2 + 10016: 860a mv a2,sp + 10018: 45d1 li a1,20 + 1001a: 20090993 addi s3,s2,512 + 1001e: 854e mv a0,s3 + 10020: ff8f60ef jal ra,6818 + 10024: c919 beqz a0,1003a + 10026: 4401 li s0,0 + 10028: 50f6 lw ra,124(sp) + 1002a: 8522 mv a0,s0 + 1002c: 5466 lw s0,120(sp) + 1002e: 54d6 lw s1,116(sp) + 10030: 5946 lw s2,112(sp) + 10032: 59b6 lw s3,108(sp) + 10034: 5a26 lw s4,104(sp) + 10036: 6109 addi sp,sp,128 + 10038: 8082 ret + 1003a: 4619 li a2,6 + 1003c: 0ff00593 li a1,255 + 10040: 850a mv a0,sp + 10042: 2c40a0ef jal ra,1a306 + 10046: f165 bnez a0,10026 + 10048: 4451 li s0,20 + 1004a: 02848433 mul s0,s1,s0 + 1004e: a1818a13 addi s4,gp,-1512 # 200013d0 + 10052: 000a2503 lw a0,0(s4) + 10056: 9522 add a0,a0,s0 + 10058: e7bff0ef jal ra,fed2 + 1005c: 0848 addi a0,sp,20 + 1005e: 4671 li a2,28 + 10060: 0ff00593 li a1,255 + 10064: 1fff1097 auipc ra,0x1fff1 + 10068: 836080e7 jalr -1994(ra) # 2000089a + 1006c: 1808 addi a0,sp,48 + 1006e: 03000613 li a2,48 + 10072: 0ff00593 li a1,255 + 10076: 1fff1097 auipc ra,0x1fff1 + 1007a: 824080e7 jalr -2012(ra) # 2000089a + 1007e: 000a2603 lw a2,0(s4) + 10082: 45d1 li a1,20 + 10084: 854e mv a0,s3 + 10086: 9622 add a2,a2,s0 + 10088: a21f60ef jal ra,6aa8 + 1008c: 0850 addi a2,sp,20 + 1008e: 842a mv s0,a0 + 10090: 45f1 li a1,28 + 10092: 20190513 addi a0,s2,513 + 10096: a13f60ef jal ra,6aa8 + 1009a: 0850 addi a2,sp,20 + 1009c: 8c49 or s0,s0,a0 + 1009e: 45f1 li a1,28 + 100a0: 20290513 addi a0,s2,514 + 100a4: a05f60ef jal ra,6aa8 + 100a8: 0ff47413 zext.b s0,s0 + 100ac: 0850 addi a2,sp,20 + 100ae: 8c49 or s0,s0,a0 + 100b0: 45c1 li a1,16 + 100b2: 20390513 addi a0,s2,515 + 100b6: 9f3f60ef jal ra,6aa8 + 100ba: 0ff47413 zext.b s0,s0 + 100be: 0850 addi a2,sp,20 + 100c0: 8c49 or s0,s0,a0 + 100c2: 45c1 li a1,16 + 100c4: 20490513 addi a0,s2,516 + 100c8: 9e1f60ef jal ra,6aa8 + 100cc: 0ff47413 zext.b s0,s0 + 100d0: 0850 addi a2,sp,20 + 100d2: 8c49 or s0,s0,a0 + 100d4: 4591 li a1,4 + 100d6: 20590513 addi a0,s2,517 + 100da: 9cff60ef jal ra,6aa8 + 100de: 0ff47413 zext.b s0,s0 + 100e2: 8c49 or s0,s0,a0 + 100e4: 651d lui a0,0x7 + 100e6: 1810 addi a2,sp,48 + 100e8: 03000593 li a1,48 + 100ec: 9526 add a0,a0,s1 + 100ee: 9bbf60ef jal ra,6aa8 + 100f2: 0ff47413 zext.b s0,s0 + 100f6: 8c49 or s0,s0,a0 + 100f8: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 100fc: 0ff47413 zext.b s0,s0 + 10100: 955f60ef jal ra,6a54 + 10104: b715 j 10028 + +00010106 : +gapBondMgr_SyncWhiteList(): + 10106: 1101 addi sp,sp,-32 + 10108: cc22 sw s0,24(sp) + 1010a: ca26 sw s1,20(sp) + 1010c: c64e sw s3,12(sp) + 1010e: c452 sw s4,8(sp) + 10110: ce06 sw ra,28(sp) + 10112: c84a sw s2,16(sp) + 10114: 4401 li s0,0 + 10116: ae0ff0ef jal ra,f3f6 + 1011a: a1518993 addi s3,gp,-1515 # 200013cd + 1011e: 4a51 li s4,20 + 10120: a1818493 addi s1,gp,-1512 # 200013d0 + 10124: 0009c783 lbu a5,0(s3) + 10128: 00f44a63 blt s0,a5,1013c + 1012c: 40f2 lw ra,28(sp) + 1012e: 4462 lw s0,24(sp) + 10130: 44d2 lw s1,20(sp) + 10132: 4942 lw s2,16(sp) + 10134: 49b2 lw s3,12(sp) + 10136: 4a22 lw s4,8(sp) + 10138: 6105 addi sp,sp,32 + 1013a: 8082 ret + 1013c: 03440933 mul s2,s0,s4 + 10140: 4088 lw a0,0(s1) + 10142: 4619 li a2,6 + 10144: 0ff00593 li a1,255 + 10148: 954a add a0,a0,s2 + 1014a: 1bc0a0ef jal ra,1a306 + 1014e: e511 bnez a0,1015a + 10150: 408c lw a1,0(s1) + 10152: 95ca add a1,a1,s2 + 10154: 35e8 lbu a0,15(a1) + 10156: abeff0ef jal ra,f414 + 1015a: 0405 addi s0,s0,1 + 1015c: b7e1 j 10124 + +0001015e : +gapBondSetupPrivFlag(): + 1015e: 1101 addi sp,sp,-32 + 10160: ce06 sw ra,28(sp) + 10162: dadff0ef jal ra,ff0e + 10166: 4705 li a4,1 + 10168: 4789 li a5,2 + 1016a: 00a76363 bltu a4,a0,10170 + 1016e: 47a9 li a5,10 + 10170: 00f10613 addi a2,sp,15 + 10174: 4585 li a1,1 + 10176: 4515 li a0,5 + 10178: 87dc sb a5,15(sp) + 1017a: 76a010ef jal ra,118e4 + 1017e: 40f2 lw ra,28(sp) + 10180: 6105 addi sp,sp,32 + 10182: 8082 ret + +00010184 : +gapBondMgrReadBonds(): + 10184: 1101 addi sp,sp,-32 + 10186: cc22 sw s0,24(sp) + 10188: ca26 sw s1,20(sp) + 1018a: c64e sw s3,12(sp) + 1018c: c452 sw s4,8(sp) + 1018e: c256 sw s5,4(sp) + 10190: ce06 sw ra,28(sp) + 10192: c84a sw s2,16(sp) + 10194: 4401 li s0,0 + 10196: a1518993 addi s3,gp,-1515 # 200013cd + 1019a: 4a51 li s4,20 + 1019c: a1818493 addi s1,gp,-1512 # 200013d0 + 101a0: 4a99 li s5,6 + 101a2: 0009c783 lbu a5,0(s3) + 101a6: 02f46163 bltu s0,a5,101c8 + 101aa: a171c783 lbu a5,-1513(gp) # 200013cf + 101ae: c399 beqz a5,101b4 + 101b0: f57ff0ef jal ra,10106 + 101b4: 4462 lw s0,24(sp) + 101b6: 40f2 lw ra,28(sp) + 101b8: 44d2 lw s1,20(sp) + 101ba: 4942 lw s2,16(sp) + 101bc: 49b2 lw s3,12(sp) + 101be: 4a22 lw s4,8(sp) + 101c0: 4a92 lw s5,4(sp) + 101c2: 6105 addi sp,sp,32 + 101c4: f9bff06f j 1015e + 101c8: 03440933 mul s2,s0,s4 + 101cc: 4090 lw a2,0(s1) + 101ce: 45d1 li a1,20 + 101d0: 03540533 mul a0,s0,s5 + 101d4: 964a add a2,a2,s2 + 101d6: 20050513 addi a0,a0,512 # 7200 + 101da: 08054533 zext.h a0,a0 + 101de: e3af60ef jal ra,6818 + 101e2: c905 beqz a0,10212 + 101e4: 4088 lw a0,0(s1) + 101e6: 4619 li a2,6 + 101e8: 0ff00593 li a1,255 + 101ec: 954a add a0,a0,s2 + 101ee: 1fff0097 auipc ra,0x1fff0 + 101f2: 6ac080e7 jalr 1708(ra) # 2000089a + 101f6: 4088 lw a0,0(s1) + 101f8: 4619 li a2,6 + 101fa: 0ff00593 li a1,255 + 101fe: 954a add a0,a0,s2 + 10200: 0519 addi a0,a0,6 + 10202: 1fff0097 auipc ra,0x1fff0 + 10206: 698080e7 jalr 1688(ra) # 2000089a + 1020a: 409c lw a5,0(s1) + 1020c: 97ca add a5,a5,s2 + 1020e: 00079623 sh zero,12(a5) + 10212: 0405 addi s0,s0,1 + 10214: 0ff47413 zext.b s0,s0 + 10218: b769 j 101a2 + +0001021a : +gapBondMgrSendServiceChange(): + 1021a: 212a lhu a0,2(a0) + 1021c: a2d1c583 lbu a1,-1491(gp) # 200013e5 + 10220: 8d0f906f j 92f0 + +00010224 : +gapBondMgrFindAddr(): + 10224: 1101 addi sp,sp,-32 + 10226: cc22 sw s0,24(sp) + 10228: ca26 sw s1,20(sp) + 1022a: c84a sw s2,16(sp) + 1022c: c64e sw s3,12(sp) + 1022e: c452 sw s4,8(sp) + 10230: ce06 sw ra,28(sp) + 10232: 84aa mv s1,a0 + 10234: 4401 li s0,0 + 10236: a1518913 addi s2,gp,-1515 # 200013cd + 1023a: a1818993 addi s3,gp,-1512 # 200013d0 + 1023e: 4a51 li s4,20 + 10240: 00094783 lbu a5,0(s2) + 10244: 00f46c63 bltu s0,a5,1025c + 10248: 843e mv s0,a5 + 1024a: 40f2 lw ra,28(sp) + 1024c: 8522 mv a0,s0 + 1024e: 4462 lw s0,24(sp) + 10250: 44d2 lw s1,20(sp) + 10252: 4942 lw s2,16(sp) + 10254: 49b2 lw s3,12(sp) + 10256: 4a22 lw s4,8(sp) + 10258: 6105 addi sp,sp,32 + 1025a: 8082 ret + 1025c: 03440533 mul a0,s0,s4 + 10260: 0009a783 lw a5,0(s3) + 10264: 4619 li a2,6 + 10266: 85a6 mv a1,s1 + 10268: 953e add a0,a0,a5 + 1026a: 1fff0097 auipc ra,0x1fff0 + 1026e: 670080e7 jalr 1648(ra) # 200008da + 10272: fd61 bnez a0,1024a + 10274: 0405 addi s0,s0,1 + 10276: 0ff47413 zext.b s0,s0 + 1027a: b7d9 j 10240 + +0001027c : +gapBondMgrAddBond(): + 1027c: 711d addi sp,sp,-96 + 1027e: c8ca sw s2,80(sp) + 10280: a1018913 addi s2,gp,-1520 # 200013c8 + 10284: 00092783 lw a5,0(s2) + 10288: c4d2 sw s4,72(sp) + 1028a: c2d6 sw s5,68(sp) + 1028c: ce86 sw ra,92(sp) + 1028e: cca2 sw s0,88(sp) + 10290: caa6 sw s1,84(sp) + 10292: c6ce sw s3,76(sp) + 10294: c0da sw s6,64(sp) + 10296: de5e sw s7,60(sp) + 10298: dc62 sw s8,56(sp) + 1029a: da66 sw s9,52(sp) + 1029c: d86a sw s10,48(sp) + 1029e: 8a2a mv s4,a0 + 102a0: 8aae mv s5,a1 + 102a2: e38d bnez a5,102c4 + 102a4: 22050263 beqz a0,104c8 + 102a8: 22058063 beqz a1,104c8 + 102ac: f79ff0ef jal ra,10224 + 102b0: a1418413 addi s0,gp,-1516 # 200013cc + 102b4: a008 sb a0,0(s0) + 102b6: a151c783 lbu a5,-1515(gp) # 200013cd + 102ba: 00f56563 bltu a0,a5,102c4 + 102be: cabff0ef jal ra,ff68 + 102c2: a008 sb a0,0(s0) + 102c4: a1418493 addi s1,gp,-1516 # 200013cc + 102c8: a1518b93 addi s7,gp,-1515 # 200013cd + 102cc: 2088 lbu a0,0(s1) + 102ce: 000bc783 lbu a5,0(s7) + 102d2: 1ef57b63 bgeu a0,a5,104c8 + 102d6: 00092783 lw a5,0(s2) + 102da: 12079463 bnez a5,10402 + 102de: 4981 li s3,0 + 102e0: 5b7d li s6,-1 + 102e2: 4401 li s0,0 + 102e4: 4d51 li s10,20 + 102e6: a1818c13 addi s8,gp,-1512 # 200013d0 + 102ea: a80d j 1031c + 102ec: 02e98563 beq s3,a4,10316 + 102f0: 03a98cb3 mul s9,s3,s10 + 102f4: 000c2503 lw a0,0(s8) + 102f8: 4619 li a2,6 + 102fa: 0ff00593 li a1,255 + 102fe: 9566 add a0,a0,s9 + 10300: 0060a0ef jal ra,1a306 + 10304: e909 bnez a0,10316 + 10306: 000c2783 lw a5,0(s8) + 1030a: 97e6 add a5,a5,s9 + 1030c: 4b9c lw a5,16(a5) + 1030e: 0af47433 maxu s0,s0,a5 + 10312: 0afb5b33 minu s6,s6,a5 + 10316: 0985 addi s3,s3,1 + 10318: 0ff9f993 zext.b s3,s3 + 1031c: 000bc783 lbu a5,0(s7) + 10320: 2098 lbu a4,0(s1) + 10322: fcf9e5e3 bltu s3,a5,102ec + 10326: 41640b33 sub s6,s0,s6 + 1032a: 040b5563 bgez s6,10374 + 1032e: 4981 li s3,0 + 10330: 4401 li s0,0 + 10332: 4cd1 li s9,20 + 10334: a1818b13 addi s6,gp,-1512 # 200013d0 + 10338: a80d j 1036a + 1033a: 02e98563 beq s3,a4,10364 + 1033e: 03998c33 mul s8,s3,s9 + 10342: 000b2503 lw a0,0(s6) + 10346: 4619 li a2,6 + 10348: 0ff00593 li a1,255 + 1034c: 9562 add a0,a0,s8 + 1034e: 7b9090ef jal ra,1a306 + 10352: e909 bnez a0,10364 + 10354: 000b2783 lw a5,0(s6) + 10358: 97e2 add a5,a5,s8 + 1035a: 4b9c lw a5,16(a5) + 1035c: 0007c463 bltz a5,10364 + 10360: 0af47433 maxu s0,s0,a5 + 10364: 0985 addi s3,s3,1 + 10366: 0ff9f993 zext.b s3,s3 + 1036a: 000bc783 lbu a5,0(s7) + 1036e: 2098 lbu a4,0(s1) + 10370: fcf9e5e3 bltu s3,a5,1033a + 10374: 2088 lbu a0,0(s1) + 10376: 4785 li a5,1 + 10378: 0405 addi s0,s0,1 + 1037a: 0af47433 maxu s0,s0,a5 + 1037e: 4799 li a5,6 + 10380: 02f50533 mul a0,a0,a5 + 10384: 8652 mv a2,s4 + 10386: 45d1 li a1,20 + 10388: 008a2823 sw s0,16(s4) + 1038c: 20050513 addi a0,a0,512 + 10390: 08054533 zext.h a0,a0 + 10394: f14f60ef jal ra,6aa8 + 10398: 03000613 li a2,48 + 1039c: 0ff00593 li a1,255 + 103a0: 850a mv a0,sp + 103a2: 1fff0097 auipc ra,0x1fff0 + 103a6: 4f8080e7 jalr 1272(ra) # 2000089a + 103aa: 2088 lbu a0,0(s1) + 103ac: 679d lui a5,0x7 + 103ae: 860a mv a2,sp + 103b0: 953e add a0,a0,a5 + 103b2: 03000593 li a1,48 + 103b6: 08054533 zext.h a0,a0 + 103ba: eeef60ef jal ra,6aa8 + 103be: 209c lbu a5,0(s1) + 103c0: 4751 li a4,20 + 103c2: a181a503 lw a0,-1512(gp) # 200013d0 + 103c6: 02e787b3 mul a5,a5,a4 + 103ca: 4651 li a2,20 + 103cc: 85d2 mv a1,s4 + 103ce: 953e add a0,a0,a5 + 103d0: 1fff0097 auipc ra,0x1fff0 + 103d4: 48c080e7 jalr 1164(ra) # 2000085c + 103d8: 01592023 sw s5,0(s2) + 103dc: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 103e0: e74f60ef jal ra,6a54 + 103e4: 4501 li a0,0 + 103e6: 40f6 lw ra,92(sp) + 103e8: 4466 lw s0,88(sp) + 103ea: 44d6 lw s1,84(sp) + 103ec: 4946 lw s2,80(sp) + 103ee: 49b6 lw s3,76(sp) + 103f0: 4a26 lw s4,72(sp) + 103f2: 4a96 lw s5,68(sp) + 103f4: 4b06 lw s6,64(sp) + 103f6: 5bf2 lw s7,60(sp) + 103f8: 5c62 lw s8,56(sp) + 103fa: 5cd2 lw s9,52(sp) + 103fc: 5d42 lw s10,48(sp) + 103fe: 6125 addi sp,sp,96 + 10400: 8082 ret + 10402: 4790 lw a2,8(a5) + 10404: 4701 li a4,0 + 10406: c205 beqz a2,10426 + 10408: 4799 li a5,6 + 1040a: 02f50533 mul a0,a0,a5 + 1040e: 45f1 li a1,28 + 10410: 20150513 addi a0,a0,513 + 10414: 08054533 zext.h a0,a0 + 10418: e90f60ef jal ra,6aa8 + 1041c: 00092783 lw a5,0(s2) + 10420: 4705 li a4,1 + 10422: 0007a423 sw zero,8(a5) # 7008 + 10426: 00092783 lw a5,0(s2) + 1042a: 4b90 lw a2,16(a5) + 1042c: c235 beqz a2,10490 + 1042e: 2088 lbu a0,0(s1) + 10430: 4799 li a5,6 + 10432: 45f1 li a1,28 + 10434: 02f50533 mul a0,a0,a5 + 10438: 20250513 addi a0,a0,514 + 1043c: 08054533 zext.h a0,a0 + 10440: e68f60ef jal ra,6aa8 + 10444: 00092783 lw a5,0(s2) + 10448: 4bd0 lw a2,20(a5) + 1044a: 0007a823 sw zero,16(a5) + 1044e: e239 bnez a2,10494 + 10450: 47d0 lw a2,12(a5) + 10452: d649 beqz a2,103dc + 10454: 2088 lbu a0,0(s1) + 10456: 4419 li s0,6 + 10458: 45c1 li a1,16 + 1045a: 02850533 mul a0,a0,s0 + 1045e: 20450513 addi a0,a0,516 + 10462: 08054533 zext.h a0,a0 + 10466: e42f60ef jal ra,6aa8 + 1046a: 2088 lbu a0,0(s1) + 1046c: 00092783 lw a5,0(s2) + 10470: 4591 li a1,4 + 10472: 02850533 mul a0,a0,s0 + 10476: 47d0 lw a2,12(a5) + 10478: 0641 addi a2,a2,16 + 1047a: 20550513 addi a0,a0,517 + 1047e: 08054533 zext.h a0,a0 + 10482: e26f60ef jal ra,6aa8 + 10486: 00092783 lw a5,0(s2) + 1048a: 0007a623 sw zero,12(a5) + 1048e: b7b9 j 103dc + 10490: 4bd0 lw a2,20(a5) + 10492: c20d beqz a2,104b4 + 10494: 2088 lbu a0,0(s1) + 10496: 4799 li a5,6 + 10498: 45c1 li a1,16 + 1049a: 02f50533 mul a0,a0,a5 + 1049e: 20350513 addi a0,a0,515 + 104a2: 08054533 zext.h a0,a0 + 104a6: e02f60ef jal ra,6aa8 + 104aa: 00092783 lw a5,0(s2) + 104ae: 0007aa23 sw zero,20(a5) + 104b2: bf79 j 10450 + 104b4: 47d0 lw a2,12(a5) + 104b6: fe59 bnez a2,10454 + 104b8: f315 bnez a4,103dc + 104ba: a171c783 lbu a5,-1513(gp) # 200013cf + 104be: c399 beqz a5,104c4 + 104c0: c47ff0ef jal ra,10106 + 104c4: c9bff0ef jal ra,1015e + 104c8: 4505 li a0,1 + 104ca: bf31 j 103e6 + +000104cc : +gapBondPairStateCB(): + 104cc: 1101 addi sp,sp,-32 + 104ce: cc22 sw s0,24(sp) + 104d0: ce06 sw ra,28(sp) + 104d2: 842a mv s0,a0 + 104d4: c62e sw a1,12(sp) + 104d6: c432 sw a2,8(sp) + 104d8: e58fb0ef jal ra,bb30 + 104dc: cd09 beqz a0,104f6 + 104de: a1c1a783 lw a5,-1508(gp) # 200013d4 + 104e2: cb91 beqz a5,104f6 + 104e4: 43dc lw a5,4(a5) + 104e6: cb81 beqz a5,104f6 + 104e8: 8522 mv a0,s0 + 104ea: 4462 lw s0,24(sp) + 104ec: 4622 lw a2,8(sp) + 104ee: 45b2 lw a1,12(sp) + 104f0: 40f2 lw ra,28(sp) + 104f2: 6105 addi sp,sp,32 + 104f4: 8782 jr a5 + 104f6: 40f2 lw ra,28(sp) + 104f8: 4462 lw s0,24(sp) + 104fa: 6105 addi sp,sp,32 + 104fc: 8082 ret + +000104fe : +gapBondMgrChangeState.constprop.0(): + 104fe: 7179 addi sp,sp,-48 + 10500: 4799 li a5,6 + 10502: d422 sw s0,40(sp) + 10504: 02f50433 mul s0,a0,a5 + 10508: d226 sw s1,36(sp) + 1050a: 0070 addi a2,sp,12 + 1050c: 84ae mv s1,a1 + 1050e: 45d1 li a1,20 + 10510: d606 sw ra,44(sp) + 10512: 20040413 addi s0,s0,512 + 10516: 08044433 zext.h s0,s0 + 1051a: 8522 mv a0,s0 + 1051c: afcf60ef jal ra,6818 + 10520: c519 beqz a0,1052e + 10522: 4501 li a0,0 + 10524: 50b2 lw ra,44(sp) + 10526: 5422 lw s0,40(sp) + 10528: 5492 lw s1,36(sp) + 1052a: 6145 addi sp,sp,48 + 1052c: 8082 ret + 1052e: 4619 li a2,6 + 10530: 0ff00593 li a1,255 + 10534: 0068 addi a0,sp,12 + 10536: 5d1090ef jal ra,1a306 + 1053a: f565 bnez a0,10522 + 1053c: 84b8 lhu a4,24(sp) + 1053e: 0fd77793 andi a5,a4,253 + 10542: c489 beqz s1,1054c + 10544: 0ff77793 zext.b a5,a4 + 10548: 0027e793 ori a5,a5,2 + 1054c: 00f70c63 beq a4,a5,10564 + 10550: 0070 addi a2,sp,12 + 10552: 45d1 li a1,20 + 10554: 8522 mv a0,s0 + 10556: 84fc sh a5,24(sp) + 10558: d50f60ef jal ra,6aa8 + 1055c: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 10560: cf4f60ef jal ra,6a54 + 10564: 4505 li a0,1 + 10566: bf7d j 10524 + +00010568 : +gapBondMgrEraseAllBondings.isra.0(): + 10568: 1141 addi sp,sp,-16 + 1056a: c422 sw s0,8(sp) + 1056c: c226 sw s1,4(sp) + 1056e: c606 sw ra,12(sp) + 10570: 4501 li a0,0 + 10572: 4401 li s0,0 + 10574: a1518493 addi s1,gp,-1515 # 200013cd + 10578: 209c lbu a5,0(s1) + 1057a: 00f47363 bgeu s0,a5,10580 + 1057e: c511 beqz a0,1058a + 10580: 40b2 lw ra,12(sp) + 10582: 4422 lw s0,8(sp) + 10584: 4492 lw s1,4(sp) + 10586: 0141 addi sp,sp,16 + 10588: 8082 ret + 1058a: 8522 mv a0,s0 + 1058c: 0405 addi s0,s0,1 + 1058e: a53ff0ef jal ra,ffe0 + 10592: 0ff47413 zext.b s0,s0 + 10596: b7cd j 10578 + +00010598 : +gapBondMgrGetPublicAddr.isra.0(): + 10598: a151c783 lbu a5,-1515(gp) # 200013cd + 1059c: 02f57e63 bgeu a0,a5,105d8 + 105a0: 7179 addi sp,sp,-48 + 105a2: d422 sw s0,40(sp) + 105a4: d606 sw ra,44(sp) + 105a6: 842e mv s0,a1 + 105a8: c585 beqz a1,105d0 + 105aa: 4799 li a5,6 + 105ac: 02f50533 mul a0,a0,a5 + 105b0: 0070 addi a2,sp,12 + 105b2: 45d1 li a1,20 + 105b4: 20050513 addi a0,a0,512 + 105b8: 08054533 zext.h a0,a0 + 105bc: a5cf60ef jal ra,6818 + 105c0: e901 bnez a0,105d0 + 105c2: 4619 li a2,6 + 105c4: 006c addi a1,sp,12 + 105c6: 8522 mv a0,s0 + 105c8: 1fff0097 auipc ra,0x1fff0 + 105cc: 294080e7 jalr 660(ra) # 2000085c + 105d0: 50b2 lw ra,44(sp) + 105d2: 5422 lw s0,40(sp) + 105d4: 6145 addi sp,sp,48 + 105d6: 8082 ret + 105d8: 8082 ret + +000105da : +gapBondMgrUpdateCharCfg(): + 105da: 4799 li a5,6 + 105dc: 02f507b3 mul a5,a0,a5 + 105e0: 7159 addi sp,sp,-112 + 105e2: d4a2 sw s0,104(sp) + 105e4: cece sw s3,92(sp) + 105e6: 8432 mv s0,a2 + 105e8: 89ae mv s3,a1 + 105ea: 0070 addi a2,sp,12 + 105ec: 45d1 li a1,20 + 105ee: d2a6 sw s1,100(sp) + 105f0: d686 sw ra,108(sp) + 105f2: 20078793 addi a5,a5,512 + 105f6: d0ca sw s2,96(sp) + 105f8: 84aa mv s1,a0 + 105fa: 0807c533 zext.h a0,a5 + 105fe: a1af60ef jal ra,6818 + 10602: c911 beqz a0,10616 + 10604: 4901 li s2,0 + 10606: 50b6 lw ra,108(sp) + 10608: 5426 lw s0,104(sp) + 1060a: 5496 lw s1,100(sp) + 1060c: 49f6 lw s3,92(sp) + 1060e: 854a mv a0,s2 + 10610: 5906 lw s2,96(sp) + 10612: 6165 addi sp,sp,112 + 10614: 8082 ret + 10616: 4619 li a2,6 + 10618: 0ff00593 li a1,255 + 1061c: 0068 addi a0,sp,12 + 1061e: 4e9090ef jal ra,1a306 + 10622: f16d bnez a0,10604 + 10624: 679d lui a5,0x7 + 10626: 94be add s1,s1,a5 + 10628: 1010 addi a2,sp,32 + 1062a: 03000593 li a1,48 + 1062e: 8526 mv a0,s1 + 10630: 9e8f60ef jal ra,6818 + 10634: 892a mv s2,a0 + 10636: c119 beqz a0,1063c + 10638: 4905 li s2,1 + 1063a: b7f1 j 10606 + 1063c: 1008 addi a0,sp,32 + 1063e: 873ff0ef jal ra,feb0 + 10642: 04099263 bnez s3,10686 + 10646: 03000613 li a2,48 + 1064a: 4581 li a1,0 + 1064c: 1008 addi a0,sp,32 + 1064e: 4b9090ef jal ra,1a306 + 10652: f17d bnez a0,10638 + 10654: 03000613 li a2,48 + 10658: 4581 li a1,0 + 1065a: 1008 addi a0,sp,32 + 1065c: 1fff0097 auipc ra,0x1fff0 + 10660: 23e080e7 jalr 574(ra) # 2000089a + 10664: 4785 li a5,1 + 10666: 1008 addi a0,sp,32 + 10668: a2f18023 sb a5,-1504(gp) # 200013d8 + 1066c: 845ff0ef jal ra,feb0 + 10670: 1010 addi a2,sp,32 + 10672: 03000593 li a1,48 + 10676: 8526 mv a0,s1 + 10678: c30f60ef jal ra,6aa8 + 1067c: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 10680: bd4f60ef jal ra,6a54 + 10684: bf55 j 10638 + 10686: 101c addi a5,sp,32 + 10688: 873e mv a4,a5 + 1068a: 2316 lhu a3,0(a4) + 1068c: 03368563 beq a3,s3,106b6 + 10690: 0711 addi a4,a4,4 # 200004 <_data_lma+0x1e4a48> + 10692: 0894 addi a3,sp,80 + 10694: fed71be3 bne a4,a3,1068a + 10698: d43d beqz s0,10606 + 1069a: 239a lhu a4,0(a5) + 1069c: c711 beqz a4,106a8 + 1069e: 0791 addi a5,a5,4 # 7004 + 106a0: 0898 addi a4,sp,80 + 106a2: fee79ce3 bne a5,a4,1069a + 106a6: b785 j 10606 + 106a8: 23b8 lbu a4,2(a5) + 106aa: 01379023 sh s3,0(a5) + 106ae: f88705e3 beq a4,s0,10638 + 106b2: a3a0 sb s0,2(a5) + 106b4: bf45 j 10664 + 106b6: 233c lbu a5,2(a4) + 106b8: f88780e3 beq a5,s0,10638 + 106bc: a320 sb s0,2(a4) + 106be: f05d bnez s0,10664 + 106c0: 00071023 sh zero,0(a4) + 106c4: b745 j 10664 + +000106c6 : +GAPBondMgr_ParamInit(): + 106c6: 1101 addi sp,sp,-32 + 106c8: ca26 sw s1,20(sp) + 106ca: c84a sw s2,16(sp) + 106cc: c64e sw s3,12(sp) + 106ce: ce06 sw ra,28(sp) + 106d0: cc22 sw s0,24(sp) + 106d2: c452 sw s4,8(sp) + 106d4: c256 sw s5,4(sp) + 106d6: 1fff2997 auipc s3,0x1fff2 + 106da: 1f298993 addi s3,s3,498 # 200028c8 + 106de: 57fd li a5,-1 + 106e0: 00e9c503 lbu a0,14(s3) + 106e4: a2f186a3 sb a5,-1491(gp) # 200013e5 + 106e8: a0018aa3 sb zero,-1515(gp) # 200013cd + 106ec: 47d1 li a5,20 + 106ee: 02f50533 mul a0,a0,a5 + 106f2: 04200593 li a1,66 + 106f6: a1818493 addi s1,gp,-1512 # 200013d0 + 106fa: a1518913 addi s2,gp,-1515 # 200013cd + 106fe: 08054533 zext.h a0,a0 + 10702: 7eb090ef jal ra,1a6ec + 10706: c088 sw a0,0(s1) + 10708: c10d beqz a0,1072a + 1070a: 00e9c783 lbu a5,14(s3) + 1070e: 4401 li s0,0 + 10710: 4ad1 li s5,20 + 10712: 00f90023 sb a5,0(s2) + 10716: 00094783 lbu a5,0(s2) + 1071a: 08f46663 bltu s0,a5,107a6 + 1071e: 0089a783 lw a5,8(s3) + 10722: 0c078163 beqz a5,107e4 + 10726: a0018623 sb zero,-1524(gp) # 200013c4 + 1072a: 00094783 lbu a5,0(s2) + 1072e: 4405 li s0,1 + 10730: 4641 li a2,16 + 10732: 4581 li a1,0 + 10734: 1fff2517 auipc a0,0x1fff2 + 10738: 2fc50513 addi a0,a0,764 # 20002a30 + 1073c: a0f18a23 sb a5,-1516(gp) # 200013cc + 10740: a2818623 sb s0,-1492(gp) # 200013e4 + 10744: a001a823 sw zero,-1520(gp) # 200013c8 + 10748: a20185a3 sb zero,-1493(gp) # 200013e3 + 1074c: a2018523 sb zero,-1494(gp) # 200013e2 + 10750: 1fff0097 auipc ra,0x1fff0 + 10754: 14a080e7 jalr 330(ra) # 2000089a + 10758: a20184a3 sb zero,-1495(gp) # 200013e1 + 1075c: 07700793 li a5,119 + 10760: a2f18423 sb a5,-1496(gp) # 200013e0 + 10764: a201a223 sw zero,-1500(gp) # 200013dc + 10768: a20180a3 sb zero,-1503(gp) # 200013d9 + 1076c: 4795 li a5,5 + 1076e: 82f18823 sb a5,-2000(gp) # 200011e8 + 10772: 47c1 li a5,16 + 10774: 82f187a3 sb a5,-2001(gp) # 200011e7 + 10778: 40f2 lw ra,28(sp) + 1077a: 82818723 sb s0,-2002(gp) # 200011e6 + 1077e: 828186a3 sb s0,-2003(gp) # 200011e5 + 10782: 82818623 sb s0,-2004(gp) # 200011e4 + 10786: 4462 lw s0,24(sp) + 10788: a2018023 sb zero,-1504(gp) # 200013d8 + 1078c: a001ae23 sw zero,-1508(gp) # 200013d4 + 10790: a0018ba3 sb zero,-1513(gp) # 200013cf + 10794: a0018b23 sb zero,-1514(gp) # 200013ce + 10798: 44d2 lw s1,20(sp) + 1079a: 4942 lw s2,16(sp) + 1079c: 49b2 lw s3,12(sp) + 1079e: 4a22 lw s4,8(sp) + 107a0: 4a92 lw s5,4(sp) + 107a2: 6105 addi sp,sp,32 + 107a4: 8082 ret + 107a6: 03540a33 mul s4,s0,s5 + 107aa: 4088 lw a0,0(s1) + 107ac: 4619 li a2,6 + 107ae: 0ff00593 li a1,255 + 107b2: 0405 addi s0,s0,1 + 107b4: 0ff47413 zext.b s0,s0 + 107b8: 9552 add a0,a0,s4 + 107ba: 1fff0097 auipc ra,0x1fff0 + 107be: 0e0080e7 jalr 224(ra) # 2000089a + 107c2: 4088 lw a0,0(s1) + 107c4: 4619 li a2,6 + 107c6: 0ff00593 li a1,255 + 107ca: 9552 add a0,a0,s4 + 107cc: 0519 addi a0,a0,6 + 107ce: 1fff0097 auipc ra,0x1fff0 + 107d2: 0cc080e7 jalr 204(ra) # 2000089a + 107d6: 409c lw a5,0(s1) + 107d8: 97d2 add a5,a5,s4 + 107da: 00079623 sh zero,12(a5) + 107de: 00078723 sb zero,14(a5) + 107e2: bf15 j 10716 + 107e4: f8000793 li a5,-128 + 107e8: a0f18623 sb a5,-1524(gp) # 200013c4 + 107ec: bf3d j 1072a + +000107ee : +GAPBondMgr_Erase(): + 107ee: 7119 addi sp,sp,-128 + 107f0: daa6 sw s1,116(sp) + 107f2: d8ca sw s2,112(sp) + 107f4: d6ce sw s3,108(sp) + 107f6: d4d2 sw s4,104(sp) + 107f8: d2d6 sw s5,100(sp) + 107fa: cede sw s7,92(sp) + 107fc: cce2 sw s8,88(sp) + 107fe: de86 sw ra,124(sp) + 10800: dca2 sw s0,120(sp) + 10802: d0da sw s6,96(sp) + 10804: 4481 li s1,0 + 10806: a1518b93 addi s7,gp,-1515 # 200013cd + 1080a: 4c51 li s8,20 + 1080c: a1818a93 addi s5,gp,-1512 # 200013d0 + 10810: 4919 li s2,6 + 10812: 699d lui s3,0x7 + 10814: 82e18a13 addi s4,gp,-2002 # 200011e6 + 10818: 000bc783 lbu a5,0(s7) + 1081c: 02f4e063 bltu s1,a5,1083c + 10820: 50f6 lw ra,124(sp) + 10822: 5466 lw s0,120(sp) + 10824: a0f18a23 sb a5,-1516(gp) # 200013cc + 10828: 54d6 lw s1,116(sp) + 1082a: 5946 lw s2,112(sp) + 1082c: 59b6 lw s3,108(sp) + 1082e: 5a26 lw s4,104(sp) + 10830: 5a96 lw s5,100(sp) + 10832: 5b06 lw s6,96(sp) + 10834: 4bf6 lw s7,92(sp) + 10836: 4c66 lw s8,88(sp) + 10838: 6109 addi sp,sp,128 + 1083a: 8082 ret + 1083c: 03848b33 mul s6,s1,s8 + 10840: 000aa503 lw a0,0(s5) + 10844: 03248433 mul s0,s1,s2 + 10848: 955a add a0,a0,s6 + 1084a: e88ff0ef jal ra,fed2 + 1084e: 4671 li a2,28 + 10850: 0ff00593 li a1,255 + 10854: 0048 addi a0,sp,4 + 10856: 1fff0097 auipc ra,0x1fff0 + 1085a: 044080e7 jalr 68(ra) # 2000089a + 1085e: 03000613 li a2,48 + 10862: 0ff00593 li a1,255 + 10866: 1008 addi a0,sp,32 + 10868: 1fff0097 auipc ra,0x1fff0 + 1086c: 032080e7 jalr 50(ra) # 2000089a + 10870: 000aa603 lw a2,0(s5) + 10874: 08044433 zext.h s0,s0 + 10878: 45d1 li a1,20 + 1087a: 965a add a2,a2,s6 + 1087c: 20040513 addi a0,s0,512 + 10880: 08054533 zext.h a0,a0 + 10884: a24f60ef jal ra,6aa8 + 10888: 0050 addi a2,sp,4 + 1088a: 45f1 li a1,28 + 1088c: 20140513 addi a0,s0,513 + 10890: 08054533 zext.h a0,a0 + 10894: a14f60ef jal ra,6aa8 + 10898: 0050 addi a2,sp,4 + 1089a: 45f1 li a1,28 + 1089c: 20240513 addi a0,s0,514 + 108a0: 08054533 zext.h a0,a0 + 108a4: a04f60ef jal ra,6aa8 + 108a8: 0050 addi a2,sp,4 + 108aa: 45c1 li a1,16 + 108ac: 20340513 addi a0,s0,515 + 108b0: 08054533 zext.h a0,a0 + 108b4: 9f4f60ef jal ra,6aa8 + 108b8: 0050 addi a2,sp,4 + 108ba: 45c1 li a1,16 + 108bc: 20440513 addi a0,s0,516 + 108c0: 08054533 zext.h a0,a0 + 108c4: 9e4f60ef jal ra,6aa8 + 108c8: 0050 addi a2,sp,4 + 108ca: 4591 li a1,4 + 108cc: 20540513 addi a0,s0,517 + 108d0: 08054533 zext.h a0,a0 + 108d4: 9d4f60ef jal ra,6aa8 + 108d8: 01348533 add a0,s1,s3 + 108dc: 1010 addi a2,sp,32 + 108de: 03000593 li a1,48 + 108e2: 08054533 zext.h a0,a0 + 108e6: 9c2f60ef jal ra,6aa8 + 108ea: 000a4503 lbu a0,0(s4) + 108ee: 0485 addi s1,s1,1 + 108f0: 0ff4f493 zext.b s1,s1 + 108f4: 960f60ef jal ra,6a54 + 108f8: b705 j 10818 + +000108fa : +GAPBondMgr_LinkTerm(): + 108fa: 1101 addi sp,sp,-32 + 108fc: ce06 sw ra,28(sp) + 108fe: cc22 sw s0,24(sp) + 10900: ca26 sw s1,20(sp) + 10902: c84a sw s2,16(sp) + 10904: c64e sw s3,12(sp) + 10906: c452 sw s4,8(sp) + 10908: c256 sw s5,4(sp) + 1090a: a3af70ef jal ra,7b44 + 1090e: e149 bnez a0,10990 + 10910: a161c703 lbu a4,-1514(gp) # 200013ce + 10914: 4785 li a5,1 + 10916: 842a mv s0,a0 + 10918: a1518493 addi s1,gp,-1515 # 200013cd + 1091c: 02f70d63 beq a4,a5,10956 + 10920: 4a51 li s4,20 + 10922: a1818913 addi s2,gp,-1512 # 200013d0 + 10926: 4a85 li s5,1 + 10928: 209c lbu a5,0(s1) + 1092a: 04f47063 bgeu s0,a5,1096a + 1092e: 034409b3 mul s3,s0,s4 + 10932: 00092783 lw a5,0(s2) + 10936: 97ce add a5,a5,s3 + 10938: 27fc lbu a5,14(a5) + 1093a: 01579a63 bne a5,s5,1094e + 1093e: 8522 mv a0,s0 + 10940: ea0ff0ef jal ra,ffe0 + 10944: 00092783 lw a5,0(s2) + 10948: 97ce add a5,a5,s3 + 1094a: 00078723 sb zero,14(a5) + 1094e: 0405 addi s0,s0,1 + 10950: 0ff47413 zext.b s0,s0 + 10954: bfd1 j 10928 + 10956: c13ff0ef jal ra,10568 + 1095a: 2098 lbu a4,0(s1) + 1095c: a0018b23 sb zero,-1514(gp) # 200013ce + 10960: a181a783 lw a5,-1512(gp) # 200013d0 + 10964: 07b9 addi a5,a5,14 + 10966: 00e41e63 bne s0,a4,10982 + 1096a: b7cf60ef jal ra,6ce6 + 1096e: 4462 lw s0,24(sp) + 10970: 40f2 lw ra,28(sp) + 10972: 44d2 lw s1,20(sp) + 10974: 4942 lw s2,16(sp) + 10976: 49b2 lw s3,12(sp) + 10978: 4a22 lw s4,8(sp) + 1097a: 4a92 lw s5,4(sp) + 1097c: 6105 addi sp,sp,32 + 1097e: 807ff06f j 10184 + 10982: 0405 addi s0,s0,1 + 10984: 00078023 sb zero,0(a5) + 10988: 0ff47413 zext.b s0,s0 + 1098c: 07d1 addi a5,a5,20 + 1098e: bfe1 j 10966 + 10990: 40f2 lw ra,28(sp) + 10992: 4462 lw s0,24(sp) + 10994: 44d2 lw s1,20(sp) + 10996: 4942 lw s2,16(sp) + 10998: 49b2 lw s3,12(sp) + 1099a: 4a22 lw s4,8(sp) + 1099c: 4a92 lw s5,4(sp) + 1099e: 6105 addi sp,sp,32 + 109a0: 8082 ret + +000109a2 : +GAPBondMgr_ResolveAddr(): + 109a2: 7179 addi sp,sp,-48 + 109a4: d04a sw s2,32(sp) + 109a6: ce4e sw s3,28(sp) + 109a8: cc52 sw s4,24(sp) + 109aa: d606 sw ra,44(sp) + 109ac: d422 sw s0,40(sp) + 109ae: d226 sw s1,36(sp) + 109b0: ca56 sw s5,20(sp) + 109b2: c85a sw s6,16(sp) + 109b4: a1518a13 addi s4,gp,-1515 # 200013cd + 109b8: 000a4403 lbu s0,0(s4) + 109bc: 89ae mv s3,a1 + 109be: 8932 mv s2,a2 + 109c0: c54d beqz a0,10a6a + 109c2: 31d8 lbu a4,5(a1) + 109c4: 0c000693 li a3,192 + 109c8: 0c077793 andi a5,a4,192 + 109cc: 08d78f63 beq a5,a3,10a6a + 109d0: 03f00693 li a3,63 + 109d4: 02e6eb63 bltu a3,a4,10a0a + 109d8: 4481 li s1,0 + 109da: a1818a93 addi s5,gp,-1512 # 200013d0 + 109de: 4b51 li s6,20 + 109e0: 000a4403 lbu s0,0(s4) + 109e4: 0a84f463 bgeu s1,s0,10a8c + 109e8: 036487b3 mul a5,s1,s6 + 109ec: 000aa503 lw a0,0(s5) + 109f0: 4619 li a2,6 + 109f2: 85ce mv a1,s3 + 109f4: 953e add a0,a0,a5 + 109f6: 0519 addi a0,a0,6 + 109f8: 1fff0097 auipc ra,0x1fff0 + 109fc: ee2080e7 jalr -286(ra) # 200008da + 10a00: e531 bnez a0,10a4c + 10a02: 0485 addi s1,s1,1 + 10a04: 0ff4f493 zext.b s1,s1 + 10a08: bfe1 j 109e0 + 10a0a: 04000713 li a4,64 + 10a0e: 04e79563 bne a5,a4,10a58 + 10a12: 4481 li s1,0 + 10a14: 4a99 li s5,6 + 10a16: 000a4403 lbu s0,0(s4) + 10a1a: 0684f963 bgeu s1,s0,10a8c + 10a1e: 03548533 mul a0,s1,s5 + 10a22: 860a mv a2,sp + 10a24: 45c1 li a1,16 + 10a26: 20350513 addi a0,a0,515 + 10a2a: 08054533 zext.h a0,a0 + 10a2e: debf50ef jal ra,6818 + 10a32: e925 bnez a0,10aa2 + 10a34: 4641 li a2,16 + 10a36: 0ff00593 li a1,255 + 10a3a: 850a mv a0,sp + 10a3c: 0cb090ef jal ra,1a306 + 10a40: e12d bnez a0,10aa2 + 10a42: 85ce mv a1,s3 + 10a44: 850a mv a0,sp + 10a46: d4df60ef jal ra,7792 + 10a4a: ed21 bnez a0,10aa2 + 10a4c: 000a4783 lbu a5,0(s4) + 10a50: 04f4ed63 bltu s1,a5,10aaa + 10a54: 8426 mv s0,s1 + 10a56: a81d j 10a8c + 10a58: 4789 li a5,2 + 10a5a: f6f50fe3 beq a0,a5,109d8 + 10a5e: 478d li a5,3 + 10a60: faf509e3 beq a0,a5,10a12 + 10a64: 4785 li a5,1 + 10a66: 02f51363 bne a0,a5,10a8c + 10a6a: 854e mv a0,s3 + 10a6c: fb8ff0ef jal ra,10224 + 10a70: 000a4783 lbu a5,0(s4) + 10a74: 842a mv s0,a0 + 10a76: 00f57b63 bgeu a0,a5,10a8c + 10a7a: 00090963 beqz s2,10a8c + 10a7e: 4619 li a2,6 + 10a80: 85ce mv a1,s3 + 10a82: 854a mv a0,s2 + 10a84: 1fff0097 auipc ra,0x1fff0 + 10a88: dd8080e7 jalr -552(ra) # 2000085c + 10a8c: 50b2 lw ra,44(sp) + 10a8e: 8522 mv a0,s0 + 10a90: 5422 lw s0,40(sp) + 10a92: 5492 lw s1,36(sp) + 10a94: 5902 lw s2,32(sp) + 10a96: 49f2 lw s3,28(sp) + 10a98: 4a62 lw s4,24(sp) + 10a9a: 4ad2 lw s5,20(sp) + 10a9c: 4b42 lw s6,16(sp) + 10a9e: 6145 addi sp,sp,48 + 10aa0: 8082 ret + 10aa2: 0485 addi s1,s1,1 + 10aa4: 0ff4f493 zext.b s1,s1 + 10aa8: b7bd j 10a16 + 10aaa: fa0905e3 beqz s2,10a54 + 10aae: 85ca mv a1,s2 + 10ab0: 8526 mv a0,s1 + 10ab2: ae7ff0ef jal ra,10598 + 10ab6: bf79 j 10a54 + +00010ab8 : +GAPBondMgr_SetParameter(): + 10ab8: 715d addi sp,sp,-80 + 10aba: c0050513 addi a0,a0,-1024 + 10abe: c686 sw ra,76(sp) + 10ac0: c4a2 sw s0,72(sp) + 10ac2: c2a6 sw s1,68(sp) + 10ac4: c0ca sw s2,64(sp) + 10ac6: de4e sw s3,60(sp) + 10ac8: dc52 sw s4,56(sp) + 10aca: da56 sw s5,52(sp) + 10acc: d85a sw s6,48(sp) + 10ace: 47f9 li a5,30 + 10ad0: 08054533 zext.h a0,a0 + 10ad4: 26a7e363 bltu a5,a0,10d3a + 10ad8: 00009717 auipc a4,0x9 + 10adc: 15470713 addi a4,a4,340 # 19c2c + 10ae0: 20e54533 sh2add a0,a0,a4 + 10ae4: 411c lw a5,0(a0) + 10ae6: 84b2 mv s1,a2 + 10ae8: 97ba add a5,a5,a4 + 10aea: 8782 jr a5 + 10aec: 4785 li a5,1 + 10aee: 4461 li s0,24 + 10af0: 00f59963 bne a1,a5,10b02 + 10af4: 221c lbu a5,0(a2) + 10af6: 4709 li a4,2 + 10af8: 00f76563 bltu a4,a5,10b02 + 10afc: a2f18623 sb a5,-1492(gp) # 200013e4 + 10b00: 4401 li s0,0 + 10b02: 40b6 lw ra,76(sp) + 10b04: 8522 mv a0,s0 + 10b06: 4426 lw s0,72(sp) + 10b08: 4496 lw s1,68(sp) + 10b0a: 4906 lw s2,64(sp) + 10b0c: 59f2 lw s3,60(sp) + 10b0e: 5a62 lw s4,56(sp) + 10b10: 5ad2 lw s5,52(sp) + 10b12: 5b42 lw s6,48(sp) + 10b14: 6161 addi sp,sp,80 + 10b16: 8082 ret + 10b18: 4785 li a5,1 + 10b1a: 4461 li s0,24 + 10b1c: fef593e3 bne a1,a5,10b02 + 10b20: 2214 lbu a3,0(a2) + 10b22: fed5e0e3 bltu a1,a3,10b02 + 10b26: a2918713 addi a4,gp,-1495 # 200013e1 + 10b2a: 231c lbu a5,0(a4) + 10b2c: c689 beqz a3,10b36 + 10b2e: 0047e793 ori a5,a5,4 + 10b32: a31c sb a5,0(a4) + 10b34: b7f1 j 10b00 + 10b36: 9bed andi a5,a5,-5 + 10b38: bfed j 10b32 + 10b3a: 4785 li a5,1 + 10b3c: 4461 li s0,24 + 10b3e: fcf592e3 bne a1,a5,10b02 + 10b42: 221c lbu a5,0(a2) + 10b44: 4711 li a4,4 + 10b46: faf76ee3 bltu a4,a5,10b02 + 10b4a: a2f185a3 sb a5,-1493(gp) # 200013e3 + 10b4e: bf4d j 10b00 + 10b50: 4785 li a5,1 + 10b52: 4461 li s0,24 + 10b54: faf597e3 bne a1,a5,10b02 + 10b58: 221c lbu a5,0(a2) + 10b5a: faf5e4e3 bltu a1,a5,10b02 + 10b5e: a2f18523 sb a5,-1494(gp) # 200013e2 + 10b62: bf79 j 10b00 + 10b64: 47c1 li a5,16 + 10b66: 4461 li s0,24 + 10b68: f8f59de3 bne a1,a5,10b02 + 10b6c: 4641 li a2,16 + 10b6e: 85a6 mv a1,s1 + 10b70: 1fff2517 auipc a0,0x1fff2 + 10b74: ec050513 addi a0,a0,-320 # 20002a30 + 10b78: 1fff0097 auipc ra,0x1fff0 + 10b7c: ce4080e7 jalr -796(ra) # 2000085c + 10b80: b741 j 10b00 + 10b82: 4785 li a5,1 + 10b84: 4461 li s0,24 + 10b86: f6f59ee3 bne a1,a5,10b02 + 10b8a: 2214 lbu a3,0(a2) + 10b8c: f6d5ebe3 bltu a1,a3,10b02 + 10b90: a2918713 addi a4,gp,-1495 # 200013e1 + 10b94: 231c lbu a5,0(a4) + 10b96: c681 beqz a3,10b9e + 10b98: 0017e793 ori a5,a5,1 + 10b9c: bf59 j 10b32 + 10b9e: 9bf9 andi a5,a5,-2 + 10ba0: bf49 j 10b32 + 10ba2: 4785 li a5,1 + 10ba4: 4461 li s0,24 + 10ba6: f4f59ee3 bne a1,a5,10b02 + 10baa: 221c lbu a5,0(a2) + 10bac: a2f18423 sb a5,-1496(gp) # 200013e0 + 10bb0: bf81 j 10b00 + 10bb2: 4791 li a5,4 + 10bb4: 4461 li s0,24 + 10bb6: f4f596e3 bne a1,a5,10b02 + 10bba: 4218 lw a4,0(a2) + 10bbc: 000f47b7 lui a5,0xf4 + 10bc0: 23f78793 addi a5,a5,575 # f423f <_data_lma+0xd8c83> + 10bc4: f2e7efe3 bltu a5,a4,10b02 + 10bc8: a2e1a223 sw a4,-1500(gp) # 200013dc + 10bcc: bf15 j 10b00 + 10bce: 4461 li s0,24 + 10bd0: f98d bnez a1,10b02 + 10bd2: f73f60ef jal ra,7b44 + 10bd6: e901 bnez a0,10be6 + 10bd8: 991ff0ef jal ra,10568 + 10bdc: 90af60ef jal ra,6ce6 + 10be0: da4ff0ef jal ra,10184 + 10be4: bf31 j 10b00 + 10be6: 4785 li a5,1 + 10be8: a0f18b23 sb a5,-1514(gp) # 200013ce + 10bec: bf11 j 10b00 + 10bee: 479d li a5,7 + 10bf0: 4461 li s0,24 + 10bf2: f0f598e3 bne a1,a5,10b02 + 10bf6: 00148593 addi a1,s1,1 + 10bfa: 4619 li a2,6 + 10bfc: 0068 addi a0,sp,12 + 10bfe: 1fff0097 auipc ra,0x1fff0 + 10c02: c5e080e7 jalr -930(ra) # 2000085c + 10c06: 2088 lbu a0,0(s1) + 10c08: 0850 addi a2,sp,20 + 10c0a: 006c addi a1,sp,12 + 10c0c: d97ff0ef jal ra,109a2 + 10c10: a151c783 lbu a5,-1515(gp) # 200013cd + 10c14: 84aa mv s1,a0 + 10c16: 4409 li s0,2 + 10c18: eef575e3 bgeu a0,a5,10b02 + 10c1c: 0848 addi a0,sp,20 + 10c1e: f9dfa0ef jal ra,bbba + 10c22: 842a mv s0,a0 + 10c24: e909 bnez a0,10c36 + 10c26: 8526 mv a0,s1 + 10c28: bb8ff0ef jal ra,ffe0 + 10c2c: 8baf60ef jal ra,6ce6 + 10c30: d54ff0ef jal ra,10184 + 10c34: b5f9 j 10b02 + 10c36: 4751 li a4,20 + 10c38: 02e484b3 mul s1,s1,a4 + 10c3c: a181a783 lw a5,-1512(gp) # 200013d0 + 10c40: 4705 li a4,1 + 10c42: 4459 li s0,22 + 10c44: 97a6 add a5,a5,s1 + 10c46: a7f8 sb a4,14(a5) + 10c48: bd6d j 10b02 + 10c4a: 820186a3 sb zero,-2003(gp) # 200011e5 + 10c4e: bd4d j 10b00 + 10c50: 4785 li a5,1 + 10c52: 82f186a3 sb a5,-2003(gp) # 200011e5 + 10c56: 4401 li s0,0 + 10c58: a1518913 addi s2,gp,-1515 # 200013cd + 10c5c: 4999 li s3,6 + 10c5e: 0ff00a13 li s4,255 + 10c62: 5afd li s5,-1 + 10c64: 82e18b13 addi s6,gp,-2002 # 200011e6 + 10c68: 00094783 lbu a5,0(s2) + 10c6c: e8f47ae3 bgeu s0,a5,10b00 + 10c70: 033404b3 mul s1,s0,s3 + 10c74: 0850 addi a2,sp,20 + 10c76: 45f1 li a1,28 + 10c78: 20148493 addi s1,s1,513 + 10c7c: 0804c4b3 zext.h s1,s1 + 10c80: 8526 mv a0,s1 + 10c82: b97f50ef jal ra,6818 + 10c86: e105 bnez a0,10ca6 + 10c88: 02f14783 lbu a5,47(sp) + 10c8c: 01478d63 beq a5,s4,10ca6 + 10c90: 0850 addi a2,sp,20 + 10c92: 45f1 li a1,28 + 10c94: 8526 mv a0,s1 + 10c96: 035107a3 sb s5,47(sp) + 10c9a: e0ff50ef jal ra,6aa8 + 10c9e: 000b4503 lbu a0,0(s6) + 10ca2: db3f50ef jal ra,6a54 + 10ca6: 0405 addi s0,s0,1 + 10ca8: 0ff47413 zext.b s0,s0 + 10cac: bf75 j 10c68 + 10cae: 4785 li a5,1 + 10cb0: 4461 li s0,24 + 10cb2: e4f598e3 bne a1,a5,10b02 + 10cb6: 221c lbu a5,0(a2) + 10cb8: e4f5e5e3 bltu a1,a5,10b02 + 10cbc: a2f180a3 sb a5,-1503(gp) # 200013d9 + 10cc0: b581 j 10b00 + 10cc2: 4785 li a5,1 + 10cc4: 4461 li s0,24 + 10cc6: e2f59ee3 bne a1,a5,10b02 + 10cca: 221c lbu a5,0(a2) + 10ccc: 4725 li a4,9 + 10cce: e2f76ae3 bltu a4,a5,10b02 + 10cd2: 82f18823 sb a5,-2000(gp) # 200011e8 + 10cd6: b52d j 10b00 + 10cd8: 4785 li a5,1 + 10cda: 4461 li s0,24 + 10cdc: e2f593e3 bne a1,a5,10b02 + 10ce0: 2218 lbu a4,0(a2) + 10ce2: 46a5 li a3,9 + 10ce4: ff970793 addi a5,a4,-7 + 10ce8: 0ff7f793 zext.b a5,a5 + 10cec: e0f6ebe3 bltu a3,a5,10b02 + 10cf0: 82e187a3 sb a4,-2001(gp) # 200011e7 + 10cf4: b531 j 10b00 + 10cf6: 4785 li a5,1 + 10cf8: 4461 li s0,24 + 10cfa: e0f594e3 bne a1,a5,10b02 + 10cfe: a1718713 addi a4,gp,-1513 # 200013cf + 10d02: 221c lbu a5,0(a2) + 10d04: 2314 lbu a3,0(a4) + 10d06: a31c sb a5,0(a4) + 10d08: de069ce3 bnez a3,10b00 + 10d0c: deb79ae3 bne a5,a1,10b00 + 10d10: bdc1 j 10be0 + 10d12: 4785 li a5,1 + 10d14: 4461 li s0,24 + 10d16: def596e3 bne a1,a5,10b02 + 10d1a: 221c lbu a5,0(a2) + 10d1c: 82f18723 sb a5,-2002(gp) # 200011e6 + 10d20: b3c5 j 10b00 + 10d22: 4505 li a0,1 + 10d24: d31f50ef jal ra,6a54 + 10d28: bbe1 j 10b00 + 10d2a: 4785 li a5,1 + 10d2c: 4461 li s0,24 + 10d2e: dcf59ae3 bne a1,a5,10b02 + 10d32: 221c lbu a5,0(a2) + 10d34: 82f18623 sb a5,-2004(gp) # 200011e4 + 10d38: b3e1 j 10b00 + 10d3a: 4409 li s0,2 + 10d3c: b3d9 j 10b02 + +00010d3e : +GAPBondMgr_ServiceChangeInd(): + 10d3e: 1101 addi sp,sp,-32 + 10d40: 67c1 lui a5,0x10 + 10d42: ca26 sw s1,20(sp) + 10d44: ce06 sw ra,28(sp) + 10d46: cc22 sw s0,24(sp) + 10d48: c84a sw s2,16(sp) + 10d4a: c64e sw s3,12(sp) + 10d4c: 17fd addi a5,a5,-1 # ffff + 10d4e: 84ae mv s1,a1 + 10d50: 06f50763 beq a0,a5,10dbe + 10d54: dddfa0ef jal ra,bb30 + 10d58: 842a mv s0,a0 + 10d5a: 4951 li s2,20 + 10d5c: c929 beqz a0,10dae + 10d5e: 00650593 addi a1,a0,6 + 10d62: 3148 lbu a0,5(a0) + 10d64: 4601 li a2,0 + 10d66: 4955 li s2,21 + 10d68: c3bff0ef jal ra,109a2 + 10d6c: a151c783 lbu a5,-1515(gp) # 200013cd + 10d70: 00f57663 bgeu a0,a5,10d7c + 10d74: 85a6 mv a1,s1 + 10d76: f88ff0ef jal ra,104fe + 10d7a: 4901 li s2,0 + 10d7c: c88d beqz s1,10dae + 10d7e: 8522 mv a0,s0 + 10d80: c9aff0ef jal ra,1021a + 10d84: a02d j 10dae + 10d86: 85a6 mv a1,s1 + 10d88: 8522 mv a0,s0 + 10d8a: f74ff0ef jal ra,104fe + 10d8e: c111 beqz a0,10d92 + 10d90: 4901 li s2,0 + 10d92: 0405 addi s0,s0,1 + 10d94: 0ff47413 zext.b s0,s0 + 10d98: 0009c783 lbu a5,0(s3) # 7000 + 10d9c: fef465e3 bltu s0,a5,10d86 + 10da0: c499 beqz s1,10dae + 10da2: fffff517 auipc a0,0xfffff + 10da6: 47850513 addi a0,a0,1144 # 1021a + 10daa: fdffa0ef jal ra,bd88 + 10dae: 40f2 lw ra,28(sp) + 10db0: 4462 lw s0,24(sp) + 10db2: 44d2 lw s1,20(sp) + 10db4: 49b2 lw s3,12(sp) + 10db6: 854a mv a0,s2 + 10db8: 4942 lw s2,16(sp) + 10dba: 6105 addi sp,sp,32 + 10dbc: 8082 ret + 10dbe: 4401 li s0,0 + 10dc0: 4955 li s2,21 + 10dc2: a1518993 addi s3,gp,-1515 # 200013cd + 10dc6: bfc9 j 10d98 + +00010dc8 : +GAPBondMgr_UpdateCharCfg(): + 10dc8: 1101 addi sp,sp,-32 + 10dca: 67c1 lui a5,0x10 + 10dcc: c84a sw s2,16(sp) + 10dce: c64e sw s3,12(sp) + 10dd0: ce06 sw ra,28(sp) + 10dd2: cc22 sw s0,24(sp) + 10dd4: ca26 sw s1,20(sp) + 10dd6: c452 sw s4,8(sp) + 10dd8: 17fd addi a5,a5,-1 # ffff + 10dda: 892e mv s2,a1 + 10ddc: 89b2 mv s3,a2 + 10dde: 04f50e63 beq a0,a5,10e3a + 10de2: d4ffa0ef jal ra,bb30 + 10de6: 44d1 li s1,20 + 10de8: c121 beqz a0,10e28 + 10dea: 00650593 addi a1,a0,6 + 10dee: 3148 lbu a0,5(a0) + 10df0: 4601 li a2,0 + 10df2: 44d5 li s1,21 + 10df4: bafff0ef jal ra,109a2 + 10df8: a151c783 lbu a5,-1515(gp) # 200013cd + 10dfc: 02f57663 bgeu a0,a5,10e28 + 10e00: 864e mv a2,s3 + 10e02: 85ca mv a1,s2 + 10e04: fd6ff0ef jal ra,105da + 10e08: 4481 li s1,0 + 10e0a: a839 j 10e28 + 10e0c: 864e mv a2,s3 + 10e0e: 85ca mv a1,s2 + 10e10: 8522 mv a0,s0 + 10e12: fc8ff0ef jal ra,105da + 10e16: c111 beqz a0,10e1a + 10e18: 4481 li s1,0 + 10e1a: 0405 addi s0,s0,1 + 10e1c: 0ff47413 zext.b s0,s0 + 10e20: 000a4783 lbu a5,0(s4) + 10e24: fef464e3 bltu s0,a5,10e0c + 10e28: 40f2 lw ra,28(sp) + 10e2a: 4462 lw s0,24(sp) + 10e2c: 4942 lw s2,16(sp) + 10e2e: 49b2 lw s3,12(sp) + 10e30: 4a22 lw s4,8(sp) + 10e32: 8526 mv a0,s1 + 10e34: 44d2 lw s1,20(sp) + 10e36: 6105 addi sp,sp,32 + 10e38: 8082 ret + 10e3a: 4401 li s0,0 + 10e3c: 44d5 li s1,21 + 10e3e: a1518a13 addi s4,gp,-1515 # 200013cd + 10e42: bff9 j 10e20 + +00010e44 : +GAPBondMgr_PeripheralRegister(): + 10e44: 1141 addi sp,sp,-16 + 10e46: c422 sw s0,8(sp) + 10e48: c606 sw ra,12(sp) + 10e4a: a2d18413 addi s0,gp,-1491 # 200013e5 + 10e4e: 200c lbu a1,0(s0) + 10e50: a0a1ae23 sw a0,-1508(gp) # 200013d4 + 10e54: 4521 li a0,8 + 10e56: d4df60ef jal ra,7ba2 + 10e5a: 2008 lbu a0,0(s0) + 10e5c: 4422 lw s0,8(sp) + 10e5e: 40b2 lw ra,12(sp) + 10e60: 0141 addi sp,sp,16 + 10e62: dc1f906f j ac22 + +00010e66 : +GAPBondMgr_PeriSecurityReq(): + 10e66: a2c18713 addi a4,gp,-1492 # 200013e4 + 10e6a: 231c lbu a5,0(a4) + 10e6c: a291c583 lbu a1,-1495(gp) # 200013e1 + 10e70: f807e793 ori a5,a5,-128 + 10e74: a31c sb a5,0(a4) + 10e76: c13f606f j 7a88 + +00010e7a : +GAPBondMgr_LinkEst(): + 10e7a: 7159 addi sp,sp,-112 + 10e7c: d2a6 sw s1,100(sp) + 10e7e: 84b2 mv s1,a2 + 10e80: 0050 addi a2,sp,4 + 10e82: ccd2 sw s4,88(sp) + 10e84: d686 sw ra,108(sp) + 10e86: d4a2 sw s0,104(sp) + 10e88: d0ca sw s2,96(sp) + 10e8a: cece sw s3,92(sp) + 10e8c: cad6 sw s5,84(sp) + 10e8e: 8a36 mv s4,a3 + 10e90: c202 sw zero,4(sp) + 10e92: 00011423 sh zero,8(sp) + 10e96: b0dff0ef jal ra,109a2 + 10e9a: a151c783 lbu a5,-1515(gp) # 200013cd + 10e9e: 10f57163 bgeu a0,a5,10fa0 + 10ea2: 4419 li s0,6 + 10ea4: 02850433 mul s0,a0,s0 + 10ea8: 892a mv s2,a0 + 10eaa: 1010 addi a2,sp,32 + 10eac: 45d1 li a1,20 + 10eae: 4981 li s3,0 + 10eb0: 08044433 zext.h s0,s0 + 10eb4: 20040513 addi a0,s0,512 + 10eb8: 08054533 zext.h a0,a0 + 10ebc: 95df50ef jal ra,6818 + 10ec0: e119 bnez a0,10ec6 + 10ec2: 02c14983 lbu s3,44(sp) + 10ec6: 4791 li a5,4 + 10ec8: 04fa1663 bne s4,a5,10f14 + 10ecc: 4671 li a2,28 + 10ece: 4581 li a1,0 + 10ed0: 1008 addi a0,sp,32 + 10ed2: a2c1ca83 lbu s5,-1492(gp) # 200013e4 + 10ed6: 1fff0097 auipc ra,0x1fff0 + 10eda: 9c4080e7 jalr -1596(ra) # 2000089a + 10ede: 20140513 addi a0,s0,513 + 10ee2: 1010 addi a2,sp,32 + 10ee4: 45f1 li a1,28 + 10ee6: 08054533 zext.h a0,a0 + 10eea: 92ff50ef jal ra,6818 + 10eee: e11d bnez a0,10f14 + 10ef0: 03a14783 lbu a5,58(sp) + 10ef4: 4725 li a4,9 + 10ef6: 17e5 addi a5,a5,-7 + 10ef8: 0ff7f793 zext.b a5,a5 + 10efc: 00f76c63 bltu a4,a5,10f14 + 10f00: ffea8693 addi a3,s5,-2 + 10f04: 0016b693 seqz a3,a3 + 10f08: 1010 addi a2,sp,32 + 10f0a: 0019f593 andi a1,s3,1 + 10f0e: 8526 mv a0,s1 + 10f10: fb8f60ef jal ra,76c8 + 10f14: 4651 li a2,20 + 10f16: 4581 li a1,0 + 10f18: 0068 addi a0,sp,12 + 10f1a: 1fff0097 auipc ra,0x1fff0 + 10f1e: 980080e7 jalr -1664(ra) # 2000089a + 10f22: 20440513 addi a0,s0,516 + 10f26: 0070 addi a2,sp,12 + 10f28: 45c1 li a1,16 + 10f2a: 08054533 zext.h a0,a0 + 10f2e: 8ebf50ef jal ra,6818 + 10f32: e515 bnez a0,10f5e + 10f34: 4641 li a2,16 + 10f36: 0ff00593 li a1,255 + 10f3a: 0068 addi a0,sp,12 + 10f3c: 3ca090ef jal ra,1a306 + 10f40: ed19 bnez a0,10f5e + 10f42: 0870 addi a2,sp,28 + 10f44: 4591 li a1,4 + 10f46: 20540413 addi s0,s0,517 + 10f4a: 08044533 zext.h a0,s0 + 10f4e: 8cbf50ef jal ra,6818 + 10f52: 0070 addi a2,sp,12 + 10f54: 0019f593 andi a1,s3,1 + 10f58: 8526 mv a0,s1 + 10f5a: b75f60ef jal ra,7ace + 10f5e: 679d lui a5,0x7 + 10f60: 00f90533 add a0,s2,a5 + 10f64: 1010 addi a2,sp,32 + 10f66: 03000593 li a1,48 + 10f6a: 08054533 zext.h a0,a0 + 10f6e: 8abf50ef jal ra,6818 + 10f72: ed19 bnez a0,10f90 + 10f74: 1008 addi a0,sp,32 + 10f76: f3bfe0ef jal ra,feb0 + 10f7a: 1000 addi s0,sp,32 + 10f7c: 200e lhu a1,0(s0) + 10f7e: c589 beqz a1,10f88 + 10f80: 2030 lbu a2,2(s0) + 10f82: 8526 mv a0,s1 + 10f84: 9e7f80ef jal ra,996a + 10f88: 0411 addi s0,s0,4 + 10f8a: 089c addi a5,sp,80 + 10f8c: fef418e3 bne s0,a5,10f7c + 10f90: 0029f793 andi a5,s3,2 + 10f94: c791 beqz a5,10fa0 + 10f96: a2d1c583 lbu a1,-1491(gp) # 200013e5 + 10f9a: 8526 mv a0,s1 + 10f9c: b54f80ef jal ra,92f0 + 10fa0: 4791 li a5,4 + 10fa2: 00fa1a63 bne s4,a5,10fb6 + 10fa6: a2c1c703 lbu a4,-1492(gp) # 200013e4 + 10faa: 4789 li a5,2 + 10fac: 00f71563 bne a4,a5,10fb6 + 10fb0: 8526 mv a0,s1 + 10fb2: eb5ff0ef jal ra,10e66 + 10fb6: 50b6 lw ra,108(sp) + 10fb8: 5426 lw s0,104(sp) + 10fba: 5496 lw s1,100(sp) + 10fbc: 5906 lw s2,96(sp) + 10fbe: 49f6 lw s3,92(sp) + 10fc0: 4a66 lw s4,88(sp) + 10fc2: 4ad6 lw s5,84(sp) + 10fc4: 4501 li a0,0 + 10fc6: 6165 addi sp,sp,112 + 10fc8: 8082 ret + +00010fca : +GAPBondMgr_ProcessGAPMsg(): + 10fca: 711d addi sp,sp,-96 + 10fcc: ce86 sw ra,92(sp) + 10fce: cca2 sw s0,88(sp) + 10fd0: caa6 sw s1,84(sp) + 10fd2: c8ca sw s2,80(sp) + 10fd4: c6ce sw s3,76(sp) + 10fd6: c4d2 sw s4,72(sp) + 10fd8: c2d6 sw s5,68(sp) + 10fda: c0da sw s6,64(sp) + 10fdc: de5e sw s7,60(sp) + 10fde: dc62 sw s8,56(sp) + 10fe0: da66 sw s9,52(sp) + 10fe2: 213c lbu a5,2(a0) + 10fe4: 4725 li a4,9 + 10fe6: 17e9 addi a5,a5,-6 # 6ffa + 10fe8: 0ff7f793 zext.b a5,a5 + 10fec: 04f76063 bltu a4,a5,1102c + 10ff0: 00009717 auipc a4,0x9 + 10ff4: cb870713 addi a4,a4,-840 # 19ca8 + 10ff8: 20e7c7b3 sh2add a5,a5,a4 + 10ffc: 439c lw a5,0(a5) + 10ffe: 842a mv s0,a0 + 11000: 97ba add a5,a5,a4 + 11002: 8782 jr a5 + 11004: 2526 lhu s1,10(a0) + 11006: 2550 lbu a2,12(a0) + 11008: 3554 lbu a3,13(a0) + 1100a: 8526 mv a0,s1 + 1100c: c632 sw a2,12(sp) + 1100e: c436 sw a3,8(sp) + 11010: b21fa0ef jal ra,bb30 + 11014: cd01 beqz a0,1102c + 11016: a1c1a783 lw a5,-1508(gp) # 200013d4 + 1101a: cb85 beqz a5,1104a + 1101c: 439c lw a5,0(a5) + 1101e: c795 beqz a5,1104a + 11020: 46a2 lw a3,8(sp) + 11022: 4632 lw a2,12(sp) + 11024: 85a6 mv a1,s1 + 11026: 00340513 addi a0,s0,3 + 1102a: 9782 jalr a5 + 1102c: 4485 li s1,1 + 1102e: 40f6 lw ra,92(sp) + 11030: 4466 lw s0,88(sp) + 11032: 4946 lw s2,80(sp) + 11034: 49b6 lw s3,76(sp) + 11036: 4a26 lw s4,72(sp) + 11038: 4a96 lw s5,68(sp) + 1103a: 4b06 lw s6,64(sp) + 1103c: 5bf2 lw s7,60(sp) + 1103e: 5c62 lw s8,56(sp) + 11040: 5cd2 lw s9,52(sp) + 11042: 8526 mv a0,s1 + 11044: 44d6 lw s1,84(sp) + 11046: 6125 addi sp,sp,96 + 11048: 8082 ret + 1104a: 85a6 mv a1,s1 + 1104c: a241a503 lw a0,-1500(gp) # 200013dc + 11050: eecf60ef jal ra,773c + 11054: dd61 beqz a0,1102c + 11056: 0fe00793 li a5,254 + 1105a: fcf509e3 beq a0,a5,1102c + 1105e: 4585 li a1,1 + 11060: 8526 mv a0,s1 + 11062: ab9f60ef jal ra,7b1a + 11066: b7d9 j 1102c + 11068: 3104 lbu s1,1(a0) + 1106a: f0e9 bnez s1,1102c + 1106c: 217c lbu a5,6(a0) + 1106e: 8b85 andi a5,a5,1 + 11070: dfd5 beqz a5,1102c + 11072: a101a783 lw a5,-1520(gp) # 200013c8 + 11076: fbdd bnez a5,1102c + 11078: 4581 li a1,0 + 1107a: 4651 li a2,20 + 1107c: 0808 addi a0,sp,16 + 1107e: 1fff0097 auipc ra,0x1fff0 + 11082: 81c080e7 jalr -2020(ra) # 2000089a + 11086: 484c lw a1,20(s0) + 11088: c9d1 beqz a1,1111c + 1108a: 29fc lbu a5,22(a1) + 1108c: 4619 li a2,6 + 1108e: 05c1 addi a1,a1,16 + 11090: 00f10fa3 sb a5,31(sp) + 11094: 0808 addi a0,sp,16 + 11096: 1ffef097 auipc ra,0x1ffef + 1109a: 7c6080e7 jalr 1990(ra) # 2000085c + 1109e: 86b8 lhu a4,28(sp) + 110a0: 207c lbu a5,6(s0) + 110a2: 3010 lbu a2,1(s0) + 110a4: 204a lhu a0,4(s0) + 110a6: 4585 li a1,1 + 110a8: 4827d793 bexti a5,a5,0x2 + 110ac: 8fd9 or a5,a5,a4 + 110ae: 86fc sh a5,28(sp) + 110b0: c1cff0ef jal ra,104cc + 110b4: 0808 addi a0,sp,16 + 110b6: 96eff0ef jal ra,10224 + 110ba: a1518a13 addi s4,gp,-1515 # 200013cd + 110be: 000a4783 lbu a5,0(s4) + 110c2: a1418913 addi s2,gp,-1516 # 200013cc + 110c6: 00a90023 sb a0,0(s2) + 110ca: 00f56663 bltu a0,a5,110d6 + 110ce: e9bfe0ef jal ra,ff68 + 110d2: 00a90023 sb a0,0(s2) + 110d6: 000a4983 lbu s3,0(s4) + 110da: 00094783 lbu a5,0(s2) + 110de: 0337e263 bltu a5,s3,11102 + 110e2: 82c1c783 lbu a5,-2004(gp) # 200011e4 + 110e6: c791 beqz a5,110f2 + 110e8: 4705 li a4,1 + 110ea: 04e79563 bne a5,a4,11134 + 110ee: f00ff0ef jal ra,107ee + 110f2: 1fff1797 auipc a5,0x1fff1 + 110f6: 7fe7a783 lw a5,2046(a5) # 200028f0 + 110fa: c781 beqz a5,11102 + 110fc: 4585 li a1,1 + 110fe: 4521 li a0,8 + 11100: 9782 jalr a5 + 11102: 85a2 mv a1,s0 + 11104: 0808 addi a0,sp,16 + 11106: 976ff0ef jal ra,1027c + 1110a: 84aa mv s1,a0 + 1110c: 0e051c63 bnez a0,11204 + 11110: 4589 li a1,2 + 11112: a2d1c503 lbu a0,-1491(gp) # 200013e5 + 11116: 32e090ef jal ra,1a444 + 1111a: bf11 j 1102e + 1111c: 204a lhu a0,4(s0) + 1111e: a13fa0ef jal ra,bb30 + 11122: f00505e3 beqz a0,1102c + 11126: 315c lbu a5,5(a0) + 11128: 4619 li a2,6 + 1112a: 00650593 addi a1,a0,6 + 1112e: 00f10fa3 sb a5,31(sp) + 11132: b78d j 11094 + 11134: 4709 li a4,2 + 11136: fae79ee3 bne a5,a4,110f2 + 1113a: 4901 li s2,0 + 1113c: 5b7d li s6,-1 + 1113e: 4a81 li s5,0 + 11140: 4cd1 li s9,20 + 11142: a1818b93 addi s7,gp,-1512 # 200013d0 + 11146: a80d j 11178 + 11148: 03990c33 mul s8,s2,s9 + 1114c: 000ba503 lw a0,0(s7) + 11150: 4619 li a2,6 + 11152: 0ff00593 li a1,255 + 11156: 9562 add a0,a0,s8 + 11158: 1ae090ef jal ra,1a306 + 1115c: e919 bnez a0,11172 + 1115e: 000ba783 lw a5,0(s7) + 11162: 97e2 add a5,a5,s8 + 11164: 4b9c lw a5,16(a5) + 11166: 0afafab3 maxu s5,s5,a5 + 1116a: 0167f463 bgeu a5,s6,11172 + 1116e: 8b3e mv s6,a5 + 11170: 89ca mv s3,s2 + 11172: 0905 addi s2,s2,1 + 11174: 0ff97913 zext.b s2,s2 + 11178: 000a4783 lbu a5,0(s4) + 1117c: fcf966e3 bltu s2,a5,11148 + 11180: 416a8ab3 sub s5,s5,s6 + 11184: 040ad563 bgez s5,111ce + 11188: 597d li s2,-1 + 1118a: 4bd1 li s7,20 + 1118c: a1818a93 addi s5,gp,-1512 # 200013d0 + 11190: 80000c37 lui s8,0x80000 + 11194: a80d j 111c6 + 11196: 03748b33 mul s6,s1,s7 + 1119a: 000aa503 lw a0,0(s5) + 1119e: 4619 li a2,6 + 111a0: 0ff00593 li a1,255 + 111a4: 955a add a0,a0,s6 + 111a6: 160090ef jal ra,1a306 + 111aa: e919 bnez a0,111c0 + 111ac: 000aa783 lw a5,0(s5) + 111b0: 97da add a5,a5,s6 + 111b2: 4b9c lw a5,16(a5) + 111b4: 00fc7663 bgeu s8,a5,111c0 + 111b8: 0127f463 bgeu a5,s2,111c0 + 111bc: 893e mv s2,a5 + 111be: 89a6 mv s3,s1 + 111c0: 0485 addi s1,s1,1 + 111c2: 0ff4f493 zext.b s1,s1 + 111c6: 000a4783 lbu a5,0(s4) + 111ca: fcf4e6e3 bltu s1,a5,11196 + 111ce: 000a4783 lbu a5,0(s4) + 111d2: f2f9f0e3 bgeu s3,a5,110f2 + 111d6: 44d1 li s1,20 + 111d8: 029984b3 mul s1,s3,s1 + 111dc: a1818913 addi s2,gp,-1512 # 200013d0 + 111e0: 00092503 lw a0,0(s2) + 111e4: 9526 add a0,a0,s1 + 111e6: 9d5fa0ef jal ra,bbba + 111ea: e519 bnez a0,111f8 + 111ec: 854e mv a0,s3 + 111ee: df3fe0ef jal ra,ffe0 + 111f2: f93fe0ef jal ra,10184 + 111f6: bdf5 j 110f2 + 111f8: 00092783 lw a5,0(s2) + 111fc: 4705 li a4,1 + 111fe: 97a6 add a5,a5,s1 + 11200: a7f8 sb a4,14(a5) + 11202: bdc5 j 110f2 + 11204: 4655 li a2,21 + 11206: 458d li a1,3 + 11208: 204a lhu a0,4(s0) + 1120a: ac2ff0ef jal ra,104cc + 1120e: bd39 j 1102c + 11210: 3110 lbu a2,1(a0) + 11212: 4589 li a1,2 + 11214: bfd5 j 11208 + 11216: 00450593 addi a1,a0,4 + 1121a: 3128 lbu a0,3(a0) + 1121c: 4601 li a2,0 + 1121e: f84ff0ef jal ra,109a2 + 11222: a151c783 lbu a5,-1515(gp) # 200013cd + 11226: e0f573e3 bgeu a0,a5,1102c + 1122a: 4799 li a5,6 + 1122c: 02f50533 mul a0,a0,a5 + 11230: 00c40613 addi a2,s0,12 + 11234: 4591 li a1,4 + 11236: 20550513 addi a0,a0,517 + 1123a: 08054533 zext.h a0,a0 + 1123e: 86bf50ef jal ra,6aa8 + 11242: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 11246: 80ff50ef jal ra,6a54 + 1124a: b3cd j 1102c + 1124c: a211c783 lbu a5,-1503(gp) # 200013d9 + 11250: 214a lhu a0,4(a0) + 11252: c781 beqz a5,1125a + 11254: 8301c583 lbu a1,-2000(gp) # 200011e8 + 11258: b529 j 11062 + 1125a: a2c1c783 lbu a5,-1492(gp) # 200013e4 + 1125e: 4595 li a1,5 + 11260: e00781e3 beqz a5,11062 + 11264: 8cdfa0ef jal ra,bb30 + 11268: 84aa mv s1,a0 + 1126a: dc0501e3 beqz a0,1102c + 1126e: 243c lbu a5,10(s0) + 11270: 3148 lbu a0,5(a0) + 11272: 8b85 andi a5,a5,1 + 11274: c785 beqz a5,1129c + 11276: 4785 li a5,1 + 11278: 02a7f263 bgeu a5,a0,1129c + 1127c: 245e lhu a5,12(s0) + 1127e: 2007f793 andi a5,a5,512 + 11282: ef89 bnez a5,1129c + 11284: 0810 addi a2,sp,16 + 11286: 00648593 addi a1,s1,6 + 1128a: f18ff0ef jal ra,109a2 + 1128e: a151c783 lbu a5,-1515(gp) # 200013cd + 11292: 00a79563 bne a5,a0,1129c + 11296: 204a lhu a0,4(s0) + 11298: 458d li a1,3 + 1129a: b3e1 j 11062 + 1129c: 02000613 li a2,32 + 112a0: 4581 li a1,0 + 112a2: 0808 addi a0,sp,16 + 112a4: 00445983 lhu s3,4(s0) + 112a8: 0054c903 lbu s2,5(s1) + 112ac: 1ffef097 auipc ra,0x1ffef + 112b0: 5ee080e7 jalr 1518(ra) # 2000089a + 112b4: 82f1c783 lbu a5,-2001(gp) # 200011e7 + 112b8: 02f10623 sb a5,44(sp) + 112bc: a2b1c783 lbu a5,-1493(gp) # 200013e3 + 112c0: a281c703 lbu a4,-1496(gp) # 200013e0 + 112c4: 00f10a23 sb a5,20(sp) + 112c8: a2a1c783 lbu a5,-1494(gp) # 200013e2 + 112cc: 00f10aa3 sb a5,21(sp) + 112d0: 48475693 bexti a3,a4,0x4 + 112d4: 00777793 andi a5,a4,7 + 112d8: 06a2 slli a3,a3,0x8 + 112da: 8fd5 or a5,a5,a3 + 112dc: 48575693 bexti a3,a4,0x5 + 112e0: 06a6 slli a3,a3,0x9 + 112e2: 8fd5 or a5,a5,a3 + 112e4: 48675713 bexti a4,a4,0x6 + 112e8: 072a slli a4,a4,0xa + 112ea: 8fd9 or a5,a5,a4 + 112ec: 02815703 lhu a4,40(sp) + 112f0: 4641 li a2,16 + 112f2: 1fff1597 auipc a1,0x1fff1 + 112f6: 73e58593 addi a1,a1,1854 # 20002a30 + 112fa: 8f877713 andi a4,a4,-1800 + 112fe: 8fd9 or a5,a5,a4 + 11300: 01610513 addi a0,sp,22 + 11304: 02f11423 sh a5,40(sp) + 11308: 01311823 sh s3,16(sp) + 1130c: 1ffef097 auipc ra,0x1ffef + 11310: 550080e7 jalr 1360(ra) # 2000085c + 11314: a291c783 lbu a5,-1495(gp) # 200013e1 + 11318: 0017f713 andi a4,a5,1 + 1131c: 00840493 addi s1,s0,8 + 11320: cb09 beqz a4,11332 + 11322: 00090863 beqz s2,11332 + 11326: 02815703 lhu a4,40(sp) + 1132a: 00276713 ori a4,a4,2 + 1132e: 02e11423 sh a4,40(sp) + 11332: 02614703 lbu a4,38(sp) + 11336: 85a6 mv a1,s1 + 11338: 0808 addi a0,sp,16 + 1133a: 8fd9 or a5,a5,a4 + 1133c: 02f10323 sb a5,38(sp) + 11340: ae0f60ef jal ra,7620 + 11344: 4601 li a2,0 + 11346: 4581 li a1,0 + 11348: b5c1 j 11208 + 1134a: 214a lhu a0,4(a0) + 1134c: daeff0ef jal ra,108fa + 11350: a2c18713 addi a4,gp,-1492 # 200013e4 + 11354: 231c lbu a5,0(a4) + 11356: 07f7f793 andi a5,a5,127 + 1135a: a31c sb a5,0(a4) + 1135c: b9c1 j 1102c + +0001135e : +GAPBondMgr_Init(): + 1135e: 1141 addi sp,sp,-16 + 11360: c422 sw s0,8(sp) + 11362: 842a mv s0,a0 + 11364: c606 sw ra,12(sp) + 11366: b60ff0ef jal ra,106c6 + 1136a: a28186a3 sb s0,-1491(gp) # 200013e5 + 1136e: 4422 lw s0,8(sp) + 11370: 40b2 lw ra,12(sp) + 11372: 0141 addi sp,sp,16 + 11374: e11fe06f j 10184 + +00011378 : +GAPBondMgr_ProcessEvent(): + 11378: 7179 addi sp,sp,-48 + 1137a: d226 sw s1,36(sp) + 1137c: d606 sw ra,44(sp) + 1137e: d422 sw s0,40(sp) + 11380: d04a sw s2,32(sp) + 11382: ce4e sw s3,28(sp) + 11384: cc52 sw s4,24(sp) + 11386: 84ae mv s1,a1 + 11388: 60559793 sext.h a5,a1 + 1138c: 0807d763 bgez a5,1141a + 11390: a2d1c503 lbu a0,-1491(gp) # 200013e5 + 11394: 86bf40ef jal ra,5bfe + 11398: 842a mv s0,a0 + 1139a: c131 beqz a0,113de + 1139c: 211c lbu a5,0(a0) + 1139e: 0b100713 li a4,177 + 113a2: 04e78963 beq a5,a4,113f4 + 113a6: 0d000713 li a4,208 + 113aa: 02e78463 beq a5,a4,113d2 + 113ae: 0b000713 li a4,176 + 113b2: 02e79363 bne a5,a4,113d8 + 113b6: 2158 lbu a4,4(a0) + 113b8: 47f9 li a5,30 + 113ba: 00f71663 bne a4,a5,113c6 + 113be: 212a lhu a0,2(a0) + 113c0: 4581 li a1,0 + 113c2: 97dff0ef jal ra,10d3e + 113c6: 204c lbu a1,4(s0) + 113c8: 00840513 addi a0,s0,8 + 113cc: f36f70ef jal ra,8b02 + 113d0: a021 j 113d8 + 113d2: bf9ff0ef jal ra,10fca + 113d6: c501 beqz a0,113de + 113d8: 8522 mv a0,s0 + 113da: f70f40ef jal ra,5b4a + 113de: 68f49413 binvi s0,s1,0xf + 113e2: 50b2 lw ra,44(sp) + 113e4: 8522 mv a0,s0 + 113e6: 5422 lw s0,40(sp) + 113e8: 5492 lw s1,36(sp) + 113ea: 5902 lw s2,32(sp) + 113ec: 49f2 lw s3,28(sp) + 113ee: 4a62 lw s4,24(sp) + 113f0: 6145 addi sp,sp,48 + 113f2: 8082 ret + 113f4: 215c lbu a5,4(a0) + 113f6: f3ed bnez a5,113d8 + 113f8: 2512 lhu a2,8(a0) + 113fa: 216e lhu a1,6(a0) + 113fc: 212a lhu a0,2(a0) + 113fe: a2018023 sb zero,-1504(gp) # 200013d8 + 11402: 9c7ff0ef jal ra,10dc8 + 11406: a201c783 lbu a5,-1504(gp) # 200013d8 + 1140a: d7f9 beqz a5,113d8 + 1140c: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 11410: a2018023 sb zero,-1504(gp) # 200013d8 + 11414: e40f50ef jal ra,6a54 + 11418: b7c1 j 113d8 + 1141a: 0025f793 andi a5,a1,2 + 1141e: c385 beqz a5,1143e + 11420: 4581 li a1,0 + 11422: 4501 li a0,0 + 11424: e59fe0ef jal ra,1027c + 11428: a2d18793 addi a5,gp,-1491 # 200013e5 + 1142c: 4589 li a1,2 + 1142e: c111 beqz a0,11432 + 11430: 4585 li a1,1 + 11432: 2388 lbu a0,0(a5) + 11434: 0024c413 xori s0,s1,2 + 11438: 00c090ef jal ra,1a444 + 1143c: b75d j 113e2 + 1143e: 0015f413 andi s0,a1,1 + 11442: d045 beqz s0,113e2 + 11444: a1018913 addi s2,gp,-1520 # 200013c8 + 11448: 00092783 lw a5,0(s2) + 1144c: a0818413 addi s0,gp,-1528 # 200013c0 + 11450: 0047da03 lhu s4,4(a5) + 11454: 401c lw a5,0(s0) + 11456: ef81 bnez a5,1146e + 11458: 65c1 lui a1,0x10 + 1145a: a0618713 addi a4,gp,-1530 # 200013be + 1145e: 4689 li a3,2 + 11460: 88c18613 addi a2,gp,-1908 # 20001244 + 11464: 15fd addi a1,a1,-1 # ffff + 11466: 4505 li a0,1 + 11468: f46f80ef jal ra,9bae + 1146c: c008 sw a0,0(s0) + 1146e: 400c lw a1,0(s0) + 11470: 0014c493 xori s1,s1,1 + 11474: e985 bnez a1,114a4 + 11476: 00092783 lw a5,0(s2) + 1147a: 4601 li a2,0 + 1147c: 4585 li a1,1 + 1147e: 23ca lhu a0,4(a5) + 11480: 0804c433 zext.h s0,s1 + 11484: 848ff0ef jal ra,104cc + 11488: 00092783 lw a5,0(s2) + 1148c: 4601 li a2,0 + 1148e: 458d li a1,3 + 11490: 23ca lhu a0,4(a5) + 11492: 83aff0ef jal ra,104cc + 11496: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 1149a: dbaf50ef jal ra,6a54 + 1149e: b19fe0ef jal ra,ffb6 + 114a2: b781 j 113e2 + 114a4: a0618993 addi s3,gp,-1530 # 200013be + 114a8: 0009d603 lhu a2,0(s3) + 114ac: 0ff00893 li a7,255 + 114b0: 4809 li a6,2 + 114b2: 4781 li a5,0 + 114b4: 00e10713 addi a4,sp,14 + 114b8: 0074 addi a3,sp,12 + 114ba: 8552 mv a0,s4 + 114bc: bf7f80ef jal ra,a0b2 + 114c0: e901 bnez a0,114d0 + 114c2: 8630 lhu a2,12(sp) + 114c4: c611 beqz a2,114d0 + 114c6: 401c lw a5,0(s0) + 114c8: 8552 mv a0,s4 + 114ca: 27ae lhu a1,10(a5) + 114cc: 8fdff0ef jal ra,10dc8 + 114d0: 4008 lw a0,0(s0) + 114d2: 0009d603 lhu a2,0(s3) + 114d6: 65c1 lui a1,0x10 + 114d8: 4681 li a3,0 + 114da: 15fd addi a1,a1,-1 # ffff + 114dc: b2ff80ef jal ra,a00a + 114e0: c008 sw a0,0(s0) + 114e2: 0804c433 zext.h s0,s1 + 114e6: d941 beqz a0,11476 + 114e8: 4585 li a1,1 + 114ea: a2d1c503 lbu a0,-1491(gp) # 200013e5 + 114ee: 757080ef jal ra,1a444 + 114f2: bdc5 j 113e2 + +000114f4 : +ggs_SetAttrWPermit(): + 114f4: 2198 lbu a4,0(a1) + 114f6: 00257693 andi a3,a0,2 + 114fa: 0fd77793 andi a5,a4,253 + 114fe: c299 beqz a3,11504 + 11500: 00276793 ori a5,a4,2 + 11504: 07f7f693 andi a3,a5,127 + 11508: 60451713 sext.b a4,a0 + 1150c: 00075463 bgez a4,11514 + 11510: 0807e693 ori a3,a5,128 + 11514: 00857813 andi a6,a0,8 + 11518: 0f76f793 andi a5,a3,247 + 1151c: 00080463 beqz a6,11524 + 11520: 0086e793 ori a5,a3,8 + 11524: 02057693 andi a3,a0,32 + 11528: ce99 beqz a3,11546 + 1152a: 0207e793 ori a5,a5,32 + 1152e: a19c sb a5,0(a1) + 11530: 00075763 bgez a4,1153e + 11534: 221c lbu a5,0(a2) + 11536: 00c7e793 ori a5,a5,12 + 1153a: a21c sb a5,0(a2) + 1153c: 8082 ret + 1153e: 02a57513 andi a0,a0,42 + 11542: f96d bnez a0,11534 + 11544: 8082 ret + 11546: fdf7f793 andi a5,a5,-33 + 1154a: a19c sb a5,0(a1) + 1154c: fe0744e3 bltz a4,11534 + 11550: 02a57793 andi a5,a0,42 + 11554: f3e5 bnez a5,11534 + 11556: f17d bnez a0,1153c + 11558: 221c lbu a5,0(a2) + 1155a: 9bcd andi a5,a5,-13 + 1155c: bff9 j 1153a + +0001155e : +ggs_ReadAttrCB(): + 1155e: 452d li a0,11 + 11560: 10071263 bnez a4,11664 + 11564: 1101 addi sp,sp,-32 + 11566: ca26 sw s1,20(sp) + 11568: c84a sw s2,16(sp) + 1156a: c64e sw s3,12(sp) + 1156c: ce06 sw ra,28(sp) + 1156e: cc22 sw s0,24(sp) + 11570: 2198 lbu a4,0(a1) + 11572: 89be mv s3,a5 + 11574: 4789 li a5,2 + 11576: 892e mv s2,a1 + 11578: 84b6 mv s1,a3 + 1157a: 04f71a63 bne a4,a5,115ce + 1157e: 41dc lw a5,4(a1) + 11580: 8432 mv s0,a2 + 11582: 3398 lbu a4,1(a5) + 11584: 2394 lbu a3,0(a5) + 11586: 0722 slli a4,a4,0x8 + 11588: 8f55 or a4,a4,a3 + 1158a: 668d lui a3,0x3 + 1158c: a0468613 addi a2,a3,-1532 # 2a04 + 11590: 60571793 sext.h a5,a4 + 11594: 02f64963 blt a2,a5,115c6 + 11598: 9ff68693 addi a3,a3,-1537 + 1159c: 02f6d963 bge a3,a5,115ce + 115a0: 77f5 lui a5,0xffffd + 115a2: 5ff78793 addi a5,a5,1535 # ffffd5ff <_eusrstack+0xdfffa5ff> + 115a6: 973e add a4,a4,a5 + 115a8: 478d li a5,3 + 115aa: 45c8 lw a0,12(a1) + 115ac: 08074733 zext.h a4,a4 + 115b0: 02e7e363 bltu a5,a4,115d6 + 115b4: 00008697 auipc a3,0x8 + 115b8: 71c68693 addi a3,a3,1820 # 19cd0 + 115bc: 20d74733 sh2add a4,a4,a3 + 115c0: 431c lw a5,0(a4) + 115c2: 97b6 add a5,a5,a3 + 115c4: 8782 jr a5 + 115c6: aa668693 addi a3,a3,-1370 + 115ca: 08d78863 beq a5,a3,1165a + 115ce: 00049023 sh zero,0(s1) + 115d2: 4505 li a0,1 + 115d4: a03d j 11602 + 115d6: 4cd080ef jal ra,1a2a2 + 115da: 00c92583 lw a1,12(s2) + 115de: 08054633 zext.h a2,a0 + 115e2: 0b365633 minu a2,a2,s3 + 115e6: a092 sh a2,0(s1) + 115e8: 8522 mv a0,s0 + 115ea: 1ffef097 auipc ra,0x1ffef + 115ee: 272080e7 jalr 626(ra) # 2000085c + 115f2: a039 j 11600 + 115f4: 211e lhu a5,0(a0) + 115f6: 4709 li a4,2 + 115f8: a09a sh a4,0(s1) + 115fa: a01c sb a5,0(s0) + 115fc: 83a1 srli a5,a5,0x8 + 115fe: b01c sb a5,1(s0) + 11600: 4501 li a0,0 + 11602: 40f2 lw ra,28(sp) + 11604: 4462 lw s0,24(sp) + 11606: 44d2 lw s1,20(sp) + 11608: 4942 lw s2,16(sp) + 1160a: 49b2 lw s3,12(sp) + 1160c: 6105 addi sp,sp,32 + 1160e: 8082 ret + 11610: 4799 li a5,6 + 11612: a09e sh a5,0(s1) + 11614: 4619 li a2,6 + 11616: 85aa mv a1,a0 + 11618: bfc1 j 115e8 + 1161a: 4785 li a5,1 + 1161c: a09e sh a5,0(s1) + 1161e: 211c lbu a5,0(a0) + 11620: a01c sb a5,0(s0) + 11622: bff9 j 11600 + 11624: c905 beqz a0,11654 + 11626: 47a1 li a5,8 + 11628: a09e sh a5,0(s1) + 1162a: 211e lhu a5,0(a0) + 1162c: a01c sb a5,0(s0) + 1162e: 211e lhu a5,0(a0) + 11630: 83a1 srli a5,a5,0x8 + 11632: b01c sb a5,1(s0) + 11634: 213e lhu a5,2(a0) + 11636: a03c sb a5,2(s0) + 11638: 213e lhu a5,2(a0) + 1163a: 83a1 srli a5,a5,0x8 + 1163c: b03c sb a5,3(s0) + 1163e: 215e lhu a5,4(a0) + 11640: a05c sb a5,4(s0) + 11642: 215e lhu a5,4(a0) + 11644: 83a1 srli a5,a5,0x8 + 11646: b05c sb a5,5(s0) + 11648: 217e lhu a5,6(a0) + 1164a: a07c sb a5,6(s0) + 1164c: 217e lhu a5,6(a0) + 1164e: 83a1 srli a5,a5,0x8 + 11650: b07c sb a5,7(s0) + 11652: b77d j 11600 + 11654: 00049023 sh zero,0(s1) + 11658: b765 j 11600 + 1165a: 4785 li a5,1 + 1165c: a09e sh a5,0(s1) + 1165e: 45dc lw a5,12(a1) + 11660: 239c lbu a5,0(a5) + 11662: bf7d j 11620 + 11664: 8082 ret + +00011666 : +ggs_WriteAttrCB(): + 11666: 7179 addi sp,sp,-48 + 11668: d422 sw s0,40(sp) + 1166a: d04a sw s2,32(sp) + 1166c: d606 sw ra,44(sp) + 1166e: d226 sw s1,36(sp) + 11670: ce4e sw s3,28(sp) + 11672: cc52 sw s4,24(sp) + 11674: ca56 sw s5,20(sp) + 11676: 893a mv s2,a4 + 11678: 2198 lbu a4,0(a1) + 1167a: 4789 li a5,2 + 1167c: 842e mv s0,a1 + 1167e: 02f71b63 bne a4,a5,116b4 + 11682: 405c lw a5,4(s0) + 11684: 84b6 mv s1,a3 + 11686: 680d lui a6,0x3 + 11688: 2394 lbu a3,0(a5) + 1168a: 339c lbu a5,1(a5) + 1168c: 85b2 mv a1,a2 + 1168e: 07a2 slli a5,a5,0x8 + 11690: 8fd5 or a5,a5,a3 + 11692: a0280693 addi a3,a6,-1534 # 2a02 + 11696: 60579793 sext.h a5,a5 + 1169a: 0ed78b63 beq a5,a3,11790 + 1169e: 8a2a mv s4,a0 + 116a0: 00f6cc63 blt a3,a5,116b8 + 116a4: a0080693 addi a3,a6,-1536 + 116a8: 02d78b63 beq a5,a3,116de + 116ac: a0180813 addi a6,a6,-1535 + 116b0: 09078a63 beq a5,a6,11744 + 116b4: 4805 li a6,1 + 116b6: a811 j 116ca + 116b8: a0380713 addi a4,a6,-1533 + 116bc: 0ae78763 beq a5,a4,1176a + 116c0: aa680713 addi a4,a6,-1370 + 116c4: 480d li a6,3 + 116c6: fee797e3 bne a5,a4,116b4 + 116ca: 50b2 lw ra,44(sp) + 116cc: 5422 lw s0,40(sp) + 116ce: 5492 lw s1,36(sp) + 116d0: 5902 lw s2,32(sp) + 116d2: 49f2 lw s3,28(sp) + 116d4: 4a62 lw s4,24(sp) + 116d6: 4ad2 lw s5,20(sp) + 116d8: 8542 mv a0,a6 + 116da: 6145 addi sp,sp,48 + 116dc: 8082 ret + 116de: 4448 lw a0,12(s0) + 116e0: c632 sw a2,12(sp) + 116e2: 3c1080ef jal ra,1a2a2 + 116e6: 481d li a6,7 + 116e8: 08054533 zext.h a0,a0 + 116ec: fd256fe3 bltu a0,s2,116ca + 116f0: a3a18a93 addi s5,gp,-1478 # 200013f2 + 116f4: 000ac783 lbu a5,0(s5) + 116f8: 009909b3 add s3,s2,s1 + 116fc: 45b2 lw a1,12(sp) + 116fe: 0137d463 bge a5,s3,11706 + 11702: 4835 li a6,13 + 11704: b7d9 j 116ca + 11706: 4448 lw a0,12(s0) + 11708: 8626 mv a2,s1 + 1170a: 0809c9b3 zext.h s3,s3 + 1170e: 954a add a0,a0,s2 + 11710: 1ffef097 auipc ra,0x1ffef + 11714: 14c080e7 jalr 332(ra) # 2000085c + 11718: 000ac603 lbu a2,0(s5) + 1171c: 4448 lw a0,12(s0) + 1171e: 4581 li a1,0 + 11720: 0605 addi a2,a2,1 + 11722: 41360633 sub a2,a2,s3 + 11726: 954e add a0,a0,s3 + 11728: 1ffef097 auipc ra,0x1ffef + 1172c: 172080e7 jalr 370(ra) # 2000089a + 11730: a3c1a783 lw a5,-1476(gp) # 200013f4 + 11734: e399 bnez a5,1173a + 11736: 4801 li a6,0 + 11738: bf49 j 116ca + 1173a: 439c lw a5,0(a5) + 1173c: 4581 li a1,0 + 1173e: dfe5 beqz a5,11736 + 11740: 8552 mv a0,s4 + 11742: a015 j 11766 + 11744: 482d li a6,11 + 11746: f80912e3 bnez s2,116ca + 1174a: fae49ce3 bne s1,a4,11702 + 1174e: 321c lbu a5,1(a2) + 11750: 2218 lbu a4,0(a2) + 11752: 07a2 slli a5,a5,0x8 + 11754: 8fd9 or a5,a5,a4 + 11756: 4458 lw a4,12(s0) + 11758: a31e sh a5,0(a4) + 1175a: a3c1a783 lw a5,-1476(gp) # 200013f4 + 1175e: dfe1 beqz a5,11736 + 11760: 439c lw a5,0(a5) + 11762: 4585 li a1,1 + 11764: dbe9 beqz a5,11736 + 11766: 9782 jalr a5 + 11768: b7f9 j 11736 + 1176a: 482d li a6,11 + 1176c: f4091fe3 bnez s2,116ca + 11770: 4799 li a5,6 + 11772: f8f498e3 bne s1,a5,11702 + 11776: 4448 lw a0,12(s0) + 11778: 4619 li a2,6 + 1177a: 1ffef097 auipc ra,0x1ffef + 1177e: 0e2080e7 jalr 226(ra) # 2000085c + 11782: a3c1a783 lw a5,-1476(gp) # 200013f4 + 11786: dbc5 beqz a5,11736 + 11788: 439c lw a5,0(a5) + 1178a: d7d5 beqz a5,11736 + 1178c: 458d li a1,3 + 1178e: bf4d j 11740 + 11790: 482d li a6,11 + 11792: f2091ce3 bnez s2,116ca + 11796: 4785 li a5,1 + 11798: f6f495e3 bne s1,a5,11702 + 1179c: 221c lbu a5,0(a2) + 1179e: 08000813 li a6,128 + 117a2: f2f4e4e3 bltu s1,a5,116ca + 117a6: 4458 lw a4,12(s0) + 117a8: a31c sb a5,0(a4) + 117aa: b771 j 11736 + +000117ac : +GGS_ParamInit(): + 117ac: a201ae23 sw zero,-1476(gp) # 200013f4 + 117b0: a2018723 sb zero,-1490(gp) # 200013e6 + 117b4: a2018d23 sb zero,-1478(gp) # 200013f2 + 117b8: 00a007b7 lui a5,0xa00 + 117bc: a3018593 addi a1,gp,-1488 # 200013e8 + 117c0: 0799 addi a5,a5,6 # a00006 <_data_lma+0x9e4a4a> + 117c2: c19c sw a5,0(a1) + 117c4: 03e807b7 lui a5,0x3e80 + 117c8: c1dc sw a5,4(a1) + 117ca: 89c18613 addi a2,gp,-1892 # 20001254 + 117ce: 1fff1797 auipc a5,0x1fff1 + 117d2: 27278793 addi a5,a5,626 # 20002a40 + 117d6: 4709 li a4,2 + 117d8: 83518e93 addi t4,gp,-1995 # 200011ed + 117dc: c3d0 sw a2,4(a5) + 117de: 8b018613 addi a2,gp,-1872 # 20001268 + 117e2: 4685 li a3,1 + 117e4: 00ee8023 sb a4,0(t4) + 117e8: 83418e13 addi t3,gp,-1996 # 200011ec + 117ec: 83318893 addi a7,gp,-1997 # 200011eb + 117f0: c7d0 sw a2,12(a5) + 117f2: 01d7ae23 sw t4,28(a5) + 117f6: 89418613 addi a2,gp,-1900 # 2000124c + 117fa: a3818313 addi t1,gp,-1480 # 200013f0 + 117fe: 83218813 addi a6,gp,-1998 # 200011ea + 11802: 83118513 addi a0,gp,-1999 # 200011e9 + 11806: 88818e93 addi t4,gp,-1912 # 20001240 + 1180a: 00ee0023 sb a4,0(t3) + 1180e: 00e88023 sb a4,0(a7) + 11812: a398 sb a4,0(a5) + 11814: ab98 sb a4,16(a5) + 11816: cbd0 sw a2,20(a5) + 11818: 02e78023 sb a4,32(a5) + 1181c: 02e78823 sb a4,48(a5) + 11820: dbd0 sw a2,52(a5) + 11822: 03c7ae23 sw t3,60(a5) + 11826: 04e78023 sb a4,64(a5) + 1182a: 00e80023 sb a4,0(a6) + 1182e: a794 sb a3,8(a5) + 11830: 00079523 sh zero,10(a5) + 11834: af94 sb a3,24(a5) + 11836: 00079d23 sh zero,26(a5) + 1183a: 03d7a223 sw t4,36(a5) + 1183e: 02d78423 sb a3,40(a5) + 11842: 02079523 sh zero,42(a5) + 11846: 0207a623 sw zero,44(a5) + 1184a: 02d78c23 sb a3,56(a5) + 1184e: 02079d23 sh zero,58(a5) + 11852: 00031023 sh zero,0(t1) + 11856: a114 sb a3,0(a0) + 11858: 88418e13 addi t3,gp,-1916 # 2000123c + 1185c: 05c7a223 sw t3,68(a5) + 11860: 04e78823 sb a4,80(a5) + 11864: cbf0 sw a2,84(a5) + 11866: 0517ae23 sw a7,92(a5) + 1186a: 06e78023 sb a4,96(a5) + 1186e: 06e78823 sb a4,112(a5) + 11872: dbf0 sw a2,116(a5) + 11874: 08e78023 sb a4,128(a5) + 11878: 88018893 addi a7,gp,-1920 # 20001238 + 1187c: 1fff1717 auipc a4,0x1fff1 + 11880: 24470713 addi a4,a4,580 # 20002ac0 + 11884: 87c18613 addi a2,gp,-1924 # 20001234 + 11888: 04d78423 sb a3,72(a5) + 1188c: 04079523 sh zero,74(a5) + 11890: 0467a623 sw t1,76(a5) + 11894: 04d78c23 sb a3,88(a5) + 11898: 04079d23 sh zero,90(a5) + 1189c: 0717a223 sw a7,100(a5) + 118a0: 06d78423 sb a3,104(a5) + 118a4: 06079523 sh zero,106(a5) + 118a8: d7ec sw a1,108(a5) + 118aa: 06d78c23 sb a3,120(a5) + 118ae: 06079d23 sh zero,122(a5) + 118b2: 0707ae23 sw a6,124(a5) + 118b6: c350 sw a2,4(a4) + 118b8: 08d78423 sb a3,136(a5) + 118bc: 08079523 sh zero,138(a5) + 118c0: c748 sw a0,12(a4) + 118c2: 1fff0797 auipc a5,0x1fff0 + 118c6: 88a78793 addi a5,a5,-1910 # 2000114c + 118ca: 00000717 auipc a4,0x0 + 118ce: c9470713 addi a4,a4,-876 # 1155e + 118d2: c398 sw a4,0(a5) + 118d4: 00000717 auipc a4,0x0 + 118d8: d9270713 addi a4,a4,-622 # 11666 + 118dc: c3d8 sw a4,4(a5) + 118de: 0007a423 sw zero,8(a5) + 118e2: 8082 ret + +000118e4 : +GGS_SetParameter(): + 118e4: 47a5 li a5,9 + 118e6: 10a7e163 bltu a5,a0,119e8 + 118ea: 00008717 auipc a4,0x8 + 118ee: 3f670713 addi a4,a4,1014 # 19ce0 + 118f2: 20e54533 sh2add a0,a0,a4 + 118f6: 411c lw a5,0(a0) + 118f8: 1101 addi sp,sp,-32 + 118fa: cc22 sw s0,24(sp) + 118fc: 97ba add a5,a5,a4 + 118fe: ca26 sw s1,20(sp) + 11900: ce06 sw ra,28(sp) + 11902: c84a sw s2,16(sp) + 11904: 842e mv s0,a1 + 11906: 84b2 mv s1,a2 + 11908: 8782 jr a5 + 1190a: 0f800793 li a5,248 + 1190e: 00b7f963 bgeu a5,a1,11920 + 11912: 4561 li a0,24 + 11914: 40f2 lw ra,28(sp) + 11916: 4462 lw s0,24(sp) + 11918: 44d2 lw s1,20(sp) + 1191a: 4942 lw s2,16(sp) + 1191c: 6105 addi sp,sp,32 + 1191e: 8082 ret + 11920: 1fff1917 auipc s2,0x1fff1 + 11924: 12090913 addi s2,s2,288 # 20002a40 + 11928: 02c92503 lw a0,44(s2) + 1192c: c519 beqz a0,1193a + 1192e: 1ffef097 auipc ra,0x1ffef + 11932: 592080e7 jalr 1426(ra) # 20000ec0 + 11936: a2018d23 sb zero,-1478(gp) # 200013f2 + 1193a: 00140613 addi a2,s0,1 + 1193e: 0ff67613 zext.b a2,a2 + 11942: 6591 lui a1,0x4 + 11944: 71058593 addi a1,a1,1808 # 4710 + 11948: 8532 mv a0,a2 + 1194a: c632 sw a2,12(sp) + 1194c: 5a1080ef jal ra,1a6ec + 11950: 02a92623 sw a0,44(s2) + 11954: dd5d beqz a0,11912 + 11956: 4632 lw a2,12(sp) + 11958: 4581 li a1,0 + 1195a: 1ffef097 auipc ra,0x1ffef + 1195e: f40080e7 jalr -192(ra) # 2000089a + 11962: 02c92503 lw a0,44(s2) + 11966: 8622 mv a2,s0 + 11968: 85a6 mv a1,s1 + 1196a: 1ffef097 auipc ra,0x1ffef + 1196e: ef2080e7 jalr -270(ra) # 2000085c + 11972: a2818d23 sb s0,-1478(gp) # 200013f2 + 11976: 4501 li a0,0 + 11978: bf71 j 11914 + 1197a: 4789 li a5,2 + 1197c: f8f59be3 bne a1,a5,11912 + 11980: 221e lhu a5,0(a2) + 11982: a2f19c23 sh a5,-1480(gp) # 200013f0 + 11986: bfc5 j 11976 + 11988: 47a1 li a5,8 + 1198a: f8f594e3 bne a1,a5,11912 + 1198e: 4621 li a2,8 + 11990: 85a6 mv a1,s1 + 11992: a3018513 addi a0,gp,-1488 # 200013e8 + 11996: 1ffef097 auipc ra,0x1ffef + 1199a: ec6080e7 jalr -314(ra) # 2000085c + 1199e: bfe1 j 11976 + 119a0: 4785 li a5,1 + 119a2: f6f598e3 bne a1,a5,11912 + 119a6: 1fff1617 auipc a2,0x1fff1 + 119aa: 0b662603 lw a2,182(a2) # 20002a5c + 119ae: 1fff1597 auipc a1,0x1fff1 + 119b2: 0ba58593 addi a1,a1,186 # 20002a68 + 119b6: 2088 lbu a0,0(s1) + 119b8: b3dff0ef jal ra,114f4 + 119bc: bf6d j 11976 + 119be: 4785 li a5,1 + 119c0: f4f599e3 bne a1,a5,11912 + 119c4: 1fff1617 auipc a2,0x1fff1 + 119c8: 0b862603 lw a2,184(a2) # 20002a7c + 119cc: 1fff1597 auipc a1,0x1fff1 + 119d0: 0bc58593 addi a1,a1,188 # 20002a88 + 119d4: b7cd j 119b6 + 119d6: 4785 li a5,1 + 119d8: f2f59de3 bne a1,a5,11912 + 119dc: 221c lbu a5,0(a2) + 119de: 82f188a3 sb a5,-1999(gp) # 200011e9 + 119e2: bf51 j 11976 + 119e4: 4509 li a0,2 + 119e6: b73d j 11914 + 119e8: 4509 li a0,2 + 119ea: 8082 ret + +000119ec : +GGS_AddService(): + 119ec: a2e18793 addi a5,gp,-1490 # 200013e6 + 119f0: 2398 lbu a4,0(a5) + 119f2: e30d bnez a4,11a14 + 119f4: 4705 li a4,1 + 119f6: a398 sb a4,0(a5) + 119f8: 8905 andi a0,a0,1 + 119fa: cd09 beqz a0,11a14 + 119fc: 1ffef697 auipc a3,0x1ffef + 11a00: 75068693 addi a3,a3,1872 # 2000114c + 11a04: 4641 li a2,16 + 11a06: 45a5 li a1,9 + 11a08: 1fff1517 auipc a0,0x1fff1 + 11a0c: 03850513 addi a0,a0,56 # 20002a40 + 11a10: 97cf906f j ab8c + 11a14: 4501 li a0,0 + 11a16: 8082 ret + +00011a18 : +gapRole_PeripheralProcessGAPMsg(): + 11a18: 2134 lbu a3,2(a0) + 11a1a: 4799 li a5,6 + 11a1c: 1ad7e963 bltu a5,a3,11bce + 11a20: 00008717 auipc a4,0x8 + 11a24: 2e870713 addi a4,a4,744 # 19d08 + 11a28: 20e6c7b3 sh2add a5,a3,a4 + 11a2c: 439c lw a5,0(a5) + 11a2e: 1141 addi sp,sp,-16 + 11a30: c422 sw s0,8(sp) + 11a32: 97ba add a5,a5,a4 + 11a34: c606 sw ra,12(sp) + 11a36: c226 sw s1,4(sp) + 11a38: 842a mv s0,a0 + 11a3a: 8782 jr a5 + 11a3c: 311c lbu a5,1(a0) + 11a3e: a6818493 addi s1,gp,-1432 # 20001420 + 11a42: e7c1 bnez a5,11aca + 11a44: 4641 li a2,16 + 11a46: 1fff1597 auipc a1,0x1fff1 + 11a4a: 09a58593 addi a1,a1,154 # 20002ae0 + 11a4e: 1fff1517 auipc a0,0x1fff1 + 11a52: 0b250513 addi a0,a0,178 # 20002b00 + 11a56: 1ffef097 auipc ra,0x1ffef + 11a5a: e84080e7 jalr -380(ra) # 200008da + 11a5e: e539 bnez a0,11aac + 11a60: 1fff1617 auipc a2,0x1fff1 + 11a64: 0a060613 addi a2,a2,160 # 20002b00 + 11a68: 45c1 li a1,16 + 11a6a: 4509 li a0,2 + 11a6c: 83cf50ef jal ra,6aa8 + 11a70: 1fff1617 auipc a2,0x1fff1 + 11a74: 08060613 addi a2,a2,128 # 20002af0 + 11a78: 45c1 li a1,16 + 11a7a: 450d li a0,3 + 11a7c: 82cf50ef jal ra,6aa8 + 11a80: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 11a84: fd1f40ef jal ra,6a54 + 11a88: 00340593 addi a1,s0,3 + 11a8c: a4818513 addi a0,gp,-1464 # 20001400 + 11a90: 4619 li a2,6 + 11a92: 1ffef097 auipc ra,0x1ffef + 11a96: dca080e7 jalr -566(ra) # 2000085c + 11a9a: 4785 li a5,1 + 11a9c: 4585 li a1,1 + 11a9e: a6c1c503 lbu a0,-1428(gp) # 20001424 + 11aa2: c09c sw a5,0(s1) + 11aa4: 1a1080ef jal ra,1a444 + 11aa8: 4088 lw a0,0(s1) + 11aaa: a051 j 11b2e + 11aac: 4641 li a2,16 + 11aae: 1fff1597 auipc a1,0x1fff1 + 11ab2: 02258593 addi a1,a1,34 # 20002ad0 + 11ab6: 1fff1517 auipc a0,0x1fff1 + 11aba: 03a50513 addi a0,a0,58 # 20002af0 + 11abe: 1ffef097 auipc ra,0x1ffef + 11ac2: e1c080e7 jalr -484(ra) # 200008da + 11ac6: dd49 beqz a0,11a60 + 11ac8: b7c1 j 11a88 + 11aca: 4799 li a5,6 + 11acc: c09c sw a5,0(s1) + 11ace: bfe9 j 11aa8 + 11ad0: 3118 lbu a4,1(a0) + 11ad2: 313c lbu a5,3(a0) + 11ad4: e30d bnez a4,11af6 + 11ad6: 4705 li a4,1 + 11ad8: 4581 li a1,0 + 11ada: 4501 li a0,0 + 11adc: 00e79a63 bne a5,a4,11af0 + 11ae0: 94bf60ef jal ra,842a + 11ae4: b008 sb a0,1(s0) + 11ae6: 40b2 lw ra,12(sp) + 11ae8: 4422 lw s0,8(sp) + 11aea: 4492 lw s1,4(sp) + 11aec: 0141 addi sp,sp,16 + 11aee: 8082 ret + 11af0: 87ff60ef jal ra,836e + 11af4: bfc5 j 11ae4 + 11af6: 4709 li a4,2 + 11af8: fee787e3 beq a5,a4,11ae6 + 11afc: a6818713 addi a4,gp,-1432 # 20001420 + 11b00: 431c lw a5,0(a4) + 11b02: 9bc1 andi a5,a5,-16 + 11b04: 0067e513 ori a0,a5,6 + 11b08: c308 sw a0,0(a4) + 11b0a: a015 j 11b2e + 11b0c: 3118 lbu a4,1(a0) + 11b0e: a6818613 addi a2,gp,-1432 # 20001420 + 11b12: 421c lw a5,0(a2) + 11b14: eb31 bnez a4,11b68 + 11b16: 458d li a1,3 + 11b18: 00f7f713 andi a4,a5,15 + 11b1c: 02b69b63 bne a3,a1,11b52 + 11b20: 4691 li a3,4 + 11b22: 02d71163 bne a4,a3,11b44 + 11b26: 9bc1 andi a5,a5,-16 + 11b28: 0057e513 ori a0,a5,5 + 11b2c: c208 sw a0,0(a2) + 11b2e: a401a783 lw a5,-1472(gp) # 200013f8 + 11b32: dbd5 beqz a5,11ae6 + 11b34: 439c lw a5,0(a5) + 11b36: dbc5 beqz a5,11ae6 + 11b38: 85a2 mv a1,s0 + 11b3a: 4422 lw s0,8(sp) + 11b3c: 40b2 lw ra,12(sp) + 11b3e: 4492 lw s1,4(sp) + 11b40: 0141 addi sp,sp,16 + 11b42: 8782 jr a5 + 11b44: 4689 li a3,2 + 11b46: fad700e3 beq a4,a3,11ae6 + 11b4a: 9bc1 andi a5,a5,-16 + 11b4c: 0027e513 ori a0,a5,2 + 11b50: bff1 j 11b2c + 11b52: a6018323 sb zero,-1434(gp) # 2000141e + 11b56: 9bc1 andi a5,a5,-16 + 11b58: 4695 li a3,5 + 11b5a: 0037e513 ori a0,a5,3 + 11b5e: fcd717e3 bne a4,a3,11b2c + 11b62: 0047e513 ori a0,a5,4 + 11b66: b7d9 j 11b2c + 11b68: 9bc1 andi a5,a5,-16 + 11b6a: 0067e513 ori a0,a5,6 + 11b6e: bf7d j 11b2c + 11b70: a6818493 addi s1,gp,-1432 # 20001420 + 11b74: 409c lw a5,0(s1) + 11b76: 3118 lbu a4,1(a0) + 11b78: 9bc1 andi a5,a5,-16 + 11b7a: ef11 bnez a4,11b96 + 11b7c: 0047e793 ori a5,a5,4 + 11b80: c09c sw a5,0(s1) + 11b82: 2532 lhu a2,10(a0) + 11b84: 00450593 addi a1,a0,4 + 11b88: 3128 lbu a0,3(a0) + 11b8a: 4691 li a3,4 + 11b8c: aeeff0ef jal ra,10e7a + 11b90: a6018323 sb zero,-1434(gp) # 2000141e + 11b94: bf11 j 11aa8 + 11b96: 03100693 li a3,49 + 11b9a: 00d71763 bne a4,a3,11ba8 + 11b9e: a6018323 sb zero,-1434(gp) # 2000141e + 11ba2: 0037e793 ori a5,a5,3 + 11ba6: b71d j 11acc + 11ba8: 0067e793 ori a5,a5,6 + 11bac: b705 j 11acc + 11bae: c1cff0ef jal ra,10fca + 11bb2: a6818713 addi a4,gp,-1432 # 20001420 + 11bb6: 431c lw a5,0(a4) + 11bb8: 4695 li a3,5 + 11bba: 00f7f613 andi a2,a5,15 + 11bbe: 9bc1 andi a5,a5,-16 + 11bc0: 0037e513 ori a0,a5,3 + 11bc4: f4d612e3 bne a2,a3,11b08 + 11bc8: 0027e513 ori a0,a5,2 + 11bcc: bf35 j 11b08 + 11bce: 8082 ret + +00011bd0 : +gapRole_PeripheralProcessTMOSMsg(): + 11bd0: 2118 lbu a4,0(a0) + 11bd2: 09100693 li a3,145 + 11bd6: 00d70763 beq a4,a3,11be4 + 11bda: 0d000793 li a5,208 + 11bde: 02f70e63 beq a4,a5,11c1a + 11be2: 8082 ret + 11be4: 3114 lbu a3,1(a0) + 11be6: 4739 li a4,14 + 11be8: 02e69b63 bne a3,a4,11c1e + 11bec: 2156 lhu a3,4(a0) + 11bee: 6705 lui a4,0x1 + 11bf0: 40570713 addi a4,a4,1029 # 1405 <_einit+0x401> + 11bf4: 02e69563 bne a3,a4,11c1e + 11bf8: 451c lw a5,8(a0) + 11bfa: 07f00713 li a4,127 + 11bfe: 00378583 lb a1,3(a5) + 11c02: 00e58e63 beq a1,a4,11c1e + 11c06: a401a703 lw a4,-1472(gp) # 200013f8 + 11c0a: cb11 beqz a4,11c1e + 11c0c: 4358 lw a4,4(a4) + 11c0e: cb01 beqz a4,11c1e + 11c10: 3388 lbu a0,1(a5) + 11c12: 23bc lbu a5,2(a5) + 11c14: 07a2 slli a5,a5,0x8 + 11c16: 8d5d or a0,a0,a5 + 11c18: 8702 jr a4 + 11c1a: dffff06f j 11a18 + 11c1e: 8082 ret + +00011c20 : +GAPRole_PeripheralProcessEvent(): + 11c20: 1101 addi sp,sp,-32 + 11c22: cc22 sw s0,24(sp) + 11c24: ce06 sw ra,28(sp) + 11c26: ca26 sw s1,20(sp) + 11c28: 842e mv s0,a1 + 11c2a: 60559793 sext.h a5,a1 + 11c2e: 0207d463 bgez a5,11c56 + 11c32: a6c1c503 lbu a0,-1428(gp) # 20001424 + 11c36: fc9f30ef jal ra,5bfe + 11c3a: 84aa mv s1,a0 + 11c3c: c511 beqz a0,11c48 + 11c3e: f93ff0ef jal ra,11bd0 + 11c42: 8526 mv a0,s1 + 11c44: f07f30ef jal ra,5b4a + 11c48: 68f41513 binvi a0,s0,0xf + 11c4c: 40f2 lw ra,28(sp) + 11c4e: 4462 lw s0,24(sp) + 11c50: 44d2 lw s1,20(sp) + 11c52: 6105 addi sp,sp,32 + 11c54: 8082 ret + 11c56: 6791 lui a5,0x4 + 11c58: 8fed and a5,a5,a1 + 11c5a: cf91 beqz a5,11c76 + 11c5c: a5018613 addi a2,gp,-1456 # 20001408 + 11c60: 4591 li a1,4 + 11c62: 4511 li a0,4 + 11c64: e45f40ef jal ra,6aa8 + 11c68: 82e1c503 lbu a0,-2002(gp) # 200011e6 + 11c6c: de9f40ef jal ra,6a54 + 11c70: 68e41513 binvi a0,s0,0xe + 11c74: bfe1 j 11c4c + 11c76: 0015f513 andi a0,a1,1 + 11c7a: d969 beqz a0,11c4c + 11c7c: a661c783 lbu a5,-1434(gp) # 2000141e + 11c80: c3a1 beqz a5,11cc0 + 11c82: 95efa0ef jal ra,bde0 + 11c86: c121 beqz a0,11cc6 + 11c88: 478d li a5,3 + 11c8a: 825c sb a5,4(sp) + 11c8c: a591c783 lbu a5,-1447(gp) # 20001411 + 11c90: 865c sb a5,12(sp) + 11c92: 004c addi a1,sp,4 + 11c94: a581c783 lbu a5,-1448(gp) # 20001410 + 11c98: a6c1c503 lbu a0,-1428(gp) # 20001424 + 11c9c: 86dc sb a5,13(sp) + 11c9e: d3af60ef jal ra,81d8 + 11ca2: cd19 beqz a0,11cc0 + 11ca4: a6818793 addi a5,gp,-1432 # 20001420 + 11ca8: 4388 lw a0,0(a5) + 11caa: 9941 andi a0,a0,-16 + 11cac: 00656513 ori a0,a0,6 + 11cb0: c388 sw a0,0(a5) + 11cb2: a401a783 lw a5,-1472(gp) # 200013f8 + 11cb6: c789 beqz a5,11cc0 + 11cb8: 439c lw a5,0(a5) + 11cba: c399 beqz a5,11cc0 + 11cbc: 4581 li a1,0 + 11cbe: 9782 jalr a5 + 11cc0: 00144513 xori a0,s0,1 + 11cc4: b761 j 11c4c + 11cc6: a631c783 lbu a5,-1437(gp) # 2000141b + 11cca: 825c sb a5,4(sp) + 11ccc: 4619 li a2,6 + 11cce: a621c783 lbu a5,-1438(gp) # 2000141a + 11cd2: a5c18593 addi a1,gp,-1444 # 20001414 + 11cd6: 00610513 addi a0,sp,6 + 11cda: 82dc sb a5,5(sp) + 11cdc: 1ffef097 auipc ra,0x1ffef + 11ce0: b80080e7 jalr -1152(ra) # 2000085c + 11ce4: b765 j 11c8c + +00011ce6 : +GAPRole_PeripheralConnParamUpdateReq(): + 11ce6: 1101 addi sp,sp,-32 + 11ce8: cc22 sw s0,24(sp) + 11cea: ce06 sw ra,28(sp) + 11cec: 842a mv s0,a0 + 11cee: c62e sw a1,12(sp) + 11cf0: c432 sw a2,8(sp) + 11cf2: c236 sw a3,4(sp) + 11cf4: c03a sw a4,0(sp) + 11cf6: e3bf90ef jal ra,bb30 + 11cfa: c90d beqz a0,11d2c + 11cfc: 257e lhu a5,14(a0) + 11cfe: 45b2 lw a1,12(sp) + 11d00: 4702 lw a4,0(sp) + 11d02: 4692 lw a3,4(sp) + 11d04: 4622 lw a2,8(sp) + 11d06: 00b7eb63 bltu a5,a1,11d1c + 11d0a: 00f66963 bltu a2,a5,11d1c + 11d0e: 291e lhu a5,16(a0) + 11d10: 00d79663 bne a5,a3,11d1c + 11d14: 293e lhu a5,18(a0) + 11d16: 4561 li a0,24 + 11d18: 00e78663 beq a5,a4,11d24 + 11d1c: 8522 mv a0,s0 + 11d1e: d55f50ef jal ra,7a72 + 11d22: 4501 li a0,0 + 11d24: 40f2 lw ra,28(sp) + 11d26: 4462 lw s0,24(sp) + 11d28: 6105 addi sp,sp,32 + 11d2a: 8082 ret + 11d2c: 4551 li a0,20 + 11d2e: bfdd j 11d24 + +00011d30 : +GAPRole_PeripheralStartDevice(): + 11d30: 1141 addi sp,sp,-16 + 11d32: c422 sw s0,8(sp) + 11d34: c606 sw ra,12(sp) + 11d36: 9ca188a3 sb a0,-1583(gp) # 20001389 + 11d3a: 8432 mv s0,a2 + 11d3c: c581 beqz a1,11d44 + 11d3e: 852e mv a0,a1 + 11d40: 904ff0ef jal ra,10e44 + 11d44: a681a783 lw a5,-1432(gp) # 20001420 + 11d48: eb85 bnez a5,11d78 + 11d4a: c019 beqz s0,11d50 + 11d4c: a481a023 sw s0,-1472(gp) # 200013f8 + 11d50: 4422 lw s0,8(sp) + 11d52: 40b2 lw ra,12(sp) + 11d54: a671c583 lbu a1,-1433(gp) # 2000141f + 11d58: a6c1c503 lbu a0,-1428(gp) # 20001424 + 11d5c: a5018793 addi a5,gp,-1456 # 20001408 + 11d60: 1fff1717 auipc a4,0x1fff1 + 11d64: d9070713 addi a4,a4,-624 # 20002af0 + 11d68: 1fff1697 auipc a3,0x1fff1 + 11d6c: d9868693 addi a3,a3,-616 # 20002b00 + 11d70: 4601 li a2,0 + 11d72: 0141 addi sp,sp,16 + 11d74: e57f506f j 7bca + 11d78: 40b2 lw ra,12(sp) + 11d7a: 4422 lw s0,8(sp) + 11d7c: 4545 li a0,17 + 11d7e: 0141 addi sp,sp,16 + 11d80: 8082 ret + +00011d82 : +GAPRole_PeripheralEnable(): + 11d82: 1141 addi sp,sp,-16 + 11d84: c226 sw s1,4(sp) + 11d86: c606 sw ra,12(sp) + 11d88: c422 sw s0,8(sp) + 11d8a: a6c18493 addi s1,gp,-1428 # 20001424 + 11d8e: 2080 lbu s0,0(s1) + 11d90: 0ff00793 li a5,255 + 11d94: 00f40863 beq s0,a5,11da4 + 11d98: 4561 li a0,24 + 11d9a: 40b2 lw ra,12(sp) + 11d9c: 4422 lw s0,8(sp) + 11d9e: 4492 lw s1,4(sp) + 11da0: 0141 addi sp,sp,16 + 11da2: 8082 ret + 11da4: 400017b7 lui a5,0x40001 + 11da8: 0417c783 lbu a5,65(a5) # 40001041 <_eusrstack+0x1fffe041> + 11dac: 4505 li a0,1 + 11dae: 8b89 andi a5,a5,2 + 11db0: d7ed beqz a5,11d9a + 11db2: 00000517 auipc a0,0x0 + 11db6: e6e50513 addi a0,a0,-402 # 11c20 + 11dba: e3af40ef jal ra,63f4 + 11dbe: a088 sb a0,0(s1) + 11dc0: fc850ce3 beq a0,s0,11d98 + 11dc4: a401a023 sw zero,-1472(gp) # 200013f8 + 11dc8: a601a423 sw zero,-1432(gp) # 20001420 + 11dcc: 4791 li a5,4 + 11dce: a6f183a3 sb a5,-1433(gp) # 2000141f + 11dd2: 9bbf50ef jal ra,778c + 11dd6: 4641 li a2,16 + 11dd8: 4581 li a1,0 + 11dda: 1fff1517 auipc a0,0x1fff1 + 11dde: d2650513 addi a0,a0,-730 # 20002b00 + 11de2: 1ffef097 auipc ra,0x1ffef + 11de6: ab8080e7 jalr -1352(ra) # 2000089a + 11dea: 4641 li a2,16 + 11dec: 4581 li a1,0 + 11dee: 1fff1517 auipc a0,0x1fff1 + 11df2: d0250513 addi a0,a0,-766 # 20002af0 + 11df6: 1ffef097 auipc ra,0x1ffef + 11dfa: aa4080e7 jalr -1372(ra) # 2000089a + 11dfe: a401a823 sw zero,-1456(gp) # 20001408 + 11e02: a60181a3 sb zero,-1437(gp) # 2000141b + 11e06: a6018123 sb zero,-1438(gp) # 2000141a + 11e0a: 479d li a5,7 + 11e0c: 1fff1617 auipc a2,0x1fff1 + 11e10: cf460613 addi a2,a2,-780 # 20002b00 + 11e14: 45c1 li a1,16 + 11e16: 4509 li a0,2 + 11e18: a4f18ca3 sb a5,-1447(gp) # 20001411 + 11e1c: a4018c23 sb zero,-1448(gp) # 20001410 + 11e20: 9f9f40ef jal ra,6818 + 11e24: 1fff1617 auipc a2,0x1fff1 + 11e28: ccc60613 addi a2,a2,-820 # 20002af0 + 11e2c: 45c1 li a1,16 + 11e2e: 450d li a0,3 + 11e30: 9e9f40ef jal ra,6818 + 11e34: 4641 li a2,16 + 11e36: 1fff1597 auipc a1,0x1fff1 + 11e3a: cca58593 addi a1,a1,-822 # 20002b00 + 11e3e: 1fff1517 auipc a0,0x1fff1 + 11e42: ca250513 addi a0,a0,-862 # 20002ae0 + 11e46: 1ffef097 auipc ra,0x1ffef + 11e4a: a16080e7 jalr -1514(ra) # 2000085c + 11e4e: 4641 li a2,16 + 11e50: 1fff1597 auipc a1,0x1fff1 + 11e54: ca058593 addi a1,a1,-864 # 20002af0 + 11e58: 1fff1517 auipc a0,0x1fff1 + 11e5c: c7850513 addi a0,a0,-904 # 20002ad0 + 11e60: 1ffef097 auipc ra,0x1ffef + 11e64: 9fc080e7 jalr -1540(ra) # 2000085c + 11e68: a5018613 addi a2,gp,-1456 # 20001408 + 11e6c: 4591 li a1,4 + 11e6e: 4511 li a0,4 + 11e70: 9a9f40ef jal ra,6818 + 11e74: 4501 li a0,0 + 11e76: b715 j 11d9a + +00011e78 : +GAPRole_ParamInit(): + 11e78: 57fd li a5,-1 + 11e7a: a6f18623 sb a5,-1428(gp) # 20001424 + 11e7e: 9cf188a3 sb a5,-1583(gp) # 20001389 + 11e82: a60183a3 sb zero,-1433(gp) # 2000141f + 11e86: 4785 li a5,1 + 11e88: a6f18323 sb a5,-1434(gp) # 2000141e + 11e8c: a401a823 sw zero,-1456(gp) # 20001408 + 11e90: 4799 li a5,6 + 11e92: a4f19b23 sh a5,-1450(gp) # 2000140e + 11e96: 6785 lui a5,0x1 + 11e98: c8078793 addi a5,a5,-896 # c80 <_sinit-0x380> + 11e9c: a4f19a23 sh a5,-1452(gp) # 2000140c + 11ea0: 478d li a5,3 + 11ea2: a6f182a3 sb a5,-1435(gp) # 2000141d + 11ea6: a6f18223 sb a5,-1436(gp) # 2000141c + 11eaa: 4619 li a2,6 + 11eac: 4581 li a1,0 + 11eae: a5c18513 addi a0,gp,-1444 # 20001414 + 11eb2: 1ffef317 auipc t1,0x1ffef + 11eb6: 9e830067 jr -1560(t1) # 2000089a + +00011eba : +GAPRole_GetParameter(): + 11eba: d0050793 addi a5,a0,-768 + 11ebe: 4751 li a4,20 + 11ec0: 0807c7b3 zext.h a5,a5 + 11ec4: 0af76863 bltu a4,a5,11f74 + 11ec8: 00008717 auipc a4,0x8 + 11ecc: e5c70713 addi a4,a4,-420 # 19d24 + 11ed0: 20e7c7b3 sh2add a5,a5,a4 + 11ed4: 439c lw a5,0(a5) + 11ed6: 1141 addi sp,sp,-16 + 11ed8: c606 sw ra,12(sp) + 11eda: 97ba add a5,a5,a4 + 11edc: 852e mv a0,a1 + 11ede: 8782 jr a5 + 11ee0: a671c783 lbu a5,-1433(gp) # 2000141f + 11ee4: a11c sb a5,0(a0) + 11ee6: a811 j 11efa + 11ee8: 4641 li a2,16 + 11eea: 1fff1597 auipc a1,0x1fff1 + 11eee: c1658593 addi a1,a1,-1002 # 20002b00 + 11ef2: 1ffef097 auipc ra,0x1ffef + 11ef6: 96a080e7 jalr -1686(ra) # 2000085c + 11efa: 4501 li a0,0 + 11efc: 40b2 lw ra,12(sp) + 11efe: 0141 addi sp,sp,16 + 11f00: 8082 ret + 11f02: 4641 li a2,16 + 11f04: 1fff1597 auipc a1,0x1fff1 + 11f08: bec58593 addi a1,a1,-1044 # 20002af0 + 11f0c: b7dd j 11ef2 + 11f0e: a501a783 lw a5,-1456(gp) # 20001408 + 11f12: c19c sw a5,0(a1) + 11f14: b7dd j 11efa + 11f16: 4619 li a2,6 + 11f18: a4818593 addi a1,gp,-1464 # 20001400 + 11f1c: bfd9 j 11ef2 + 11f1e: a661c783 lbu a5,-1434(gp) # 2000141e + 11f22: b7c9 j 11ee4 + 11f24: dc2f60ef jal ra,84e6 + 11f28: bfc9 j 11efa + 11f2a: ddef60ef jal ra,8508 + 11f2e: b7f1 j 11efa + 11f30: a631c783 lbu a5,-1437(gp) # 2000141b + 11f34: bf45 j 11ee4 + 11f36: a621c783 lbu a5,-1438(gp) # 2000141a + 11f3a: b76d j 11ee4 + 11f3c: 4619 li a2,6 + 11f3e: a5c18593 addi a1,gp,-1444 # 20001414 + 11f42: bf45 j 11ef2 + 11f44: a591c783 lbu a5,-1447(gp) # 20001411 + 11f48: bf71 j 11ee4 + 11f4a: a581c783 lbu a5,-1448(gp) # 20001410 + 11f4e: bf59 j 11ee4 + 11f50: a681a783 lw a5,-1432(gp) # 20001420 + 11f54: bf41 j 11ee4 + 11f56: a561d783 lhu a5,-1450(gp) # 2000140e + 11f5a: a11e sh a5,0(a0) + 11f5c: bf79 j 11efa + 11f5e: a541d783 lhu a5,-1452(gp) # 2000140c + 11f62: bfe5 j 11f5a + 11f64: a651c783 lbu a5,-1435(gp) # 2000141d + 11f68: bfb5 j 11ee4 + 11f6a: a641c783 lbu a5,-1436(gp) # 2000141c + 11f6e: bf9d j 11ee4 + 11f70: 4509 li a0,2 + 11f72: b769 j 11efc + 11f74: 4509 li a0,2 + 11f76: 8082 ret + +00011f78 : +GAPRole_SetParameter(): + 11f78: cff50513 addi a0,a0,-769 + 11f7c: 474d li a4,19 + 11f7e: 08054533 zext.h a0,a0 + 11f82: 1aa76763 bltu a4,a0,12130 + 11f86: 00008697 auipc a3,0x8 + 11f8a: df268693 addi a3,a3,-526 # 19d78 + 11f8e: 20d54533 sh2add a0,a0,a3 + 11f92: 4118 lw a4,0(a0) + 11f94: 1141 addi sp,sp,-16 + 11f96: 87ae mv a5,a1 + 11f98: 9736 add a4,a4,a3 + 11f9a: c606 sw ra,12(sp) + 11f9c: 85b2 mv a1,a2 + 11f9e: 8702 jr a4 + 11fa0: 4741 li a4,16 + 11fa2: 4561 li a0,24 + 11fa4: 00e79c63 bne a5,a4,11fbc + 11fa8: 4641 li a2,16 + 11faa: 1fff1517 auipc a0,0x1fff1 + 11fae: b5650513 addi a0,a0,-1194 # 20002b00 + 11fb2: 1ffef097 auipc ra,0x1ffef + 11fb6: 8aa080e7 jalr -1878(ra) # 2000085c + 11fba: 4501 li a0,0 + 11fbc: 40b2 lw ra,12(sp) + 11fbe: 0141 addi sp,sp,16 + 11fc0: 8082 ret + 11fc2: 4741 li a4,16 + 11fc4: 4561 li a0,24 + 11fc6: fee79be3 bne a5,a4,11fbc + 11fca: 4641 li a2,16 + 11fcc: 1fff1517 auipc a0,0x1fff1 + 11fd0: b2450513 addi a0,a0,-1244 # 20002af0 + 11fd4: bff9 j 11fb2 + 11fd6: 4711 li a4,4 + 11fd8: 4561 li a0,24 + 11fda: fee791e3 bne a5,a4,11fbc + 11fde: 421c lw a5,0(a2) + 11fe0: a4f1a823 sw a5,-1456(gp) # 20001408 + 11fe4: bfd9 j 11fba + 11fe6: 4705 li a4,1 + 11fe8: 4561 li a0,24 + 11fea: fce799e3 bne a5,a4,11fbc + 11fee: a6618693 addi a3,gp,-1434 # 2000141e + 11ff2: 2198 lbu a4,0(a1) + 11ff4: 2290 lbu a2,0(a3) + 11ff6: a298 sb a4,0(a3) + 11ff8: c205 beqz a2,12018 + 11ffa: f361 bnez a4,11fba + 11ffc: a681a703 lw a4,-1432(gp) # 20001420 + 12000: 8b3d andi a4,a4,15 + 12002: 02400793 li a5,36 + 12006: 00e7d7b3 srl a5,a5,a4 + 1200a: 8b85 andi a5,a5,1 + 1200c: d7dd beqz a5,11fba + 1200e: a6c1c503 lbu a0,-1428(gp) # 20001424 + 12012: a52f60ef jal ra,8264 + 12016: b755 j 11fba + 12018: d34d beqz a4,11fba + 1201a: a681a703 lw a4,-1432(gp) # 20001420 + 1201e: 00f70663 beq a4,a5,1202a + 12022: 8b3d andi a4,a4,15 + 12024: 1775 addi a4,a4,-3 + 12026: f8e7eae3 bltu a5,a4,11fba + 1202a: 4585 li a1,1 + 1202c: a6c1c503 lbu a0,-1428(gp) # 20001424 + 12030: 414080ef jal ra,1a444 + 12034: b759 j 11fba + 12036: 477d li a4,31 + 12038: 0ef76a63 bltu a4,a5,1212c + 1203c: 0e060863 beqz a2,1212c + 12040: 40b2 lw ra,12(sp) + 12042: 853e mv a0,a5 + 12044: 0141 addi sp,sp,16 + 12046: b28f606f j 836e + 1204a: 477d li a4,31 + 1204c: 0ef76063 bltu a4,a5,1212c + 12050: 0c060e63 beqz a2,1212c + 12054: 40b2 lw ra,12(sp) + 12056: 853e mv a0,a5 + 12058: 0141 addi sp,sp,16 + 1205a: bd0f606f j 842a + 1205e: 4705 li a4,1 + 12060: 4561 li a0,24 + 12062: f4e79de3 bne a5,a4,11fbc + 12066: 221c lbu a5,0(a2) + 12068: 4711 li a4,4 + 1206a: f4f769e3 bltu a4,a5,11fbc + 1206e: a6f181a3 sb a5,-1437(gp) # 2000141b + 12072: b7a1 j 11fba + 12074: 4705 li a4,1 + 12076: 4561 li a0,24 + 12078: f4e792e3 bne a5,a4,11fbc + 1207c: 221c lbu a5,0(a2) + 1207e: 4709 li a4,2 + 12080: f2f76ee3 bltu a4,a5,11fbc + 12084: a6f18123 sb a5,-1438(gp) # 2000141a + 12088: bf0d j 11fba + 1208a: 4719 li a4,6 + 1208c: 4561 li a0,24 + 1208e: f2e797e3 bne a5,a4,11fbc + 12092: 4619 li a2,6 + 12094: a5c18513 addi a0,gp,-1444 # 20001414 + 12098: bf29 j 11fb2 + 1209a: 4705 li a4,1 + 1209c: 4561 li a0,24 + 1209e: f0e79fe3 bne a5,a4,11fbc + 120a2: 221c lbu a5,0(a2) + 120a4: 471d li a4,7 + 120a6: f0f76be3 bltu a4,a5,11fbc + 120aa: a4f18ca3 sb a5,-1447(gp) # 20001411 + 120ae: b731 j 11fba + 120b0: 4705 li a4,1 + 120b2: 4561 li a0,24 + 120b4: f0e794e3 bne a5,a4,11fbc + 120b8: 221c lbu a5,0(a2) + 120ba: 470d li a4,3 + 120bc: f0f760e3 bltu a4,a5,11fbc + 120c0: a4f18c23 sb a5,-1448(gp) # 20001410 + 120c4: bddd j 11fba + 120c6: 4709 li a4,2 + 120c8: 4561 li a0,24 + 120ca: eee799e3 bne a5,a4,11fbc + 120ce: 2216 lhu a3,0(a2) + 120d0: 6785 lui a5,0x1 + 120d2: c7a78793 addi a5,a5,-902 # c7a <_sinit-0x386> + 120d6: ffa68713 addi a4,a3,-6 + 120da: 08074733 zext.h a4,a4 + 120de: ece7efe3 bltu a5,a4,11fbc + 120e2: a4d19b23 sh a3,-1450(gp) # 2000140e + 120e6: bdd1 j 11fba + 120e8: 4709 li a4,2 + 120ea: 4561 li a0,24 + 120ec: ece798e3 bne a5,a4,11fbc + 120f0: 2216 lhu a3,0(a2) + 120f2: 6785 lui a5,0x1 + 120f4: c7a78793 addi a5,a5,-902 # c7a <_sinit-0x386> + 120f8: ffa68713 addi a4,a3,-6 + 120fc: 08074733 zext.h a4,a4 + 12100: eae7eee3 bltu a5,a4,11fbc + 12104: a4d19a23 sh a3,-1452(gp) # 2000140c + 12108: bd4d j 11fba + 1210a: 220c lbu a1,0(a2) + 1210c: a641c603 lbu a2,-1436(gp) # 2000141c + 12110: a6b182a3 sb a1,-1435(gp) # 2000141d + 12114: 4501 li a0,0 + 12116: c0afd0ef jal ra,f520 + 1211a: b545 j 11fba + 1211c: 2210 lbu a2,0(a2) + 1211e: a651c583 lbu a1,-1435(gp) # 2000141d + 12122: a6c18223 sb a2,-1436(gp) # 2000141c + 12126: b7fd j 12114 + 12128: 4509 li a0,2 + 1212a: bd49 j 11fbc + 1212c: 4561 li a0,24 + 1212e: b579 j 11fbc + 12130: 4509 li a0,2 + 12132: 8082 ret + +00012134 : +GAPRole_BroadcasterSetCB(): + 12134: a4a1a223 sw a0,-1468(gp) # 200013fc + 12138: 8082 ret + +0001213a : +GAPRole_ReadRssiCmd(): + 1213a: a6efd06f j f3a8 + +0001213e : +GAPRole_TerminateLink(): + 1213e: 1101 addi sp,sp,-32 + 12140: ce06 sw ra,28(sp) + 12142: c62a sw a0,12(sp) + 12144: 9edf90ef jal ra,bb30 + 12148: c901 beqz a0,12158 + 1214a: 45b2 lw a1,12(sp) + 1214c: 40f2 lw ra,28(sp) + 1214e: 2108 lbu a0,0(a0) + 12150: 464d li a2,19 + 12152: 6105 addi sp,sp,32 + 12154: 9f5f506f j 7b48 + 12158: 40f2 lw ra,28(sp) + 1215a: 4549 li a0,18 + 1215c: 6105 addi sp,sp,32 + 1215e: 8082 ret + +00012160 : +GAPRole_UpdatePHY(): + 12160: be0fd06f j f540 + +00012164 : +GAPRole_PeripheralInit(): + 12164: 1141 addi sp,sp,-16 + 12166: c606 sw ra,12(sp) + 12168: 4c5020ef jal ra,14e2c + 1216c: ffff9517 auipc a0,0xffff9 + 12170: 13850513 addi a0,a0,312 # b2a4 + 12174: a80f40ef jal ra,63f4 + 12178: 8b0f90ef jal ra,b228 + 1217c: ffff6517 auipc a0,0xffff6 + 12180: adc50513 addi a0,a0,-1316 # 7c58 + 12184: a70f40ef jal ra,63f4 + 12188: a85f50ef jal ra,7c0c + 1218c: ffff7517 auipc a0,0xffff7 + 12190: 9b850513 addi a0,a0,-1608 # 8b44 + 12194: a60f40ef jal ra,63f4 + 12198: 987f60ef jal ra,8b1e + 1219c: ffffb517 auipc a0,0xffffb + 121a0: 8bc50513 addi a0,a0,-1860 # ca58 + 121a4: a50f40ef jal ra,63f4 + 121a8: 953fa0ef jal ra,cafa + 121ac: fffff517 auipc a0,0xfffff + 121b0: 1cc50513 addi a0,a0,460 # 11378 + 121b4: a40f40ef jal ra,63f4 + 121b8: 9a6ff0ef jal ra,1135e + 121bc: ffff9517 auipc a0,0xffff9 + 121c0: c1a50513 addi a0,a0,-998 # add6 + 121c4: a30f40ef jal ra,63f4 + 121c8: bddf80ef jal ra,ada4 + 121cc: 40b2 lw ra,12(sp) + 121ce: 0141 addi sp,sp,16 + 121d0: bb3ff06f j 11d82 + +000121d4 : +tmos_memory_getlen(): + 121d4: a781a783 lw a5,-1416(gp) # 20001430 + 121d8: a701a703 lw a4,-1424(gp) # 20001428 + 121dc: 4501 li a0,0 + 121de: 00f71363 bne a4,a5,121e4 + 121e2: 8082 ret + 121e4: 23f6 lhu a3,6(a5) + 121e6: e299 bnez a3,121ec + 121e8: 23d6 lhu a3,4(a5) + 121ea: 9536 add a0,a0,a3 + 121ec: 439c lw a5,0(a5) + 121ee: bfc5 j 121de + +000121f0 : +tmos_memory_init(): + 121f0: 1fff0717 auipc a4,0x1fff0 + 121f4: 6d870713 addi a4,a4,1752 # 200028c8 + 121f8: 431c lw a5,0(a4) + 121fa: 235a lhu a4,4(a4) + 121fc: 1141 addi sp,sp,-16 + 121fe: 21078693 addi a3,a5,528 + 12202: 17e1 addi a5,a5,-8 + 12204: 97ba add a5,a5,a4 + 12206: 6585 lui a1,0x1 + 12208: a6d1ac23 sw a3,-1416(gp) # 20001430 + 1220c: a6f1a823 sw a5,-1424(gp) # 20001428 + 12210: c606 sw ra,12(sp) + 12212: 059d addi a1,a1,7 # 1007 <_einit+0x3> + 12214: 20000613 li a2,512 + 12218: 00e5e563 bltu a1,a4,12222 + 1221c: 8315 srli a4,a4,0x5 + 1221e: 00271613 slli a2,a4,0x2 + 12222: 00c68733 add a4,a3,a2 + 12226: a6e1aa23 sw a4,-1420(gp) # 2000142c + 1222a: 1661 addi a2,a2,-8 + 1222c: c298 sw a4,0(a3) + 1222e: a2d2 sh a2,4(a3) + 12230: 00069323 sh zero,6(a3) + 12234: c31c sw a5,0(a4) + 12236: 8f99 sub a5,a5,a4 + 12238: 17e1 addi a5,a5,-8 + 1223a: a35e sh a5,4(a4) + 1223c: 00071323 sh zero,6(a4) + 12240: f95ff0ef jal ra,121d4 + 12244: 40b2 lw ra,12(sp) + 12246: 1fff0797 auipc a5,0x1fff0 + 1224a: 66a79323 sh a0,1638(a5) # 200028ac + 1224e: 0141 addi sp,sp,16 + 12250: 8082 ret + +00012252 : +tmos_bm_adjust_header(): + 12252: 87aa mv a5,a0 + 12254: a781a703 lw a4,-1416(gp) # 20001430 + 12258: a701a603 lw a2,-1424(gp) # 20001428 + 1225c: 40b505b3 sub a1,a0,a1 + 12260: 00e61463 bne a2,a4,12268 + 12264: 853e mv a0,a5 + 12266: a829 j 12280 + 12268: 00870693 addi a3,a4,8 + 1226c: 4318 lw a4,0(a4) + 1226e: fed7e9e3 bltu a5,a3,12260 + 12272: fee7f7e3 bgeu a5,a4,12260 + 12276: 852e mv a0,a1 + 12278: fed5e4e3 bltu a1,a3,12260 + 1227c: fee5f2e3 bgeu a1,a4,12260 + 12280: 8082 ret + +00012282 : +ATT_BuildErrorRsp(): + 12282: 219c lbu a5,0(a1) + 12284: a11c sb a5,0(a0) + 12286: 21be lhu a5,2(a1) + 12288: b11c sb a5,1(a0) + 1228a: 21be lhu a5,2(a1) + 1228c: 83a1 srli a5,a5,0x8 + 1228e: a13c sb a5,2(a0) + 12290: 21dc lbu a5,4(a1) + 12292: b13c sb a5,3(a0) + 12294: 4511 li a0,4 + 12296: 8082 ret + +00012298 : +ATT_ParamInit(): + 12298: a801a023 sw zero,-1408(gp) # 20001438 + 1229c: a601ae23 sw zero,-1412(gp) # 20001434 + 122a0: 8082 ret + +000122a2 : +ATT_ConvertUUIDto128(): + 122a2: cd0d beqz a0,122dc + 122a4: 1141 addi sp,sp,-16 + 122a6: c422 sw s0,8(sp) + 122a8: c226 sw s1,4(sp) + 122aa: c606 sw ra,12(sp) + 122ac: 84aa mv s1,a0 + 122ae: 842e mv s0,a1 + 122b0: 4501 li a0,0 + 122b2: c185 beqz a1,122d2 + 122b4: 8522 mv a0,s0 + 122b6: 4641 li a2,16 + 122b8: 00008597 auipc a1,0x8 + 122bc: b1058593 addi a1,a1,-1264 # 19dc8 + 122c0: 1ffee097 auipc ra,0x1ffee + 122c4: 59c080e7 jalr 1436(ra) # 2000085c + 122c8: 209c lbu a5,0(s1) + 122ca: 4505 li a0,1 + 122cc: a45c sb a5,12(s0) + 122ce: 309c lbu a5,1(s1) + 122d0: b45c sb a5,13(s0) + 122d2: 40b2 lw ra,12(sp) + 122d4: 4422 lw s0,8(sp) + 122d6: 4492 lw s1,4(sp) + 122d8: 0141 addi sp,sp,16 + 122da: 8082 ret + 122dc: 4501 li a0,0 + 122de: 8082 ret + +000122e0 : +ATT_CompareUUID(): + 122e0: 1101 addi sp,sp,-32 + 122e2: cc22 sw s0,24(sp) + 122e4: ca26 sw s1,20(sp) + 122e6: ce06 sw ra,28(sp) + 122e8: 4789 li a5,2 + 122ea: 84aa mv s1,a0 + 122ec: 8432 mv s0,a2 + 122ee: 00f59f63 bne a1,a5,1230c + 122f2: 02b68463 beq a3,a1,1231a + 122f6: 4741 li a4,16 + 122f8: 4781 li a5,0 + 122fa: 04e69763 bne a3,a4,12348 + 122fe: 858a mv a1,sp + 12300: fa3ff0ef jal ra,122a2 + 12304: 4641 li a2,16 + 12306: 858a mv a1,sp + 12308: 8522 mv a0,s0 + 1230a: a815 j 1233e + 1230c: 4741 li a4,16 + 1230e: 04e59363 bne a1,a4,12354 + 12312: 00f68f63 beq a3,a5,12330 + 12316: 02b69f63 bne a3,a1,12354 + 1231a: 862e mv a2,a1 + 1231c: 85a2 mv a1,s0 + 1231e: 4462 lw s0,24(sp) + 12320: 40f2 lw ra,28(sp) + 12322: 8526 mv a0,s1 + 12324: 44d2 lw s1,20(sp) + 12326: 6105 addi sp,sp,32 + 12328: 1ffee317 auipc t1,0x1ffee + 1232c: 5b230067 jr 1458(t1) # 200008da + 12330: 858a mv a1,sp + 12332: 8532 mv a0,a2 + 12334: f6fff0ef jal ra,122a2 + 12338: 4641 li a2,16 + 1233a: 858a mv a1,sp + 1233c: 8526 mv a0,s1 + 1233e: 1ffee097 auipc ra,0x1ffee + 12342: 59c080e7 jalr 1436(ra) # 200008da + 12346: 87aa mv a5,a0 + 12348: 40f2 lw ra,28(sp) + 1234a: 4462 lw s0,24(sp) + 1234c: 44d2 lw s1,20(sp) + 1234e: 853e mv a0,a5 + 12350: 6105 addi sp,sp,32 + 12352: 8082 ret + 12354: 4781 li a5,0 + 12356: bfcd j 12348 + +00012358 : +ATT_RegisterClient(): + 12358: a6a1ae23 sw a0,-1412(gp) # 20001434 + 1235c: 8082 ret + +0001235e : +ATT_RegisterServer(): + 1235e: a8a1a023 sw a0,-1408(gp) # 20001438 + 12362: 8082 ret + +00012364 : +ATT_ParsePacket(): + 12364: 1101 addi sp,sp,-32 + 12366: cc22 sw s0,24(sp) + 12368: 2162 lhu s0,6(a0) + 1236a: ce06 sw ra,28(sp) + 1236c: ca26 sw s1,20(sp) + 1236e: c84a sw s2,16(sp) + 12370: c64e sw s3,12(sp) + 12372: c83d beqz s0,123e8 + 12374: 00852983 lw s3,8(a0) + 12378: 882a mv a6,a0 + 1237a: 84ae mv s1,a1 + 1237c: 0009c903 lbu s2,0(s3) + 12380: 4781 li a5,0 + 12382: 60491713 sext.b a4,s2 + 12386: 02075563 bgez a4,123b0 + 1238a: 47b1 li a5,12 + 1238c: 4505 li a0,1 + 1238e: 0487f663 bgeu a5,s0,123da + 12392: 00285503 lhu a0,2(a6) + 12396: 1451 addi s0,s0,-12 + 12398: 08044433 zext.h s0,s0 + 1239c: 864e mv a2,s3 + 1239e: 00898733 add a4,s3,s0 + 123a2: 86a2 mv a3,s0 + 123a4: 4585 li a1,1 + 123a6: d80fa0ef jal ra,c926 + 123aa: 00a037b3 snez a5,a0 + 123ae: 0785 addi a5,a5,1 + 123b0: 48695513 bexti a0,s2,0x6 + 123b4: 147d addi s0,s0,-1 + 123b6: 03f97913 andi s2,s2,63 + 123ba: 08044433 zext.h s0,s0 + 123be: a09c sb a5,0(s1) + 123c0: b088 sb a0,1(s1) + 123c2: 01248123 sb s2,2(s1) + 123c6: a0c2 sh s0,4(s1) + 123c8: 4701 li a4,0 + 123ca: c019 beqz s0,123d0 + 123cc: 00198713 addi a4,s3,1 + 123d0: c498 sw a4,8(s1) + 123d2: 4709 li a4,2 + 123d4: 00e78363 beq a5,a4,123da + 123d8: 4501 li a0,0 + 123da: 40f2 lw ra,28(sp) + 123dc: 4462 lw s0,24(sp) + 123de: 44d2 lw s1,20(sp) + 123e0: 4942 lw s2,16(sp) + 123e2: 49b2 lw s3,12(sp) + 123e4: 6105 addi sp,sp,32 + 123e6: 8082 ret + 123e8: 4505 li a0,1 + 123ea: bfc5 j 123da + +000123ec : +ATT_UpdateMTU(): + 123ec: 67c1 lui a5,0x10 + 123ee: 17f9 addi a5,a5,-2 # fffe + 123f0: 02f50a63 beq a0,a5,12424 + 123f4: 47d9 li a5,22 + 123f6: 02b7f763 bgeu a5,a1,12424 + 123fa: 1101 addi sp,sp,-32 + 123fc: cc22 sw s0,24(sp) + 123fe: c62e sw a1,12(sp) + 12400: ce06 sw ra,28(sp) + 12402: 842a mv s0,a0 + 12404: db5f80ef jal ra,b1b8 + 12408: 45b2 lw a1,12(sp) + 1240a: 00b56863 bltu a0,a1,1241a + 1240e: 8522 mv a0,s0 + 12410: 4462 lw s0,24(sp) + 12412: 40f2 lw ra,28(sp) + 12414: 6105 addi sp,sp,32 + 12416: 94bf906f j bd60 + 1241a: 40f2 lw ra,28(sp) + 1241c: 4462 lw s0,24(sp) + 1241e: 4505 li a0,1 + 12420: 6105 addi sp,sp,32 + 12422: 8082 ret + 12424: 4505 li a0,1 + 12426: 8082 ret + +00012428 : +ATT_GetMTU(): + 12428: 67c1 lui a5,0x10 + 1242a: 17f9 addi a5,a5,-2 # fffe + 1242c: 00f51463 bne a0,a5,12434 + 12430: d89f806f j b1b8 + 12434: 1141 addi sp,sp,-16 + 12436: c606 sw ra,12(sp) + 12438: 837f90ef jal ra,bc6e + 1243c: e111 bnez a0,12440 + 1243e: 455d li a0,23 + 12440: 40b2 lw ra,12(sp) + 12442: 0141 addi sp,sp,16 + 12444: 8082 ret + +00012446 : +ATT_ParseErrorRsp(): + 12446: 4791 li a5,4 + 12448: 00f59d63 bne a1,a5,12462 + 1244c: 211c lbu a5,0(a0) + 1244e: a21c sb a5,0(a2) + 12450: 213c lbu a5,2(a0) + 12452: 3118 lbu a4,1(a0) + 12454: 07a2 slli a5,a5,0x8 + 12456: 8fd9 or a5,a5,a4 + 12458: a23e sh a5,2(a2) + 1245a: 313c lbu a5,3(a0) + 1245c: 4501 li a0,0 + 1245e: a25c sb a5,4(a2) + 12460: 8082 ret + 12462: 4511 li a0,4 + 12464: 8082 ret + +00012466 : +attSendMsg(): + 12466: 7139 addi sp,sp,-64 + 12468: d64e sw s3,44(sp) + 1246a: d452 sw s4,40(sp) + 1246c: d05a sw s6,32(sp) + 1246e: ce5e sw s7,28(sp) + 12470: de06 sw ra,60(sp) + 12472: dc22 sw s0,56(sp) + 12474: da26 sw s1,52(sp) + 12476: d84a sw s2,48(sp) + 12478: d256 sw s5,36(sp) + 1247a: 8a2a mv s4,a0 + 1247c: 8b2e mv s6,a1 + 1247e: 89b2 mv s3,a2 + 12480: 8bb6 mv s7,a3 + 12482: e715 bnez a4,124ae + 12484: fa5ff0ef jal ra,12428 + 12488: 4591 li a1,4 + 1248a: d79f80ef jal ra,b202 + 1248e: 842a mv s0,a0 + 12490: 494d li s2,19 + 12492: 4a85 li s5,1 + 12494: ed19 bnez a0,124b2 + 12496: 50f2 lw ra,60(sp) + 12498: 5462 lw s0,56(sp) + 1249a: 54d2 lw s1,52(sp) + 1249c: 59b2 lw s3,44(sp) + 1249e: 5a22 lw s4,40(sp) + 124a0: 5a92 lw s5,36(sp) + 124a2: 5b02 lw s6,32(sp) + 124a4: 4bf2 lw s7,28(sp) + 124a6: 854a mv a0,s2 + 124a8: 5942 lw s2,48(sp) + 124aa: 6121 addi sp,sp,64 + 124ac: 8082 ret + 124ae: 843a mv s0,a4 + 124b0: 4a81 li s5,0 + 124b2: 01340023 sb s3,0(s0) + 124b6: 4485 li s1,1 + 124b8: 000b0a63 beqz s6,124cc + 124bc: 85de mv a1,s7 + 124be: 00140513 addi a0,s0,1 + 124c2: 9b02 jalr s6 + 124c4: 00150493 addi s1,a0,1 + 124c8: 0804c4b3 zext.h s1,s1 + 124cc: 60499993 sext.b s3,s3 + 124d0: 0209d363 bgez s3,124f6 + 124d4: 45c1 li a1,16 + 124d6: 8552 mv a0,s4 + 124d8: 85bf90ef jal ra,bd32 + 124dc: 4965 li s2,25 + 124de: e515 bnez a0,1250a + 124e0: 00940633 add a2,s0,s1 + 124e4: 85a6 mv a1,s1 + 124e6: 8522 mv a0,s0 + 124e8: 9c0fa0ef jal ra,c6a8 + 124ec: 892a mv s2,a0 + 124ee: ed11 bnez a0,1250a + 124f0: 04b1 addi s1,s1,12 + 124f2: 0804c4b3 zext.h s1,s1 + 124f6: 4791 li a5,4 + 124f8: 002c addi a1,sp,8 + 124fa: 8552 mv a0,s4 + 124fc: 847c sh a5,8(sp) + 124fe: c622 sw s0,12(sp) + 12500: 8564 sh s1,10(sp) + 12502: b4af90ef jal ra,b84c + 12506: 892a mv s2,a0 + 12508: d559 beqz a0,12496 + 1250a: f80a86e3 beqz s5,12496 + 1250e: 8522 mv a0,s0 + 12510: 1ffef097 auipc ra,0x1ffef + 12514: 9b0080e7 jalr -1616(ra) # 20000ec0 + 12518: bfbd j 12496 + +0001251a : +attSendRspMsg(): + 1251a: 1101 addi sp,sp,-32 + 1251c: cc22 sw s0,24(sp) + 1251e: ca26 sw s1,20(sp) + 12520: c84a sw s2,16(sp) + 12522: c64e sw s3,12(sp) + 12524: ce06 sw ra,28(sp) + 12526: 892a mv s2,a0 + 12528: 8432 mv s0,a2 + 1252a: 89b6 mv s3,a3 + 1252c: f3bff0ef jal ra,12466 + 12530: 84aa mv s1,a0 + 12532: ed19 bnez a0,12550 + 12534: a801a783 lw a5,-1408(gp) # 20001438 + 12538: cf81 beqz a5,12550 + 1253a: 4705 li a4,1 + 1253c: 00e41763 bne s0,a4,1254a + 12540: 0009c403 lbu s0,0(s3) + 12544: 0405 addi s0,s0,1 + 12546: 0ff47413 zext.b s0,s0 + 1254a: 85a2 mv a1,s0 + 1254c: 854a mv a0,s2 + 1254e: 9782 jalr a5 + 12550: 40f2 lw ra,28(sp) + 12552: 4462 lw s0,24(sp) + 12554: 4942 lw s2,16(sp) + 12556: 49b2 lw s3,12(sp) + 12558: 8526 mv a0,s1 + 1255a: 44d2 lw s1,20(sp) + 1255c: 6105 addi sp,sp,32 + 1255e: 8082 ret + +00012560 : +ATT_ErrorRsp(): + 12560: 86ae mv a3,a1 + 12562: 4701 li a4,0 + 12564: 4605 li a2,1 + 12566: 00000597 auipc a1,0x0 + 1256a: d1c58593 addi a1,a1,-740 # 12282 + 1256e: fadff06f j 1251a + +00012572 : +ATT_BuildExchangeMTUReq(): + 12572: 219e lhu a5,0(a1) + 12574: a11c sb a5,0(a0) + 12576: 219e lhu a5,0(a1) + 12578: 83a1 srli a5,a5,0x8 + 1257a: b11c sb a5,1(a0) + 1257c: 4509 li a0,2 + 1257e: 8082 ret + +00012580 : +ATT_ParseExchangeMTURsp(): + 12580: 4789 li a5,2 + 12582: 00f59963 bne a1,a5,12594 + 12586: 311c lbu a5,1(a0) + 12588: 2118 lbu a4,0(a0) + 1258a: 4501 li a0,0 + 1258c: 07a2 slli a5,a5,0x8 + 1258e: 8fd9 or a5,a5,a4 + 12590: a21e sh a5,0(a2) + 12592: 8082 ret + 12594: 4511 li a0,4 + 12596: 8082 ret + +00012598 : +ATT_ExchangeMTUReq(): + 12598: 219a lhu a4,0(a1) + 1259a: 1101 addi sp,sp,-32 + 1259c: ce06 sw ra,28(sp) + 1259e: cc22 sw s0,24(sp) + 125a0: c62e sw a1,12(sp) + 125a2: 47d9 li a5,22 + 125a4: 02e7f563 bgeu a5,a4,125ce + 125a8: 842a mv s0,a0 + 125aa: c0ff80ef jal ra,b1b8 + 125ae: 46b2 lw a3,12(sp) + 125b0: 229e lhu a5,0(a3) + 125b2: 00f56e63 bltu a0,a5,125ce + 125b6: 8522 mv a0,s0 + 125b8: 4462 lw s0,24(sp) + 125ba: 40f2 lw ra,28(sp) + 125bc: 4701 li a4,0 + 125be: 4609 li a2,2 + 125c0: 00000597 auipc a1,0x0 + 125c4: fb258593 addi a1,a1,-78 # 12572 + 125c8: 6105 addi sp,sp,32 + 125ca: e9dff06f j 12466 + 125ce: 40f2 lw ra,28(sp) + 125d0: 4462 lw s0,24(sp) + 125d2: 4509 li a0,2 + 125d4: 6105 addi sp,sp,32 + 125d6: 8082 ret + +000125d8 : +ATT_BuildExchangeMTURsp(): + 125d8: 219e lhu a5,0(a1) + 125da: a11c sb a5,0(a0) + 125dc: 219e lhu a5,0(a1) + 125de: 83a1 srli a5,a5,0x8 + 125e0: b11c sb a5,1(a0) + 125e2: 4509 li a0,2 + 125e4: 8082 ret + +000125e6 : +ATT_BuildFindInfoRsp(): + 125e6: 21bc lbu a5,2(a1) + 125e8: 4705 li a4,1 + 125ea: a11c sb a5,0(a0) + 125ec: 218a lhu a0,0(a1) + 125ee: 00e79763 bne a5,a4,125fc + 125f2: 050a slli a0,a0,0x2 + 125f4: 0505 addi a0,a0,1 + 125f6: 08054533 zext.h a0,a0 + 125fa: 8082 ret + 125fc: 47c9 li a5,18 + 125fe: 02f50533 mul a0,a0,a5 + 12602: bfcd j 125f4 + +00012604 : +ATT_BuildFindByTypeValueRsp(): + 12604: 218a lhu a0,0(a1) + 12606: 050a slli a0,a0,0x2 + 12608: 08054533 zext.h a0,a0 + 1260c: 8082 ret + +0001260e : +ATT_BuildReadByTypeRsp(): + 1260e: 21be lhu a5,2(a1) + 12610: a11c sb a5,0(a0) + 12612: 218a lhu a0,0(a1) + 12614: 21be lhu a5,2(a1) + 12616: 02f50533 mul a0,a0,a5 + 1261a: 0505 addi a0,a0,1 + 1261c: 08054533 zext.h a0,a0 + 12620: 8082 ret + +00012622 : +ATT_BuildReadRsp(): + 12622: 218a lhu a0,0(a1) + 12624: 8082 ret + +00012626 : +ATT_BuildReadBlobRsp(): + 12626: 218a lhu a0,0(a1) + 12628: 8082 ret + +0001262a : +ATT_BuildReadMultiRsp(): + 1262a: 218a lhu a0,0(a1) + 1262c: 8082 ret + +0001262e : +ATT_BuildReadByGrpTypeRsp(): + 1262e: 21be lhu a5,2(a1) + 12630: a11c sb a5,0(a0) + 12632: 218a lhu a0,0(a1) + 12634: 21be lhu a5,2(a1) + 12636: 02f50533 mul a0,a0,a5 + 1263a: 0505 addi a0,a0,1 + 1263c: 08054533 zext.h a0,a0 + 12640: 8082 ret + +00012642 : +ATT_BuildPrepareWriteRsp(): + 12642: 219e lhu a5,0(a1) + 12644: a11c sb a5,0(a0) + 12646: 219e lhu a5,0(a1) + 12648: 83a1 srli a5,a5,0x8 + 1264a: b11c sb a5,1(a0) + 1264c: 21be lhu a5,2(a1) + 1264e: a13c sb a5,2(a0) + 12650: 21be lhu a5,2(a1) + 12652: 83a1 srli a5,a5,0x8 + 12654: b13c sb a5,3(a0) + 12656: 21ca lhu a0,4(a1) + 12658: 0511 addi a0,a0,4 + 1265a: 08054533 zext.h a0,a0 + 1265e: 8082 ret + +00012660 : +ATT_BuildHandleValueInd(): + 12660: 219e lhu a5,0(a1) + 12662: a11c sb a5,0(a0) + 12664: 219e lhu a5,0(a1) + 12666: 83a1 srli a5,a5,0x8 + 12668: b11c sb a5,1(a0) + 1266a: 21aa lhu a0,2(a1) + 1266c: 0509 addi a0,a0,2 + 1266e: 08054533 zext.h a0,a0 + 12672: 8082 ret + +00012674 : +ATT_ParseExchangeMTUReq(): + 12674: 4789 li a5,2 + 12676: 4511 li a0,4 + 12678: 00f69863 bne a3,a5,12688 + 1267c: 321c lbu a5,1(a2) + 1267e: 2214 lbu a3,0(a2) + 12680: 4501 li a0,0 + 12682: 07a2 slli a5,a5,0x8 + 12684: 8fd5 or a5,a5,a3 + 12686: a31e sh a5,0(a4) + 12688: 8082 ret + +0001268a : +ATT_ExchangeMTURsp(): + 1268a: 219a lhu a4,0(a1) + 1268c: 47d9 li a5,22 + 1268e: 86ae mv a3,a1 + 12690: 00e7fa63 bgeu a5,a4,126a4 + 12694: 4701 li a4,0 + 12696: 460d li a2,3 + 12698: 00000597 auipc a1,0x0 + 1269c: f4058593 addi a1,a1,-192 # 125d8 + 126a0: e7bff06f j 1251a + 126a4: 4509 li a0,2 + 126a6: 8082 ret + +000126a8 : +ATT_ParseFindInfoReq(): + 126a8: 4511 li a0,4 + 126aa: 00a69d63 bne a3,a0,126c4 + 126ae: 321c lbu a5,1(a2) + 126b0: 2214 lbu a3,0(a2) + 126b2: 4501 li a0,0 + 126b4: 07a2 slli a5,a5,0x8 + 126b6: 8fd5 or a5,a5,a3 + 126b8: a31e sh a5,0(a4) + 126ba: 323c lbu a5,3(a2) + 126bc: 2234 lbu a3,2(a2) + 126be: 07a2 slli a5,a5,0x8 + 126c0: 8fd5 or a5,a5,a3 + 126c2: a33e sh a5,2(a4) + 126c4: 8082 ret + +000126c6 : +ATT_FindInfoRsp(): + 126c6: 21bc lbu a5,2(a1) + 126c8: 4705 li a4,1 + 126ca: 17fd addi a5,a5,-1 + 126cc: 0ff7f793 zext.b a5,a5 + 126d0: 04f76063 bltu a4,a5,12710 + 126d4: 219e lhu a5,0(a1) + 126d6: cf8d beqz a5,12710 + 126d8: 1101 addi sp,sp,-32 + 126da: cc22 sw s0,24(sp) + 126dc: 842a mv s0,a0 + 126de: 41c8 lw a0,4(a1) + 126e0: ce06 sw ra,28(sp) + 126e2: c62e sw a1,12(sp) + 126e4: c10d beqz a0,12706 + 126e6: 4589 li a1,2 + 126e8: b6bff0ef jal ra,12252 + 126ec: 872a mv a4,a0 + 126ee: 8522 mv a0,s0 + 126f0: 4462 lw s0,24(sp) + 126f2: 46b2 lw a3,12(sp) + 126f4: 40f2 lw ra,28(sp) + 126f6: 4615 li a2,5 + 126f8: 00000597 auipc a1,0x0 + 126fc: eee58593 addi a1,a1,-274 # 125e6 + 12700: 6105 addi sp,sp,32 + 12702: e19ff06f j 1251a + 12706: 40f2 lw ra,28(sp) + 12708: 4462 lw s0,24(sp) + 1270a: 4509 li a0,2 + 1270c: 6105 addi sp,sp,32 + 1270e: 8082 ret + 12710: 4509 li a0,2 + 12712: 8082 ret + +00012714 : +ATT_ParseFindByTypeValueReq(): + 12714: 4795 li a5,5 + 12716: 06d7f063 bgeu a5,a3,12776 + 1271a: 1141 addi sp,sp,-16 + 1271c: c422 sw s0,8(sp) + 1271e: c226 sw s1,4(sp) + 12720: c04a sw s2,0(sp) + 12722: c606 sw ra,12(sp) + 12724: 321c lbu a5,1(a2) + 12726: 843a mv s0,a4 + 12728: 2218 lbu a4,0(a2) + 1272a: 07a2 slli a5,a5,0x8 + 1272c: 84b2 mv s1,a2 + 1272e: 8fd9 or a5,a5,a4 + 12730: a01e sh a5,0(s0) + 12732: 323c lbu a5,3(a2) + 12734: 2238 lbu a4,2(a2) + 12736: 00448593 addi a1,s1,4 + 1273a: 07a2 slli a5,a5,0x8 + 1273c: 8fd9 or a5,a5,a4 + 1273e: a03e sh a5,2(s0) + 12740: 4789 li a5,2 + 12742: a05c sb a5,4(s0) + 12744: 4609 li a2,2 + 12746: 00540513 addi a0,s0,5 + 1274a: 8936 mv s2,a3 + 1274c: 1ffee097 auipc ra,0x1ffee + 12750: 110080e7 jalr 272(ra) # 2000085c + 12754: 4719 li a4,6 + 12756: 4781 li a5,0 + 12758: 00e90463 beq s2,a4,12760 + 1275c: 00648793 addi a5,s1,6 + 12760: 1969 addi s2,s2,-6 + 12762: 01241423 sh s2,8(s0) + 12766: 40b2 lw ra,12(sp) + 12768: c45c sw a5,12(s0) + 1276a: 4422 lw s0,8(sp) + 1276c: 4492 lw s1,4(sp) + 1276e: 4902 lw s2,0(sp) + 12770: 4501 li a0,0 + 12772: 0141 addi sp,sp,16 + 12774: 8082 ret + 12776: 4511 li a0,4 + 12778: 8082 ret + +0001277a : +ATT_FindByTypeValueRsp(): + 1277a: 219e lhu a5,0(a1) + 1277c: cf8d beqz a5,127b6 + 1277e: 1101 addi sp,sp,-32 + 12780: cc22 sw s0,24(sp) + 12782: 842a mv s0,a0 + 12784: 41c8 lw a0,4(a1) + 12786: ce06 sw ra,28(sp) + 12788: c62e sw a1,12(sp) + 1278a: c10d beqz a0,127ac + 1278c: 4585 li a1,1 + 1278e: ac5ff0ef jal ra,12252 + 12792: 872a mv a4,a0 + 12794: 8522 mv a0,s0 + 12796: 4462 lw s0,24(sp) + 12798: 46b2 lw a3,12(sp) + 1279a: 40f2 lw ra,28(sp) + 1279c: 461d li a2,7 + 1279e: 00000597 auipc a1,0x0 + 127a2: e6658593 addi a1,a1,-410 # 12604 + 127a6: 6105 addi sp,sp,32 + 127a8: d73ff06f j 1251a + 127ac: 40f2 lw ra,28(sp) + 127ae: 4462 lw s0,24(sp) + 127b0: 4509 li a0,2 + 127b2: 6105 addi sp,sp,32 + 127b4: 8082 ret + 127b6: 4509 li a0,2 + 127b8: 8082 ret + +000127ba : +ATT_ParseReadByTypeReq(): + 127ba: 4799 li a5,6 + 127bc: 85b2 mv a1,a2 + 127be: 00f68863 beq a3,a5,127ce + 127c2: 47d1 li a5,20 + 127c4: 4511 li a0,4 + 127c6: 4641 li a2,16 + 127c8: 00f68463 beq a3,a5,127d0 + 127cc: 8082 ret + 127ce: 4609 li a2,2 + 127d0: 1141 addi sp,sp,-16 + 127d2: c606 sw ra,12(sp) + 127d4: a350 sb a2,4(a4) + 127d6: 319c lbu a5,1(a1) + 127d8: 2194 lbu a3,0(a1) + 127da: 00570513 addi a0,a4,5 + 127de: 07a2 slli a5,a5,0x8 + 127e0: 8fd5 or a5,a5,a3 + 127e2: a31e sh a5,0(a4) + 127e4: 31bc lbu a5,3(a1) + 127e6: 21b4 lbu a3,2(a1) + 127e8: 0591 addi a1,a1,4 + 127ea: 07a2 slli a5,a5,0x8 + 127ec: 8fd5 or a5,a5,a3 + 127ee: a33e sh a5,2(a4) + 127f0: 1ffee097 auipc ra,0x1ffee + 127f4: 06c080e7 jalr 108(ra) # 2000085c + 127f8: 40b2 lw ra,12(sp) + 127fa: 4501 li a0,0 + 127fc: 0141 addi sp,sp,16 + 127fe: 8082 ret + +00012800 : +ATT_ReadByTypeRsp(): + 12800: 219e lhu a5,0(a1) + 12802: cf8d beqz a5,1283c + 12804: 1101 addi sp,sp,-32 + 12806: cc22 sw s0,24(sp) + 12808: 842a mv s0,a0 + 1280a: 41c8 lw a0,4(a1) + 1280c: ce06 sw ra,28(sp) + 1280e: c62e sw a1,12(sp) + 12810: c10d beqz a0,12832 + 12812: 4589 li a1,2 + 12814: a3fff0ef jal ra,12252 + 12818: 872a mv a4,a0 + 1281a: 8522 mv a0,s0 + 1281c: 4462 lw s0,24(sp) + 1281e: 46b2 lw a3,12(sp) + 12820: 40f2 lw ra,28(sp) + 12822: 4625 li a2,9 + 12824: 00000597 auipc a1,0x0 + 12828: dea58593 addi a1,a1,-534 # 1260e + 1282c: 6105 addi sp,sp,32 + 1282e: cedff06f j 1251a + 12832: 40f2 lw ra,28(sp) + 12834: 4462 lw s0,24(sp) + 12836: 4509 li a0,2 + 12838: 6105 addi sp,sp,32 + 1283a: 8082 ret + 1283c: 4509 li a0,2 + 1283e: 8082 ret + +00012840 : +ATT_ParseReadReq(): + 12840: 4789 li a5,2 + 12842: 4511 li a0,4 + 12844: 00f69863 bne a3,a5,12854 + 12848: 321c lbu a5,1(a2) + 1284a: 2214 lbu a3,0(a2) + 1284c: 4501 li a0,0 + 1284e: 07a2 slli a5,a5,0x8 + 12850: 8fd5 or a5,a5,a3 + 12852: a31e sh a5,0(a4) + 12854: 8082 ret + +00012856 : +ATT_ReadRsp(): + 12856: 1101 addi sp,sp,-32 + 12858: cc22 sw s0,24(sp) + 1285a: 842a mv s0,a0 + 1285c: 41c8 lw a0,4(a1) + 1285e: ce06 sw ra,28(sp) + 12860: 86ae mv a3,a1 + 12862: c511 beqz a0,1286e + 12864: c62e sw a1,12(sp) + 12866: 4585 li a1,1 + 12868: 9ebff0ef jal ra,12252 + 1286c: 46b2 lw a3,12(sp) + 1286e: 872a mv a4,a0 + 12870: 8522 mv a0,s0 + 12872: 4462 lw s0,24(sp) + 12874: 40f2 lw ra,28(sp) + 12876: 462d li a2,11 + 12878: 00000597 auipc a1,0x0 + 1287c: daa58593 addi a1,a1,-598 # 12622 + 12880: 6105 addi sp,sp,32 + 12882: c99ff06f j 1251a + +00012886 : +ATT_ParseReadBlobReq(): + 12886: e23ff06f j 126a8 + +0001288a : +ATT_ReadBlobRsp(): + 1288a: 1101 addi sp,sp,-32 + 1288c: cc22 sw s0,24(sp) + 1288e: 842a mv s0,a0 + 12890: 41c8 lw a0,4(a1) + 12892: ce06 sw ra,28(sp) + 12894: 86ae mv a3,a1 + 12896: c511 beqz a0,128a2 + 12898: c62e sw a1,12(sp) + 1289a: 4585 li a1,1 + 1289c: 9b7ff0ef jal ra,12252 + 128a0: 46b2 lw a3,12(sp) + 128a2: 872a mv a4,a0 + 128a4: 8522 mv a0,s0 + 128a6: 4462 lw s0,24(sp) + 128a8: 40f2 lw ra,28(sp) + 128aa: 4635 li a2,13 + 128ac: 00000597 auipc a1,0x0 + 128b0: d7a58593 addi a1,a1,-646 # 12626 + 128b4: 6105 addi sp,sp,32 + 128b6: c65ff06f j 1251a + +000128ba : +ATT_ParseReadMultiReq(): + 128ba: 0016f793 andi a5,a3,1 + 128be: 4511 li a0,4 + 128c0: eb81 bnez a5,128d0 + 128c2: 4789 li a5,2 + 128c4: 00f68663 beq a3,a5,128d0 + 128c8: 8285 srli a3,a3,0x1 + 128ca: a356 sh a3,4(a4) + 128cc: c310 sw a2,0(a4) + 128ce: 4501 li a0,0 + 128d0: 8082 ret + +000128d2 : +ATT_ReadMultiRsp(): + 128d2: 1101 addi sp,sp,-32 + 128d4: cc22 sw s0,24(sp) + 128d6: 842a mv s0,a0 + 128d8: 41c8 lw a0,4(a1) + 128da: ce06 sw ra,28(sp) + 128dc: c62e sw a1,12(sp) + 128de: c10d beqz a0,12900 + 128e0: 4585 li a1,1 + 128e2: 971ff0ef jal ra,12252 + 128e6: 872a mv a4,a0 + 128e8: 8522 mv a0,s0 + 128ea: 4462 lw s0,24(sp) + 128ec: 46b2 lw a3,12(sp) + 128ee: 40f2 lw ra,28(sp) + 128f0: 463d li a2,15 + 128f2: 00000597 auipc a1,0x0 + 128f6: d3858593 addi a1,a1,-712 # 1262a + 128fa: 6105 addi sp,sp,32 + 128fc: c1fff06f j 1251a + 12900: 40f2 lw ra,28(sp) + 12902: 4462 lw s0,24(sp) + 12904: 4509 li a0,2 + 12906: 6105 addi sp,sp,32 + 12908: 8082 ret + +0001290a : +ATT_ReadByGrpTypeRsp(): + 1290a: 219e lhu a5,0(a1) + 1290c: cf8d beqz a5,12946 + 1290e: 1101 addi sp,sp,-32 + 12910: cc22 sw s0,24(sp) + 12912: 842a mv s0,a0 + 12914: 41c8 lw a0,4(a1) + 12916: ce06 sw ra,28(sp) + 12918: c62e sw a1,12(sp) + 1291a: c10d beqz a0,1293c + 1291c: 4589 li a1,2 + 1291e: 935ff0ef jal ra,12252 + 12922: 872a mv a4,a0 + 12924: 8522 mv a0,s0 + 12926: 4462 lw s0,24(sp) + 12928: 46b2 lw a3,12(sp) + 1292a: 40f2 lw ra,28(sp) + 1292c: 4645 li a2,17 + 1292e: 00000597 auipc a1,0x0 + 12932: d0058593 addi a1,a1,-768 # 1262e + 12936: 6105 addi sp,sp,32 + 12938: be3ff06f j 1251a + 1293c: 40f2 lw ra,28(sp) + 1293e: 4462 lw s0,24(sp) + 12940: 4509 li a0,2 + 12942: 6105 addi sp,sp,32 + 12944: 8082 ret + 12946: 4509 li a0,2 + 12948: 8082 ret + +0001294a : +ATT_ParseWriteReq(): + 1294a: 4785 li a5,1 + 1294c: 02d7f463 bgeu a5,a3,12974 + 12950: a708 sb a0,8(a4) + 12952: b70c sb a1,9(a4) + 12954: 321c lbu a5,1(a2) + 12956: 220c lbu a1,0(a2) + 12958: 4509 li a0,2 + 1295a: 07a2 slli a5,a5,0x8 + 1295c: 8fcd or a5,a5,a1 + 1295e: 4581 li a1,0 + 12960: 00a68463 beq a3,a0,12968 + 12964: 00260593 addi a1,a2,2 + 12968: 16f9 addi a3,a3,-2 + 1296a: a31e sh a5,0(a4) + 1296c: a336 sh a3,2(a4) + 1296e: c34c sw a1,4(a4) + 12970: 4501 li a0,0 + 12972: 8082 ret + 12974: 4511 li a0,4 + 12976: 8082 ret + +00012978 : +ATT_WriteRsp(): + 12978: 4701 li a4,0 + 1297a: 4681 li a3,0 + 1297c: 464d li a2,19 + 1297e: 4581 li a1,0 + 12980: b9bff06f j 1251a + +00012984 : +ATT_ParsePrepareWriteReq(): + 12984: 478d li a5,3 + 12986: 4511 li a0,4 + 12988: 02d7f563 bgeu a5,a3,129b2 + 1298c: 321c lbu a5,1(a2) + 1298e: 220c lbu a1,0(a2) + 12990: 07a2 slli a5,a5,0x8 + 12992: 8fcd or a5,a5,a1 + 12994: a31e sh a5,0(a4) + 12996: 323c lbu a5,3(a2) + 12998: 222c lbu a1,2(a2) + 1299a: 07a2 slli a5,a5,0x8 + 1299c: 8fcd or a5,a5,a1 + 1299e: 4581 li a1,0 + 129a0: 00a68463 beq a3,a0,129a8 + 129a4: 00460593 addi a1,a2,4 + 129a8: 16f1 addi a3,a3,-4 + 129aa: a33e sh a5,2(a4) + 129ac: a356 sh a3,4(a4) + 129ae: c70c sw a1,8(a4) + 129b0: 4501 li a0,0 + 129b2: 8082 ret + +000129b4 : +ATT_PrepareWriteRsp(): + 129b4: 1101 addi sp,sp,-32 + 129b6: cc22 sw s0,24(sp) + 129b8: 842a mv s0,a0 + 129ba: 4588 lw a0,8(a1) + 129bc: ce06 sw ra,28(sp) + 129be: 86ae mv a3,a1 + 129c0: c511 beqz a0,129cc + 129c2: c62e sw a1,12(sp) + 129c4: 4595 li a1,5 + 129c6: 88dff0ef jal ra,12252 + 129ca: 46b2 lw a3,12(sp) + 129cc: 872a mv a4,a0 + 129ce: 8522 mv a0,s0 + 129d0: 4462 lw s0,24(sp) + 129d2: 40f2 lw ra,28(sp) + 129d4: 465d li a2,23 + 129d6: 00000597 auipc a1,0x0 + 129da: c6c58593 addi a1,a1,-916 # 12642 + 129de: 6105 addi sp,sp,32 + 129e0: b3bff06f j 1251a + +000129e4 : +ATT_ParseExecuteWriteReq(): + 129e4: 4785 li a5,1 + 129e6: 4511 li a0,4 + 129e8: 00f69563 bne a3,a5,129f2 + 129ec: 221c lbu a5,0(a2) + 129ee: 4501 li a0,0 + 129f0: a31c sb a5,0(a4) + 129f2: 8082 ret + +000129f4 : +ATT_ExecuteWriteRsp(): + 129f4: 4701 li a4,0 + 129f6: 4681 li a3,0 + 129f8: 4665 li a2,25 + 129fa: 4581 li a1,0 + 129fc: b1fff06f j 1251a + +00012a00 : +ATT_HandleValueNoti(): + 12a00: 1101 addi sp,sp,-32 + 12a02: cc22 sw s0,24(sp) + 12a04: 842a mv s0,a0 + 12a06: 41c8 lw a0,4(a1) + 12a08: ce06 sw ra,28(sp) + 12a0a: 86ae mv a3,a1 + 12a0c: c511 beqz a0,12a18 + 12a0e: c62e sw a1,12(sp) + 12a10: 458d li a1,3 + 12a12: 841ff0ef jal ra,12252 + 12a16: 46b2 lw a3,12(sp) + 12a18: 872a mv a4,a0 + 12a1a: 8522 mv a0,s0 + 12a1c: 4462 lw s0,24(sp) + 12a1e: 40f2 lw ra,28(sp) + 12a20: 466d li a2,27 + 12a22: 00000597 auipc a1,0x0 + 12a26: c3e58593 addi a1,a1,-962 # 12660 + 12a2a: 6105 addi sp,sp,32 + 12a2c: a3bff06f j 12466 + +00012a30 : +ATT_HandleValueInd(): + 12a30: 1101 addi sp,sp,-32 + 12a32: cc22 sw s0,24(sp) + 12a34: 842a mv s0,a0 + 12a36: 41c8 lw a0,4(a1) + 12a38: ce06 sw ra,28(sp) + 12a3a: 86ae mv a3,a1 + 12a3c: c511 beqz a0,12a48 + 12a3e: c62e sw a1,12(sp) + 12a40: 458d li a1,3 + 12a42: 811ff0ef jal ra,12252 + 12a46: 46b2 lw a3,12(sp) + 12a48: 872a mv a4,a0 + 12a4a: 8522 mv a0,s0 + 12a4c: 4462 lw s0,24(sp) + 12a4e: 40f2 lw ra,28(sp) + 12a50: 4675 li a2,29 + 12a52: 00000597 auipc a1,0x0 + 12a56: c0e58593 addi a1,a1,-1010 # 12660 + 12a5a: 6105 addi sp,sp,32 + 12a5c: a0bff06f j 12466 + +00012a60 : +LL_ProcessEvent(): + 12a60: 60559793 sext.h a5,a1 + 12a64: 0207dd63 bgez a5,12a9e + 12a68: 1141 addi sp,sp,-16 + 12a6a: c422 sw s0,8(sp) + 12a6c: c226 sw s1,4(sp) + 12a6e: c606 sw ra,12(sp) + 12a70: 842e mv s0,a1 + 12a72: 98cf30ef jal ra,5bfe + 12a76: 84aa mv s1,a0 + 12a78: cd01 beqz a0,12a90 + 12a7a: 211c lbu a5,0(a0) + 12a7c: 4705 li a4,1 + 12a7e: 0807c793 xori a5,a5,128 + 12a82: 00f76463 bltu a4,a5,12a8a + 12a86: 69e010ef jal ra,14124 + 12a8a: 8526 mv a0,s1 + 12a8c: 8bef30ef jal ra,5b4a + 12a90: 40b2 lw ra,12(sp) + 12a92: 68f41513 binvi a0,s0,0xf + 12a96: 4422 lw s0,8(sp) + 12a98: 4492 lw s1,4(sp) + 12a9a: 0141 addi sp,sp,16 + 12a9c: 8082 ret + 12a9e: 4501 li a0,0 + 12aa0: 8082 ret + +00012aa2 : +LL_Init(): + 12aa2: 1141 addi sp,sp,-16 + 12aa4: c422 sw s0,8(sp) + 12aa6: 4581 li a1,0 + 12aa8: 05800613 li a2,88 + 12aac: 842a mv s0,a0 + 12aae: 1fff0517 auipc a0,0x1fff0 + 12ab2: 06250513 addi a0,a0,98 # 20002b10 + 12ab6: c606 sw ra,12(sp) + 12ab8: c226 sw s1,4(sp) + 12aba: a801a623 sw zero,-1396(gp) # 20001444 + 12abe: 1ffee097 auipc ra,0x1ffee + 12ac2: ddc080e7 jalr -548(ra) # 2000089a + 12ac6: 4501 li a0,0 + 12ac8: 25a1 jal 13110 + 12aca: 4501 li a0,0 + 12acc: 2565 jal 13174 + 12ace: 1fff0797 auipc a5,0x1fff0 + 12ad2: dc878ea3 sb s0,-547(a5) # 200028ab + 12ad6: 47fd li a5,31 + 12ad8: 1fff0417 auipc s0,0x1fff0 + 12adc: 03840413 addi s0,s0,56 # 20002b10 + 12ae0: 04f40223 sb a5,68(s0) + 12ae4: 04045783 lhu a5,64(s0) + 12ae8: 6711 lui a4,0x4 + 12aea: 12770713 addi a4,a4,295 # 4127 + 12aee: 8fd9 or a5,a5,a4 + 12af0: 1fff0497 auipc s1,0x1fff0 + 12af4: dd848493 addi s1,s1,-552 # 200028c8 + 12af8: 04f41023 sh a5,64(s0) + 12afc: 04f41123 sh a5,66(s0) + 12b00: 24fc lbu a5,14(s1) + 12b02: 02f40ca3 sb a5,57(s0) + 12b06: 030307b7 lui a5,0x3030 + 12b0a: 30378793 addi a5,a5,771 # 3030303 <_data_lma+0x3014d47> + 12b0e: c81c sw a5,16(s0) + 12b10: aa5f30ef jal ra,65b4 + 12b14: 289e lhu a5,16(s1) + 12b16: 0fb00713 li a4,251 + 12b1a: 466d li a2,27 + 12b1c: 0ae7d7b3 minu a5,a5,a4 + 12b20: 0ff7f693 zext.b a3,a5 + 12b24: a054 sb a3,4(s0) + 12b26: b054 sb a3,5(s0) + 12b28: 07b9 addi a5,a5,14 + 12b2a: 0ac6f6b3 maxu a3,a3,a2 + 12b2e: 0807c7b3 zext.h a5,a5 + 12b32: a076 sh a3,6(s0) + 12b34: 078e slli a5,a5,0x3 + 12b36: 14800693 li a3,328 + 12b3a: 0807c733 zext.h a4,a5 + 12b3e: a45a sh a4,12(s0) + 12b40: a47a sh a4,14(s0) + 12b42: 0ad77733 maxu a4,a4,a3 + 12b46: b028 sb a0,3(s0) + 12b48: a41a sh a4,8(s0) + 12b4a: a43e sh a5,10(s0) + 12b4c: a13fb0ef jal ra,e55e + 12b50: 2d4010ef jal ra,13e24 + 12b54: 400020ef jal ra,14f54 + 12b58: 4422 lw s0,8(sp) + 12b5a: 40b2 lw ra,12(sp) + 12b5c: 4492 lw s1,4(sp) + 12b5e: 0141 addi sp,sp,16 + 12b60: a009 j 12b62 + +00012b62 : +LL_AddrInit(): + 12b62: 1141 addi sp,sp,-16 + 12b64: 4619 li a2,6 + 12b66: 1fff0597 auipc a1,0x1fff0 + 12b6a: d7958593 addi a1,a1,-647 # 200028df + 12b6e: 1fff0517 auipc a0,0x1fff0 + 12b72: fe750513 addi a0,a0,-25 # 20002b55 + 12b76: c606 sw ra,12(sp) + 12b78: c422 sw s0,8(sp) + 12b7a: c226 sw s1,4(sp) + 12b7c: c04a sw s2,0(sp) + 12b7e: 6491 lui s1,0x4 + 12b80: 1ffee097 auipc ra,0x1ffee + 12b84: cdc080e7 jalr -804(ra) # 2000085c + 12b88: fff48593 addi a1,s1,-1 # 3fff + 12b8c: 4501 li a0,0 + 12b8e: a99f30ef jal ra,6626 + 12b92: 842a mv s0,a0 + 12b94: 55fd li a1,-1 + 12b96: 4501 li a0,0 + 12b98: abbf30ef jal ra,6652 + 12b9c: 87a2 mv a5,s0 + 12b9e: 14fd addi s1,s1,-1 + 12ba0: 597d li s2,-1 + 12ba2: 0097f733 and a4,a5,s1 + 12ba6: 00e566b3 or a3,a0,a4 + 12baa: ce9d beqz a3,12be8 + 12bac: 01251463 bne a0,s2,12bb4 + 12bb0: 02970c63 beq a4,s1,12be8 + 12bb4: 1fff0717 auipc a4,0x1fff0 + 12bb8: f5c70713 addi a4,a4,-164 # 20002b10 + 12bbc: 04f70b23 sb a5,86(a4) + 12bc0: 83a1 srli a5,a5,0x8 + 12bc2: 04a71923 sh a0,82(a4) + 12bc6: 01055693 srli a3,a0,0x10 + 12bca: fc07e793 ori a5,a5,-64 + 12bce: 8161 srli a0,a0,0x18 + 12bd0: 04d70a23 sb a3,84(a4) + 12bd4: 04a70aa3 sb a0,85(a4) + 12bd8: 04f70ba3 sb a5,87(a4) + 12bdc: 40b2 lw ra,12(sp) + 12bde: 4422 lw s0,8(sp) + 12be0: 4492 lw s1,4(sp) + 12be2: 4902 lw s2,0(sp) + 12be4: 0141 addi sp,sp,16 + 12be6: 8082 ret + 12be8: 85a6 mv a1,s1 + 12bea: 4501 li a0,0 + 12bec: a3bf30ef jal ra,6626 + 12bf0: 842a mv s0,a0 + 12bf2: 55fd li a1,-1 + 12bf4: 4501 li a0,0 + 12bf6: a5df30ef jal ra,6652 + 12bfa: 87a2 mv a5,s0 + 12bfc: b75d j 12ba2 + +00012bfe : +llAdvertiseCreateCore(): + 12bfe: 1141 addi sp,sp,-16 + 12c00: 20100593 li a1,513 + 12c04: 05800513 li a0,88 + 12c08: c422 sw s0,8(sp) + 12c0a: c606 sw ra,12(sp) + 12c0c: 2e1070ef jal ra,1a6ec + 12c10: 842a mv s0,a0 + 12c12: c129 beqz a0,12c54 + 12c14: 05800613 li a2,88 + 12c18: 4581 li a1,0 + 12c1a: 1ffee097 auipc ra,0x1ffee + 12c1e: c80080e7 jalr -896(ra) # 2000089a + 12c22: 57c1 li a5,-16 + 12c24: a05c sb a5,4(s0) + 12c26: 1fff0797 auipc a5,0x1fff0 + 12c2a: ee87af23 sw s0,-258(a5) # 20002b24 + 12c2e: 1fff0797 auipc a5,0x1fff0 + 12c32: dde78793 addi a5,a5,-546 # 20002a0c + 12c36: 4b98 lw a4,16(a5) + 12c38: 4bdc lw a5,20(a5) + 12c3a: c038 sw a4,64(s0) + 12c3c: c07c sw a5,68(s0) + 12c3e: 57fd li a5,-1 + 12c40: a81c sb a5,16(s0) + 12c42: 1fff0517 auipc a0,0x1fff0 + 12c46: c9a54503 lbu a0,-870(a0) # 200028dc + 12c4a: 04a40a23 sb a0,84(s0) + 12c4e: fc8fb0ef jal ra,e416 + 12c52: b468 sb a0,15(s0) + 12c54: 40b2 lw ra,12(sp) + 12c56: 8522 mv a0,s0 + 12c58: 4422 lw s0,8(sp) + 12c5a: 0141 addi sp,sp,16 + 12c5c: 8082 ret + +00012c5e : +ll_advertise_generated_pdu(): + 12c5e: 1141 addi sp,sp,-16 + 12c60: c422 sw s0,8(sp) + 12c62: c606 sw ra,12(sp) + 12c64: 317c lbu a5,7(a0) + 12c66: 4134 lw a3,64(a0) + 12c68: 4705 li a4,1 + 12c6a: 8bbd andi a5,a5,15 + 12c6c: b158 sb a4,5(a0) + 12c6e: a53c sb a5,10(a0) + 12c70: a29c sb a5,0(a3) + 12c72: 842a mv s0,a0 + 12c74: 4128 lw a0,64(a0) + 12c76: 08e79163 bne a5,a4,12cf8 + 12c7a: 47b1 li a5,12 + 12c7c: b43c sb a5,11(s0) + 12c7e: 03144783 lbu a5,49(s0) + 12c82: c789 beqz a5,12c8c + 12c84: 211c lbu a5,0(a0) + 12c86: f807e793 ori a5,a5,-128 + 12c8a: a11c sb a5,0(a0) + 12c8c: 4028 lw a0,64(s0) + 12c8e: 4619 li a2,6 + 12c90: 03240593 addi a1,s0,50 + 12c94: 0521 addi a0,a0,8 + 12c96: 1ffee097 auipc ra,0x1ffee + 12c9a: bc6080e7 jalr -1082(ra) # 2000085c + 12c9e: 4028 lw a0,64(s0) + 12ca0: 4619 li a2,6 + 12ca2: 02a40593 addi a1,s0,42 + 12ca6: 0509 addi a0,a0,2 + 12ca8: 1ffee097 auipc ra,0x1ffee + 12cac: bb4080e7 jalr -1100(ra) # 2000085c + 12cb0: 1fff0797 auipc a5,0x1fff0 + 12cb4: ea27d783 lhu a5,-350(a5) # 20002b52 + 12cb8: 6711 lui a4,0x4 + 12cba: 8ff9 and a5,a5,a4 + 12cbc: cb89 beqz a5,12cce + 12cbe: 307c lbu a5,7(s0) + 12cc0: 8bb9 andi a5,a5,14 + 12cc2: e791 bnez a5,12cce + 12cc4: 4038 lw a4,64(s0) + 12cc6: 231c lbu a5,0(a4) + 12cc8: 0207e793 ori a5,a5,32 + 12ccc: a31c sb a5,0(a4) + 12cce: 02944783 lbu a5,41(s0) + 12cd2: 8b85 andi a5,a5,1 + 12cd4: e791 bnez a5,12ce0 + 12cd6: 02844703 lbu a4,40(s0) + 12cda: 4789 li a5,2 + 12cdc: 00f71763 bne a4,a5,12cea + 12ce0: 4038 lw a4,64(s0) + 12ce2: 231c lbu a5,0(a4) + 12ce4: 0407e793 ori a5,a5,64 + 12ce8: a31c sb a5,0(a4) + 12cea: 403c lw a5,64(s0) + 12cec: 3438 lbu a4,11(s0) + 12cee: b398 sb a4,1(a5) + 12cf0: 40b2 lw ra,12(sp) + 12cf2: 4422 lw s0,8(sp) + 12cf4: 0141 addi sp,sp,16 + 12cf6: 8082 ret + 12cf8: 2870 lbu a2,22(s0) + 12cfa: 500c lw a1,32(s0) + 12cfc: 00660793 addi a5,a2,6 + 12d00: 03f7f793 andi a5,a5,63 + 12d04: b43c sb a5,11(s0) + 12d06: b779 j 12c94 + +00012d08 : +ll_advertise_to_connection_state(): + 12d08: 1141 addi sp,sp,-16 + 12d0a: c04a sw s2,0(sp) + 12d0c: 1fff0917 auipc s2,0x1fff0 + 12d10: e0490913 addi s2,s2,-508 # 20002b10 + 12d14: 03092783 lw a5,48(s2) + 12d18: c606 sw ra,12(sp) + 12d1a: c422 sw s0,8(sp) + 12d1c: c226 sw s1,4(sp) + 12d1e: eb81 bnez a5,12d2e + 12d20: 4505 li a0,1 + 12d22: 40b2 lw ra,12(sp) + 12d24: 4422 lw s0,8(sp) + 12d26: 4492 lw s1,4(sp) + 12d28: 4902 lw s2,0(sp) + 12d2a: 0141 addi sp,sp,16 + 12d2c: 8082 ret + 12d2e: 84aa mv s1,a0 + 12d30: 11f070ef jal ra,1a64e + 12d34: 03092783 lw a5,48(s2) + 12d38: 9782 jalr a5 + 12d3a: 759000ef jal ra,13c92 + 12d3e: 842a mv s0,a0 + 12d40: d165 beqz a0,12d20 + 12d42: 4cdc lw a5,28(s1) + 12d44: 6711 lui a4,0x4 + 12d46: 40ec lw a1,68(s1) + 12d48: c17c sw a5,68(a0) + 12d4a: cd3c sw a5,88(a0) + 12d4c: 04295783 lhu a5,66(s2) + 12d50: 8ff9 and a5,a5,a4 + 12d52: cb89 beqz a5,12d64 + 12d54: 40bc lw a5,64(s1) + 12d56: 2398 lbu a4,0(a5) + 12d58: 219c lbu a5,0(a1) + 12d5a: 8ff9 and a5,a5,a4 + 12d5c: 4857d793 bexti a5,a5,0x5 + 12d60: 12f50723 sb a5,302(a0) + 12d64: 35fc lbu a5,15(a1) + 12d66: 25f8 lbu a4,14(a1) + 12d68: 4801 li a6,0 + 12d6a: 07a2 slli a5,a5,0x8 + 12d6c: 8fd9 or a5,a5,a4 + 12d6e: 2998 lbu a4,16(a1) + 12d70: 4615 li a2,5 + 12d72: 05f9 addi a1,a1,30 + 12d74: 0742 slli a4,a4,0x10 + 12d76: 8f5d or a4,a4,a5 + 12d78: ff35c783 lbu a5,-13(a1) + 12d7c: 08040513 addi a0,s0,128 + 12d80: 07e2 slli a5,a5,0x18 + 12d82: 8fd9 or a5,a5,a4 + 12d84: c83c sw a5,80(s0) + 12d86: ff55c783 lbu a5,-11(a1) + 12d8a: ff65c703 lbu a4,-10(a1) + 12d8e: 07a2 slli a5,a5,0x8 + 12d90: 0742 slli a4,a4,0x10 + 12d92: 97ba add a5,a5,a4 + 12d94: ff45c703 lbu a4,-12(a1) + 12d98: 97ba add a5,a5,a4 + 12d9a: c87c sw a5,84(s0) + 12d9c: ff75c783 lbu a5,-9(a1) + 12da0: 02f400a3 sb a5,33(s0) + 12da4: ff95c783 lbu a5,-7(a1) + 12da8: ff85c703 lbu a4,-8(a1) + 12dac: 07a2 slli a5,a5,0x8 + 12dae: 8fd9 or a5,a5,a4 + 12db0: b03e sh a5,34(s0) + 12db2: ffb5c783 lbu a5,-5(a1) + 12db6: ffa5c703 lbu a4,-6(a1) + 12dba: 07a2 slli a5,a5,0x8 + 12dbc: 8fd9 or a5,a5,a4 + 12dbe: b05e sh a5,36(s0) + 12dc0: ffd5c783 lbu a5,-3(a1) + 12dc4: ffc5c703 lbu a4,-4(a1) + 12dc8: 07a2 slli a5,a5,0x8 + 12dca: 8fd9 or a5,a5,a4 + 12dcc: b07e sh a5,38(s0) + 12dce: fff5c783 lbu a5,-1(a1) + 12dd2: ffe5c703 lbu a4,-2(a1) + 12dd6: 09042223 sw a6,132(s0) + 12dda: 07a2 slli a5,a5,0x8 + 12ddc: 8fd9 or a5,a5,a4 + 12dde: b41e sh a5,40(s0) + 12de0: 4781 li a5,0 + 12de2: 08f42023 sw a5,128(s0) + 12de6: 1ffee097 auipc ra,0x1ffee + 12dea: a76080e7 jalr -1418(ra) # 2000085c + 12dee: 40f8 lw a4,68(s1) + 12df0: 02374783 lbu a5,35(a4) # 4023 + 12df4: 8bfd andi a5,a5,31 + 12df6: bc7c sb a5,31(s0) + 12df8: 02374703 lbu a4,35(a4) + 12dfc: 17ed addi a5,a5,-5 + 12dfe: 0ff7f793 zext.b a5,a5 + 12e02: 8315 srli a4,a4,0x5 + 12e04: ac38 sb a4,26(s0) + 12e06: 472d li a4,11 + 12e08: 02f76563 bltu a4,a5,12e32 + 12e0c: 305e lhu a5,36(s0) + 12e0e: 6705 lui a4,0x1 + 12e10: c7a70693 addi a3,a4,-902 # c7a <_sinit-0x386> + 12e14: 17e9 addi a5,a5,-6 + 12e16: 0807c7b3 zext.h a5,a5 + 12e1a: 00f6ec63 bltu a3,a5,12e32 + 12e1e: 3076 lhu a3,38(s0) + 12e20: 1f300793 li a5,499 + 12e24: 00d7e763 bltu a5,a3,12e32 + 12e28: 341e lhu a5,40(s0) + 12e2a: c8070713 addi a4,a4,-896 + 12e2e: 00f77763 bgeu a4,a5,12e3c + 12e32: 200a lhu a0,0(s0) + 12e34: 7c1000ef jal ra,13df4 + 12e38: 4501 li a0,0 + 12e3a: b5e5 j 12d22 + 12e3c: 03492783 lw a5,52(s2) + 12e40: 8522 mv a0,s0 + 12e42: 9782 jalr a5 + 12e44: 200a lhu a0,0(s0) + 12e46: 4605 li a2,1 + 12e48: 08000593 li a1,128 + 12e4c: 412010ef jal ra,1425e + 12e50: bdc1 j 12d20 + +00012e52 : +ll_advertise_filter(): + 12e52: 2534 lbu a3,10(a0) + 12e54: 4705 li a4,1 + 12e56: 87aa mv a5,a0 + 12e58: 02e69a63 bne a3,a4,12e8c + 12e5c: 03154703 lbu a4,49(a0) + 12e60: 03954683 lbu a3,57(a0) + 12e64: 4501 li a0,0 + 12e66: 8b05 andi a4,a4,1 + 12e68: 04e69863 bne a3,a4,12eb8 + 12e6c: 1141 addi sp,sp,-16 + 12e6e: 4619 li a2,6 + 12e70: 03a78593 addi a1,a5,58 + 12e74: 03278513 addi a0,a5,50 + 12e78: c606 sw ra,12(sp) + 12e7a: 1ffee097 auipc ra,0x1ffee + 12e7e: a60080e7 jalr -1440(ra) # 200008da + 12e82: 40b2 lw ra,12(sp) + 12e84: 00a03533 snez a0,a0 + 12e88: 0141 addi sp,sp,16 + 12e8a: 8082 ret + 12e8c: 2518 lbu a4,8(a0) + 12e8e: 00177693 andi a3,a4,1 + 12e92: ca99 beqz a3,12ea8 + 12e94: 3550 lbu a2,13(a0) + 12e96: 468d li a3,3 + 12e98: 00d61863 bne a2,a3,12ea8 + 12e9c: 5f88 lw a0,56(a5) + 12e9e: 5fcc lw a1,60(a5) + 12ea0: 1ffee317 auipc t1,0x1ffee + 12ea4: 12c30067 jr 300(t1) # 20000fcc + 12ea8: 8b09 andi a4,a4,2 + 12eaa: c709 beqz a4,12eb4 + 12eac: 37d4 lbu a3,13(a5) + 12eae: 4715 li a4,5 + 12eb0: fee686e3 beq a3,a4,12e9c + 12eb4: 4505 li a0,1 + 12eb6: 8082 ret + 12eb8: 8082 ret + +00012eba : +ll_advertise_event_closed(): + 12eba: 1141 addi sp,sp,-16 + 12ebc: c04a sw s2,0(sp) + 12ebe: c606 sw ra,12(sp) + 12ec0: c422 sw s0,8(sp) + 12ec2: c226 sw s1,4(sp) + 12ec4: a841a903 lw s2,-1404(gp) # 2000143c + 12ec8: 02090d63 beqz s2,12f02 + 12ecc: 3908 lbu a0,17(a0) + 12ece: 1fff0497 auipc s1,0x1fff0 + 12ed2: a2e48493 addi s1,s1,-1490 # 200028fc + 12ed6: f19f20ef jal ra,5dee + 12eda: 409c lw a5,0(s1) + 12edc: 842a mv s0,a0 + 12ede: 9782 jalr a5 + 12ee0: 02a46a63 bltu s0,a0,12f14 + 12ee4: 000f47b7 lui a5,0xf4 + 12ee8: 24078793 addi a5,a5,576 # f4240 <_data_lma+0xd8c84> + 12eec: 40a40533 sub a0,s0,a0 + 12ef0: 02f535b3 mulhu a1,a0,a5 + 12ef4: 2492 lhu a2,8(s1) + 12ef6: 4681 li a3,0 + 12ef8: 02f50533 mul a0,a0,a5 + 12efc: 3a6030ef jal ra,162a2 <__udivdi3> + 12f00: 9902 jalr s2 + 12f02: 4422 lw s0,8(sp) + 12f04: 40b2 lw ra,12(sp) + 12f06: 4492 lw s1,4(sp) + 12f08: 4902 lw s2,0(sp) + 12f0a: 4581 li a1,0 + 12f0c: 4501 li a0,0 + 12f0e: 0141 addi sp,sp,16 + 12f10: 1280806f j 1b038 + 12f14: 40dc lw a5,4(s1) + 12f16: 943e add s0,s0,a5 + 12f18: b7f1 j 12ee4 + +00012f1a : +ll_adv_legacy_rsp_tx_process(): + 12f1a: 1101 addi sp,sp,-32 + 12f1c: 1fff0797 auipc a5,0x1fff0 + 12f20: af27c783 lbu a5,-1294(a5) # 20002a0e + 12f24: cc22 sw s0,24(sp) + 12f26: ce06 sw ra,28(sp) + 12f28: ca26 sw s1,20(sp) + 12f2a: 8b85 andi a5,a5,1 + 12f2c: 1fff0417 auipc s0,0x1fff0 + 12f30: bf842403 lw s0,-1032(s0) # 20002b24 + 12f34: c7ad beqz a5,12f9e + 12f36: 1fff0797 auipc a5,0x1fff0 + 12f3a: ac078c23 sb zero,-1320(a5) # 20002a0e + 12f3e: a4418493 addi s1,gp,-1468 # 200013fc + 12f42: 409c lw a5,0(s1) + 12f44: c79d beqz a5,12f72 + 12f46: 43dc lw a5,4(a5) + 12f48: c78d beqz a5,12f72 + 12f4a: 4789 li a5,2 + 12f4c: 825c sb a5,4(sp) + 12f4e: 03944783 lbu a5,57(s0) + 12f52: 00610513 addi a0,sp,6 + 12f56: 4619 li a2,6 + 12f58: 82dc sb a5,5(sp) + 12f5a: 247c lbu a5,14(s0) + 12f5c: 03a40593 addi a1,s0,58 + 12f60: 865c sb a5,12(sp) + 12f62: 1ffee097 auipc ra,0x1ffee + 12f66: 8fa080e7 jalr -1798(ra) # 2000085c + 12f6a: 409c lw a5,0(s1) + 12f6c: 0048 addi a0,sp,4 + 12f6e: 43dc lw a5,4(a5) + 12f70: 9782 jalr a5 + 12f72: 05344783 lbu a5,83(s0) + 12f76: 8b85 andi a5,a5,1 + 12f78: cb81 beqz a5,12f88 + 12f7a: 03944583 lbu a1,57(s0) + 12f7e: 2048 lbu a0,4(s0) + 12f80: 03a40613 addi a2,s0,58 + 12f84: dcdfa0ef jal ra,dd50 + 12f88: 05344783 lbu a5,83(s0) + 12f8c: 8b89 andi a5,a5,2 + 12f8e: cb81 beqz a5,12f9e + 12f90: 8522 mv a0,s0 + 12f92: 4462 lw s0,24(sp) + 12f94: 40f2 lw ra,28(sp) + 12f96: 44d2 lw s1,20(sp) + 12f98: 6105 addi sp,sp,32 + 12f9a: 4360806f j 1b3d0 + 12f9e: 8522 mv a0,s0 + 12fa0: 4462 lw s0,24(sp) + 12fa2: 40f2 lw ra,28(sp) + 12fa4: 44d2 lw s1,20(sp) + 12fa6: 6105 addi sp,sp,32 + 12fa8: f13ff06f j 12eba + +00012fac : +LL_AdvGetCore(): + 12fac: 87aa mv a5,a0 + 12fae: 1fff0517 auipc a0,0x1fff0 + 12fb2: b7652503 lw a0,-1162(a0) # 20002b24 + 12fb6: e111 bnez a0,12fba + 12fb8: 8082 ret + 12fba: 2158 lbu a4,4(a0) + 12fbc: fef70ee3 beq a4,a5,12fb8 + 12fc0: 4108 lw a0,0(a0) + 12fc2: bfd5 j 12fb6 + +00012fc4 : +llAdvertiseSet(): + 12fc4: 1141 addi sp,sp,-16 + 12fc6: c606 sw ra,12(sp) + 12fc8: c422 sw s0,8(sp) + 12fca: c226 sw s1,4(sp) + 12fcc: fe1ff0ef jal ra,12fac + 12fd0: c95d beqz a0,13086 + 12fd2: 02954783 lbu a5,41(a0) + 12fd6: 842a mv s0,a0 + 12fd8: e785 bnez a5,13000 + 12fda: 4619 li a2,6 + 12fdc: 1fff0597 auipc a1,0x1fff0 + 12fe0: b7958593 addi a1,a1,-1159 # 20002b55 + 12fe4: 02a40513 addi a0,s0,42 + 12fe8: 1ffee097 auipc ra,0x1ffee + 12fec: 874080e7 jalr -1932(ra) # 2000085c + 12ff0: 207c lbu a5,6(s0) + 12ff2: c795 beqz a5,1301e + 12ff4: 4501 li a0,0 + 12ff6: 40b2 lw ra,12(sp) + 12ff8: 4422 lw s0,8(sp) + 12ffa: 4492 lw s1,4(sp) + 12ffc: 0141 addi sp,sp,16 + 12ffe: 8082 ret + 13000: 4705 li a4,1 + 13002: fee797e3 bne a5,a4,12ff0 + 13006: 1fff0797 auipc a5,0x1fff0 + 1300a: b557c783 lbu a5,-1195(a5) # 20002b5b + 1300e: 4549 li a0,18 + 13010: d3fd beqz a5,12ff6 + 13012: 4619 li a2,6 + 13014: 1fff0597 auipc a1,0x1fff0 + 13018: b4858593 addi a1,a1,-1208 # 20002b5c + 1301c: b7e1 j 12fe4 + 1301e: 3078 lbu a4,7(s0) + 13020: 4785 li a5,1 + 13022: a07c sb a5,6(s0) + 13024: 02f71663 bne a4,a5,13050 + 13028: 2808 lbu a0,16(s0) + 1302a: 0ff00793 li a5,255 + 1302e: 00f50663 beq a0,a5,1303a + 13032: 978f30ef jal ra,61aa + 13036: 57fd li a5,-1 + 13038: a81c sb a5,16(s0) + 1303a: 01040693 addi a3,s0,16 + 1303e: 28b01613 bseti a2,zero,0xb + 13042: 85a2 mv a1,s0 + 13044: 00000517 auipc a0,0x0 + 13048: 08e50513 addi a0,a0,142 # 130d2 + 1304c: 814f30ef jal ra,6060 + 13050: 1fff0497 auipc s1,0x1fff0 + 13054: 8ac48493 addi s1,s1,-1876 # 200028fc + 13058: 409c lw a5,0(s1) + 1305a: 9782 jalr a5 + 1305c: 249a lhu a4,8(s1) + 1305e: 2c1e lhu a5,24(s0) + 13060: 862a mv a2,a0 + 13062: 01140693 addi a3,s0,17 + 13066: 02e787b3 mul a5,a5,a4 + 1306a: 64000713 li a4,1600 + 1306e: 85a2 mv a1,s0 + 13070: 00008517 auipc a0,0x8 + 13074: 1ca50513 addi a0,a0,458 # 1b23a + 13078: 32078793 addi a5,a5,800 + 1307c: 02e7d733 divu a4,a5,a4 + 13080: 2c6070ef jal ra,1a346 + 13084: bf85 j 12ff4 + 13086: 450d li a0,3 + 13088: b7bd j 12ff6 + +0001308a : +LL_AdvertiseToStandby(): + 1308a: 1141 addi sp,sp,-16 + 1308c: c422 sw s0,8(sp) + 1308e: 842a mv s0,a0 + 13090: 4509 li a0,2 + 13092: c606 sw ra,12(sp) + 13094: 600070ef jal ra,1a694 + 13098: 5b6070ef jal ra,1a64e + 1309c: 8522 mv a0,s0 + 1309e: 00040323 sb zero,6(s0) + 130a2: e19ff0ef jal ra,12eba + 130a6: 3808 lbu a0,17(s0) + 130a8: 0ff00793 li a5,255 + 130ac: 00f50663 beq a0,a5,130b8 + 130b0: 8faf30ef jal ra,61aa + 130b4: 57fd li a5,-1 + 130b6: a81c sb a5,16(s0) + 130b8: 2808 lbu a0,16(s0) + 130ba: 0ff00793 li a5,255 + 130be: 00f50663 beq a0,a5,130ca + 130c2: 8e8f30ef jal ra,61aa + 130c6: 57fd li a5,-1 + 130c8: a81c sb a5,16(s0) + 130ca: 40b2 lw ra,12(sp) + 130cc: 4422 lw s0,8(sp) + 130ce: 0141 addi sp,sp,16 + 130d0: 8082 ret + +000130d2 : +llAdvertiseTimeout(): + 130d2: 7179 addi sp,sp,-48 + 130d4: d422 sw s0,40(sp) + 130d6: d606 sw ra,44(sp) + 130d8: d226 sw s1,36(sp) + 130da: 3164 lbu s1,7(a0) + 130dc: 57fd li a5,-1 + 130de: a91c sb a5,16(a0) + 130e0: 88bd andi s1,s1,15 + 130e2: 4785 li a5,1 + 130e4: 842a mv s0,a0 + 130e6: 00f49e63 bne s1,a5,13102 + 130ea: 4659 li a2,22 + 130ec: 4581 li a1,0 + 130ee: 0028 addi a0,sp,8 + 130f0: ff9ee0ef jal ra,20e8 + 130f4: 03c00793 li a5,60 + 130f8: 0028 addi a0,sp,8 + 130fa: 85dc sb a5,11(sp) + 130fc: 8744 sb s1,14(sp) + 130fe: 9d5fa0ef jal ra,dad2 + 13102: 8522 mv a0,s0 + 13104: 5422 lw s0,40(sp) + 13106: 50b2 lw ra,44(sp) + 13108: 5492 lw s1,36(sp) + 1310a: 6145 addi sp,sp,48 + 1310c: f7fff06f j 1308a + +00013110 : +LL_AdvertiseEventRegister(): + 13110: a8a1a223 sw a0,-1404(gp) # 2000143c + 13114: 8082 ret + +00013116 : +LL_AdvertiseEnalbe(): + 13116: 1ffef797 auipc a5,0x1ffef + 1311a: 7957c783 lbu a5,1941(a5) # 200028ab + 1311e: ef85 bnez a5,13156 + 13120: 1141 addi sp,sp,-16 + 13122: 00000517 auipc a0,0x0 + 13126: 93e50513 addi a0,a0,-1730 # 12a60 + 1312a: c606 sw ra,12(sp) + 1312c: ac8f30ef jal ra,63f4 + 13130: 973ff0ef jal ra,12aa2 + 13134: 40b2 lw ra,12(sp) + 13136: 1fff0797 auipc a5,0x1fff0 + 1313a: 9da78793 addi a5,a5,-1574 # 20002b10 + 1313e: 00000717 auipc a4,0x0 + 13142: ac070713 addi a4,a4,-1344 # 12bfe + 13146: cf98 sw a4,24(a5) + 13148: 00000717 auipc a4,0x0 + 1314c: e7c70713 addi a4,a4,-388 # 12fc4 + 13150: cfd8 sw a4,28(a5) + 13152: 0141 addi sp,sp,16 + 13154: 8082 ret + 13156: 1fff0797 auipc a5,0x1fff0 + 1315a: 9ba78793 addi a5,a5,-1606 # 20002b10 + 1315e: 00000717 auipc a4,0x0 + 13162: aa070713 addi a4,a4,-1376 # 12bfe + 13166: cf98 sw a4,24(a5) + 13168: 00000717 auipc a4,0x0 + 1316c: e5c70713 addi a4,a4,-420 # 12fc4 + 13170: cfd8 sw a4,28(a5) + 13172: 8082 ret + +00013174 : +LL_ConnectEventRegister(): + 13174: a8a1a423 sw a0,-1400(gp) # 20001440 + 13178: 8082 ret + +0001317a : +ll_connect_set_windowWidening(): + 1317a: 13554683 lbu a3,309(a0) + 1317e: 4705 li a4,1 + 13180: 04900793 li a5,73 + 13184: 00e69463 bne a3,a4,1318c + 13188: 03500793 li a5,53 + 1318c: 1ffef717 auipc a4,0x1ffef + 13190: 75174703 lbu a4,1873(a4) # 200028dd + 13194: 97ba add a5,a5,a4 + 13196: bd3e sh a5,58(a0) + 13198: 97ae add a5,a5,a1 + 1319a: bd5e sh a5,60(a0) + 1319c: 8082 ret + +0001319e : +ll_connect_set_procedure_timeout(): + 1319e: 1101 addi sp,sp,-32 + 131a0: cc22 sw s0,24(sp) + 131a2: ce06 sw ra,28(sp) + 131a4: 842a mv s0,a0 + 131a6: 2948 lbu a0,20(a0) + 131a8: 0ff00793 li a5,255 + 131ac: 862e mv a2,a1 + 131ae: 00f50863 beq a0,a5,131be + 131b2: c62e sw a1,12(sp) + 131b4: ff7f20ef jal ra,61aa + 131b8: 4632 lw a2,12(sp) + 131ba: 57fd li a5,-1 + 131bc: a85c sb a5,20(s0) + 131be: 01440693 addi a3,s0,20 + 131c2: 85a2 mv a1,s0 + 131c4: 4462 lw s0,24(sp) + 131c6: 40f2 lw ra,28(sp) + 131c8: 00000517 auipc a0,0x0 + 131cc: 6f450513 addi a0,a0,1780 # 138bc + 131d0: 6105 addi sp,sp,32 + 131d2: e8ff206f j 6060 + +000131d6 : +ll_connect_set_connect_timeout(): + 131d6: 1101 addi sp,sp,-32 + 131d8: cc22 sw s0,24(sp) + 131da: ce06 sw ra,28(sp) + 131dc: 842a mv s0,a0 + 131de: 3948 lbu a0,21(a0) + 131e0: 0ff00793 li a5,255 + 131e4: 862e mv a2,a1 + 131e6: 00f50863 beq a0,a5,131f6 + 131ea: c62e sw a1,12(sp) + 131ec: fbff20ef jal ra,61aa + 131f0: 4632 lw a2,12(sp) + 131f2: 57fd li a5,-1 + 131f4: b85c sb a5,21(s0) + 131f6: 01540693 addi a3,s0,21 + 131fa: 85a2 mv a1,s0 + 131fc: 4462 lw s0,24(sp) + 131fe: 40f2 lw ra,28(sp) + 13200: 00000517 auipc a0,0x0 + 13204: 6e450513 addi a0,a0,1764 # 138e4 + 13208: 6105 addi sp,sp,32 + 1320a: e57f206f j 6060 + +0001320e : +ll_connect_init_dataLen(): + 1320e: 1fff0697 auipc a3,0x1fff0 + 13212: 90268693 addi a3,a3,-1790 # 20002b10 + 13216: 22fe lhu a5,6(a3) + 13218: 32cc lbu a1,5(a3) + 1321a: 26fa lhu a4,14(a3) + 1321c: 001b0637 lui a2,0x1b0 + 13220: 26b6 lhu a3,10(a3) + 13222: 14860613 addi a2,a2,328 # 1b0148 <_data_lma+0x194b8c> + 13226: 486d li a6,27 + 13228: 12c52023 sw a2,288(a0) + 1322c: 14800613 li a2,328 + 13230: 10f51d23 sh a5,282(a0) + 13234: 10b51b23 sh a1,278(a0) + 13238: 0b07d7b3 minu a5,a5,a6 + 1323c: 10e51c23 sh a4,280(a0) + 13240: 10d51e23 sh a3,284(a0) + 13244: 0b05d5b3 minu a1,a1,a6 + 13248: 0ac6d6b3 minu a3,a3,a2 + 1324c: 0ac75733 minu a4,a4,a2 + 13250: 11051f23 sh a6,286(a0) + 13254: 12c51223 sh a2,292(a0) + 13258: 12f51523 sh a5,298(a0) + 1325c: 12b51323 sh a1,294(a0) + 13260: 12d51623 sh a3,300(a0) + 13264: 12e51423 sh a4,296(a0) + 13268: 10f50aa3 sb a5,277(a0) + 1326c: 8082 ret + +0001326e : +ll_connect_update_effective_Len(): + 1326e: 13454683 lbu a3,308(a0) + 13272: 4705 li a4,1 + 13274: 12c55783 lhu a5,300(a0) + 13278: 02e69063 bne a3,a4,13298 + 1327c: fbc78793 addi a5,a5,-68 + 13280: 4711 li a4,4 + 13282: 02e7c7b3 div a5,a5,a4 + 13286: 12a55703 lhu a4,298(a0) + 1328a: 0807c7b3 zext.h a5,a5 + 1328e: 0af757b3 minu a5,a4,a5 + 13292: 10f50aa3 sb a5,277(a0) + 13296: 8082 ret + 13298: fb078793 addi a5,a5,-80 + 1329c: 4721 li a4,8 + 1329e: b7d5 j 13282 + +000132a0 : +ll_connect_update_dataLen(): + 132a0: 11855703 lhu a4,280(a0) + 132a4: 12455683 lhu a3,292(a0) + 132a8: 11c55603 lhu a2,284(a0) + 132ac: 12255583 lhu a1,290(a0) + 132b0: 0ae6d6b3 minu a3,a3,a4 + 132b4: 12055703 lhu a4,288(a0) + 132b8: 11a55803 lhu a6,282(a0) + 132bc: 1141 addi sp,sp,-16 + 132be: 0ac75733 minu a4,a4,a2 + 132c2: 6605 lui a2,0x1 + 132c4: 84860613 addi a2,a2,-1976 # 848 <_sinit-0x7b8> + 132c8: 0ac6d6b3 minu a3,a3,a2 + 132cc: 0ac75733 minu a4,a4,a2 + 132d0: 11655603 lhu a2,278(a0) + 132d4: c606 sw ra,12(sp) + 132d6: 87aa mv a5,a0 + 132d8: 0ac5d5b3 minu a1,a1,a2 + 132dc: 11e55603 lhu a2,286(a0) + 132e0: 0ff5f593 zext.b a1,a1 + 132e4: 0806c6b3 zext.h a3,a3 + 132e8: 0b065633 minu a2,a2,a6 + 132ec: 12655803 lhu a6,294(a0) + 132f0: 0ff67613 zext.b a2,a2 + 132f4: 08074733 zext.h a4,a4 + 132f8: 02b81663 bne a6,a1,13324 + 132fc: 12855803 lhu a6,296(a0) + 13300: 02d81263 bne a6,a3,13324 + 13304: 12a55803 lhu a6,298(a0) + 13308: 00c81e63 bne a6,a2,13324 + 1330c: 12c55803 lhu a6,300(a0) + 13310: 00e81a63 bne a6,a4,13324 + 13314: 10050a23 sb zero,276(a0) + 13318: f57ff0ef jal ra,1326e + 1331c: 4509 li a0,2 + 1331e: 40b2 lw ra,12(sp) + 13320: 0141 addi sp,sp,16 + 13322: 8082 ret + 13324: 4505 li a0,1 + 13326: 10a78a23 sb a0,276(a5) + 1332a: 12b79323 sh a1,294(a5) + 1332e: 853e mv a0,a5 + 13330: 12d79423 sh a3,296(a5) + 13334: 12c79523 sh a2,298(a5) + 13338: 12e79623 sh a4,300(a5) + 1333c: f33ff0ef jal ra,1326e + 13340: 4501 li a0,0 + 13342: bff1 j 1331e + +00013344 : +ll_connect_phy_update_dataLen(): + 13344: 11c55703 lhu a4,284(a0) + 13348: 12055783 lhu a5,288(a0) + 1334c: 1141 addi sp,sp,-16 + 1334e: c606 sw ra,12(sp) + 13350: 0ae7d7b3 minu a5,a5,a4 + 13354: 6705 lui a4,0x1 + 13356: 84870713 addi a4,a4,-1976 # 848 <_sinit-0x7b8> + 1335a: 00f77963 bgeu a4,a5,1336c + 1335e: 10e55683 lhu a3,270(a0) + 13362: 28b01613 bseti a2,zero,0xb + 13366: 8ef1 and a3,a3,a2 + 13368: e291 bnez a3,1336c + 1336a: 87ba mv a5,a4 + 1336c: 12c55703 lhu a4,300(a0) + 13370: 00f70763 beq a4,a5,1337e + 13374: 12f51623 sh a5,300(a0) + 13378: 4785 li a5,1 + 1337a: 10f50a23 sb a5,276(a0) + 1337e: 11855703 lhu a4,280(a0) + 13382: 12455783 lhu a5,292(a0) + 13386: 0ae7d7b3 minu a5,a5,a4 + 1338a: 6705 lui a4,0x1 + 1338c: 84870713 addi a4,a4,-1976 # 848 <_sinit-0x7b8> + 13390: 00f77963 bgeu a4,a5,133a2 + 13394: 10e55683 lhu a3,270(a0) + 13398: 28b01613 bseti a2,zero,0xb + 1339c: 8ef1 and a3,a3,a2 + 1339e: e291 bnez a3,133a2 + 133a0: 87ba mv a5,a4 + 133a2: 12855703 lhu a4,296(a0) + 133a6: 00f70763 beq a4,a5,133b4 + 133aa: 12f51423 sh a5,296(a0) + 133ae: 4785 li a5,1 + 133b0: 10f50a23 sb a5,276(a0) + 133b4: ebbff0ef jal ra,1326e + 133b8: 40b2 lw ra,12(sp) + 133ba: 4501 li a0,0 + 133bc: 0141 addi sp,sp,16 + 133be: 8082 ret + +000133c0 : +ll_connect_parse_datapdu_head(): + 133c0: 513c lw a5,96(a0) + 133c2: 460d li a2,3 + 133c4: 0ff00693 li a3,255 + 133c8: 2398 lbu a4,0(a5) + 133ca: 8b0d andi a4,a4,3 + 133cc: b158 sb a4,5(a0) + 133ce: 00c71363 bne a4,a2,133d4 + 133d2: 23b4 lbu a3,2(a5) + 133d4: a554 sb a3,12(a0) + 133d6: 2398 lbu a4,0(a5) + 133d8: 8b41 andi a4,a4,16 + 133da: a178 sb a4,6(a0) + 133dc: 339c lbu a5,1(a5) + 133de: b53c sb a5,11(a0) + 133e0: 8082 ret + +000133e2 : +ll_connect_flowcontrol_init(): + 133e2: 215c lbu a5,4(a0) + 133e4: 9bcd andi a5,a5,-13 + 133e6: a15c sb a5,4(a0) + 133e8: 8082 ret + +000133ea : +LL_ConnectFlowcontrolTx(): + 133ea: 513c lw a5,96(a0) + 133ec: 2158 lbu a4,4(a0) + 133ee: 239c lbu a5,0(a5) + 133f0: 40375693 srai a3,a4,0x3 + 133f4: 8789 srai a5,a5,0x2 + 133f6: 8fb5 xor a5,a5,a3 + 133f8: 8b85 andi a5,a5,1 + 133fa: c791 beqz a5,13406 + 133fc: 00874713 xori a4,a4,8 + 13400: a158 sb a4,4(a0) + 13402: 4501 li a0,0 + 13404: 8082 ret + 13406: 4505 li a0,1 + 13408: 8082 ret + +0001340a : +LL_ConnectFlowcontrolRx(): + 1340a: 513c lw a5,96(a0) + 1340c: 2158 lbu a4,4(a0) + 1340e: 239c lbu a5,0(a5) + 13410: 40275693 srai a3,a4,0x2 + 13414: 878d srai a5,a5,0x3 + 13416: 8fb5 xor a5,a5,a3 + 13418: 8b85 andi a5,a5,1 + 1341a: e791 bnez a5,13426 + 1341c: 00474713 xori a4,a4,4 + 13420: a158 sb a4,4(a0) + 13422: 4501 li a0,0 + 13424: 8082 ret + 13426: 4505 li a0,1 + 13428: 8082 ret + +0001342a : +LL_ConnectTxPktnumIncrease(): + 1342a: 0b052783 lw a5,176(a0) + 1342e: 0785 addi a5,a5,1 + 13430: 0af52823 sw a5,176(a0) + 13434: e791 bnez a5,13440 + 13436: 0b454783 lbu a5,180(a0) + 1343a: 0785 addi a5,a5,1 + 1343c: 0af50a23 sb a5,180(a0) + 13440: 0b450783 lb a5,180(a0) + 13444: 0007d763 bgez a5,13452 + 13448: 4785 li a5,1 + 1344a: 0af52823 sw a5,176(a0) + 1344e: 0a050a23 sb zero,180(a0) + 13452: 8082 ret + +00013454 : +LL_ConnectRxPktnumIncrease(): + 13454: 0b852783 lw a5,184(a0) + 13458: 0785 addi a5,a5,1 + 1345a: 0af52c23 sw a5,184(a0) + 1345e: e791 bnez a5,1346a + 13460: 0bc54783 lbu a5,188(a0) + 13464: 0785 addi a5,a5,1 + 13466: 0af50e23 sb a5,188(a0) + 1346a: 0bc50783 lb a5,188(a0) + 1346e: 0007d763 bgez a5,1347c + 13472: 4785 li a5,1 + 13474: 0af52c23 sw a5,184(a0) + 13478: 0a050e23 sb zero,188(a0) + 1347c: 8082 ret + +0001347e : +ll_connect_event_continue(): + 1347e: 3554 lbu a3,13(a0) + 13480: 4785 li a5,1 + 13482: 08d7ec63 bltu a5,a3,1351a + 13486: 257c lbu a5,14(a0) + 13488: 872a mv a4,a0 + 1348a: 4501 li a0,0 + 1348c: ebc9 bnez a5,1351e + 1348e: 1141 addi sp,sp,-16 + 13490: c606 sw ra,12(sp) + 13492: c422 sw s0,8(sp) + 13494: c226 sw s1,4(sp) + 13496: c04a sw s2,0(sp) + 13498: 235c lbu a5,4(a4) + 1349a: 0107f513 andi a0,a5,16 + 1349e: 237c lbu a5,6(a4) + 134a0: c385 beqz a5,134c0 + 134a2: 02074683 lbu a3,32(a4) + 134a6: 1ffef797 auipc a5,0x1ffef + 134aa: 4357c783 lbu a5,1077(a5) # 200028db + 134ae: 02f6e263 bltu a3,a5,134d2 + 134b2: e911 bnez a0,134c6 + 134b4: 40b2 lw ra,12(sp) + 134b6: 4422 lw s0,8(sp) + 134b8: 4492 lw s1,4(sp) + 134ba: 4902 lw s2,0(sp) + 134bc: 0141 addi sp,sp,16 + 134be: 8082 ret + 134c0: d975 beqz a0,134b4 + 134c2: 4401 li s0,0 + 134c4: a019 j 134ca + 134c6: 12875403 lhu s0,296(a4) + 134ca: 12c75783 lhu a5,300(a4) + 134ce: 943e add s0,s0,a5 + 134d0: a021 j 134d8 + 134d2: 12875403 lhu s0,296(a4) + 134d6: f975 bnez a0,134ca + 134d8: 4501 li a0,0 + 134da: dc69 beqz s0,134b4 + 134dc: 1ffef917 auipc s2,0x1ffef + 134e0: 42090913 addi s2,s2,1056 # 200028fc + 134e4: 00092783 lw a5,0(s2) + 134e8: 4764 lw s1,76(a4) + 134ea: 9782 jalr a5 + 134ec: 02a4e363 bltu s1,a0,13512 + 134f0: 40a487b3 sub a5,s1,a0 + 134f4: 00895503 lhu a0,8(s2) + 134f8: 000f4737 lui a4,0xf4 + 134fc: 24070713 addi a4,a4,576 # f4240 <_data_lma+0xd8c84> + 13500: 02850533 mul a0,a0,s0 + 13504: 02e55533 divu a0,a0,a4 + 13508: 00a7b533 sltu a0,a5,a0 + 1350c: 00154513 xori a0,a0,1 + 13510: b755 j 134b4 + 13512: 00492783 lw a5,4(s2) + 13516: 94be add s1,s1,a5 + 13518: bfe1 j 134f0 + 1351a: 4501 li a0,0 + 1351c: 8082 ret + 1351e: 8082 ret + +00013520 : +ll_set_connect_event(): + 13520: 1ffef697 auipc a3,0x1ffef + 13524: 3dc68693 addi a3,a3,988 # 200028fc + 13528: 04055603 lhu a2,64(a0) + 1352c: 269a lhu a4,8(a3) + 1352e: 1ffef797 auipc a5,0x1ffef + 13532: 6007a323 sw zero,1542(a5) # 20002b34 + 13536: 457c lw a5,76(a0) + 13538: 02e60633 mul a2,a2,a4 + 1353c: 000f4737 lui a4,0xf4 + 13540: 85aa mv a1,a0 + 13542: 23f70513 addi a0,a4,575 # f423f <_data_lma+0xd8c83> + 13546: 24070713 addi a4,a4,576 + 1354a: 962a add a2,a2,a0 + 1354c: 02e65633 divu a2,a2,a4 + 13550: 1ffef717 auipc a4,0x1ffef + 13554: 38e74703 lbu a4,910(a4) # 200028de + 13558: 963a add a2,a2,a4 + 1355a: 00c7ed63 bltu a5,a2,13574 + 1355e: 45b8 lw a4,72(a1) + 13560: 40c78633 sub a2,a5,a2 + 13564: 01658693 addi a3,a1,22 + 13568: 00007517 auipc a0,0x7 + 1356c: 3ba50513 addi a0,a0,954 # 1a922 + 13570: 5d70606f j 1a346 + 13574: 42d8 lw a4,4(a3) + 13576: 97ba add a5,a5,a4 + 13578: b7dd j 1355e + +0001357a : +LL_ConnectFreeTmosPrioritID(): + 1357a: 1101 addi sp,sp,-32 + 1357c: c64e sw s3,12(sp) + 1357e: a8818993 addi s3,gp,-1400 # 20001440 + 13582: 0009a783 lw a5,0(s3) + 13586: ca26 sw s1,20(sp) + 13588: ce06 sw ra,28(sp) + 1358a: cc22 sw s0,24(sp) + 1358c: c84a sw s2,16(sp) + 1358e: 84aa mv s1,a0 + 13590: cbb5 beqz a5,13604 + 13592: 1ffef917 auipc s2,0x1ffef + 13596: 36a90913 addi s2,s2,874 # 200028fc + 1359a: 00895703 lhu a4,8(s2) + 1359e: 04055403 lhu s0,64(a0) + 135a2: 457c lw a5,76(a0) + 135a4: 02e40433 mul s0,s0,a4 + 135a8: 000f4737 lui a4,0xf4 + 135ac: 23f70693 addi a3,a4,575 # f423f <_data_lma+0xd8c83> + 135b0: 24070713 addi a4,a4,576 + 135b4: 9436 add s0,s0,a3 + 135b6: 02e45433 divu s0,s0,a4 + 135ba: 0687e763 bltu a5,s0,13628 + 135be: 40878433 sub s0,a5,s0 + 135c2: 00092783 lw a5,0(s2) + 135c6: 9782 jalr a5 + 135c8: 06a46463 bltu s0,a0,13630 + 135cc: 40a407b3 sub a5,s0,a0 + 135d0: 0009a403 lw s0,0(s3) + 135d4: 0607c263 bltz a5,13638 + 135d8: 1ffef717 auipc a4,0x1ffef + 135dc: 30674703 lbu a4,774(a4) # 200028de + 135e0: 8305 srli a4,a4,0x1 + 135e2: 04f77b63 bgeu a4,a5,13638 + 135e6: 000f4537 lui a0,0xf4 + 135ea: 8f99 sub a5,a5,a4 + 135ec: 24050513 addi a0,a0,576 # f4240 <_data_lma+0xd8c84> + 135f0: 02a7b5b3 mulhu a1,a5,a0 + 135f4: 00895603 lhu a2,8(s2) + 135f8: 4681 li a3,0 + 135fa: 02a78533 mul a0,a5,a0 + 135fe: 4a5020ef jal ra,162a2 <__udivdi3> + 13602: 9402 jalr s0 + 13604: 28ec lbu a1,22(s1) + 13606: 4501 li a0,0 + 13608: 28b015b3 bset a1,zero,a1 + 1360c: 0805c5b3 zext.h a1,a1 + 13610: 635060ef jal ra,1a444 + 13614: 4462 lw s0,24(sp) + 13616: 40f2 lw ra,28(sp) + 13618: 44d2 lw s1,20(sp) + 1361a: 4942 lw s2,16(sp) + 1361c: 49b2 lw s3,12(sp) + 1361e: 4581 li a1,0 + 13620: 4501 li a0,0 + 13622: 6105 addi sp,sp,32 + 13624: 2150706f j 1b038 + 13628: 00492703 lw a4,4(s2) + 1362c: 97ba add a5,a5,a4 + 1362e: bf41 j 135be + 13630: 00492783 lw a5,4(s2) + 13634: 943e add s0,s0,a5 + 13636: bf59 j 135cc + 13638: 4501 li a0,0 + 1363a: b7e1 j 13602 + +0001363c : +LL_ConnectToStandby(): + 1363c: 1141 addi sp,sp,-16 + 1363e: c422 sw s0,8(sp) + 13640: c226 sw s1,4(sp) + 13642: c606 sw ra,12(sp) + 13644: 1ffef797 auipc a5,0x1ffef + 13648: 4f47a783 lw a5,1268(a5) # 20002b38 + 1364c: 842a mv s0,a0 + 1364e: 84ae mv s1,a1 + 13650: 00a79663 bne a5,a0,1365c + 13654: 1ffef797 auipc a5,0x1ffef + 13658: 4e07a223 sw zero,1252(a5) # 20002b38 + 1365c: 547c lw a5,108(s0) + 1365e: c799 beqz a5,1366c + 13660: 200a lhu a0,0(s0) + 13662: 4601 li a2,0 + 13664: 08000593 li a1,128 + 13668: 3f7000ef jal ra,1425e + 1366c: 2c1c lbu a5,24(s0) + 1366e: c799 beqz a5,1367c + 13670: 200a lhu a0,0(s0) + 13672: 464d li a2,19 + 13674: 08100593 li a1,129 + 13678: 3e7000ef jal ra,1425e + 1367c: 200a lhu a0,0(s0) + 1367e: 4615 li a2,5 + 13680: 08100593 li a1,129 + 13684: 3db000ef jal ra,1425e + 13688: 00040123 sb zero,2(s0) + 1368c: 00040423 sb zero,8(s0) + 13690: 08940723 sb s1,142(s0) + 13694: 40b2 lw ra,12(sp) + 13696: 4422 lw s0,8(sp) + 13698: 4492 lw s1,4(sp) + 1369a: 4501 li a0,0 + 1369c: 0141 addi sp,sp,16 + 1369e: 8082 ret + +000136a0 : +ll_connect_action_in_connintervaltimeout(): + 136a0: 213c lbu a5,2(a0) + 136a2: 20078b63 beqz a5,138b8 + 136a6: 3d1e lhu a5,56(a0) + 136a8: 1101 addi sp,sp,-32 + 136aa: cc22 sw s0,24(sp) + 136ac: ce06 sw ra,28(sp) + 136ae: 0785 addi a5,a5,1 + 136b0: bd1e sh a5,56(a0) + 136b2: 313c lbu a5,3(a0) + 136b4: 000506a3 sb zero,13(a0) + 136b8: 842a mv s0,a0 + 136ba: 0027f713 andi a4,a5,2 + 136be: e305 bnez a4,136de + 136c0: 353a lhu a4,42(a0) + 136c2: 4795 li a5,5 + 136c4: 1ce7f363 bgeu a5,a4,1388a + 136c8: 03e00593 li a1,62 + 136cc: f71ff0ef jal ra,1363c + 136d0: 0aa40aa3 sb a0,181(s0) + 136d4: 4509 li a0,2 + 136d6: 40f2 lw ra,28(sp) + 136d8: 4462 lw s0,24(sp) + 136da: 6105 addi sp,sp,32 + 136dc: 8082 ret + 136de: 0207f713 andi a4,a5,32 + 136e2: cf0d beqz a4,1371c + 136e4: fdf7f793 andi a5,a5,-33 + 136e8: b13c sb a5,3(a0) + 136ea: 355e lhu a5,44(a0) + 136ec: 4e200713 li a4,1250 + 136f0: 04255683 lhu a3,66(a0) + 136f4: 0047e793 ori a5,a5,4 + 136f8: b55e sh a5,44(a0) + 136fa: 315e lhu a5,36(a0) + 136fc: 02154583 lbu a1,33(a0) + 13700: 0a050aa3 sb zero,181(a0) + 13704: 02e787b3 mul a5,a5,a4 + 13708: 02d7d7b3 divu a5,a5,a3 + 1370c: 02e585b3 mul a1,a1,a4 + 13710: 07fd addi a5,a5,31 + 13712: bd7e sh a5,62(a0) + 13714: 0805c5b3 zext.h a1,a1 + 13718: a63ff0ef jal ra,1317a + 1371c: 341c lbu a5,9(s0) + 1371e: 8b85 andi a5,a5,1 + 13720: cbdd beqz a5,137d6 + 13722: 09845783 lhu a5,152(s0) + 13726: 343a lhu a4,42(s0) + 13728: 16e79363 bne a5,a4,1388e + 1372c: 08f44783 lbu a5,143(s0) + 13730: 09645583 lhu a1,150(s0) + 13734: 3848 lbu a0,21(s0) + 13736: 02f400a3 sb a5,33(s0) + 1373a: 09045783 lhu a5,144(s0) + 1373e: b40e sh a1,40(s0) + 13740: 0592 slli a1,a1,0x4 + 13742: b03e sh a5,34(s0) + 13744: 09445783 lhu a5,148(s0) + 13748: 15f9 addi a1,a1,-2 + 1374a: b07e sh a5,38(s0) + 1374c: f06f20ef jal ra,5e52 + 13750: 303a lhu a4,34(s0) + 13752: 02041c23 sh zero,56(s0) + 13756: 1ffef697 auipc a3,0x1ffef + 1375a: 1a668693 addi a3,a3,422 # 200028fc + 1375e: c70d beqz a4,13788 + 13760: 269e lhu a5,8(a3) + 13762: 42cc lw a1,4(a3) + 13764: 02e787b3 mul a5,a5,a4 + 13768: 32000713 li a4,800 + 1376c: 19078793 addi a5,a5,400 + 13770: 02e7d7b3 divu a5,a5,a4 + 13774: 4478 lw a4,76(s0) + 13776: 973e add a4,a4,a5 + 13778: 863a mv a2,a4 + 1377a: 00f76463 bltu a4,a5,13782 + 1377e: 00b76463 bltu a4,a1,13786 + 13782: 40b70633 sub a2,a4,a1 + 13786: c470 sw a2,76(s0) + 13788: 269a lhu a4,8(a3) + 1378a: 09245783 lhu a5,146(s0) + 1378e: 32000693 li a3,800 + 13792: 286c lbu a1,22(s0) + 13794: b05e sh a5,36(s0) + 13796: 02e787b3 mul a5,a5,a4 + 1379a: 02041a23 sh zero,52(s0) + 1379e: 4501 li a0,0 + 137a0: 28b015b3 bset a1,zero,a1 + 137a4: 0805c5b3 zext.h a1,a1 + 137a8: 02d7d633 divu a2,a5,a3 + 137ac: 02d7f7b3 remu a5,a5,a3 + 137b0: 4e200693 li a3,1250 + 137b4: c430 sw a2,72(s0) + 137b6: 02d787b3 mul a5,a5,a3 + 137ba: 02e7c7b3 div a5,a5,a4 + 137be: b83e sh a5,50(s0) + 137c0: 343e lhu a5,42(s0) + 137c2: b87e sh a5,54(s0) + 137c4: 303c lbu a5,3(s0) + 137c6: 0207e793 ori a5,a5,32 + 137ca: b03c sb a5,3(s0) + 137cc: 341c lbu a5,9(s0) + 137ce: 9bf9 andi a5,a5,-2 + 137d0: b41c sb a5,9(s0) + 137d2: 473060ef jal ra,1a444 + 137d6: 341c lbu a5,9(s0) + 137d8: 8b89 andi a5,a5,2 + 137da: c3b9 beqz a5,13820 + 137dc: 07c45683 lhu a3,124(s0) + 137e0: 343a lhu a4,42(s0) + 137e2: 40e687b3 sub a5,a3,a4 + 137e6: 60579793 sext.h a5,a5 + 137ea: 0a07c763 bltz a5,13898 + 137ee: 02e69963 bne a3,a4,13820 + 137f2: 4781 li a5,0 + 137f4: 4801 li a6,0 + 137f6: 08f42023 sw a5,128(s0) + 137fa: 08040513 addi a0,s0,128 + 137fe: 09042223 sw a6,132(s0) + 13802: 4615 li a2,5 + 13804: 07640593 addi a1,s0,118 + 13808: c62a sw a0,12(sp) + 1380a: 1ffed097 auipc ra,0x1ffed + 1380e: 052080e7 jalr 82(ra) # 2000085c + 13812: 4532 lw a0,12(sp) + 13814: 2515 jal 13e38 + 13816: 341c lbu a5,9(s0) + 13818: 06a40da3 sb a0,123(s0) + 1381c: 9bf5 andi a5,a5,-3 + 1381e: b41c sb a5,9(s0) + 13820: 341c lbu a5,9(s0) + 13822: 0107f713 andi a4,a5,16 + 13826: c335 beqz a4,1388a + 13828: 13845603 lhu a2,312(s0) + 1382c: 3436 lhu a3,42(s0) + 1382e: 40d60733 sub a4,a2,a3 + 13832: 60571713 sext.h a4,a4 + 13836: 06074163 bltz a4,13898 + 1383a: 04d61863 bne a2,a3,1388a + 1383e: 9bbd andi a5,a5,-17 + 13840: b41c sb a5,9(s0) + 13842: 13644783 lbu a5,310(s0) + 13846: c791 beqz a5,13852 + 13848: 8b89 andi a5,a5,2 + 1384a: c3ad beqz a5,138ac + 1384c: 4785 li a5,1 + 1384e: 12f40a23 sb a5,308(s0) + 13852: 13744783 lbu a5,311(s0) + 13856: c791 beqz a5,13862 + 13858: 8b89 andi a5,a5,2 + 1385a: cfa1 beqz a5,138b2 + 1385c: 4785 li a5,1 + 1385e: 12f40aa3 sb a5,309(s0) + 13862: 4581 li a1,0 + 13864: 8522 mv a0,s0 + 13866: 915ff0ef jal ra,1317a + 1386a: 8522 mv a0,s0 + 1386c: ad9ff0ef jal ra,13344 + 13870: 11444783 lbu a5,276(s0) + 13874: c789 beqz a5,1387e + 13876: 345e lhu a5,44(s0) + 13878: 1007e793 ori a5,a5,256 + 1387c: b45e sh a5,44(s0) + 1387e: 345e lhu a5,44(s0) + 13880: 0a040aa3 sb zero,181(s0) + 13884: 2007e793 ori a5,a5,512 + 13888: b45e sh a5,44(s0) + 1388a: 4501 li a0,0 + 1388c: b5a9 j 136d6 + 1388e: 8f99 sub a5,a5,a4 + 13890: 60579793 sext.h a5,a5 + 13894: f407d1e3 bgez a5,137d6 + 13898: 02800593 li a1,40 + 1389c: 8522 mv a0,s0 + 1389e: d9fff0ef jal ra,1363c + 138a2: 0aa40aa3 sb a0,181(s0) + 138a6: 02800513 li a0,40 + 138aa: b535 j 136d6 + 138ac: 12040a23 sb zero,308(s0) + 138b0: b74d j 13852 + 138b2: 12040aa3 sb zero,309(s0) + 138b6: b775 j 13862 + 138b8: 4505 li a0,1 + 138ba: 8082 ret + +000138bc : +ll_connect_procedure_timeout(): + 138bc: c11d beqz a0,138e2 + 138be: 1141 addi sp,sp,-16 + 138c0: 02200593 li a1,34 + 138c4: c422 sw s0,8(sp) + 138c6: c606 sw ra,12(sp) + 138c8: 842a mv s0,a0 + 138ca: d73ff0ef jal ra,1363c + 138ce: 57fd li a5,-1 + 138d0: 0aa40aa3 sb a0,181(s0) + 138d4: 00040423 sb zero,8(s0) + 138d8: a85c sb a5,20(s0) + 138da: 40b2 lw ra,12(sp) + 138dc: 4422 lw s0,8(sp) + 138de: 0141 addi sp,sp,16 + 138e0: 8082 ret + 138e2: 8082 ret + +000138e4 : +ll_connect_supervision_timeout(): + 138e4: c51d beqz a0,13912 + 138e6: 1141 addi sp,sp,-16 + 138e8: c422 sw s0,8(sp) + 138ea: c606 sw ra,12(sp) + 138ec: 313c lbu a5,3(a0) + 138ee: 842a mv s0,a0 + 138f0: 03e00593 li a1,62 + 138f4: 8b89 andi a5,a5,2 + 138f6: c391 beqz a5,138fa + 138f8: 45a1 li a1,8 + 138fa: d43ff0ef jal ra,1363c + 138fe: 57fd li a5,-1 + 13900: 0aa40aa3 sb a0,181(s0) + 13904: 00040423 sb zero,8(s0) + 13908: b85c sb a5,21(s0) + 1390a: 40b2 lw ra,12(sp) + 1390c: 4422 lw s0,8(sp) + 1390e: 0141 addi sp,sp,16 + 13910: 8082 ret + 13912: 8082 ret + +00013914 : +ll_process_after_connect_event(): + 13914: 355e lhu a5,44(a0) + 13916: 1141 addi sp,sp,-16 + 13918: c422 sw s0,8(sp) + 1391a: c606 sw ra,12(sp) + 1391c: c226 sw s1,4(sp) + 1391e: c04a sw s2,0(sp) + 13920: 842a mv s0,a0 + 13922: 18078d63 beqz a5,13abc + 13926: 0027f713 andi a4,a5,2 + 1392a: cb09 beqz a4,1393c + 1392c: 9bf5 andi a5,a5,-3 + 1392e: b55e sh a5,44(a0) + 13930: 210a lhu a0,0(a0) + 13932: 4619 li a2,6 + 13934: 08000593 li a1,128 + 13938: 127000ef jal ra,1425e + 1393c: 345e lhu a5,44(s0) + 1393e: 0047f713 andi a4,a5,4 + 13942: c329 beqz a4,13984 + 13944: 9bed andi a5,a5,-5 + 13946: b45e sh a5,44(s0) + 13948: 305e lhu a5,36(s0) + 1394a: 4e200713 li a4,1250 + 1394e: 4581 li a1,0 + 13950: 02e787b3 mul a5,a5,a4 + 13954: 04245703 lhu a4,66(s0) + 13958: 8522 mv a0,s0 + 1395a: 02e7d7b3 divu a5,a5,a4 + 1395e: 07fd addi a5,a5,31 + 13960: bc7e sh a5,62(s0) + 13962: 819ff0ef jal ra,1317a + 13966: 383c lbu a5,19(s0) + 13968: 0017e793 ori a5,a5,1 + 1396c: b83c sb a5,19(s0) + 1396e: 09a45783 lhu a5,154(s0) + 13972: e799 bnez a5,13980 + 13974: 200a lhu a0,0(s0) + 13976: 460d li a2,3 + 13978: 08000593 li a1,128 + 1397c: 0e3000ef jal ra,1425e + 13980: 08041d23 sh zero,154(s0) + 13984: 345e lhu a5,44(s0) + 13986: 0087f713 andi a4,a5,8 + 1398a: cf09 beqz a4,139a4 + 1398c: 200a lhu a0,0(s0) + 1398e: 9bdd andi a5,a5,-9 + 13990: b45e sh a5,44(s0) + 13992: 4615 li a2,5 + 13994: 08000593 li a1,128 + 13998: 0c7000ef jal ra,1425e + 1399c: 383c lbu a5,19(s0) + 1399e: 0047e793 ori a5,a5,4 + 139a2: b83c sb a5,19(s0) + 139a4: 345e lhu a5,44(s0) + 139a6: 0107f713 andi a4,a5,16 + 139aa: c705 beqz a4,139d2 + 139ac: 9bbd andi a5,a5,-17 + 139ae: b45e sh a5,44(s0) + 139b0: 0be44783 lbu a5,190(s0) + 139b4: 200a lhu a0,0(s0) + 139b6: 4621 li a2,8 + 139b8: c789 beqz a5,139c2 + 139ba: 0a040f23 sb zero,190(s0) + 139be: 03000613 li a2,48 + 139c2: 08100593 li a1,129 + 139c6: 099000ef jal ra,1425e + 139ca: 383c lbu a5,19(s0) + 139cc: 0017e793 ori a5,a5,1 + 139d0: b83c sb a5,19(s0) + 139d2: 345e lhu a5,44(s0) + 139d4: 0407f713 andi a4,a5,64 + 139d8: c31d beqz a4,139fe + 139da: 08944703 lbu a4,137(s0) + 139de: fbf7f793 andi a5,a5,-65 + 139e2: b45e sh a5,44(s0) + 139e4: 47a1 li a5,8 + 139e6: 00e7f663 bgeu a5,a4,139f2 + 139ea: 347e lhu a5,46(s0) + 139ec: 0107e793 ori a5,a5,16 + 139f0: b47e sh a5,46(s0) + 139f2: 200a lhu a0,0(s0) + 139f4: 4631 li a2,12 + 139f6: 08100593 li a1,129 + 139fa: 065000ef jal ra,1425e + 139fe: 345e lhu a5,44(s0) + 13a00: 0207f713 andi a4,a5,32 + 13a04: c71d beqz a4,13a32 + 13a06: fdf7f793 andi a5,a5,-33 + 13a0a: b45e sh a5,44(s0) + 13a0c: 11245783 lhu a5,274(s0) + 13a10: 0207f793 andi a5,a5,32 + 13a14: e789 bnez a5,13a1e + 13a16: 347e lhu a5,46(s0) + 13a18: 48b79793 bclri a5,a5,0xb + 13a1c: b47e sh a5,46(s0) + 13a1e: 200a lhu a0,0(s0) + 13a20: 4611 li a2,4 + 13a22: 08000593 li a1,128 + 13a26: 039000ef jal ra,1425e + 13a2a: 383c lbu a5,19(s0) + 13a2c: 0017e793 ori a5,a5,1 + 13a30: b83c sb a5,19(s0) + 13a32: 345e lhu a5,44(s0) + 13a34: 1007f713 andi a4,a5,256 + 13a38: c305 beqz a4,13a58 + 13a3a: 200a lhu a0,0(s0) + 13a3c: eff7f793 andi a5,a5,-257 + 13a40: b45e sh a5,44(s0) + 13a42: 10040a23 sb zero,276(s0) + 13a46: 461d li a2,7 + 13a48: 08000593 li a1,128 + 13a4c: 013000ef jal ra,1425e + 13a50: 383c lbu a5,19(s0) + 13a52: 0017e793 ori a5,a5,1 + 13a56: b83c sb a5,19(s0) + 13a58: 345e lhu a5,44(s0) + 13a5a: 0807f713 andi a4,a5,128 + 13a5e: cb19 beqz a4,13a74 + 13a60: 200a lhu a0,0(s0) + 13a62: f7f7f793 andi a5,a5,-129 + 13a66: b45e sh a5,44(s0) + 13a68: 05700613 li a2,87 + 13a6c: 08100593 li a1,129 + 13a70: 7ee000ef jal ra,1425e + 13a74: 345e lhu a5,44(s0) + 13a76: 2007f713 andi a4,a5,512 + 13a7a: c31d beqz a4,13aa0 + 13a7c: dff7f793 andi a5,a5,-513 + 13a80: b45e sh a5,44(s0) + 13a82: 8522 mv a0,s0 + 13a84: 120408a3 sb zero,305(s0) + 13a88: fe6ff0ef jal ra,1326e + 13a8c: 200a lhu a0,0(s0) + 13a8e: 4631 li a2,12 + 13a90: 08000593 li a1,128 + 13a94: 7ca000ef jal ra,1425e + 13a98: 383c lbu a5,19(s0) + 13a9a: 0017e793 ori a5,a5,1 + 13a9e: b83c sb a5,19(s0) + 13aa0: 345e lhu a5,44(s0) + 13aa2: 8b85 andi a5,a5,1 + 13aa4: cf81 beqz a5,13abc + 13aa6: 383c lbu a5,19(s0) + 13aa8: 08e44583 lbu a1,142(s0) + 13aac: 8522 mv a0,s0 + 13aae: 0017e793 ori a5,a5,1 + 13ab2: b83c sb a5,19(s0) + 13ab4: b89ff0ef jal ra,1363c + 13ab8: 0aa40aa3 sb a0,181(s0) + 13abc: 203c lbu a5,2(s0) + 13abe: cb9d beqz a5,13af4 + 13ac0: 547c lw a5,108(s0) + 13ac2: cf81 beqz a5,13ada + 13ac4: 281c lbu a5,16(s0) + 13ac6: eb91 bnez a5,13ada + 13ac8: 200a lhu a0,0(s0) + 13aca: 4601 li a2,0 + 13acc: 08000593 li a1,128 + 13ad0: 78e000ef jal ra,1425e + 13ad4: e119 bnez a0,13ada + 13ad6: 4785 li a5,1 + 13ad8: a81c sb a5,16(s0) + 13ada: 2c1c lbu a5,24(s0) + 13adc: cf81 beqz a5,13af4 + 13ade: 283c lbu a5,18(s0) + 13ae0: eb91 bnez a5,13af4 + 13ae2: 200a lhu a0,0(s0) + 13ae4: 464d li a2,19 + 13ae6: 08100593 li a1,129 + 13aea: 774000ef jal ra,1425e + 13aee: e119 bnez a0,13af4 + 13af0: 4785 li a5,1 + 13af2: a83c sb a5,18(s0) + 13af4: 383c lbu a5,19(s0) + 13af6: c7bd beqz a5,13b64 + 13af8: 8b91 andi a5,a5,4 + 13afa: cb99 beqz a5,13b10 + 13afc: 2410 lbu a2,8(s0) + 13afe: 65c1 lui a1,0x10 + 13b00: a0058593 addi a1,a1,-1536 # fa00 + 13b04: 8522 mv a0,s0 + 13b06: e98ff0ef jal ra,1319e + 13b0a: 383c lbu a5,19(s0) + 13b0c: 9bed andi a5,a5,-5 + 13b0e: b83c sb a5,19(s0) + 13b10: 383c lbu a5,19(s0) + 13b12: 8b85 andi a5,a5,1 + 13b14: cf89 beqz a5,13b2e + 13b16: 2848 lbu a0,20(s0) + 13b18: 0ff00793 li a5,255 + 13b1c: 00f50663 beq a0,a5,13b28 + 13b20: e8af20ef jal ra,61aa + 13b24: 57fd li a5,-1 + 13b26: a85c sb a5,20(s0) + 13b28: 383c lbu a5,19(s0) + 13b2a: 9bf9 andi a5,a5,-2 + 13b2c: b83c sb a5,19(s0) + 13b2e: 383c lbu a5,19(s0) + 13b30: 8b89 andi a5,a5,2 + 13b32: cb91 beqz a5,13b46 + 13b34: 340e lhu a1,40(s0) + 13b36: 3848 lbu a0,21(s0) + 13b38: 0592 slli a1,a1,0x4 + 13b3a: 15f9 addi a1,a1,-2 + 13b3c: b16f20ef jal ra,5e52 + 13b40: 383c lbu a5,19(s0) + 13b42: 9bf5 andi a5,a5,-3 + 13b44: b83c sb a5,19(s0) + 13b46: 383c lbu a5,19(s0) + 13b48: 8ba1 andi a5,a5,8 + 13b4a: cf89 beqz a5,13b64 + 13b4c: 340e lhu a1,40(s0) + 13b4e: 460d li a2,3 + 13b50: 8522 mv a0,s0 + 13b52: 0592 slli a1,a1,0x4 + 13b54: 15f9 addi a1,a1,-2 + 13b56: 0805c5b3 zext.h a1,a1 + 13b5a: e44ff0ef jal ra,1319e + 13b5e: 383c lbu a5,19(s0) + 13b60: 9bdd andi a5,a5,-9 + 13b62: b83c sb a5,19(s0) + 13b64: 1ffef497 auipc s1,0x1ffef + 13b68: d6448493 addi s1,s1,-668 # 200028c8 + 13b6c: 5498 lw a4,40(s1) + 13b6e: cf39 beqz a4,13bcc + 13b70: 343e lhu a5,42(s0) + 13b72: cfa9 beqz a5,13bcc + 13b74: 06400693 li a3,100 + 13b78: 02d7f7b3 remu a5,a5,a3 + 13b7c: eba1 bnez a5,13bcc + 13b7e: a8c1a783 lw a5,-1396(gp) # 20001444 + 13b82: 8b89 andi a5,a5,2 + 13b84: cf85 beqz a5,13bbc + 13b86: 1ffef917 auipc s2,0x1ffef + 13b8a: f8a90913 addi s2,s2,-118 # 20002b10 + 13b8e: 00194783 lbu a5,1(s2) + 13b92: 00294583 lbu a1,2(s2) + 13b96: 4525 li a0,9 + 13b98: 07c2 slli a5,a5,0x10 + 13b9a: 8ddd or a1,a1,a5 + 13b9c: 9702 jalr a4 + 13b9e: 549c lw a5,40(s1) + 13ba0: 00094583 lbu a1,0(s2) + 13ba4: 4529 li a0,10 + 13ba6: 9782 jalr a5 + 13ba8: 549c lw a5,40(s1) + 13baa: 01c41583 lh a1,28(s0) + 13bae: 452d li a0,11 + 13bb0: 9782 jalr a5 + 13bb2: 549c lw a5,40(s1) + 13bb4: 01e40583 lb a1,30(s0) + 13bb8: 4531 li a0,12 + 13bba: 9782 jalr a5 + 13bbc: 1ffef797 auipc a5,0x1ffef + 13bc0: f4079a23 sh zero,-172(a5) # 20002b10 + 13bc4: 1ffef797 auipc a5,0x1ffef + 13bc8: f4078723 sb zero,-178(a5) # 20002b12 + 13bcc: 40b2 lw ra,12(sp) + 13bce: 4422 lw s0,8(sp) + 13bd0: 4492 lw s1,4(sp) + 13bd2: 4902 lw s2,0(sp) + 13bd4: 0141 addi sp,sp,16 + 13bd6: 8082 ret + +00013bd8 : +LL_ConnectShut(): + 13bd8: 1141 addi sp,sp,-16 + 13bda: c422 sw s0,8(sp) + 13bdc: c606 sw ra,12(sp) + 13bde: 842a mv s0,a0 + 13be0: 507c lw a5,100(s0) + 13be2: efa5 bnez a5,13c5a + 13be4: 547c lw a5,108(s0) + 13be6: ebc1 bnez a5,13c76 + 13be8: 4c68 lw a0,92(s0) + 13bea: c509 beqz a0,13bf4 + 13bec: 1ffed097 auipc ra,0x1ffed + 13bf0: 2d4080e7 jalr 724(ra) # 20000ec0 + 13bf4: 2848 lbu a0,20(s0) + 13bf6: 0ff00793 li a5,255 + 13bfa: 00f50463 beq a0,a5,13c02 + 13bfe: dacf20ef jal ra,61aa + 13c02: 3848 lbu a0,21(s0) + 13c04: 0ff00793 li a5,255 + 13c08: 00f50463 beq a0,a5,13c10 + 13c0c: d9ef20ef jal ra,61aa + 13c10: 2868 lbu a0,22(s0) + 13c12: 0ff00793 li a5,255 + 13c16: 00f50663 beq a0,a5,13c22 + 13c1a: d90f20ef jal ra,61aa + 13c1e: 57fd li a5,-1 + 13c20: a87c sb a5,22(s0) + 13c22: 200a lhu a0,0(s0) + 13c24: 2ac1 jal 13df4 + 13c26: 1ffef797 auipc a5,0x1ffef + 13c2a: caa7a783 lw a5,-854(a5) # 200028d0 + 13c2e: c395 beqz a5,13c52 + 13c30: 1ffef517 auipc a0,0x1ffef + 13c34: c9052503 lw a0,-880(a0) # 200028c0 + 13c38: cd09 beqz a0,13c52 + 13c3a: 1ffed097 auipc ra,0x1ffed + 13c3e: 286080e7 jalr 646(ra) # 20000ec0 + 13c42: 1ffef797 auipc a5,0x1ffef + 13c46: c607af23 sw zero,-898(a5) # 200028c0 + 13c4a: 1ffef797 auipc a5,0x1ffef + 13c4e: c607ad23 sw zero,-902(a5) # 200028c4 + 13c52: 40b2 lw ra,12(sp) + 13c54: 4422 lw s0,8(sp) + 13c56: 0141 addi sp,sp,16 + 13c58: 8082 ret + 13c5a: 43c8 lw a0,4(a5) + 13c5c: c509 beqz a0,13c66 + 13c5e: 1ffed097 auipc ra,0x1ffed + 13c62: 262080e7 jalr 610(ra) # 20000ec0 + 13c66: 507c lw a5,100(s0) + 13c68: 27ba lhu a4,10(a5) + 13c6a: f0076713 ori a4,a4,-256 + 13c6e: a7ba sh a4,10(a5) + 13c70: 439c lw a5,0(a5) + 13c72: d07c sw a5,100(s0) + 13c74: b7b5 j 13be0 + 13c76: 43c8 lw a0,4(a5) + 13c78: c509 beqz a0,13c82 + 13c7a: 1ffed097 auipc ra,0x1ffed + 13c7e: 246080e7 jalr 582(ra) # 20000ec0 + 13c82: 547c lw a5,108(s0) + 13c84: 27ba lhu a4,10(a5) + 13c86: f0076713 ori a4,a4,-256 + 13c8a: a7ba sh a4,10(a5) + 13c8c: 439c lw a5,0(a5) + 13c8e: d47c sw a5,108(s0) + 13c90: bf91 j 13be4 + +00013c92 : +LL_CoreGetCore(): + 13c92: 87aa mv a5,a0 + 13c94: 1ffef517 auipc a0,0x1ffef + 13c98: e9c52503 lw a0,-356(a0) # 20002b30 + 13c9c: c509 beqz a0,13ca6 + 13c9e: 211a lhu a4,0(a0) + 13ca0: 00f70363 beq a4,a5,13ca6 + 13ca4: 4501 li a0,0 + 13ca6: 8082 ret + +00013ca8 : +LL_CoreGetRxDataList(): + 13ca8: 1ffef517 auipc a0,0x1ffef + 13cac: e9452503 lw a0,-364(a0) # 20002b3c + 13cb0: 253a lhu a4,10(a0) + 13cb2: 67c1 lui a5,0x10 + 13cb4: f5278793 addi a5,a5,-174 # ff52 + 13cb8: 00f70363 beq a4,a5,13cbe + 13cbc: 4501 li a0,0 + 13cbe: 8082 ret + +00013cc0 : +LL_CoreGetTxDataList(): + 13cc0: 67c1 lui a5,0x10 + 13cc2: 1ffef517 auipc a0,0x1ffef + 13cc6: e7a52503 lw a0,-390(a0) # 20002b3c + 13cca: f5478593 addi a1,a5,-172 # ff54 + 13cce: 0541 addi a0,a0,16 + 13cd0: 1ffef617 auipc a2,0x1ffef + 13cd4: c0764603 lbu a2,-1017(a2) # 200028d7 + 13cd8: 4701 li a4,0 + 13cda: 17fd addi a5,a5,-1 + 13cdc: 00c76463 bltu a4,a2,13ce4 + 13ce0: 4501 li a0,0 + 13ce2: 8082 ret + 13ce4: 2536 lhu a3,10(a0) + 13ce6: feb68ee3 beq a3,a1,13ce2 + 13cea: fef68ce3 beq a3,a5,13ce2 + 13cee: 0541 addi a0,a0,16 + 13cf0: 0705 addi a4,a4,1 + 13cf2: b7ed j 13cdc + +00013cf4 : +LL_CoreDataListInit(): + 13cf4: 1141 addi sp,sp,-16 + 13cf6: c422 sw s0,8(sp) + 13cf8: 1ffef417 auipc s0,0x1ffef + 13cfc: e1840413 addi s0,s0,-488 # 20002b10 + 13d00: 545c lw a5,44(s0) + 13d02: c606 sw ra,12(sp) + 13d04: c226 sw s1,4(sp) + 13d06: ebb9 bnez a5,13d5c + 13d08: 1ffef497 auipc s1,0x1ffef + 13d0c: bc048493 addi s1,s1,-1088 # 200028c8 + 13d10: 3048 lbu a0,5(s0) + 13d12: 34fc lbu a5,15(s1) + 13d14: 20b00593 li a1,523 + 13d18: 02150513 addi a0,a0,33 + 13d1c: 0785 addi a5,a5,1 + 13d1e: 1e057513 andi a0,a0,480 + 13d22: 0792 slli a5,a5,0x4 + 13d24: 953e add a0,a0,a5 + 13d26: 1c7060ef jal ra,1a6ec + 13d2a: c90d beqz a0,13d5c + 13d2c: 34f0 lbu a2,15(s1) + 13d2e: 66c1 lui a3,0x10 + 13d30: f5268893 addi a7,a3,-174 # ff52 + 13d34: 00160793 addi a5,a2,1 + 13d38: 0792 slli a5,a5,0x4 + 13d3a: d448 sw a0,44(s0) + 13d3c: 97aa add a5,a5,a0 + 13d3e: 4701 li a4,0 + 13d40: f5468693 addi a3,a3,-172 + 13d44: c30d beqz a4,13d66 + 13d46: 4581 li a1,0 + 13d48: 8836 mv a6,a3 + 13d4a: 01051523 sh a6,10(a0) + 13d4e: c14c sw a1,4(a0) + 13d50: 000504a3 sb zero,9(a0) + 13d54: 0705 addi a4,a4,1 + 13d56: 0541 addi a0,a0,16 + 13d58: fee656e3 bge a2,a4,13d44 + 13d5c: 40b2 lw ra,12(sp) + 13d5e: 4422 lw s0,8(sp) + 13d60: 4492 lw s1,4(sp) + 13d62: 0141 addi sp,sp,16 + 13d64: 8082 ret + 13d66: 85be mv a1,a5 + 13d68: 8846 mv a6,a7 + 13d6a: b7c5 j 13d4a + +00013d6c : +LL_CoreOpen(): + 13d6c: 1141 addi sp,sp,-16 + 13d6e: 26300593 li a1,611 + 13d72: 14000513 li a0,320 + 13d76: c606 sw ra,12(sp) + 13d78: c422 sw s0,8(sp) + 13d7a: 173060ef jal ra,1a6ec + 13d7e: 14000613 li a2,320 + 13d82: 4581 li a1,0 + 13d84: 842a mv s0,a0 + 13d86: 1ffed097 auipc ra,0x1ffed + 13d8a: b14080e7 jalr -1260(ra) # 2000089a + 13d8e: 4501 li a0,0 + 13d90: cc19 beqz s0,13dae + 13d92: 1ffef797 auipc a5,0x1ffef + 13d96: d7e78793 addi a5,a5,-642 # 20002b10 + 13d9a: 5398 lw a4,32(a5) + 13d9c: cf09 beqz a4,13db6 + 13d9e: 00041023 sh zero,0(s0) + 13da2: 8522 mv a0,s0 + 13da4: 1ffed097 auipc ra,0x1ffed + 13da8: 11c080e7 jalr 284(ra) # 20000ec0 + 13dac: 200a lhu a0,0(s0) + 13dae: 40b2 lw ra,12(sp) + 13db0: 4422 lw s0,8(sp) + 13db2: 0141 addi sp,sp,16 + 13db4: 8082 ret + 13db6: 4705 li a4,1 + 13db8: a01a sh a4,0(s0) + 13dba: d380 sw s0,32(a5) + 13dbc: f39ff0ef jal ra,13cf4 + 13dc0: 00040123 sb zero,2(s0) + 13dc4: b7e5 j 13dac + +00013dc6 : +LL_CoreDataListFree(): + 13dc6: 1ffef517 auipc a0,0x1ffef + 13dca: d7652503 lw a0,-650(a0) # 20002b3c + 13dce: cd11 beqz a0,13dea + 13dd0: 1141 addi sp,sp,-16 + 13dd2: c606 sw ra,12(sp) + 13dd4: 1ffed097 auipc ra,0x1ffed + 13dd8: 0ec080e7 jalr 236(ra) # 20000ec0 + 13ddc: 40b2 lw ra,12(sp) + 13dde: 1ffef797 auipc a5,0x1ffef + 13de2: d407af23 sw zero,-674(a5) # 20002b3c + 13de6: 0141 addi sp,sp,16 + 13de8: 8082 ret + 13dea: 1ffef797 auipc a5,0x1ffef + 13dee: d407a923 sw zero,-686(a5) # 20002b3c + 13df2: 8082 ret + +00013df4 : +LL_CoreClose(): + 13df4: 87aa mv a5,a0 + 13df6: 1ffef517 auipc a0,0x1ffef + 13dfa: d3a52503 lw a0,-710(a0) # 20002b30 + 13dfe: c115 beqz a0,13e22 + 13e00: 211a lhu a4,0(a0) + 13e02: 02f71063 bne a4,a5,13e22 + 13e06: 1141 addi sp,sp,-16 + 13e08: c606 sw ra,12(sp) + 13e0a: 1ffed097 auipc ra,0x1ffed + 13e0e: 0b6080e7 jalr 182(ra) # 20000ec0 + 13e12: 40b2 lw ra,12(sp) + 13e14: 1ffef797 auipc a5,0x1ffef + 13e18: d007ae23 sw zero,-740(a5) # 20002b30 + 13e1c: 0141 addi sp,sp,16 + 13e1e: fa9ff06f j 13dc6 + 13e22: 8082 ret + +00013e24 : +LL_CoreInit(): + 13e24: 4641 li a2,16 + 13e26: 4581 li a1,0 + 13e28: 1ffef517 auipc a0,0x1ffef + 13e2c: d0850513 addi a0,a0,-760 # 20002b30 + 13e30: 1ffed317 auipc t1,0x1ffed + 13e34: a6a30067 jr -1430(t1) # 2000089a + +00013e38 : +LL_HopGetChannels(): + 13e38: 311c lbu a5,1(a0) + 13e3a: 2118 lbu a4,0(a0) + 13e3c: 2154 lbu a3,4(a0) + 13e3e: 07a2 slli a5,a5,0x8 + 13e40: 8fd9 or a5,a5,a4 + 13e42: 2138 lbu a4,2(a0) + 13e44: 8afd andi a3,a3,31 + 13e46: 02000593 li a1,32 + 13e4a: 0742 slli a4,a4,0x10 + 13e4c: 8f5d or a4,a4,a5 + 13e4e: 313c lbu a5,3(a0) + 13e50: 4501 li a0,0 + 13e52: 07e2 slli a5,a5,0x18 + 13e54: 8fd9 or a5,a5,a4 + 13e56: 4701 li a4,0 + 13e58: 28e01633 bset a2,zero,a4 + 13e5c: 8e7d and a2,a2,a5 + 13e5e: c601 beqz a2,13e66 + 13e60: 0505 addi a0,a0,1 + 13e62: 0ff57513 zext.b a0,a0 + 13e66: 0705 addi a4,a4,1 + 13e68: feb718e3 bne a4,a1,13e58 + 13e6c: 4781 li a5,0 + 13e6e: 4721 li a4,8 + 13e70: 48f6d633 bext a2,a3,a5 + 13e74: c601 beqz a2,13e7c + 13e76: 0505 addi a0,a0,1 + 13e78: 0ff57513 zext.b a0,a0 + 13e7c: 0785 addi a5,a5,1 + 13e7e: fee799e3 bne a5,a4,13e70 + 13e82: 8082 ret + +00013e84 : +LL_HopInit(): + 13e84: 1101 addi sp,sp,-32 + 13e86: c84a sw s2,16(sp) + 13e88: c64e sw s3,12(sp) + 13e8a: 08052903 lw s2,128(a0) + 13e8e: 08452983 lw s3,132(a0) + 13e92: cc22 sw s0,24(sp) + 13e94: ca26 sw s1,20(sp) + 13e96: c452 sw s4,8(sp) + 13e98: ce06 sw ra,28(sp) + 13e9a: 842a mv s0,a0 + 13e9c: 06050aa3 sb zero,117(a0) + 13ea0: 06050da3 sb zero,123(a0) + 13ea4: 4481 li s1,0 + 13ea6: 02500a13 li s4,37 + 13eaa: 8626 mv a2,s1 + 13eac: 854a mv a0,s2 + 13eae: 85ce mv a1,s3 + 13eb0: 3cc020ef jal ra,1627c <__lshrdi3> + 13eb4: 8905 andi a0,a0,1 + 13eb6: c511 beqz a0,13ec2 + 13eb8: 07b44783 lbu a5,123(s0) + 13ebc: 0785 addi a5,a5,1 + 13ebe: 06f40da3 sb a5,123(s0) + 13ec2: 0485 addi s1,s1,1 + 13ec4: ff4493e3 bne s1,s4,13eaa + 13ec8: 40f2 lw ra,28(sp) + 13eca: 4462 lw s0,24(sp) + 13ecc: 44d2 lw s1,20(sp) + 13ece: 4942 lw s2,16(sp) + 13ed0: 49b2 lw s3,12(sp) + 13ed2: 4a22 lw s4,8(sp) + 13ed4: 6105 addi sp,sp,32 + 13ed6: 8082 ret + +00013ed8 : +llAdvertisingReportReport(): + 13ed8: 4501 li a0,0 + 13eda: 8082 ret + +00013edc : +llRemoteConnectionParamRequestReport(): + 13edc: 1141 addi sp,sp,-16 + 13ede: c606 sw ra,12(sp) + 13ee0: db3ff0ef jal ra,13c92 + 13ee4: c105 beqz a0,13f04 + 13ee6: 09655703 lhu a4,150(a0) + 13eea: 09455683 lhu a3,148(a0) + 13eee: 0ae55603 lhu a2,174(a0) + 13ef2: 0ac55583 lhu a1,172(a0) + 13ef6: 210a lhu a0,0(a0) + 13ef8: d77f90ef jal ra,dc6e + 13efc: 4501 li a0,0 + 13efe: 40b2 lw ra,12(sp) + 13f00: 0141 addi sp,sp,16 + 13f02: 8082 ret + 13f04: 4509 li a0,2 + 13f06: bfe5 j 13efe + +00013f08 : +llDirectedAdvertisingConnectionCompleteReport(): + 13f08: 7179 addi sp,sp,-48 + 13f0a: 0ff57513 zext.b a0,a0 + 13f0e: d606 sw ra,44(sp) + 13f10: d422 sw s0,40(sp) + 13f12: 89aff0ef jal ra,12fac + 13f16: cd1d beqz a0,13f54 + 13f18: 842a mv s0,a0 + 13f1a: 4659 li a2,22 + 13f1c: 4581 li a1,0 + 13f1e: 0028 addi a0,sp,8 + 13f20: 9c8ee0ef jal ra,20e8 + 13f24: 03c00793 li a5,60 + 13f28: 85dc sb a5,11(sp) + 13f2a: 4785 li a5,1 + 13f2c: 875c sb a5,14(sp) + 13f2e: 03144783 lbu a5,49(s0) + 13f32: 4619 li a2,6 + 13f34: 03240593 addi a1,s0,50 + 13f38: 0808 addi a0,sp,16 + 13f3a: 87dc sb a5,15(sp) + 13f3c: 1ffed097 auipc ra,0x1ffed + 13f40: 920080e7 jalr -1760(ra) # 2000085c + 13f44: 0028 addi a0,sp,8 + 13f46: b8df90ef jal ra,dad2 + 13f4a: 4501 li a0,0 + 13f4c: 50b2 lw ra,44(sp) + 13f4e: 5422 lw s0,40(sp) + 13f50: 6145 addi sp,sp,48 + 13f52: 8082 ret + 13f54: 4509 li a0,2 + 13f56: bfdd j 13f4c + +00013f58 : +llConnectCompleteReport(): + 13f58: 7179 addi sp,sp,-48 + 13f5a: d606 sw ra,44(sp) + 13f5c: d422 sw s0,40(sp) + 13f5e: d35ff0ef jal ra,13c92 + 13f62: c511 beqz a0,13f6e + 13f64: 1ffef597 auipc a1,0x1ffef + 13f68: bc05a583 lw a1,-1088(a1) # 20002b24 + 13f6c: e591 bnez a1,13f78 + 13f6e: 4509 li a0,2 + 13f70: 50b2 lw ra,44(sp) + 13f72: 5422 lw s0,40(sp) + 13f74: 6145 addi sp,sp,48 + 13f76: 8082 ret + 13f78: 0b554783 lbu a5,181(a0) + 13f7c: 842a mv s0,a0 + 13f7e: 4619 li a2,6 + 13f80: 85dc sb a5,11(sp) + 13f82: 211e lhu a5,0(a0) + 13f84: 03a58593 addi a1,a1,58 + 13f88: 0808 addi a0,sp,16 + 13f8a: 867c sh a5,12(sp) + 13f8c: 4785 li a5,1 + 13f8e: 875c sb a5,14(sp) + 13f90: fff5c783 lbu a5,-1(a1) + 13f94: 87dc sb a5,15(sp) + 13f96: 1ffed097 auipc ra,0x1ffed + 13f9a: 8c6080e7 jalr -1850(ra) # 2000085c + 13f9e: 305e lhu a5,36(s0) + 13fa0: 0028 addi a0,sp,8 + 13fa2: 83fc sh a5,22(sp) + 13fa4: 307e lhu a5,38(s0) + 13fa6: 84fc sh a5,24(sp) + 13fa8: 341e lhu a5,40(s0) + 13faa: 85fc sh a5,26(sp) + 13fac: 2c3c lbu a5,26(s0) + 13fae: 00f10e23 sb a5,28(sp) + 13fb2: b21f90ef jal ra,dad2 + 13fb6: 303c lbu a5,3(s0) + 13fb8: 0a040aa3 sb zero,181(s0) + 13fbc: 4501 li a0,0 + 13fbe: 0017e793 ori a5,a5,1 + 13fc2: b03c sb a5,3(s0) + 13fc4: b775 j 13f70 + +00013fc6 : +llPHYUpdateCompleteReport(): + 13fc6: 1141 addi sp,sp,-16 + 13fc8: c606 sw ra,12(sp) + 13fca: c422 sw s0,8(sp) + 13fcc: cc7ff0ef jal ra,13c92 + 13fd0: c905 beqz a0,14000 + 13fd2: 13554683 lbu a3,309(a0) + 13fd6: 13454603 lbu a2,308(a0) + 13fda: 210e lhu a1,0(a0) + 13fdc: 842a mv s0,a0 + 13fde: 0b554503 lbu a0,181(a0) + 13fe2: 0685 addi a3,a3,1 + 13fe4: 0605 addi a2,a2,1 + 13fe6: 0ff6f693 zext.b a3,a3 + 13fea: 0ff67613 zext.b a2,a2 + 13fee: d0bf90ef jal ra,dcf8 + 13ff2: 4501 li a0,0 + 13ff4: 0a040aa3 sb zero,181(s0) + 13ff8: 40b2 lw ra,12(sp) + 13ffa: 4422 lw s0,8(sp) + 13ffc: 0141 addi sp,sp,16 + 13ffe: 8082 ret + 14000: 4509 li a0,2 + 14002: bfdd j 13ff8 + +00014004 : +llDataLengthChangeReport(): + 14004: 1101 addi sp,sp,-32 + 14006: ce06 sw ra,28(sp) + 14008: c8bff0ef jal ra,13c92 + 1400c: c515 beqz a0,14038 + 1400e: 211e lhu a5,0(a0) + 14010: 827c sh a5,4(sp) + 14012: 12a55783 lhu a5,298(a0) + 14016: 837c sh a5,6(sp) + 14018: 12c55783 lhu a5,300(a0) + 1401c: 847c sh a5,8(sp) + 1401e: 12655783 lhu a5,294(a0) + 14022: 857c sh a5,10(sp) + 14024: 12855783 lhu a5,296(a0) + 14028: 850a mv a0,sp + 1402a: 867c sh a5,12(sp) + 1402c: c8bf90ef jal ra,dcb6 + 14030: 4501 li a0,0 + 14032: 40f2 lw ra,28(sp) + 14034: 6105 addi sp,sp,32 + 14036: 8082 ret + 14038: 4509 li a0,2 + 1403a: bfe5 j 14032 + +0001403c : +llRemoteConnectParamRequestReport(): + 1403c: 1101 addi sp,sp,-32 + 1403e: ce06 sw ra,28(sp) + 14040: cc22 sw s0,24(sp) + 14042: c51ff0ef jal ra,13c92 + 14046: cd05 beqz a0,1407e + 14048: 211e lhu a5,0(a0) + 1404a: 842a mv s0,a0 + 1404c: 827c sh a5,4(sp) + 1404e: 0ac55783 lhu a5,172(a0) + 14052: 837c sh a5,6(sp) + 14054: 0ae55783 lhu a5,174(a0) + 14058: 847c sh a5,8(sp) + 1405a: 09455783 lhu a5,148(a0) + 1405e: 857c sh a5,10(sp) + 14060: 09655783 lhu a5,150(a0) + 14064: 850a mv a0,sp + 14066: 867c sh a5,12(sp) + 14068: bc5f90ef jal ra,dc2c + 1406c: 341c lbu a5,9(s0) + 1406e: 4501 li a0,0 + 14070: 0047e793 ori a5,a5,4 + 14074: b41c sb a5,9(s0) + 14076: 40f2 lw ra,28(sp) + 14078: 4462 lw s0,24(sp) + 1407a: 6105 addi sp,sp,32 + 1407c: 8082 ret + 1407e: 4509 li a0,2 + 14080: bfdd j 14076 + +00014082 : +llLTKRequestedReport(): + 14082: 1141 addi sp,sp,-16 + 14084: c606 sw ra,12(sp) + 14086: c0dff0ef jal ra,13c92 + 1408a: cd01 beqz a0,140a2 + 1408c: 10c55603 lhu a2,268(a0) + 14090: 10450593 addi a1,a0,260 + 14094: 210a lhu a0,0(a0) + 14096: b3df90ef jal ra,dbd2 + 1409a: 4501 li a0,0 + 1409c: 40b2 lw ra,12(sp) + 1409e: 0141 addi sp,sp,16 + 140a0: 8082 ret + 140a2: 4509 li a0,2 + 140a4: bfe5 j 1409c + +000140a6 : +llReadRemoteFeatureCompleteReport(): + 140a6: 1141 addi sp,sp,-16 + 140a8: c606 sw ra,12(sp) + 140aa: c422 sw s0,8(sp) + 140ac: be7ff0ef jal ra,13c92 + 140b0: c105 beqz a0,140d0 + 140b2: 210e lhu a1,0(a0) + 140b4: 842a mv s0,a0 + 140b6: 10e50613 addi a2,a0,270 + 140ba: 0b554503 lbu a0,181(a0) + 140be: ab3f90ef jal ra,db70 + 140c2: 4501 li a0,0 + 140c4: 0a040aa3 sb zero,181(s0) + 140c8: 40b2 lw ra,12(sp) + 140ca: 4422 lw s0,8(sp) + 140cc: 0141 addi sp,sp,16 + 140ce: 8082 ret + 140d0: 4509 li a0,2 + 140d2: bfdd j 140c8 + +000140d4 : +llConnectUpdateCompleteReport(): + 140d4: 1101 addi sp,sp,-32 + 140d6: ce06 sw ra,28(sp) + 140d8: cc22 sw s0,24(sp) + 140da: bb9ff0ef jal ra,13c92 + 140de: c51d beqz a0,1410c + 140e0: 0b554783 lbu a5,181(a0) + 140e4: 842a mv s0,a0 + 140e6: 83dc sb a5,7(sp) + 140e8: 211e lhu a5,0(a0) + 140ea: 847c sh a5,8(sp) + 140ec: 09255783 lhu a5,146(a0) + 140f0: 857c sh a5,10(sp) + 140f2: 09452783 lw a5,148(a0) + 140f6: 0048 addi a0,sp,4 + 140f8: c63e sw a5,12(sp) + 140fa: a35f90ef jal ra,db2e + 140fe: 4501 li a0,0 + 14100: 0a040aa3 sb zero,181(s0) + 14104: 40f2 lw ra,28(sp) + 14106: 4462 lw s0,24(sp) + 14108: 6105 addi sp,sp,32 + 1410a: 8082 ret + 1410c: 4509 li a0,2 + 1410e: bfdd j 14104 + +00014110 : +llDirectAdvertisingReportReport(): + 14110: 4501 li a0,0 + 14112: 8082 ret + +00014114 : +llCancelConnectionCompleteReport(): + 14114: 4501 li a0,0 + 14116: 8082 ret + +00014118 : +llReadLocalP256PublicKeyCompleteReport(): + 14118: 4501 li a0,0 + 1411a: 8082 ret + +0001411c : +llGenerateDHKEYCompleteReport(): + 1411c: 4501 li a0,0 + 1411e: 8082 ret + +00014120 : +llEnhancedConnectCompleteReport(): + 14120: 4501 li a0,0 + 14122: 8082 ret + +00014124 : +LL_ProcessTMOSReportMsg(): + 14124: 1101 addi sp,sp,-32 + 14126: ce06 sw ra,28(sp) + 14128: cc22 sw s0,24(sp) + 1412a: 2118 lbu a4,0(a0) + 1412c: 08000693 li a3,128 + 14130: 87aa mv a5,a0 + 14132: 02d71263 bne a4,a3,14156 + 14136: 3118 lbu a4,1(a0) + 14138: 46bd li a3,15 + 1413a: 4505 li a0,1 + 1413c: 08e6e763 bltu a3,a4,141ca + 14140: 00006697 auipc a3,0x6 + 14144: c9868693 addi a3,a3,-872 # 19dd8 + 14148: 20d74733 sh2add a4,a4,a3 + 1414c: 23aa lhu a0,2(a5) + 1414e: 4318 lw a4,0(a4) + 14150: 9702 jalr a4 + 14152: 4501 li a0,0 + 14154: a89d j 141ca + 14156: 08100693 li a3,129 + 1415a: 4505 li a0,1 + 1415c: 06d71763 bne a4,a3,141ca + 14160: 3398 lbu a4,1(a5) + 14162: 46b1 li a3,12 + 14164: 0ad70663 beq a4,a3,14210 + 14168: 02e6e963 bltu a3,a4,1419a + 1416c: 4695 li a3,5 + 1416e: 04d70863 beq a4,a3,141be + 14172: 46a1 li a3,8 + 14174: fcd71fe3 bne a4,a3,14152 + 14178: 23aa lhu a0,2(a5) + 1417a: b19ff0ef jal ra,13c92 + 1417e: 842a mv s0,a0 + 14180: c521 beqz a0,141c8 + 14182: 0bd54603 lbu a2,189(a0) + 14186: 210e lhu a1,0(a0) + 14188: 0b554503 lbu a0,181(a0) + 1418c: 00c03633 snez a2,a2 + 14190: c6df90ef jal ra,ddfc + 14194: 0a040aa3 sb zero,181(s0) + 14198: bf6d j 14152 + 1419a: 46cd li a3,19 + 1419c: 0ad70163 beq a4,a3,1423e + 141a0: 03000693 li a3,48 + 141a4: fad717e3 bne a4,a3,14152 + 141a8: 23aa lhu a0,2(a5) + 141aa: ae9ff0ef jal ra,13c92 + 141ae: 842a mv s0,a0 + 141b0: cd01 beqz a0,141c8 + 141b2: 210e lhu a1,0(a0) + 141b4: 0b554503 lbu a0,181(a0) + 141b8: d69f90ef jal ra,df20 + 141bc: bfe1 j 14194 + 141be: 23aa lhu a0,2(a5) + 141c0: ad3ff0ef jal ra,13c92 + 141c4: 842a mv s0,a0 + 141c6: e511 bnez a0,141d2 + 141c8: 4509 li a0,2 + 141ca: 40f2 lw ra,28(sp) + 141cc: 4462 lw s0,24(sp) + 141ce: 6105 addi sp,sp,32 + 141d0: 8082 ret + 141d2: 5178 lw a4,100(a0) + 141d4: c31d beqz a4,141fa + 141d6: 2d1c lbu a5,24(a0) + 141d8: 0785 addi a5,a5,1 + 141da: 0ff7f793 zext.b a5,a5 + 141de: 4318 lw a4,0(a4) + 141e0: 863e mv a2,a5 + 141e2: 0785 addi a5,a5,1 + 141e4: 0ff7f793 zext.b a5,a5 + 141e8: fb7d bnez a4,141de + 141ea: ac10 sb a2,24(s0) + 141ec: c619 beqz a2,141fa + 141ee: 200e lhu a1,0(s0) + 141f0: 4505 li a0,1 + 141f2: d71f90ef jal ra,df62 + 141f6: 00040c23 sb zero,24(s0) + 141fa: 0b544503 lbu a0,181(s0) + 141fe: 08e44603 lbu a2,142(s0) + 14202: 200e lhu a1,0(s0) + 14204: bb3f90ef jal ra,ddb6 + 14208: 8522 mv a0,s0 + 1420a: 9cfff0ef jal ra,13bd8 + 1420e: b791 j 14152 + 14210: 23aa lhu a0,2(a5) + 14212: a81ff0ef jal ra,13c92 + 14216: 842a mv s0,a0 + 14218: d945 beqz a0,141c8 + 1421a: 0b554783 lbu a5,181(a0) + 1421e: 835c sb a5,6(sp) + 14220: 211e lhu a5,0(a0) + 14222: 847c sh a5,8(sp) + 14224: 08954783 lbu a5,137(a0) + 14228: 855c sb a5,10(sp) + 1422a: 08a55783 lhu a5,138(a0) + 1422e: 867c sh a5,12(sp) + 14230: 08c55783 lhu a5,140(a0) + 14234: 0048 addi a0,sp,4 + 14236: 877c sh a5,14(sp) + 14238: c11f90ef jal ra,de48 + 1423c: bfa1 j 14194 + 1423e: 23aa lhu a0,2(a5) + 14240: a53ff0ef jal ra,13c92 + 14244: 842a mv s0,a0 + 14246: d149 beqz a0,141c8 + 14248: 2d10 lbu a2,24(a0) + 1424a: c619 beqz a2,14258 + 1424c: 210e lhu a1,0(a0) + 1424e: 4505 li a0,1 + 14250: d13f90ef jal ra,df62 + 14254: 00040c23 sb zero,24(s0) + 14258: 00040923 sb zero,18(s0) + 1425c: bddd j 14152 + +0001425e : +LL_ReportGenerateEvent(): + 1425e: 1141 addi sp,sp,-16 + 14260: c422 sw s0,8(sp) + 14262: 842a mv s0,a0 + 14264: 4511 li a0,4 + 14266: c226 sw s1,4(sp) + 14268: c04a sw s2,0(sp) + 1426a: c606 sw ra,12(sp) + 1426c: 892e mv s2,a1 + 1426e: 84b2 mv s1,a2 + 14270: 92df10ef jal ra,5b9c + 14274: c10d beqz a0,14296 + 14276: 01250023 sb s2,0(a0) + 1427a: b104 sb s1,1(a0) + 1427c: a122 sh s0,2(a0) + 1427e: 4422 lw s0,8(sp) + 14280: 40b2 lw ra,12(sp) + 14282: 4492 lw s1,4(sp) + 14284: 4902 lw s2,0(sp) + 14286: 85aa mv a1,a0 + 14288: 1ffee517 auipc a0,0x1ffee + 1428c: 62354503 lbu a0,1571(a0) # 200028ab + 14290: 0141 addi sp,sp,16 + 14292: a05f106f j 5c96 + 14296: 40b2 lw ra,12(sp) + 14298: 4422 lw s0,8(sp) + 1429a: 4492 lw s1,4(sp) + 1429c: 4902 lw s2,0(sp) + 1429e: 4511 li a0,4 + 142a0: 0141 addi sp,sp,16 + 142a2: 8082 ret + +000142a4 : +llDataPackageReport(): + 142a4: 1141 addi sp,sp,-16 + 142a6: c606 sw ra,12(sp) + 142a8: c422 sw s0,8(sp) + 142aa: 9e9ff0ef jal ra,13c92 + 142ae: c135 beqz a0,14312 + 142b0: 557c lw a5,108(a0) + 142b2: 00050823 sb zero,16(a0) + 142b6: 842a mv s0,a0 + 142b8: c7b9 beqz a5,14306 + 142ba: 3038 lbu a4,3(s0) + 142bc: 210a lhu a0,0(a0) + 142be: 8b05 andi a4,a4,1 + 142c0: ef09 bnez a4,142da + 142c2: 200a lhu a0,0(s0) + 142c4: 4601 li a2,0 + 142c6: 08000593 li a1,128 + 142ca: f95ff0ef jal ra,1425e + 142ce: cd1d beqz a0,1430c + 142d0: 4501 li a0,0 + 142d2: 40b2 lw ra,12(sp) + 142d4: 4422 lw s0,8(sp) + 142d6: 0141 addi sp,sp,16 + 142d8: 8082 ret + 142da: 43d4 lw a3,4(a5) + 142dc: 27d0 lbu a2,12(a5) + 142de: 278c lbu a1,8(a5) + 142e0: 0689 addi a3,a3,2 + 142e2: cc1f90ef jal ra,dfa2 + 142e6: ed11 bnez a0,14302 + 142e8: 547c lw a5,108(s0) + 142ea: 27ba lhu a4,10(a5) + 142ec: 000784a3 sb zero,9(a5) + 142f0: f0076713 ori a4,a4,-256 + 142f4: a7ba sh a4,10(a5) + 142f6: 439c lw a5,0(a5) + 142f8: d47c sw a5,108(s0) + 142fa: 387c lbu a5,23(s0) + 142fc: c399 beqz a5,14302 + 142fe: 17fd addi a5,a5,-1 + 14300: b87c sb a5,23(s0) + 14302: 547c lw a5,108(s0) + 14304: ffdd bnez a5,142c2 + 14306: 00040ba3 sb zero,23(s0) + 1430a: b7d9 j 142d0 + 1430c: 4785 li a5,1 + 1430e: a81c sb a5,16(s0) + 14310: b7c1 j 142d0 + 14312: 4509 li a0,2 + 14314: bf7d j 142d2 + +00014316 : +ll_slave_tx_process(): + 14316: 1141 addi sp,sp,-16 + 14318: 1ffee797 auipc a5,0x1ffee + 1431c: 6f57c783 lbu a5,1781(a5) # 20002a0d + 14320: c422 sw s0,8(sp) + 14322: c606 sw ra,12(sp) + 14324: 8b85 andi a5,a5,1 + 14326: 1ffef417 auipc s0,0x1ffef + 1432a: 80e42403 lw s0,-2034(s0) # 20002b34 + 1432e: cbdd beqz a5,143e4 + 14330: 345e lhu a5,44(s0) + 14332: 6709 lui a4,0x2 + 14334: 8ff9 and a5,a5,a4 + 14336: e3c1 bnez a5,143b6 + 14338: 8522 mv a0,s0 + 1433a: 944ff0ef jal ra,1347e + 1433e: 4785 li a5,1 + 14340: 06f51b63 bne a0,a5,143b6 + 14344: 12645583 lhu a1,294(s0) + 14348: 13544503 lbu a0,309(s0) + 1434c: 12845603 lhu a2,296(s0) + 14350: 0591 addi a1,a1,4 + 14352: 0805c5b3 zext.h a1,a1 + 14356: 214060ef jal ra,1a56a + 1435a: 0bd44783 lbu a5,189(s0) + 1435e: 15800513 li a0,344 + 14362: 8b85 andi a5,a5,1 + 14364: c799 beqz a5,14372 + 14366: 85a2 mv a1,s0 + 14368: 4505 li a0,1 + 1436a: 84afa0ef jal ra,e3b4 + 1436e: 17800513 li a0,376 + 14372: 51b060ef jal ra,1b08c + 14376: 1ffee797 auipc a5,0x1ffee + 1437a: 68078ba3 sb zero,1687(a5) # 20002a0d + 1437e: 9d81a783 lw a5,-1576(gp) # 20001390 + 14382: 439c lw a5,0(a5) + 14384: 9f01a703 lw a4,-1552(gp) # 200013a8 + 14388: 83a1 srli a5,a5,0x8 + 1438a: 8b8d andi a5,a5,3 + 1438c: e395 bnez a5,143b0 + 1438e: 19600793 li a5,406 + 14392: d37c sw a5,100(a4) + 14394: 1ffed097 auipc ra,0x1ffed + 14398: 814080e7 jalr -2028(ra) # 20000ba8 + 1439c: 4422 lw s0,8(sp) + 1439e: 40b2 lw ra,12(sp) + 143a0: 4581 li a1,0 + 143a2: 00000517 auipc a0,0x0 + 143a6: 05850513 addi a0,a0,88 # 143fa + 143aa: 0141 addi sp,sp,16 + 143ac: 48d0606f j 1b038 + 143b0: 1be00793 li a5,446 + 143b4: bff9 j 14392 + 143b6: 298060ef jal ra,1a64e + 143ba: 247c lbu a5,14(s0) + 143bc: c785 beqz a5,143e4 + 143be: 473d li a4,15 + 143c0: 00f77963 bgeu a4,a5,143d2 + 143c4: 03d00593 li a1,61 + 143c8: 8522 mv a0,s0 + 143ca: a72ff0ef jal ra,1363c + 143ce: 0aa40aa3 sb a0,181(s0) + 143d2: 1ffee797 auipc a5,0x1ffee + 143d6: 51e7a783 lw a5,1310(a5) # 200028f0 + 143da: c789 beqz a5,143e4 + 143dc: 4595 li a1,5 + 143de: 08500513 li a0,133 + 143e2: 9782 jalr a5 + 143e4: 26a060ef jal ra,1a64e + 143e8: 8522 mv a0,s0 + 143ea: d2aff0ef jal ra,13914 + 143ee: 8522 mv a0,s0 + 143f0: 4422 lw s0,8(sp) + 143f2: 40b2 lw ra,12(sp) + 143f4: 0141 addi sp,sp,16 + 143f6: 984ff06f j 1357a + +000143fa : +ll_slave_listern(): + 143fa: 1101 addi sp,sp,-32 + 143fc: 1ffee797 auipc a5,0x1ffee + 14400: 6107c783 lbu a5,1552(a5) # 20002a0c + 14404: cc22 sw s0,24(sp) + 14406: ca26 sw s1,20(sp) + 14408: c84a sw s2,16(sp) + 1440a: c64e sw s3,12(sp) + 1440c: ce06 sw ra,28(sp) + 1440e: 1ffee997 auipc s3,0x1ffee + 14412: 70298993 addi s3,s3,1794 # 20002b10 + 14416: 8b85 andi a5,a5,1 + 14418: 0249a403 lw s0,36(s3) + 1441c: 1ffee497 auipc s1,0x1ffee + 14420: 5f048493 addi s1,s1,1520 # 20002a0c + 14424: 9f018913 addi s2,gp,-1552 # 200013a8 + 14428: 66078763 beqz a5,14a96 + 1442c: 209c lbu a5,0(s1) + 1442e: 60479793 sext.b a5,a5 + 14432: 0807de63 bgez a5,144ce + 14436: 44dc lw a5,12(s1) + 14438: cc3c sw a5,88(s0) + 1443a: 303c lbu a5,3(s0) + 1443c: 8b89 andi a5,a5,2 + 1443e: e789 bnez a5,14448 + 14440: 4581 li a1,0 + 14442: 8522 mv a0,s0 + 14444: d37fe0ef jal ra,1317a + 14448: 1ffee697 auipc a3,0x1ffee + 1444c: 4b468693 addi a3,a3,1204 # 200028fc + 14450: 268a lhu a0,8(a3) + 14452: 3c3e lhu a5,58(s0) + 14454: 000f4737 lui a4,0xf4 + 14458: 23f70613 addi a2,a4,575 # f423f <_data_lma+0xd8c83> + 1445c: 02a787b3 mul a5,a5,a0 + 14460: 24070713 addi a4,a4,576 + 14464: 42cc lw a1,4(a3) + 14466: 97b2 add a5,a5,a2 + 14468: 02e7d7b3 divu a5,a5,a4 + 1446c: 4438 lw a4,72(s0) + 1446e: 8f1d sub a4,a4,a5 + 14470: 4c3c lw a5,88(s0) + 14472: 97ba add a5,a5,a4 + 14474: 863e mv a2,a5 + 14476: 00e7e463 bltu a5,a4,1447e + 1447a: 00b7e463 bltu a5,a1,14482 + 1447e: 40b78633 sub a2,a5,a1 + 14482: 303c lbu a5,3(s0) + 14484: 04045683 lhu a3,64(s0) + 14488: 8b89 andi a5,a5,2 + 1448a: e399 bnez a5,14490 + 1448c: c470 sw a2,76(s0) + 1448e: a805 j 144be + 14490: 4478 lw a4,76(s0) + 14492: 14c76763 bltu a4,a2,145e0 + 14496: 3c5e lhu a5,60(s0) + 14498: 8f11 sub a4,a4,a2 + 1449a: 20f6a7b3 sh1add a5,a3,a5 + 1449e: 02a787b3 mul a5,a5,a0 + 144a2: 000f4537 lui a0,0xf4 + 144a6: 23f50813 addi a6,a0,575 # f423f <_data_lma+0xd8c83> + 144aa: 24050513 addi a0,a0,576 + 144ae: 97c2 add a5,a5,a6 + 144b0: 02a7d7b3 divu a5,a5,a0 + 144b4: fcf76ce3 bltu a4,a5,1448c + 144b8: 8d9d sub a1,a1,a5 + 144ba: fce5e9e3 bltu a1,a4,1448c + 144be: 3c7e lhu a5,62(s0) + 144c0: 8285 srli a3,a3,0x1 + 144c2: 02041c23 sh zero,56(s0) + 144c6: 0af6f6b3 maxu a3,a3,a5 + 144ca: 04d41023 sh a3,64(s0) + 144ce: 5028 lw a0,96(s0) + 144d0: 01c40613 addi a2,s0,28 + 144d4: 01e40593 addi a1,s0,30 + 144d8: 1ffec097 auipc ra,0x1ffec + 144dc: 760080e7 jalr 1888(ra) # 20000c38 + 144e0: a0c8 sb a0,4(s1) + 144e2: 20dc lbu a5,4(s1) + 144e4: 8b85 andi a5,a5,1 + 144e6: 1c079163 bnez a5,146a8 + 144ea: 383c lbu a5,19(s0) + 144ec: 0027e793 ori a5,a5,2 + 144f0: b83c sb a5,19(s0) + 144f2: 303c lbu a5,3(s0) + 144f4: 8b89 andi a5,a5,2 + 144f6: cfa5 beqz a5,1456e + 144f8: 8522 mv a0,s0 + 144fa: ef1fe0ef jal ra,133ea + 144fe: e925 bnez a0,1456e + 14500: 303c lbu a5,3(s0) + 14502: 000403a3 sb zero,7(s0) + 14506: 0047e793 ori a5,a5,4 + 1450a: b03c sb a5,3(s0) + 1450c: 507c lw a5,100(s0) + 1450e: c78d beqz a5,14538 + 14510: 3818 lbu a4,17(s0) + 14512: c31d beqz a4,14538 + 14514: 3798 lbu a4,9(a5) + 14516: 8b05 andi a4,a4,1 + 14518: e305 bnez a4,14538 + 1451a: 27ba lhu a4,10(a5) + 1451c: 43c8 lw a0,4(a5) + 1451e: f0076713 ori a4,a4,-256 + 14522: a7ba sh a4,10(a5) + 14524: 1ffed097 auipc ra,0x1ffed + 14528: 99c080e7 jalr -1636(ra) # 20000ec0 + 1452c: 2c1c lbu a5,24(s0) + 1452e: 0785 addi a5,a5,1 + 14530: ac1c sb a5,24(s0) + 14532: 507c lw a5,100(s0) + 14534: 439c lw a5,0(a5) + 14536: d07c sw a5,100(s0) + 14538: 243c lbu a5,10(s0) + 1453a: cb81 beqz a5,1454a + 1453c: 0bd44783 lbu a5,189(s0) + 14540: 8b89 andi a5,a5,2 + 14542: c781 beqz a5,1454a + 14544: 8522 mv a0,s0 + 14546: ee5fe0ef jal ra,1342a + 1454a: 241c lbu a5,8(s0) + 1454c: 02200713 li a4,34 + 14550: 08e79a63 bne a5,a4,145e4 + 14554: 345e lhu a5,44(s0) + 14556: 0a040aa3 sb zero,181(s0) + 1455a: 0087e793 ori a5,a5,8 + 1455e: b45e sh a5,44(s0) + 14560: 341c lbu a5,9(s0) + 14562: 0087e793 ori a5,a5,8 + 14566: b41c sb a5,9(s0) + 14568: 02400793 li a5,36 + 1456c: a41c sb a5,8(s0) + 1456e: 20dc lbu a5,4(s1) + 14570: 8b89 andi a5,a5,2 + 14572: cfc1 beqz a5,1460a + 14574: 0bd44783 lbu a5,189(s0) + 14578: 8b85 andi a5,a5,1 + 1457a: cbc1 beqz a5,1460a + 1457c: 247c lbu a5,14(s0) + 1457e: 0785 addi a5,a5,1 + 14580: a47c sb a5,14(s0) + 14582: 303c lbu a5,3(s0) + 14584: 0027f713 andi a4,a5,2 + 14588: eb01 bnez a4,14598 + 1458a: 0027e793 ori a5,a5,2 + 1458e: b03c sb a5,3(s0) + 14590: 1ffee797 auipc a5,0x1ffee + 14594: 5a07a423 sw zero,1448(a5) # 20002b38 + 14598: 1ffee797 auipc a5,0x1ffee + 1459c: 46078a23 sb zero,1140(a5) # 20002a0c + 145a0: 02044783 lbu a5,32(s0) + 145a4: 3078 lbu a4,7(s0) + 145a6: 9d818493 addi s1,gp,-1576 # 20001390 + 145aa: 0785 addi a5,a5,1 + 145ac: 02f40023 sb a5,32(s0) + 145b0: 205c lbu a5,4(s0) + 145b2: 4c071963 bnez a4,14a84 + 145b6: 3414 lbu a3,9(s0) + 145b8: 9bbd andi a5,a5,-17 + 145ba: 0037e793 ori a5,a5,3 + 145be: 04000713 li a4,64 + 145c2: a05c sb a5,4(s0) + 145c4: 000408a3 sb zero,17(s0) + 145c8: b078 sb a4,7(s0) + 145ca: 60469793 sext.b a5,a3 + 145ce: 0e07d663 bgez a5,146ba + 145d2: 07f6f693 andi a3,a3,127 + 145d6: b414 sb a3,9(s0) + 145d8: 8522 mv a0,s0 + 145da: 1d2010ef jal ra,157ac + 145de: a8e5 j 146d6 + 145e0: 972e add a4,a4,a1 + 145e2: bd55 j 14496 + 145e4: 06000713 li a4,96 + 145e8: 00e79963 bne a5,a4,145fa + 145ec: 4785 li a5,1 + 145ee: a41c sb a5,8(s0) + 145f0: 383c lbu a5,19(s0) + 145f2: 0017e793 ori a5,a5,1 + 145f6: b83c sb a5,19(s0) + 145f8: bf9d j 1456e + 145fa: 4771 li a4,28 + 145fc: f6e799e3 bne a5,a4,1456e + 14600: 345e lhu a5,44(s0) + 14602: 0017e793 ori a5,a5,1 + 14606: b45e sh a5,44(s0) + 14608: b79d j 1456e + 1460a: 8522 mv a0,s0 + 1460c: dfffe0ef jal ra,1340a + 14610: f92d bnez a0,14582 + 14612: 00040723 sb zero,14(s0) + 14616: 8522 mv a0,s0 + 14618: da9fe0ef jal ra,133c0 + 1461c: 341c lbu a5,9(s0) + 1461e: 8ba1 andi a5,a5,8 + 14620: cb85 beqz a5,14650 + 14622: 343c lbu a5,11(s0) + 14624: c795 beqz a5,14650 + 14626: 245c lbu a5,12(s0) + 14628: 4709 li a4,2 + 1462a: 0fb7f793 andi a5,a5,251 + 1462e: 02e78163 beq a5,a4,14650 + 14632: 03d00793 li a5,61 + 14636: 08f40723 sb a5,142(s0) + 1463a: 02700793 li a5,39 + 1463e: a41c sb a5,8(s0) + 14640: 0bd44783 lbu a5,189(s0) + 14644: 8b85 andi a5,a5,1 + 14646: df95 beqz a5,14582 + 14648: 8522 mv a0,s0 + 1464a: e0bfe0ef jal ra,13454 + 1464e: bf15 j 14582 + 14650: 3058 lbu a4,5(s0) + 14652: 478d li a5,3 + 14654: 04f71163 bne a4,a5,14696 + 14658: 245c lbu a5,12(s0) + 1465a: 4761 li a4,24 + 1465c: 02f77063 bgeu a4,a5,1467c + 14660: 245c lbu a5,12(s0) + 14662: 471d li a4,7 + 14664: 02e78663 beq a5,a4,14690 + 14668: 0af40ba3 sb a5,183(s0) + 1466c: 381e lhu a5,48(s0) + 1466e: 8522 mv a0,s0 + 14670: 0017e793 ori a5,a5,1 + 14674: b81e sh a5,48(s0) + 14676: 1f4010ef jal ra,1586a + 1467a: a819 j 14690 + 1467c: 00006717 auipc a4,0x6 + 14680: 88070713 addi a4,a4,-1920 # 19efc + 14684: 20e7c7b3 sh2add a5,a5,a4 + 14688: 439c lw a5,0(a5) + 1468a: 8522 mv a0,s0 + 1468c: 9782 jalr a5 + 1468e: f969 bnez a0,14660 + 14690: 343c lbu a5,11(s0) + 14692: f7dd bnez a5,14640 + 14694: b5fd j 14582 + 14696: 343c lbu a5,11(s0) + 14698: ee0785e3 beqz a5,14582 + 1469c: 8522 mv a0,s0 + 1469e: 208060ef jal ra,1a8a6 + 146a2: ee0510e3 bnez a0,14582 + 146a6: b7ed j 14690 + 146a8: 345c lbu a5,13(s0) + 146aa: 0785 addi a5,a5,1 + 146ac: b45c sb a5,13(s0) + 146ae: 0009c783 lbu a5,0(s3) + 146b2: 0785 addi a5,a5,1 + 146b4: 00f98023 sb a5,0(s3) + 146b8: b5e9 j 14582 + 146ba: 381e lhu a5,48(s0) + 146bc: 0027f713 andi a4,a5,2 + 146c0: 0e070263 beqz a4,147a4 + 146c4: 9bf5 andi a5,a5,-3 + 146c6: b81e sh a5,48(s0) + 146c8: 10e45783 lhu a5,270(s0) + 146cc: 8522 mv a0,s0 + 146ce: 8b91 andi a5,a5,4 + 146d0: c7f9 beqz a5,1479e + 146d2: 3ca010ef jal ra,15a9c + 146d6: 3814 lbu a3,17(s0) + 146d8: 4785 li a5,1 + 146da: 2058 lbu a4,4(s0) + 146dc: 0cf69963 bne a3,a5,147ae + 146e0: 507c lw a5,100(s0) + 146e2: 43dc lw a5,4(a5) + 146e4: a398 sb a4,0(a5) + 146e6: 507c lw a5,100(s0) + 146e8: 2438 lbu a4,10(s0) + 146ea: 43dc lw a5,4(a5) + 146ec: b398 sb a4,1(a5) + 146ee: 5078 lw a4,100(s0) + 146f0: 00092783 lw a5,0(s2) + 146f4: 4358 lw a4,4(a4) + 146f6: dfb8 sw a4,120(a5) + 146f8: 409c lw a5,0(s1) + 146fa: 4398 lw a4,0(a5) + 146fc: 29871713 bseti a4,a4,0x18 + 14700: c398 sw a4,0(a5) + 14702: 5bd8 lw a4,52(a5) + 14704: 9b71 andi a4,a4,-4 + 14706: dbd8 sw a4,52(a5) + 14708: 242c lbu a1,10(s0) + 1470a: 13444503 lbu a0,308(s0) + 1470e: 0591 addi a1,a1,4 + 14710: 5f1050ef jal ra,1a500 + 14714: 243c lbu a5,10(s0) + 14716: 36078d63 beqz a5,14a90 + 1471a: 0bd44783 lbu a5,189(s0) + 1471e: 8b89 andi a5,a5,2 + 14720: 36078863 beqz a5,14a90 + 14724: 85a2 mv a1,s0 + 14726: 4501 li a0,0 + 14728: c2bf90ef jal ra,e352 + 1472c: 27800513 li a0,632 + 14730: 15d060ef jal ra,1b08c + 14734: 1ffee797 auipc a5,0x1ffee + 14738: 2c078ca3 sb zero,729(a5) # 20002a0d + 1473c: 409c lw a5,0(s1) + 1473e: 4398 lw a4,0(a5) + 14740: 29871713 bseti a4,a4,0x18 + 14744: c398 sw a4,0(a5) + 14746: 5bd8 lw a4,52(a5) + 14748: 9b71 andi a4,a4,-4 + 1474a: dbd8 sw a4,52(a5) + 1474c: 547c lw a5,108(s0) + 1474e: c79d beqz a5,1477c + 14750: 3038 lbu a4,3(s0) + 14752: 8b05 andi a4,a4,1 + 14754: c705 beqz a4,1477c + 14756: 43d4 lw a3,4(a5) + 14758: 27d0 lbu a2,12(a5) + 1475a: 278c lbu a1,8(a5) + 1475c: 200a lhu a0,0(s0) + 1475e: 0689 addi a3,a3,2 + 14760: 843f90ef jal ra,dfa2 + 14764: ed01 bnez a0,1477c + 14766: 547c lw a5,108(s0) + 14768: 27ba lhu a4,10(a5) + 1476a: f0076713 ori a4,a4,-256 + 1476e: a7ba sh a4,10(a5) + 14770: 439c lw a5,0(a5) + 14772: d47c sw a5,108(s0) + 14774: 387c lbu a5,23(s0) + 14776: c399 beqz a5,1477c + 14778: 17fd addi a5,a5,-1 + 1477a: b87c sb a5,23(s0) + 1477c: 1ffec097 auipc ra,0x1ffec + 14780: 42c080e7 jalr 1068(ra) # 20000ba8 + 14784: 4462 lw s0,24(sp) + 14786: 40f2 lw ra,28(sp) + 14788: 44d2 lw s1,20(sp) + 1478a: 4942 lw s2,16(sp) + 1478c: 49b2 lw s3,12(sp) + 1478e: 4581 li a1,0 + 14790: 00000517 auipc a0,0x0 + 14794: b8650513 addi a0,a0,-1146 # 14316 + 14798: 6105 addi sp,sp,32 + 1479a: 09f0606f j 1b038 + 1479e: 1ae010ef jal ra,1594c + 147a2: bf15 j 146d6 + 147a4: 0017f713 andi a4,a5,1 + 147a8: cf09 beqz a4,147c2 + 147aa: 9bf9 andi a5,a5,-2 + 147ac: b81e sh a5,48(s0) + 147ae: 4c7c lw a5,92(s0) + 147b0: 2058 lbu a4,4(s0) + 147b2: a398 sb a4,0(a5) + 147b4: 4c7c lw a5,92(s0) + 147b6: 2438 lbu a4,10(s0) + 147b8: b398 sb a4,1(a5) + 147ba: 00092783 lw a5,0(s2) + 147be: 4c78 lw a4,92(s0) + 147c0: bf1d j 146f6 + 147c2: 2418 lbu a4,8(s0) + 147c4: 4605 li a2,1 + 147c6: 0cc71263 bne a4,a2,1488a + 147ca: cbb9 beqz a5,14820 + 147cc: 0107f713 andi a4,a5,16 + 147d0: c719 beqz a4,147de + 147d2: 9bbd andi a5,a5,-17 + 147d4: b81e sh a5,48(s0) + 147d6: 8522 mv a0,s0 + 147d8: 0ae010ef jal ra,15886 + 147dc: bded j 146d6 + 147de: 0207f713 andi a4,a5,32 + 147e2: cb01 beqz a4,147f2 + 147e4: fdf7f793 andi a5,a5,-33 + 147e8: b81e sh a5,48(s0) + 147ea: 8522 mv a0,s0 + 147ec: 21a010ef jal ra,15a06 + 147f0: b5dd j 146d6 + 147f2: 0807f713 andi a4,a5,128 + 147f6: cb01 beqz a4,14806 + 147f8: f7f7f793 andi a5,a5,-129 + 147fc: b81e sh a5,48(s0) + 147fe: 8522 mv a0,s0 + 14800: 328010ef jal ra,15b28 + 14804: bdc9 j 146d6 + 14806: 2007f713 andi a4,a5,512 + 1480a: cb01 beqz a4,1481a + 1480c: dff7f793 andi a5,a5,-513 + 14810: b81e sh a5,48(s0) + 14812: 8522 mv a0,s0 + 14814: 3ea010ef jal ra,15bfe + 14818: bd7d j 146d6 + 1481a: 02041823 sh zero,48(s0) + 1481e: bf41 j 147ae + 14820: 347e lhu a5,46(s0) + 14822: 20078463 beqz a5,14a2a + 14826: 0407f713 andi a4,a5,64 + 1482a: cb01 beqz a4,1483a + 1482c: fbf7f793 andi a5,a5,-65 + 14830: b47e sh a5,46(s0) + 14832: 8522 mv a0,s0 + 14834: 0be010ef jal ra,158f2 + 14838: bd79 j 146d6 + 1483a: 2007f713 andi a4,a5,512 + 1483e: cb19 beqz a4,14854 + 14840: 8acd andi a3,a3,19 + 14842: d8069be3 bnez a3,145d8 + 14846: dff7f793 andi a5,a5,-513 + 1484a: b47e sh a5,46(s0) + 1484c: 8522 mv a0,s0 + 1484e: 11a010ef jal ra,15968 + 14852: b551 j 146d6 + 14854: 28b01713 bseti a4,zero,0xb + 14858: 8f7d and a4,a4,a5 + 1485a: cb01 beqz a4,1486a + 1485c: 48b79793 bclri a5,a5,0xb + 14860: 8522 mv a0,s0 + 14862: b47e sh a5,46(s0) + 14864: 258010ef jal ra,15abc + 14868: b5bd j 146d6 + 1486a: 6705 lui a4,0x1 + 1486c: 8f7d and a4,a4,a5 + 1486e: cb19 beqz a4,14884 + 14870: 8acd andi a3,a3,19 + 14872: d60693e3 bnez a3,145d8 + 14876: 48c79793 bclri a5,a5,0xc + 1487a: 8522 mv a0,s0 + 1487c: b47e sh a5,46(s0) + 1487e: 32e010ef jal ra,15bac + 14882: bd91 j 146d6 + 14884: 02041723 sh zero,46(s0) + 14888: b71d j 147ae + 1488a: d40707e3 beqz a4,145d8 + 1488e: 03800793 li a5,56 + 14892: 02e7e463 bltu a5,a4,148ba + 14896: 47e9 li a5,26 + 14898: d4e7f0e3 bgeu a5,a4,145d8 + 1489c: 1715 addi a4,a4,-27 # fe5 <_sinit-0x1b> + 1489e: 0ff77713 zext.b a4,a4 + 148a2: 47f5 li a5,29 + 148a4: d2e7eae3 bltu a5,a4,145d8 + 148a8: 00005697 auipc a3,0x5 + 148ac: 57068693 addi a3,a3,1392 # 19e18 + 148b0: 20d74733 sh2add a4,a4,a3 + 148b4: 431c lw a5,0(a4) + 148b6: 97b6 add a5,a5,a3 + 148b8: 8782 jr a5 + 148ba: fc070713 addi a4,a4,-64 + 148be: 0ff77713 zext.b a4,a4 + 148c2: 47e9 li a5,26 + 148c4: d0e7eae3 bltu a5,a4,145d8 + 148c8: 00005617 auipc a2,0x5 + 148cc: 5c860613 addi a2,a2,1480 # 19e90 + 148d0: 20c74733 sh2add a4,a4,a2 + 148d4: 431c lw a5,0(a4) + 148d6: 97b2 add a5,a5,a2 + 148d8: 8782 jr a5 + 148da: 0b544783 lbu a5,181(s0) + 148de: c78d beqz a5,14908 + 148e0: 4705 li a4,1 + 148e2: 00e79863 bne a5,a4,148f2 + 148e6: 8522 mv a0,s0 + 148e8: 11e010ef jal ra,15a06 + 148ec: 4785 li a5,1 + 148ee: a41c sb a5,8(s0) + 148f0: b3dd j 146d6 + 148f2: 10e45783 lhu a5,270(s0) + 148f6: 8b91 andi a5,a5,4 + 148f8: c3dd beqz a5,1499e + 148fa: 47bd li a5,15 + 148fc: 0af40b23 sb a5,182(s0) + 14900: 8522 mv a0,s0 + 14902: 19a010ef jal ra,15a9c + 14906: b7dd j 148ec + 14908: 8522 mv a0,s0 + 1490a: 6a3000ef jal ra,157ac + 1490e: 345e lhu a5,44(s0) + 14910: 0027e793 ori a5,a5,2 + 14914: b45e sh a5,44(s0) + 14916: bfd9 j 148ec + 14918: 8522 mv a0,s0 + 1491a: 693000ef jal ra,157ac + 1491e: 4785 li a5,1 + 14920: a41c sb a5,8(s0) + 14922: 345e lhu a5,44(s0) + 14924: 08041d23 sh zero,154(s0) + 14928: 0047e793 ori a5,a5,4 + 1492c: b45e sh a5,44(s0) + 1492e: b365 j 146d6 + 14930: 8522 mv a0,s0 + 14932: 691000ef jal ra,157c2 + 14936: 47d9 li a5,22 + 14938: 08f40723 sb a5,142(s0) + 1493c: bb69 j 146d6 + 1493e: 8522 mv a0,s0 + 14940: 66d000ef jal ra,157ac + 14944: 345e lhu a5,44(s0) + 14946: 0017e793 ori a5,a5,1 + 1494a: b45e sh a5,44(s0) + 1494c: 00040423 sb zero,8(s0) + 14950: b359 j 146d6 + 14952: 8522 mv a0,s0 + 14954: 65f050ef jal ra,1a7b2 + 14958: d6050fe3 beqz a0,146d6 + 1495c: 4785 li a5,1 + 1495e: 0af40f23 sb a5,190(s0) + 14962: 8522 mv a0,s0 + 14964: 775000ef jal ra,158d8 + 14968: 0bd44783 lbu a5,189(s0) + 1496c: 9bf9 andi a5,a5,-2 + 1496e: 0af40ea3 sb a5,189(s0) + 14972: b395 j 146d6 + 14974: 8522 mv a0,s0 + 14976: 637000ef jal ra,157ac + 1497a: bfc9 j 1494c + 1497c: 11245783 lhu a5,274(s0) + 14980: 8b85 andi a5,a5,1 + 14982: c789 beqz a5,1498c + 14984: 8522 mv a0,s0 + 14986: 661000ef jal ra,157e6 + 1498a: b3b1 j 146d6 + 1498c: 47e9 li a5,26 + 1498e: 0af40aa3 sb a5,181(s0) + 14992: 10e45783 lhu a5,270(s0) + 14996: 8b91 andi a5,a5,4 + 14998: c399 beqz a5,1499e + 1499a: 478d li a5,3 + 1499c: b785 j 148fc + 1499e: 8522 mv a0,s0 + 149a0: 7ad000ef jal ra,1594c + 149a4: b7a1 j 148ec + 149a6: 8522 mv a0,s0 + 149a8: 68f000ef jal ra,15836 + 149ac: 0be44783 lbu a5,190(s0) + 149b0: cb91 beqz a5,149c4 + 149b2: 4641 li a2,16 + 149b4: 0c040593 addi a1,s0,192 + 149b8: 0e040513 addi a0,s0,224 + 149bc: 1ffec097 auipc ra,0x1ffec + 149c0: ea0080e7 jalr -352(ra) # 2000085c + 149c4: 0bd44783 lbu a5,189(s0) + 149c8: 0a042c23 sw zero,184(s0) + 149cc: 0a040e23 sb zero,188(s0) + 149d0: 0017e793 ori a5,a5,1 + 149d4: 0af40ea3 sb a5,189(s0) + 149d8: b9fd j 146d6 + 149da: 10e45783 lhu a5,270(s0) + 149de: 8b91 andi a5,a5,4 + 149e0: cb99 beqz a5,149f6 + 149e2: 478d li a5,3 + 149e4: 0af40b23 sb a5,182(s0) + 149e8: 8522 mv a0,s0 + 149ea: 0b2010ef jal ra,15a9c + 149ee: 341c lbu a5,9(s0) + 149f0: 9bdd andi a5,a5,-9 + 149f2: b41c sb a5,9(s0) + 149f4: bde5 j 148ec + 149f6: 8522 mv a0,s0 + 149f8: 755000ef jal ra,1594c + 149fc: bfcd j 149ee + 149fe: 0bd44783 lbu a5,189(s0) + 14a02: 0a042823 sw zero,176(s0) + 14a06: 0a040a23 sb zero,180(s0) + 14a0a: 0027e793 ori a5,a5,2 + 14a0e: 0af40ea3 sb a5,189(s0) + 14a12: 8522 mv a0,s0 + 14a14: 63d000ef jal ra,15850 + 14a18: 341c lbu a5,9(s0) + 14a1a: 0a040aa3 sb zero,181(s0) + 14a1e: 9bdd andi a5,a5,-9 + 14a20: b41c sb a5,9(s0) + 14a22: 345e lhu a5,44(s0) + 14a24: 0107e793 ori a5,a5,16 + 14a28: b5f5 j 14914 + 14a2a: 8522 mv a0,s0 + 14a2c: 587050ef jal ra,1a7b2 + 14a30: ca0503e3 beqz a0,146d6 + 14a34: b655 j 145d8 + 14a36: 13644703 lbu a4,310(s0) + 14a3a: cb11 beqz a4,14a4e + 14a3c: 13444783 lbu a5,308(s0) + 14a40: 28f017b3 bset a5,zero,a5 + 14a44: 00e78563 beq a5,a4,14a4e + 14a48: 0106e693 ori a3,a3,16 + 14a4c: b414 sb a3,9(s0) + 14a4e: 13744703 lbu a4,311(s0) + 14a52: cb19 beqz a4,14a68 + 14a54: 13544783 lbu a5,309(s0) + 14a58: 28f017b3 bset a5,zero,a5 + 14a5c: 00e78663 beq a5,a4,14a68 + 14a60: 341c lbu a5,9(s0) + 14a62: 0107e793 ori a5,a5,16 + 14a66: b41c sb a5,9(s0) + 14a68: 13144783 lbu a5,305(s0) + 14a6c: cb81 beqz a5,14a7c + 14a6e: 341c lbu a5,9(s0) + 14a70: 8bc1 andi a5,a5,16 + 14a72: e789 bnez a5,14a7c + 14a74: 345e lhu a5,44(s0) + 14a76: 2007e793 ori a5,a5,512 + 14a7a: b45e sh a5,44(s0) + 14a7c: 8522 mv a0,s0 + 14a7e: 52f000ef jal ra,157ac + 14a82: b5ad j 148ec + 14a84: 0019c783 lbu a5,1(s3) + 14a88: 0785 addi a5,a5,1 + 14a8a: 00f980a3 sb a5,1(s3) + 14a8e: b1a1 j 146d6 + 14a90: 25800513 li a0,600 + 14a94: b971 j 14730 + 14a96: 00092783 lw a5,0(s2) + 14a9a: 53fc lw a5,100(a5) + 14a9c: ebd1 bnez a5,14b30 + 14a9e: 3b1050ef jal ra,1a64e + 14aa2: 209c lbu a5,0(s1) + 14aa4: 60479793 sext.b a5,a5 + 14aa8: 0807d063 bgez a5,14b28 + 14aac: 0029c783 lbu a5,2(s3) + 14ab0: 343a lhu a4,42(s0) + 14ab2: 0785 addi a5,a5,1 + 14ab4: 0ff7f793 zext.b a5,a5 + 14ab8: 00f98123 sb a5,2(s3) + 14abc: cf29 beqz a4,14b16 + 14abe: 06400693 li a3,100 + 14ac2: 02d77733 remu a4,a4,a3 + 14ac6: eb21 bnez a4,14b16 + 14ac8: a8c1a703 lw a4,-1396(gp) # 20001444 + 14acc: 8b09 andi a4,a4,2 + 14ace: cf05 beqz a4,14b06 + 14ad0: 1ffee497 auipc s1,0x1ffee + 14ad4: df848493 addi s1,s1,-520 # 200028c8 + 14ad8: 5498 lw a4,40(s1) + 14ada: c715 beqz a4,14b06 + 14adc: 0019c583 lbu a1,1(s3) + 14ae0: 4525 li a0,9 + 14ae2: 05c2 slli a1,a1,0x10 + 14ae4: 8ddd or a1,a1,a5 + 14ae6: 9702 jalr a4 + 14ae8: 549c lw a5,40(s1) + 14aea: 0009c583 lbu a1,0(s3) + 14aee: 4529 li a0,10 + 14af0: 9782 jalr a5 + 14af2: 549c lw a5,40(s1) + 14af4: 01c41583 lh a1,28(s0) + 14af8: 452d li a0,11 + 14afa: 9782 jalr a5 + 14afc: 549c lw a5,40(s1) + 14afe: 01e40583 lb a1,30(s0) + 14b02: 4531 li a0,12 + 14b04: 9782 jalr a5 + 14b06: 1ffee797 auipc a5,0x1ffee + 14b0a: 00079523 sh zero,10(a5) # 20002b10 + 14b0e: 1ffee797 auipc a5,0x1ffee + 14b12: 00078223 sb zero,4(a5) # 20002b12 + 14b16: 8522 mv a0,s0 + 14b18: 4462 lw s0,24(sp) + 14b1a: 40f2 lw ra,28(sp) + 14b1c: 44d2 lw s1,20(sp) + 14b1e: 4942 lw s2,16(sp) + 14b20: 49b2 lw s3,12(sp) + 14b22: 6105 addi sp,sp,32 + 14b24: a57fe06f j 1357a + 14b28: 8522 mv a0,s0 + 14b2a: debfe0ef jal ra,13914 + 14b2e: b7e5 j 14b16 + 14b30: 40f2 lw ra,28(sp) + 14b32: 4462 lw s0,24(sp) + 14b34: 44d2 lw s1,20(sp) + 14b36: 4942 lw s2,16(sp) + 14b38: 49b2 lw s3,12(sp) + 14b3a: 6105 addi sp,sp,32 + 14b3c: 8082 ret + +00014b3e : +llSlaveCreateCore(): + 14b3e: 1141 addi sp,sp,-16 + 14b40: c226 sw s1,4(sp) + 14b42: c606 sw ra,12(sp) + 14b44: c422 sw s0,8(sp) + 14b46: c04a sw s2,0(sp) + 14b48: a24ff0ef jal ra,13d6c + 14b4c: 84aa mv s1,a0 + 14b4e: c139 beqz a0,14b94 + 14b50: 942ff0ef jal ra,13c92 + 14b54: 842a mv s0,a0 + 14b56: c545 beqz a0,14bfe + 14b58: 47c5 li a5,17 + 14b5a: a13c sb a5,2(a0) + 14b5c: 4785 li a5,1 + 14b5e: a51c sb a5,8(a0) + 14b60: 1ffee917 auipc s2,0x1ffee + 14b64: d6890913 addi s2,s2,-664 # 200028c8 + 14b68: 01095783 lhu a5,16(s2) + 14b6c: 10400713 li a4,260 + 14b70: 25300593 li a1,595 + 14b74: 07a5 addi a5,a5,9 + 14b76: 04000513 li a0,64 + 14b7a: 0807c7b3 zext.h a5,a5 + 14b7e: 0ae7d7b3 minu a5,a5,a4 + 14b82: 0aa7f533 maxu a0,a5,a0 + 14b86: 367050ef jal ra,1a6ec + 14b8a: cc68 sw a0,92(s0) + 14b8c: e919 bnez a0,14ba2 + 14b8e: 200a lhu a0,0(s0) + 14b90: a64ff0ef jal ra,13df4 + 14b94: 40b2 lw ra,12(sp) + 14b96: 4422 lw s0,8(sp) + 14b98: 4902 lw s2,0(sp) + 14b9a: 8526 mv a0,s1 + 14b9c: 4492 lw s1,4(sp) + 14b9e: 0141 addi sp,sp,16 + 14ba0: 8082 ret + 14ba2: 1ffee797 auipc a5,0x1ffee + 14ba6: e7e7a783 lw a5,-386(a5) # 20002a20 + 14baa: d03c sw a5,96(s0) + 14bac: 1ffee797 auipc a5,0x1ffee + 14bb0: f6478793 addi a5,a5,-156 # 20002b10 + 14bb4: 0427d703 lhu a4,66(a5) + 14bb8: 2b9e lhu a5,16(a5) + 14bba: 8522 mv a0,s0 + 14bbc: 10e41823 sh a4,272(s0) + 14bc0: 12f41923 sh a5,306(s0) + 14bc4: 57fd li a5,-1 + 14bc6: b43e sh a5,42(s0) + 14bc8: a85e sh a5,20(s0) + 14bca: a87c sb a5,22(s0) + 14bcc: 08844783 lbu a5,136(s0) + 14bd0: 10e41923 sh a4,274(s0) + 14bd4: 12041a23 sh zero,308(s0) + 14bd8: fc07e793 ori a5,a5,-64 + 14bdc: 08f40423 sb a5,136(s0) + 14be0: 803fe0ef jal ra,133e2 + 14be4: 01494503 lbu a0,20(s2) + 14be8: 12a407a3 sb a0,303(s0) + 14bec: 82bf90ef jal ra,e416 + 14bf0: 12a40823 sb a0,304(s0) + 14bf4: 1ffee797 auipc a5,0x1ffee + 14bf8: e2079b23 sh zero,-458(a5) # 20002a2a + 14bfc: bf61 j 14b94 + 14bfe: 4485 li s1,1 + 14c00: bf51 j 14b94 + +00014c02 : +llSlaveSetFirstTimer(): + 14c02: 1141 addi sp,sp,-16 + 14c04: c606 sw ra,12(sp) + 14c06: c422 sw s0,8(sp) + 14c08: c226 sw s1,4(sp) + 14c0a: c04a sw s2,0(sp) + 14c0c: 2d2c lbu a1,26(a0) + 14c0e: 842a mv s0,a0 + 14c10: 4501 li a0,0 + 14c12: 963f10ef jal ra,6574 + 14c16: 1ffee497 auipc s1,0x1ffee + 14c1a: ce648493 addi s1,s1,-794 # 200028fc + 14c1e: 2496 lhu a3,8(s1) + 14c20: 305e lhu a5,36(s0) + 14c22: 32000613 li a2,800 + 14c26: 4e200913 li s2,1250 + 14c2a: 02f68733 mul a4,a3,a5 + 14c2e: 04a41123 sh a0,66(s0) + 14c32: 08054533 zext.h a0,a0 + 14c36: 02c755b3 divu a1,a4,a2 + 14c3a: 02c77733 remu a4,a4,a2 + 14c3e: c42c sw a1,72(s0) + 14c40: 02144583 lbu a1,33(s0) + 14c44: 032787b3 mul a5,a5,s2 + 14c48: 03270733 mul a4,a4,s2 + 14c4c: 02a7d7b3 divu a5,a5,a0 + 14c50: 8522 mv a0,s0 + 14c52: 02d74733 div a4,a4,a3 + 14c56: 07fd addi a5,a5,31 + 14c58: 0807c7b3 zext.h a5,a5 + 14c5c: bc7e sh a5,62(s0) + 14c5e: 04f41023 sh a5,64(s0) + 14c62: 032585b3 mul a1,a1,s2 + 14c66: b83a sh a4,50(s0) + 14c68: 14058593 addi a1,a1,320 + 14c6c: 0805c5b3 zext.h a1,a1 + 14c70: d0afe0ef jal ra,1317a + 14c74: 303e lhu a5,34(s0) + 14c76: 248a lhu a0,8(s1) + 14c78: 000f4637 lui a2,0xf4 + 14c7c: 0785 addi a5,a5,1 + 14c7e: 032787b3 mul a5,a5,s2 + 14c82: 4681 li a3,0 + 14c84: 24060613 addi a2,a2,576 # f4240 <_data_lma+0xd8c84> + 14c88: ec078793 addi a5,a5,-320 + 14c8c: 02a7a5b3 mulhsu a1,a5,a0 + 14c90: 02f50533 mul a0,a0,a5 + 14c94: 60e010ef jal ra,162a2 <__udivdi3> + 14c98: 407c lw a5,68(s0) + 14c9a: 40d4 lw a3,4(s1) + 14c9c: 97aa add a5,a5,a0 + 14c9e: 00a7b533 sltu a0,a5,a0 + 14ca2: 952e add a0,a0,a1 + 14ca4: e501 bnez a0,14cac + 14ca6: 873e mv a4,a5 + 14ca8: 00d7e463 bltu a5,a3,14cb0 + 14cac: 40d78733 sub a4,a5,a3 + 14cb0: c478 sw a4,76(s0) + 14cb2: 8522 mv a0,s0 + 14cb4: d5afe0ef jal ra,1320e + 14cb8: 340e lhu a1,40(s0) + 14cba: 8522 mv a0,s0 + 14cbc: 0592 slli a1,a1,0x4 + 14cbe: 15f9 addi a1,a1,-2 + 14cc0: 0805c5b3 zext.h a1,a1 + 14cc4: d12fe0ef jal ra,131d6 + 14cc8: 8522 mv a0,s0 + 14cca: 9baff0ef jal ra,13e84 + 14cce: 1ffee797 auipc a5,0x1ffee + 14cd2: e687a523 sw s0,-406(a5) # 20002b38 + 14cd6: a8c1a783 lw a5,-1396(gp) # 20001444 + 14cda: 8b89 andi a5,a5,2 + 14cdc: cf91 beqz a5,14cf8 + 14cde: 1ffee497 auipc s1,0x1ffee + 14ce2: bea48493 addi s1,s1,-1046 # 200028c8 + 14ce6: 549c lw a5,40(s1) + 14ce8: cb81 beqz a5,14cf8 + 14cea: 482c lw a1,80(s0) + 14cec: 4535 li a0,13 + 14cee: 9782 jalr a5 + 14cf0: 549c lw a5,40(s1) + 14cf2: 486c lw a1,84(s0) + 14cf4: 4539 li a0,14 + 14cf6: 9782 jalr a5 + 14cf8: 8522 mv a0,s0 + 14cfa: 4422 lw s0,8(sp) + 14cfc: 40b2 lw ra,12(sp) + 14cfe: 4492 lw s1,4(sp) + 14d00: 4902 lw s2,0(sp) + 14d02: 1ffee797 auipc a5,0x1ffee + 14d06: e0079723 sh zero,-498(a5) # 20002b10 + 14d0a: 1ffee797 auipc a5,0x1ffee + 14d0e: e0078423 sb zero,-504(a5) # 20002b12 + 14d12: 0141 addi sp,sp,16 + 14d14: 80dfe06f j 13520 + +00014d18 : +llSlaveStartEvent(): + 14d18: 1141 addi sp,sp,-16 + 14d1a: c422 sw s0,8(sp) + 14d1c: c606 sw ra,12(sp) + 14d1e: c226 sw s1,4(sp) + 14d20: c04a sw s2,0(sp) + 14d22: 1ffee417 auipc s0,0x1ffee + 14d26: e1242403 lw s0,-494(s0) # 20002b34 + 14d2a: 0bd44783 lbu a5,189(s0) + 14d2e: 8b85 andi a5,a5,1 + 14d30: c789 beqz a5,14d3a + 14d32: 85a2 mv a1,s0 + 14d34: 4505 li a0,1 + 14d36: e7ef90ef jal ra,e3b4 + 14d3a: 9d818913 addi s2,gp,-1576 # 20001390 + 14d3e: 00092783 lw a5,0(s2) + 14d42: 12f44683 lbu a3,303(s0) + 14d46: ff000637 lui a2,0xff000 + 14d4a: 5bd8 lw a4,52(a5) + 14d4c: 0406e693 ori a3,a3,64 + 14d50: 06e6 slli a3,a3,0x19 + 14d52: 071e slli a4,a4,0x7 + 14d54: 831d srli a4,a4,0x7 + 14d56: 8f55 or a4,a4,a3 + 14d58: dbd8 sw a4,52(a5) + 14d5a: 4838 lw a4,80(s0) + 14d5c: 008006b7 lui a3,0x800 + 14d60: 32d68693 addi a3,a3,813 # 80032d <_data_lma+0x7e4d71> + 14d64: d3b8 sw a4,96(a5) + 14d66: c7d8 sw a4,12(a5) + 14d68: 4878 lw a4,84(s0) + 14d6a: 9f018493 addi s1,gp,-1552 # 200013a8 + 14d6e: cfb8 sw a4,88(a5) + 14d70: c3d8 sw a4,4(a5) + 14d72: 4ff8 lw a4,92(a5) + 14d74: 8f71 and a4,a4,a2 + 14d76: 8f55 or a4,a4,a3 + 14d78: cff8 sw a4,92(a5) + 14d7a: 4798 lw a4,8(a5) + 14d7c: 8f71 and a4,a4,a2 + 14d7e: 8f55 or a4,a4,a3 + 14d80: c798 sw a4,8(a5) + 14d82: 4098 lw a4,0(s1) + 14d84: 435c lw a5,4(a4) + 14d86: 0017e793 ori a5,a5,1 + 14d8a: c35c sw a5,4(a4) + 14d8c: 12645583 lhu a1,294(s0) + 14d90: 12845603 lhu a2,296(s0) + 14d94: 13544503 lbu a0,309(s0) + 14d98: fc000793 li a5,-64 + 14d9c: 0591 addi a1,a1,4 + 14d9e: 1ffee717 auipc a4,0x1ffee + 14da2: c6f70723 sb a5,-914(a4) # 20002a0c + 14da6: 0805c5b3 zext.h a1,a1 + 14daa: 7c0050ef jal ra,1a56a + 14dae: fffff517 auipc a0,0xfffff + 14db2: 64c50513 addi a0,a0,1612 # 143fa + 14db6: 4581 li a1,0 + 14db8: 280060ef jal ra,1b038 + 14dbc: 00092703 lw a4,0(s2) + 14dc0: 5b5c lw a5,52(a4) + 14dc2: 9bf1 andi a5,a5,-4 + 14dc4: 0017e793 ori a5,a5,1 + 14dc8: db5c sw a5,52(a4) + 14dca: a001a683 lw a3,-1536(gp) # 200013b8 + 14dce: 56dc lw a5,44(a3) + 14dd0: 9bf5 andi a5,a5,-3 + 14dd2: d6dc sw a5,44(a3) + 14dd4: 07444683 lbu a3,116(s0) + 14dd8: 431c lw a5,0(a4) + 14dda: 07f6f693 andi a3,a3,127 + 14dde: f807f793 andi a5,a5,-128 + 14de2: 8fd5 or a5,a5,a3 + 14de4: c31c sw a5,0(a4) + 14de6: 1ffec097 auipc ra,0x1ffec + 14dea: 1d8080e7 jalr 472(ra) # 20000fbe + 14dee: 0bd44783 lbu a5,189(s0) + 14df2: 17800513 li a0,376 + 14df6: 8b85 andi a5,a5,1 + 14df8: e399 bnez a5,14dfe + 14dfa: 15800513 li a0,344 + 14dfe: 28e060ef jal ra,1b08c + 14e02: 04045783 lhu a5,64(s0) + 14e06: 3c56 lhu a3,60(s0) + 14e08: 4098 lw a4,0(s1) + 14e0a: 4422 lw s0,8(sp) + 14e0c: 20d7a7b3 sh1add a5,a5,a3 + 14e10: 0786 slli a5,a5,0x1 + 14e12: 40b2 lw ra,12(sp) + 14e14: 4492 lw s1,4(sp) + 14e16: 4902 lw s2,0(sp) + 14e18: d37c sw a5,100(a4) + 14e1a: 1ffee797 auipc a5,0x1ffee + 14e1e: be0789a3 sb zero,-1037(a5) # 20002a0d + 14e22: 0141 addi sp,sp,16 + 14e24: 1ffec317 auipc t1,0x1ffec + 14e28: da230067 jr -606(t1) # 20000bc6 + +00014e2c : +LL_SlaveEnalbe(): + 14e2c: 400017b7 lui a5,0x40001 + 14e30: 0417c783 lbu a5,65(a5) # 40001041 <_eusrstack+0x1fffe041> + 14e34: 8b89 andi a5,a5,2 + 14e36: c795 beqz a5,14e62 + 14e38: 1141 addi sp,sp,-16 + 14e3a: c606 sw ra,12(sp) + 14e3c: adafe0ef jal ra,13116 + 14e40: 40b2 lw ra,12(sp) + 14e42: 1ffee797 auipc a5,0x1ffee + 14e46: cce78793 addi a5,a5,-818 # 20002b10 + 14e4a: 00000717 auipc a4,0x0 + 14e4e: cf470713 addi a4,a4,-780 # 14b3e + 14e52: db98 sw a4,48(a5) + 14e54: 00000717 auipc a4,0x0 + 14e58: dae70713 addi a4,a4,-594 # 14c02 + 14e5c: dbd8 sw a4,52(a5) + 14e5e: 0141 addi sp,sp,16 + 14e60: 8082 ret + 14e62: 8082 ret + +00014e64 : +LL_WhitelistAdd(): + 14e64: 1101 addi sp,sp,-32 + 14e66: c84a sw s2,16(sp) + 14e68: 1ffee917 auipc s2,0x1ffee + 14e6c: ca890913 addi s2,s2,-856 # 20002b10 + 14e70: cc22 sw s0,24(sp) + 14e72: 03c92403 lw s0,60(s2) + 14e76: ca26 sw s1,20(sp) + 14e78: c64e sw s3,12(sp) + 14e7a: c452 sw s4,8(sp) + 14e7c: c256 sw s5,4(sp) + 14e7e: ce06 sw ra,28(sp) + 14e80: 84aa mv s1,a0 + 14e82: 4981 li s3,0 + 14e84: 00250a13 addi s4,a0,2 + 14e88: 4a85 li s5,1 + 14e8a: e029 bnez s0,14ecc + 14e8c: 25700593 li a1,599 + 14e90: 4531 li a0,12 + 14e92: 05b050ef jal ra,1a6ec + 14e96: 842a mv s0,a0 + 14e98: 4501 li a0,0 + 14e9a: c839 beqz s0,14ef0 + 14e9c: 309c lbu a5,1(s1) + 14e9e: 4619 li a2,6 + 14ea0: 00248593 addi a1,s1,2 + 14ea4: b01c sb a5,1(s0) + 14ea6: 00240513 addi a0,s0,2 + 14eaa: 1ffec097 auipc ra,0x1ffec + 14eae: 9b2080e7 jalr -1614(ra) # 2000085c + 14eb2: 03c92783 lw a5,60(s2) + 14eb6: e7b1 bnez a5,14f02 + 14eb8: 02892e23 sw s0,60(s2) + 14ebc: 00042423 sw zero,8(s0) + 14ec0: 03894783 lbu a5,56(s2) + 14ec4: 0785 addi a5,a5,1 + 14ec6: 02f90c23 sb a5,56(s2) + 14eca: a015 j 14eee + 14ecc: 3018 lbu a4,1(s0) + 14ece: 309c lbu a5,1(s1) + 14ed0: 00f70563 beq a4,a5,14eda + 14ed4: 89a2 mv s3,s0 + 14ed6: 4400 lw s0,8(s0) + 14ed8: bf4d j 14e8a + 14eda: 4619 li a2,6 + 14edc: 85d2 mv a1,s4 + 14ede: 00240513 addi a0,s0,2 + 14ee2: 1ffec097 auipc ra,0x1ffec + 14ee6: 9f8080e7 jalr -1544(ra) # 200008da + 14eea: ff5515e3 bne a0,s5,14ed4 + 14eee: 4505 li a0,1 + 14ef0: 40f2 lw ra,28(sp) + 14ef2: 4462 lw s0,24(sp) + 14ef4: 44d2 lw s1,20(sp) + 14ef6: 4942 lw s2,16(sp) + 14ef8: 49b2 lw s3,12(sp) + 14efa: 4a22 lw s4,8(sp) + 14efc: 4a92 lw s5,4(sp) + 14efe: 6105 addi sp,sp,32 + 14f00: 8082 ret + 14f02: fa098de3 beqz s3,14ebc + 14f06: 0089a423 sw s0,8(s3) + 14f0a: bf4d j 14ebc + +00014f0c : +LL_WhitelistClearAll(): + 14f0c: 1ffee517 auipc a0,0x1ffee + 14f10: c4052503 lw a0,-960(a0) # 20002b4c + 14f14: e911 bnez a0,14f28 + 14f16: 1ffee797 auipc a5,0x1ffee + 14f1a: c207ab23 sw zero,-970(a5) # 20002b4c + 14f1e: 1ffee797 auipc a5,0x1ffee + 14f22: c2078523 sb zero,-982(a5) # 20002b48 + 14f26: 8082 ret + 14f28: 1141 addi sp,sp,-16 + 14f2a: c606 sw ra,12(sp) + 14f2c: c422 sw s0,8(sp) + 14f2e: 4500 lw s0,8(a0) + 14f30: 1ffec097 auipc ra,0x1ffec + 14f34: f90080e7 jalr -112(ra) # 20000ec0 + 14f38: 8522 mv a0,s0 + 14f3a: f875 bnez s0,14f2e + 14f3c: 40b2 lw ra,12(sp) + 14f3e: 4422 lw s0,8(sp) + 14f40: 1ffee797 auipc a5,0x1ffee + 14f44: c007a623 sw zero,-1012(a5) # 20002b4c + 14f48: 1ffee797 auipc a5,0x1ffee + 14f4c: c0078023 sb zero,-1024(a5) # 20002b48 + 14f50: 0141 addi sp,sp,16 + 14f52: 8082 ret + +00014f54 : +LL_WhitelistInit(): + 14f54: 1ffee797 auipc a5,0x1ffee + 14f58: bbc78793 addi a5,a5,-1092 # 20002b10 + 14f5c: 0207ae23 sw zero,60(a5) + 14f60: 02078c23 sb zero,56(a5) + 14f64: 8082 ret + +00014f66 : +llEncRsp(): + 14f66: 4505 li a0,1 + 14f68: 8082 ret + +00014f6a : +llRejectInd(): + 14f6a: 3538 lbu a4,11(a0) + 14f6c: 4789 li a5,2 + 14f6e: 00f70463 beq a4,a5,14f76 + 14f72: 4505 li a0,1 + 14f74: 8082 ret + 14f76: 513c lw a5,96(a0) + 14f78: 04000713 li a4,64 + 14f7c: 33bc lbu a5,3(a5) + 14f7e: 0af50aa3 sb a5,181(a0) + 14f82: 251c lbu a5,8(a0) + 14f84: 0fb7f693 andi a3,a5,251 + 14f88: 00e69663 bne a3,a4,14f94 + 14f8c: 04500793 li a5,69 + 14f90: a51c sb a5,8(a0) + 14f92: a839 j 14fb0 + 14f94: 05500713 li a4,85 + 14f98: 00e79e63 bne a5,a4,14fb4 + 14f9c: 355e lhu a5,44(a0) + 14f9e: 2007e793 ori a5,a5,512 + 14fa2: b55e sh a5,44(a0) + 14fa4: 4785 li a5,1 + 14fa6: a51c sb a5,8(a0) + 14fa8: 351c lbu a5,9(a0) + 14faa: f807e793 ori a5,a5,-128 + 14fae: b51c sb a5,9(a0) + 14fb0: 4501 li a0,0 + 14fb2: 8082 ret + 14fb4: 06500713 li a4,101 + 14fb8: 00e79563 bne a5,a4,14fc2 + 14fbc: 06a00793 li a5,106 + 14fc0: bfc1 j 14f90 + 14fc2: 08500713 li a4,133 + 14fc6: fae796e3 bne a5,a4,14f72 + 14fca: 4785 li a5,1 + 14fcc: a51c sb a5,8(a0) + 14fce: 393c lbu a5,19(a0) + 14fd0: 0017e793 ori a5,a5,1 + 14fd4: b93c sb a5,19(a0) + 14fd6: bfc9 j 14fa8 + +00014fd8 : +llRejectIndExt(): + 14fd8: 3534 lbu a3,11(a0) + 14fda: 470d li a4,3 + 14fdc: 513c lw a5,96(a0) + 14fde: 00e68463 beq a3,a4,14fe6 + 14fe2: 4505 li a0,1 + 14fe4: 8082 ret + 14fe6: 23d8 lbu a4,4(a5) + 14fe8: 0ae50aa3 sb a4,181(a0) + 14fec: 33bc lbu a5,3(a5) + 14fee: 473d li a4,15 + 14ff0: 00e79e63 bne a5,a4,1500c + 14ff4: 251c lbu a5,8(a0) + 14ff6: 04000713 li a4,64 + 14ffa: 0fb7f793 andi a5,a5,251 + 14ffe: 00e79563 bne a5,a4,15008 + 15002: 04500793 li a5,69 + 15006: a51c sb a5,8(a0) + 15008: 4501 li a0,0 + 1500a: 8082 ret + 1500c: 4751 li a4,20 + 1500e: 00e79963 bne a5,a4,15020 + 15012: 2518 lbu a4,8(a0) + 15014: 05000793 li a5,80 + 15018: fcf715e3 bne a4,a5,14fe2 + 1501c: 4785 li a5,1 + 1501e: b7e5 j 15006 + 15020: 4759 li a4,22 + 15022: fce790e3 bne a5,a4,14fe2 + 15026: 2518 lbu a4,8(a0) + 15028: 05500793 li a5,85 + 1502c: faf71be3 bne a4,a5,14fe2 + 15030: 355e lhu a5,44(a0) + 15032: 2007e793 ori a5,a5,512 + 15036: b55e sh a5,44(a0) + 15038: 4785 li a5,1 + 1503a: a51c sb a5,8(a0) + 1503c: 351c lbu a5,9(a0) + 1503e: f807e793 ori a5,a5,-128 + 15042: b51c sb a5,9(a0) + 15044: b7d1 j 15008 + +00015046 : +LL_RxLenUpdate(): + 15046: 513c lw a5,96(a0) + 15048: 0e000313 li t1,224 + 1504c: 23cc lbu a1,4(a5) + 1504e: 33b4 lbu a3,3(a5) + 15050: 05a2 slli a1,a1,0x8 + 15052: 8dd5 or a1,a1,a3 + 15054: fe558693 addi a3,a1,-27 + 15058: 0806c6b3 zext.h a3,a3 + 1505c: 06d36163 bltu t1,a3,150be + 15060: 23f0 lbu a2,6(a5) + 15062: 33d4 lbu a3,5(a5) + 15064: 6811 lui a6,0x4 + 15066: 0622 slli a2,a2,0x8 + 15068: 8e55 or a2,a2,a3 + 1506a: eb860693 addi a3,a2,-328 # fefffeb8 <_eusrstack+0xdeffceb8> + 1506e: 14880813 addi a6,a6,328 # 4148 + 15072: 0806c6b3 zext.h a3,a3 + 15076: 04d86463 bltu a6,a3,150be + 1507a: 2794 lbu a3,8(a5) + 1507c: 0077c883 lbu a7,7(a5) + 15080: 06a2 slli a3,a3,0x8 + 15082: 0116e6b3 or a3,a3,a7 + 15086: fe568893 addi a7,a3,-27 + 1508a: 0808c8b3 zext.h a7,a7 + 1508e: 03136863 bltu t1,a7,150be + 15092: 0097c883 lbu a7,9(a5) + 15096: 27bc lbu a5,10(a5) + 15098: 07a2 slli a5,a5,0x8 + 1509a: 0117e7b3 or a5,a5,a7 + 1509e: eb878893 addi a7,a5,-328 + 150a2: 0808c8b3 zext.h a7,a7 + 150a6: 01186c63 bltu a6,a7,150be + 150aa: 10b51f23 sh a1,286(a0) + 150ae: 12c51023 sh a2,288(a0) + 150b2: 12d51123 sh a3,290(a0) + 150b6: 12f51223 sh a5,292(a0) + 150ba: 9e6fe06f j 132a0 + 150be: 4505 li a0,1 + 150c0: 8082 ret + +000150c2 : +llConnectionUpdateInd(): + 150c2: 3538 lbu a4,11(a0) + 150c4: 47b1 li a5,12 + 150c6: 08f71963 bne a4,a5,15158 + 150ca: 513c lw a5,96(a0) + 150cc: 33b8 lbu a4,3(a5) + 150ce: 08e507a3 sb a4,143(a0) + 150d2: 33d8 lbu a4,5(a5) + 150d4: 23d4 lbu a3,4(a5) + 150d6: 0722 slli a4,a4,0x8 + 150d8: 8f55 or a4,a4,a3 + 150da: 08e51823 sh a4,144(a0) + 150de: 33f0 lbu a2,7(a5) + 150e0: 23f8 lbu a4,6(a5) + 150e2: 0622 slli a2,a2,0x8 + 150e4: 8e59 or a2,a2,a4 + 150e6: 08c51923 sh a2,146(a0) + 150ea: 3794 lbu a3,9(a5) + 150ec: 2798 lbu a4,8(a5) + 150ee: 06a2 slli a3,a3,0x8 + 150f0: 8ed9 or a3,a3,a4 + 150f2: 08d51a23 sh a3,148(a0) + 150f6: 37b8 lbu a4,11(a5) + 150f8: 27ac lbu a1,10(a5) + 150fa: 0722 slli a4,a4,0x8 + 150fc: 8f4d or a4,a4,a1 + 150fe: 08e51b23 sh a4,150(a0) + 15102: 27cc lbu a1,12(a5) + 15104: 37dc lbu a5,13(a5) + 15106: 07a2 slli a5,a5,0x8 + 15108: 8fcd or a5,a5,a1 + 1510a: 314e lhu a1,36(a0) + 1510c: 08f51c23 sh a5,152(a0) + 15110: 4781 li a5,0 + 15112: 00c59963 bne a1,a2,15124 + 15116: 3172 lhu a2,38(a0) + 15118: 00d61663 bne a2,a3,15124 + 1511c: 351e lhu a5,40(a0) + 1511e: 8f99 sub a5,a5,a4 + 15120: 0017b793 seqz a5,a5 + 15124: 08f51d23 sh a5,154(a0) + 15128: 251c lbu a5,8(a0) + 1512a: 04000713 li a4,64 + 1512e: 02e78063 beq a5,a4,1514e + 15132: 04400713 li a4,68 + 15136: 00e79463 bne a5,a4,1513e + 1513a: 4785 li a5,1 + 1513c: a51c sb a5,8(a0) + 1513e: 351c lbu a5,9(a0) + 15140: 4715 li a4,5 + 15142: b578 sb a4,15(a0) + 15144: f817e793 ori a5,a5,-127 + 15148: b51c sb a5,9(a0) + 1514a: 4501 li a0,0 + 1514c: 8082 ret + 1514e: 393c lbu a5,19(a0) + 15150: 0017e793 ori a5,a5,1 + 15154: b93c sb a5,19(a0) + 15156: b7d5 j 1513a + 15158: 4505 li a0,1 + 1515a: 8082 ret + +0001515c : +llTerminateInd(): + 1515c: 3538 lbu a4,11(a0) + 1515e: 4789 li a5,2 + 15160: 00f71a63 bne a4,a5,15174 + 15164: 513c lw a5,96(a0) + 15166: 33bc lbu a5,3(a5) + 15168: 08f50723 sb a5,142(a0) + 1516c: 47f5 li a5,29 + 1516e: a51c sb a5,8(a0) + 15170: 4501 li a0,0 + 15172: 8082 ret + 15174: 451d li a0,7 + 15176: 8082 ret + +00015178 : +llStartEncRsp(): + 15178: 87aa mv a5,a0 + 1517a: 3528 lbu a0,11(a0) + 1517c: 4705 li a4,1 + 1517e: 02e51863 bne a0,a4,151ae + 15182: 2798 lbu a4,8(a5) + 15184: 02b00693 li a3,43 + 15188: 00d71963 bne a4,a3,1519a + 1518c: 02e00713 li a4,46 + 15190: a798 sb a4,8(a5) + 15192: 0a078aa3 sb zero,181(a5) + 15196: 4501 li a0,0 + 15198: 8082 ret + 1519a: 02d00693 li a3,45 + 1519e: 00d71963 bne a4,a3,151b0 + 151a2: 02e00713 li a4,46 + 151a6: 0a078aa3 sb zero,181(a5) + 151aa: a798 sb a4,8(a5) + 151ac: b7ed j 15196 + 151ae: 4505 li a0,1 + 151b0: 8082 ret + +000151b2 : +llUnknowRsp(): + 151b2: 3538 lbu a4,11(a0) + 151b4: 4789 li a5,2 + 151b6: 02f71763 bne a4,a5,151e4 + 151ba: 47e9 li a5,26 + 151bc: 0af50aa3 sb a5,181(a0) + 151c0: 513c lw a5,96(a0) + 151c2: 473d li a4,15 + 151c4: 33bc lbu a5,3(a5) + 151c6: 02e79163 bne a5,a4,151e8 + 151ca: 11255783 lhu a5,274(a0) + 151ce: 2518 lbu a4,8(a0) + 151d0: 9bf5 andi a5,a5,-3 + 151d2: 10f51923 sh a5,274(a0) + 151d6: 04000793 li a5,64 + 151da: 00f71563 bne a4,a5,151e4 + 151de: 04600793 li a5,70 + 151e2: a51c sb a5,8(a0) + 151e4: 4501 li a0,0 + 151e6: 8082 ret + 151e8: 4751 li a4,20 + 151ea: 02e79263 bne a5,a4,1520e + 151ee: 2518 lbu a4,8(a0) + 151f0: 05000793 li a5,80 + 151f4: fef718e3 bne a4,a5,151e4 + 151f8: 4785 li a5,1 + 151fa: a51c sb a5,8(a0) + 151fc: 355e lhu a5,44(a0) + 151fe: 1007e793 ori a5,a5,256 + 15202: b55e sh a5,44(a0) + 15204: 351c lbu a5,9(a0) + 15206: f807e793 ori a5,a5,-128 + 1520a: b51c sb a5,9(a0) + 1520c: bfe1 j 151e4 + 1520e: 4759 li a4,22 + 15210: fce79ae3 bne a5,a4,151e4 + 15214: 2518 lbu a4,8(a0) + 15216: 05500793 li a5,85 + 1521a: fcf715e3 bne a4,a5,151e4 + 1521e: 355e lhu a5,44(a0) + 15220: 2007e793 ori a5,a5,512 + 15224: b55e sh a5,44(a0) + 15226: 4785 li a5,1 + 15228: a51c sb a5,8(a0) + 1522a: bfe9 j 15204 + +0001522c : +llPauseEncReq(): + 1522c: 87aa mv a5,a0 + 1522e: 3528 lbu a0,11(a0) + 15230: 4705 li a4,1 + 15232: 00e51a63 bne a0,a4,15246 + 15236: 2798 lbu a4,8(a5) + 15238: 00a71863 bne a4,a0,15248 + 1523c: 03600713 li a4,54 + 15240: a798 sb a4,8(a5) + 15242: 4501 li a0,0 + 15244: 8082 ret + 15246: 4505 li a0,1 + 15248: 8082 ret + +0001524a : +llPauseEncRsp(): + 1524a: 87aa mv a5,a0 + 1524c: 3528 lbu a0,11(a0) + 1524e: 4705 li a4,1 + 15250: 02e51863 bne a0,a4,15280 + 15254: 2798 lbu a4,8(a5) + 15256: 03700693 li a3,55 + 1525a: 00d71963 bne a4,a3,1526c + 1525e: 03800713 li a4,56 + 15262: 0a078ea3 sb zero,189(a5) + 15266: a798 sb a4,8(a5) + 15268: 4501 li a0,0 + 1526a: 8082 ret + 1526c: 03500693 li a3,53 + 15270: 00d71963 bne a4,a3,15282 + 15274: 03800713 li a4,56 + 15278: a798 sb a4,8(a5) + 1527a: 0a078ea3 sb zero,189(a5) + 1527e: b7ed j 15268 + 15280: 4505 li a0,1 + 15282: 8082 ret + +00015284 : +llVersionInd(): + 15284: 3538 lbu a4,11(a0) + 15286: 4799 li a5,6 + 15288: 06f71e63 bne a4,a5,15304 + 1528c: 513c lw a5,96(a0) + 1528e: 33b8 lbu a4,3(a5) + 15290: 08e504a3 sb a4,137(a0) + 15294: 33d8 lbu a4,5(a5) + 15296: 23d4 lbu a3,4(a5) + 15298: 0722 slli a4,a4,0x8 + 1529a: 8f55 or a4,a4,a3 + 1529c: 08e51523 sh a4,138(a0) + 152a0: 23f8 lbu a4,6(a5) + 152a2: 33fc lbu a5,7(a5) + 152a4: 2514 lbu a3,8(a0) + 152a6: 07a2 slli a5,a5,0x8 + 152a8: 8fd9 or a5,a5,a4 + 152aa: 08f51623 sh a5,140(a0) + 152ae: 03a00713 li a4,58 + 152b2: 08854783 lbu a5,136(a0) + 152b6: 02e69e63 bne a3,a4,152f2 + 152ba: 8b85 andi a5,a5,1 + 152bc: cb89 beqz a5,152ce + 152be: 355e lhu a5,44(a0) + 152c0: 0a050aa3 sb zero,181(a0) + 152c4: 08050423 sb zero,136(a0) + 152c8: 0407e793 ori a5,a5,64 + 152cc: b55e sh a5,44(a0) + 152ce: 393c lbu a5,19(a0) + 152d0: 0017e793 ori a5,a5,1 + 152d4: b93c sb a5,19(a0) + 152d6: 4785 li a5,1 + 152d8: a51c sb a5,8(a0) + 152da: 351c lbu a5,9(a0) + 152dc: f807e793 ori a5,a5,-128 + 152e0: b51c sb a5,9(a0) + 152e2: 08854783 lbu a5,136(a0) + 152e6: fbf7f793 andi a5,a5,-65 + 152ea: 08f50423 sb a5,136(a0) + 152ee: 4501 li a0,0 + 152f0: 8082 ret + 152f2: 60479793 sext.b a5,a5 + 152f6: fe07d2e3 bgez a5,152da + 152fa: 357e lhu a5,46(a0) + 152fc: 0407e793 ori a5,a5,64 + 15300: b57e sh a5,46(a0) + 15302: bfe1 j 152da + 15304: 4505 li a0,1 + 15306: 8082 ret + +00015308 : +llPHYReq(): + 15308: 3538 lbu a4,11(a0) + 1530a: 478d li a5,3 + 1530c: 04f71963 bne a4,a5,1535e + 15310: 351c lbu a5,9(a0) + 15312: 5134 lw a3,96(a0) + 15314: 8b8d andi a5,a5,3 + 15316: eb89 bnez a5,15328 + 15318: 2518 lbu a4,8(a0) + 1531a: 4621 li a2,8 + 1531c: fc070793 addi a5,a4,-64 + 15320: 0ff7f793 zext.b a5,a5 + 15324: 00f66e63 bltu a2,a5,15340 + 15328: 47d9 li a5,22 + 1532a: 0af50b23 sb a5,182(a0) + 1532e: 02a00793 li a5,42 + 15332: 0af50aa3 sb a5,181(a0) + 15336: 391e lhu a5,48(a0) + 15338: 0027e793 ori a5,a5,2 + 1533c: b91e sh a5,48(a0) + 1533e: a811 j 15352 + 15340: 4785 li a5,1 + 15342: 00f71a63 bne a4,a5,15356 + 15346: 22dc lbu a5,4(a3) + 15348: 12f50ba3 sb a5,311(a0) + 1534c: 05600793 li a5,86 + 15350: a51c sb a5,8(a0) + 15352: 4501 li a0,0 + 15354: 8082 ret + 15356: 391e lhu a5,48(a0) + 15358: 2007e793 ori a5,a5,512 + 1535c: b7c5 j 1533c + 1535e: 4505 li a0,1 + 15360: 8082 ret + +00015362 : +llPHYUpdateIND(): + 15362: 3534 lbu a3,11(a0) + 15364: 4715 li a4,5 + 15366: 87aa mv a5,a0 + 15368: 4505 li a0,1 + 1536a: 06e69163 bne a3,a4,153cc + 1536e: 2798 lbu a4,8(a5) + 15370: 05500693 li a3,85 + 15374: 00d70763 beq a4,a3,15382 + 15378: 05800693 li a3,88 + 1537c: 4505 li a0,1 + 1537e: 04d71763 bne a4,a3,153cc + 15382: 3bb8 lbu a4,19(a5) + 15384: 53a8 lw a0,96(a5) + 15386: 4685 li a3,1 + 15388: 00176713 ori a4,a4,1 + 1538c: bbb8 sb a4,19(a5) + 1538e: 214c lbu a1,4(a0) + 15390: 4711 li a4,4 + 15392: 02b76a63 bltu a4,a1,153c6 + 15396: 3130 lbu a2,3(a0) + 15398: 02c76763 bltu a4,a2,153c6 + 1539c: fff58713 addi a4,a1,-1 + 153a0: fff60693 addi a3,a2,-1 + 153a4: 8ef1 and a3,a3,a2 + 153a6: 8f6d and a4,a4,a1 + 153a8: 8f55 or a4,a4,a3 + 153aa: 4685 li a3,1 + 153ac: ef09 bnez a4,153c6 + 153ae: 2178 lbu a4,6(a0) + 153b0: 3154 lbu a3,5(a0) + 153b2: 12b78b23 sb a1,310(a5) + 153b6: 0722 slli a4,a4,0x8 + 153b8: 8f55 or a4,a4,a3 + 153ba: 12e79c23 sh a4,312(a5) + 153be: 12c78ba3 sb a2,311(a5) + 153c2: 05a00693 li a3,90 + 153c6: a794 sb a3,8(a5) + 153c8: 4501 li a0,0 + 153ca: 8082 ret + 153cc: 8082 ret + +000153ce : +llConnectionParamReq(): + 153ce: 3538 lbu a4,11(a0) + 153d0: 47e1 li a5,24 + 153d2: 12f71063 bne a4,a5,154f2 + 153d6: 11255783 lhu a5,274(a0) + 153da: 1141 addi sp,sp,-16 + 153dc: c422 sw s0,8(sp) + 153de: c606 sw ra,12(sp) + 153e0: c226 sw s1,4(sp) + 153e2: 8b89 andi a5,a5,2 + 153e4: 842a mv s0,a0 + 153e6: 4505 li a0,1 + 153e8: cbf9 beqz a5,154be + 153ea: 502c lw a1,96(s0) + 153ec: 6505 lui a0,0x1 + 153ee: c7a50693 addi a3,a0,-902 # c7a <_sinit-0x386> + 153f2: 21dc lbu a5,4(a1) + 153f4: 31b8 lbu a4,3(a1) + 153f6: 44f9 li s1,30 + 153f8: 07a2 slli a5,a5,0x8 + 153fa: 8fd9 or a5,a5,a4 + 153fc: ffa78713 addi a4,a5,-6 + 15400: 08074733 zext.h a4,a4 + 15404: 0ae6e363 bltu a3,a4,154aa + 15408: 21f8 lbu a4,6(a1) + 1540a: 31d4 lbu a3,5(a1) + 1540c: c8050513 addi a0,a0,-896 + 15410: 0722 slli a4,a4,0x8 + 15412: 8f55 or a4,a4,a3 + 15414: 08e56b63 bltu a0,a4,154aa + 15418: 08f76963 bltu a4,a5,154aa + 1541c: 2590 lbu a2,8(a1) + 1541e: 31f4 lbu a3,7(a1) + 15420: 0622 slli a2,a2,0x8 + 15422: 8e55 or a2,a2,a3 + 15424: 1f300693 li a3,499 + 15428: 08c6e163 bltu a3,a2,154aa + 1542c: 25b4 lbu a3,10(a1) + 1542e: 0095c803 lbu a6,9(a1) + 15432: 06a2 slli a3,a3,0x8 + 15434: 0106e6b3 or a3,a3,a6 + 15438: 06d56963 bltu a0,a3,154aa + 1543c: 00160513 addi a0,a2,1 + 15440: 08054533 zext.h a0,a0 + 15444: 02f50533 mul a0,a0,a5 + 15448: 00369813 slli a6,a3,0x3 + 1544c: 05055f63 bge a0,a6,154aa + 15450: 35a8 lbu a0,11(a1) + 15452: c119 beqz a0,15458 + 15454: 04a76b63 bltu a4,a0,154aa + 15458: 02445803 lhu a6,36(s0) + 1545c: 4481 li s1,0 + 1545e: 01079c63 bne a5,a6,15476 + 15462: 00f71a63 bne a4,a5,15476 + 15466: 02645803 lhu a6,38(s0) + 1546a: 00c81663 bne a6,a2,15476 + 1546e: 3406 lhu s1,40(s0) + 15470: 8c95 sub s1,s1,a3 + 15472: 0014b493 seqz s1,s1 + 15476: 08c41a23 sh a2,148(s0) + 1547a: 08a41e23 sh a0,156(s0) + 1547e: 0af41623 sh a5,172(s0) + 15482: 0ae41723 sh a4,174(s0) + 15486: 08d41b23 sh a3,150(s0) + 1548a: 35dc lbu a5,13(a1) + 1548c: 25d8 lbu a4,12(a1) + 1548e: 4631 li a2,12 + 15490: 07a2 slli a5,a5,0x8 + 15492: 8fd9 or a5,a5,a4 + 15494: 08f41f23 sh a5,158(s0) + 15498: 05b9 addi a1,a1,14 + 1549a: 0a040513 addi a0,s0,160 + 1549e: 1ffeb097 auipc ra,0x1ffeb + 154a2: 3be080e7 jalr 958(ra) # 2000085c + 154a6: 4791 li a5,4 + 154a8: b47c sb a5,15(s0) + 154aa: 241c lbu a5,8(s0) + 154ac: 0a940aa3 sb s1,181(s0) + 154b0: 4705 li a4,1 + 154b2: 00e79b63 bne a5,a4,154c8 + 154b6: 04100793 li a5,65 + 154ba: a41c sb a5,8(s0) + 154bc: 4501 li a0,0 + 154be: 40b2 lw ra,12(sp) + 154c0: 4422 lw s0,8(sp) + 154c2: 4492 lw s1,4(sp) + 154c4: 0141 addi sp,sp,16 + 154c6: 8082 ret + 154c8: 04000713 li a4,64 + 154cc: 00e79a63 bne a5,a4,154e0 + 154d0: 04100793 li a5,65 + 154d4: a41c sb a5,8(s0) + 154d6: 383c lbu a5,19(s0) + 154d8: 0017e793 ori a5,a5,1 + 154dc: b83c sb a5,19(s0) + 154de: bff9 j 154bc + 154e0: 345e lhu a5,44(s0) + 154e2: 0027e793 ori a5,a5,2 + 154e6: b45e sh a5,44(s0) + 154e8: 341c lbu a5,9(s0) + 154ea: f807e793 ori a5,a5,-128 + 154ee: b41c sb a5,9(s0) + 154f0: b7f1 j 154bc + 154f2: 4505 li a0,1 + 154f4: 8082 ret + +000154f6 : +llFeatureReq(): + 154f6: 3538 lbu a4,11(a0) + 154f8: 47a5 li a5,9 + 154fa: 04f71f63 bne a4,a5,15558 + 154fe: 1141 addi sp,sp,-16 + 15500: c422 sw s0,8(sp) + 15502: c606 sw ra,12(sp) + 15504: 2518 lbu a4,8(a0) + 15506: 4785 li a5,1 + 15508: 842a mv s0,a0 + 1550a: 04f71263 bne a4,a5,1554e + 1550e: 512c lw a1,96(a0) + 15510: 4609 li a2,2 + 15512: 10e50513 addi a0,a0,270 + 15516: 058d addi a1,a1,3 + 15518: 1ffeb097 auipc ra,0x1ffeb + 1551c: 344080e7 jalr 836(ra) # 2000085c + 15520: 10e45783 lhu a5,270(s0) + 15524: 670d lui a4,0x3 + 15526: 0d070713 addi a4,a4,208 # 30d0 + 1552a: 8fd9 or a5,a5,a4 + 1552c: 11045703 lhu a4,272(s0) + 15530: 8ff9 and a5,a5,a4 + 15532: 10f41923 sh a5,274(s0) + 15536: 03100793 li a5,49 + 1553a: a41c sb a5,8(s0) + 1553c: 341c lbu a5,9(s0) + 1553e: 4501 li a0,0 + 15540: f807e793 ori a5,a5,-128 + 15544: b41c sb a5,9(s0) + 15546: 40b2 lw ra,12(sp) + 15548: 4422 lw s0,8(sp) + 1554a: 0141 addi sp,sp,16 + 1554c: 8082 ret + 1554e: 391e lhu a5,48(a0) + 15550: 0107e793 ori a5,a5,16 + 15554: b91e sh a5,48(a0) + 15556: b7dd j 1553c + 15558: 4505 li a0,1 + 1555a: 8082 ret + +0001555c : +llChannelMapReq(): + 1555c: 3538 lbu a4,11(a0) + 1555e: 47a1 li a5,8 + 15560: 04f71d63 bne a4,a5,155ba + 15564: 1141 addi sp,sp,-16 + 15566: c226 sw s1,4(sp) + 15568: 5124 lw s1,96(a0) + 1556a: c422 sw s0,8(sp) + 1556c: 4615 li a2,5 + 1556e: 842a mv s0,a0 + 15570: 00348593 addi a1,s1,3 + 15574: 07650513 addi a0,a0,118 + 15578: c606 sw ra,12(sp) + 1557a: 1ffeb097 auipc ra,0x1ffeb + 1557e: 2e2080e7 jalr 738(ra) # 2000085c + 15582: 349c lbu a5,9(s1) + 15584: 2498 lbu a4,8(s1) + 15586: 07a2 slli a5,a5,0x8 + 15588: 8fd9 or a5,a5,a4 + 1558a: 343a lhu a4,42(s0) + 1558c: 06f41e23 sh a5,124(s0) + 15590: 00e78b63 beq a5,a4,155a6 + 15594: 8f99 sub a5,a5,a4 + 15596: 60579793 sext.h a5,a5 + 1559a: 0007c663 bltz a5,155a6 + 1559e: 341c lbu a5,9(s0) + 155a0: 0027e793 ori a5,a5,2 + 155a4: b41c sb a5,9(s0) + 155a6: 341c lbu a5,9(s0) + 155a8: 4501 li a0,0 + 155aa: f807e793 ori a5,a5,-128 + 155ae: b41c sb a5,9(s0) + 155b0: 40b2 lw ra,12(sp) + 155b2: 4422 lw s0,8(sp) + 155b4: 4492 lw s1,4(sp) + 155b6: 0141 addi sp,sp,16 + 155b8: 8082 ret + 155ba: 4505 li a0,1 + 155bc: 8082 ret + +000155be : +llLengthRsp(): + 155be: 3538 lbu a4,11(a0) + 155c0: 47a5 li a5,9 + 155c2: 04f71663 bne a4,a5,1560e + 155c6: 1141 addi sp,sp,-16 + 155c8: c422 sw s0,8(sp) + 155ca: c606 sw ra,12(sp) + 155cc: 2514 lbu a3,8(a0) + 155ce: 05000713 li a4,80 + 155d2: 842a mv s0,a0 + 155d4: 4785 li a5,1 + 155d6: 02e69263 bne a3,a4,155fa + 155da: a6dff0ef jal ra,15046 + 155de: e11d bnez a0,15604 + 155e0: 345e lhu a5,44(s0) + 155e2: 0a040aa3 sb zero,181(s0) + 155e6: 1007e793 ori a5,a5,256 + 155ea: b45e sh a5,44(s0) + 155ec: 341c lbu a5,9(s0) + 155ee: f807e793 ori a5,a5,-128 + 155f2: b41c sb a5,9(s0) + 155f4: 4785 li a5,1 + 155f6: a41c sb a5,8(s0) + 155f8: 4781 li a5,0 + 155fa: 40b2 lw ra,12(sp) + 155fc: 4422 lw s0,8(sp) + 155fe: 853e mv a0,a5 + 15600: 0141 addi sp,sp,16 + 15602: 8082 ret + 15604: 383c lbu a5,19(s0) + 15606: 0017e793 ori a5,a5,1 + 1560a: b83c sb a5,19(s0) + 1560c: b7c5 j 155ec + 1560e: 4785 li a5,1 + 15610: 853e mv a0,a5 + 15612: 8082 ret + +00015614 : +llLengthReq(): + 15614: 3538 lbu a4,11(a0) + 15616: 47a5 li a5,9 + 15618: 00f70963 beq a4,a5,1562a + 1561c: 4505 li a0,1 + 1561e: 8082 ret + 15620: 4505 li a0,1 + 15622: 40b2 lw ra,12(sp) + 15624: 4422 lw s0,8(sp) + 15626: 0141 addi sp,sp,16 + 15628: 8082 ret + 1562a: 11255783 lhu a5,274(a0) + 1562e: 1141 addi sp,sp,-16 + 15630: c422 sw s0,8(sp) + 15632: c606 sw ra,12(sp) + 15634: 0207f793 andi a5,a5,32 + 15638: 842a mv s0,a0 + 1563a: d3fd beqz a5,15620 + 1563c: a0bff0ef jal ra,15046 + 15640: 4785 li a5,1 + 15642: fcf50fe3 beq a0,a5,15620 + 15646: 2418 lbu a4,8(s0) + 15648: 00f71763 bne a4,a5,15656 + 1564c: 05100793 li a5,81 + 15650: a41c sb a5,8(s0) + 15652: 4501 li a0,0 + 15654: b7f9 j 15622 + 15656: 381e lhu a5,48(s0) + 15658: 0807e793 ori a5,a5,128 + 1565c: b81e sh a5,48(s0) + 1565e: bfd5 j 15652 + +00015660 : +llEncReq(): + 15660: 3538 lbu a4,11(a0) + 15662: 47dd li a5,23 + 15664: 12f71463 bne a4,a5,1578c + 15668: 7179 addi sp,sp,-48 + 1566a: d226 sw s1,36(sp) + 1566c: 5124 lw s1,96(a0) + 1566e: d422 sw s0,40(sp) + 15670: 4621 li a2,8 + 15672: 842a mv s0,a0 + 15674: 00348593 addi a1,s1,3 + 15678: 10450513 addi a0,a0,260 + 1567c: d606 sw ra,44(sp) + 1567e: ce4e sw s3,28(sp) + 15680: d04a sw s2,32(sp) + 15682: 1ffeb097 auipc ra,0x1ffeb + 15686: 1da080e7 jalr 474(ra) # 2000085c + 1568a: 24dc lbu a5,12(s1) + 1568c: 34b8 lbu a4,11(s1) + 1568e: 10040993 addi s3,s0,256 + 15692: 07a2 slli a5,a5,0x8 + 15694: 8fd9 or a5,a5,a4 + 15696: 10f41623 sh a5,268(s0) + 1569a: 1ffeb097 auipc ra,0x1ffeb + 1569e: 17c080e7 jalr 380(ra) # 20000816 + 156a2: c42a sw a0,8(sp) + 156a4: 1ffeb097 auipc ra,0x1ffeb + 156a8: 172080e7 jalr 370(ra) # 20000816 + 156ac: c62a sw a0,12(sp) + 156ae: 002c addi a1,sp,8 + 156b0: 0f840513 addi a0,s0,248 + 156b4: 4621 li a2,8 + 156b6: 1ffeb097 auipc ra,0x1ffeb + 156ba: 1a6080e7 jalr 422(ra) # 2000085c + 156be: 34fc lbu a5,15(s1) + 156c0: 24f8 lbu a4,14(s1) + 156c2: 854e mv a0,s3 + 156c4: 07a2 slli a5,a5,0x8 + 156c6: 0742 slli a4,a4,0x10 + 156c8: 97ba add a5,a5,a4 + 156ca: 2898 lbu a4,16(s1) + 156cc: 002c addi a1,sp,8 + 156ce: 4611 li a2,4 + 156d0: 97ba add a5,a5,a4 + 156d2: 34d8 lbu a4,13(s1) + 156d4: 0762 slli a4,a4,0x18 + 156d6: 97ba add a5,a5,a4 + 156d8: 0cf42e23 sw a5,220(s0) + 156dc: 38bc lbu a5,19(s1) + 156de: 28b8 lbu a4,18(s1) + 156e0: 07a2 slli a5,a5,0x8 + 156e2: 0742 slli a4,a4,0x10 + 156e4: 97ba add a5,a5,a4 + 156e6: 28d8 lbu a4,20(s1) + 156e8: 97ba add a5,a5,a4 + 156ea: 3898 lbu a4,17(s1) + 156ec: 0762 slli a4,a4,0x18 + 156ee: 97ba add a5,a5,a4 + 156f0: 0cf42c23 sw a5,216(s0) + 156f4: 0f944703 lbu a4,249(s0) + 156f8: 0fa44783 lbu a5,250(s0) + 156fc: 0742 slli a4,a4,0x10 + 156fe: 07a2 slli a5,a5,0x8 + 15700: 97ba add a5,a5,a4 + 15702: 0fb44703 lbu a4,251(s0) + 15706: 97ba add a5,a5,a4 + 15708: 0f844703 lbu a4,248(s0) + 1570c: 0762 slli a4,a4,0x18 + 1570e: 97ba add a5,a5,a4 + 15710: 0cf42a23 sw a5,212(s0) + 15714: 0fd44703 lbu a4,253(s0) + 15718: 0fe44783 lbu a5,254(s0) + 1571c: 0742 slli a4,a4,0x10 + 1571e: 07a2 slli a5,a5,0x8 + 15720: 97ba add a5,a5,a4 + 15722: 0ff44703 lbu a4,255(s0) + 15726: 97ba add a5,a5,a4 + 15728: 0fc44703 lbu a4,252(s0) + 1572c: 0762 slli a4,a4,0x18 + 1572e: 97ba add a5,a5,a4 + 15730: 0cf42823 sw a5,208(s0) + 15734: 47a2 lw a5,8(sp) + 15736: 00034737 lui a4,0x34 + 1573a: 3fd70713 addi a4,a4,1021 # 343fd <_data_lma+0x18e41> + 1573e: 02e787b3 mul a5,a5,a4 + 15742: 0026a737 lui a4,0x26a + 15746: ec370713 addi a4,a4,-317 # 269ec3 <_data_lma+0x24e907> + 1574a: 97ba add a5,a5,a4 + 1574c: c43e sw a5,8(sp) + 1574e: 1ffeb097 auipc ra,0x1ffeb + 15752: 10e080e7 jalr 270(ra) # 2000085c + 15756: 28fc lbu a5,22(s1) + 15758: 38d8 lbu a4,21(s1) + 1575a: 4501 li a0,0 + 1575c: 07a2 slli a5,a5,0x8 + 1575e: 8fd9 or a5,a5,a4 + 15760: 38f8 lbu a4,23(s1) + 15762: 0742 slli a4,a4,0x10 + 15764: 8f5d or a4,a4,a5 + 15766: 2c9c lbu a5,24(s1) + 15768: 07e2 slli a5,a5,0x18 + 1576a: 8fd9 or a5,a5,a4 + 1576c: 0ef42823 sw a5,240(s0) + 15770: 10042783 lw a5,256(s0) + 15774: 0ef42a23 sw a5,244(s0) + 15778: 02100793 li a5,33 + 1577c: a41c sb a5,8(s0) + 1577e: 50b2 lw ra,44(sp) + 15780: 5422 lw s0,40(sp) + 15782: 5492 lw s1,36(sp) + 15784: 5902 lw s2,32(sp) + 15786: 49f2 lw s3,28(sp) + 15788: 6145 addi sp,sp,48 + 1578a: 8082 ret + 1578c: 4505 li a0,1 + 1578e: 8082 ret + +00015790 : +llPingRsp(): + 15790: 4505 li a0,1 + 15792: 8082 ret + +00015794 : +llPHYRsp(): + 15794: 4505 li a0,1 + 15796: 8082 ret + +00015798 : +llStartEncReq(): + 15798: 4505 li a0,1 + 1579a: 8082 ret + +0001579c : +llFeatureRsp(): + 1579c: 4505 li a0,1 + 1579e: 8082 ret + +000157a0 : +llSlaveFeatureReq(): + 157a0: 4505 li a0,1 + 157a2: 8082 ret + +000157a4 : +llConnectionParamRsp(): + 157a4: 4505 li a0,1 + 157a6: 8082 ret + +000157a8 : +llPingReq(): + 157a8: 4505 li a0,1 + 157aa: 8082 ret + +000157ac : +LL_SendAck(): + 157ac: 215c lbu a5,4(a0) + 157ae: 00050523 sb zero,10(a0) + 157b2: 9bf1 andi a5,a5,-4 + 157b4: 0017e793 ori a5,a5,1 + 157b8: a15c sb a5,4(a0) + 157ba: 4d68 lw a0,92(a0) + 157bc: 00153513 seqz a0,a0 + 157c0: 8082 ret + +000157c2 : +LL_TerminateInd(): + 157c2: 4d7c lw a5,92(a0) + 157c4: 4709 li a4,2 + 157c6: a538 sb a4,10(a0) + 157c8: cf89 beqz a5,157e2 + 157ca: a3b8 sb a4,2(a5) + 157cc: 08e54703 lbu a4,142(a0) + 157d0: b3b8 sb a4,3(a5) + 157d2: 393c lbu a5,19(a0) + 157d4: 0087e793 ori a5,a5,8 + 157d8: b93c sb a5,19(a0) + 157da: 47f1 li a5,28 + 157dc: a51c sb a5,8(a0) + 157de: 4501 li a0,0 + 157e0: 8082 ret + 157e2: 451d li a0,7 + 157e4: 8082 ret + +000157e6 : +LL_EncRsp(): + 157e6: 1141 addi sp,sp,-16 + 157e8: c226 sw s1,4(sp) + 157ea: 4d64 lw s1,92(a0) + 157ec: c606 sw ra,12(sp) + 157ee: c422 sw s0,8(sp) + 157f0: 47b5 li a5,13 + 157f2: a53c sb a5,10(a0) + 157f4: cc9d beqz s1,15832 + 157f6: 4791 li a5,4 + 157f8: 842a mv s0,a0 + 157fa: a0bc sb a5,2(s1) + 157fc: 0f850593 addi a1,a0,248 + 15800: 4621 li a2,8 + 15802: 00348513 addi a0,s1,3 + 15806: 1ffeb097 auipc ra,0x1ffeb + 1580a: 056080e7 jalr 86(ra) # 2000085c + 1580e: 00b48513 addi a0,s1,11 + 15812: 4611 li a2,4 + 15814: 10040593 addi a1,s0,256 + 15818: 1ffeb097 auipc ra,0x1ffeb + 1581c: 044080e7 jalr 68(ra) # 2000085c + 15820: 02200793 li a5,34 + 15824: a41c sb a5,8(s0) + 15826: 4501 li a0,0 + 15828: 40b2 lw ra,12(sp) + 1582a: 4422 lw s0,8(sp) + 1582c: 4492 lw s1,4(sp) + 1582e: 0141 addi sp,sp,16 + 15830: 8082 ret + 15832: 4505 li a0,1 + 15834: bfd5 j 15828 + +00015836 : +LL_StartEncReq(): + 15836: 4785 li a5,1 + 15838: a53c sb a5,10(a0) + 1583a: 4d7c lw a5,92(a0) + 1583c: cb81 beqz a5,1584c + 1583e: 4715 li a4,5 + 15840: a3b8 sb a4,2(a5) + 15842: 02b00793 li a5,43 + 15846: a51c sb a5,8(a0) + 15848: 4501 li a0,0 + 1584a: 8082 ret + 1584c: 4505 li a0,1 + 1584e: 8082 ret + +00015850 : +LL_StartEncRsp(): + 15850: 4785 li a5,1 + 15852: a53c sb a5,10(a0) + 15854: 4d7c lw a5,92(a0) + 15856: cb81 beqz a5,15866 + 15858: 4719 li a4,6 + 1585a: a3b8 sb a4,2(a5) + 1585c: 02d00793 li a5,45 + 15860: a51c sb a5,8(a0) + 15862: 4501 li a0,0 + 15864: 8082 ret + 15866: 4505 li a0,1 + 15868: 8082 ret + +0001586a : +LL_UnknowRsp(): + 1586a: 4789 li a5,2 + 1586c: a53c sb a5,10(a0) + 1586e: 4d7c lw a5,92(a0) + 15870: cb89 beqz a5,15882 + 15872: 471d li a4,7 + 15874: a3b8 sb a4,2(a5) + 15876: 4d7c lw a5,92(a0) + 15878: 0b754703 lbu a4,183(a0) + 1587c: 4501 li a0,0 + 1587e: b3b8 sb a4,3(a5) + 15880: 8082 ret + 15882: 4505 li a0,1 + 15884: 8082 ret + +00015886 : +LL_FeatureRsp(): + 15886: 4d7c lw a5,92(a0) + 15888: c7b1 beqz a5,158d4 + 1588a: 1141 addi sp,sp,-16 + 1588c: c606 sw ra,12(sp) + 1588e: c422 sw s0,8(sp) + 15890: 4725 li a4,9 + 15892: a538 sb a4,10(a0) + 15894: a3b8 sb a4,2(a5) + 15896: 842a mv s0,a0 + 15898: 4d68 lw a0,92(a0) + 1589a: 4621 li a2,8 + 1589c: 4581 li a1,0 + 1589e: 050d addi a0,a0,3 + 158a0: 1ffeb097 auipc ra,0x1ffeb + 158a4: ffa080e7 jalr -6(ra) # 2000089a + 158a8: 4c68 lw a0,92(s0) + 158aa: 11040593 addi a1,s0,272 + 158ae: 4609 li a2,2 + 158b0: 050d addi a0,a0,3 + 158b2: 1ffeb097 auipc ra,0x1ffeb + 158b6: faa080e7 jalr -86(ra) # 2000085c + 158ba: 345e lhu a5,44(s0) + 158bc: 0a040aa3 sb zero,181(s0) + 158c0: 4501 li a0,0 + 158c2: 0207e793 ori a5,a5,32 + 158c6: b45e sh a5,44(s0) + 158c8: 4785 li a5,1 + 158ca: a41c sb a5,8(s0) + 158cc: 40b2 lw ra,12(sp) + 158ce: 4422 lw s0,8(sp) + 158d0: 0141 addi sp,sp,16 + 158d2: 8082 ret + 158d4: 4505 li a0,1 + 158d6: 8082 ret + +000158d8 : +LL_PauseEncRsp(): + 158d8: 4785 li a5,1 + 158da: a53c sb a5,10(a0) + 158dc: 4d7c lw a5,92(a0) + 158de: cb81 beqz a5,158ee + 158e0: 472d li a4,11 + 158e2: a3b8 sb a4,2(a5) + 158e4: 03700793 li a5,55 + 158e8: a51c sb a5,8(a0) + 158ea: 4501 li a0,0 + 158ec: 8082 ret + 158ee: 4505 li a0,1 + 158f0: 8082 ret + +000158f2 : +LL_VersionInd(): + 158f2: 4799 li a5,6 + 158f4: a53c sb a5,10(a0) + 158f6: 4d7c lw a5,92(a0) + 158f8: 4731 li a4,12 + 158fa: a3b8 sb a4,2(a5) + 158fc: 4725 li a4,9 + 158fe: b3b8 sb a4,3(a5) + 15900: fd700713 li a4,-41 + 15904: a3d8 sb a4,4(a5) + 15906: 471d li a4,7 + 15908: b3d8 sb a4,5(a5) + 1590a: 02000713 li a4,32 + 1590e: a3f8 sb a4,6(a5) + 15910: f9100713 li a4,-111 + 15914: b3f8 sb a4,7(a5) + 15916: 08854783 lbu a5,136(a0) + 1591a: 0407f713 andi a4,a5,64 + 1591e: cf01 beqz a4,15936 + 15920: 03a00793 li a5,58 + 15924: a51c sb a5,8(a0) + 15926: 08854783 lbu a5,136(a0) + 1592a: 07f7f793 andi a5,a5,127 + 1592e: 08f50423 sb a5,136(a0) + 15932: 4501 li a0,0 + 15934: 8082 ret + 15936: 8b85 andi a5,a5,1 + 15938: d7fd beqz a5,15926 + 1593a: 355e lhu a5,44(a0) + 1593c: 0a050aa3 sb zero,181(a0) + 15940: 08050423 sb zero,136(a0) + 15944: 0407e793 ori a5,a5,64 + 15948: b55e sh a5,44(a0) + 1594a: bff1 j 15926 + +0001594c : +LL_RejectInd(): + 1594c: 4789 li a5,2 + 1594e: a53c sb a5,10(a0) + 15950: 4d7c lw a5,92(a0) + 15952: cb89 beqz a5,15964 + 15954: 4735 li a4,13 + 15956: a3b8 sb a4,2(a5) + 15958: 4d7c lw a5,92(a0) + 1595a: 0b554703 lbu a4,181(a0) + 1595e: 4501 li a0,0 + 15960: b3b8 sb a4,3(a5) + 15962: 8082 ret + 15964: 4505 li a0,1 + 15966: 8082 ret + +00015968 : +LL_ConnectionParamReq(): + 15968: 1141 addi sp,sp,-16 + 1596a: c422 sw s0,8(sp) + 1596c: c606 sw ra,12(sp) + 1596e: 47e1 li a5,24 + 15970: 842a mv s0,a0 + 15972: a53c sb a5,10(a0) + 15974: 4d68 lw a0,92(a0) + 15976: c551 beqz a0,15a02 + 15978: 47bd li a5,15 + 1597a: a13c sb a5,2(a0) + 1597c: 0ac44783 lbu a5,172(s0) + 15980: 0539 addi a0,a0,14 + 15982: 4631 li a2,12 + 15984: fef50aa3 sb a5,-11(a0) + 15988: 0ad44783 lbu a5,173(s0) + 1598c: 0a040593 addi a1,s0,160 + 15990: fef50b23 sb a5,-10(a0) + 15994: 0ae44783 lbu a5,174(s0) + 15998: fef50ba3 sb a5,-9(a0) + 1599c: 0ae45783 lhu a5,174(s0) + 159a0: 83a1 srli a5,a5,0x8 + 159a2: fef50c23 sb a5,-8(a0) + 159a6: 09444783 lbu a5,148(s0) + 159aa: fef50ca3 sb a5,-7(a0) + 159ae: 09544783 lbu a5,149(s0) + 159b2: fef50d23 sb a5,-6(a0) + 159b6: 09644783 lbu a5,150(s0) + 159ba: fef50da3 sb a5,-5(a0) + 159be: 09645783 lhu a5,150(s0) + 159c2: 83a1 srli a5,a5,0x8 + 159c4: fef50e23 sb a5,-4(a0) + 159c8: 09c45783 lhu a5,156(s0) + 159cc: fef50ea3 sb a5,-3(a0) + 159d0: 09e44783 lbu a5,158(s0) + 159d4: fef50f23 sb a5,-2(a0) + 159d8: 09e45783 lhu a5,158(s0) + 159dc: 83a1 srli a5,a5,0x8 + 159de: fef50fa3 sb a5,-1(a0) + 159e2: 1ffeb097 auipc ra,0x1ffeb + 159e6: e7a080e7 jalr -390(ra) # 2000085c + 159ea: 383c lbu a5,19(s0) + 159ec: 4501 li a0,0 + 159ee: 0047e793 ori a5,a5,4 + 159f2: b83c sb a5,19(s0) + 159f4: 04000793 li a5,64 + 159f8: a41c sb a5,8(s0) + 159fa: 40b2 lw ra,12(sp) + 159fc: 4422 lw s0,8(sp) + 159fe: 0141 addi sp,sp,16 + 15a00: 8082 ret + 15a02: 4505 li a0,1 + 15a04: bfdd j 159fa + +00015a06 : +LL_ConnectionParamRsp(): + 15a06: 1141 addi sp,sp,-16 + 15a08: c422 sw s0,8(sp) + 15a0a: c606 sw ra,12(sp) + 15a0c: 47e1 li a5,24 + 15a0e: 842a mv s0,a0 + 15a10: a53c sb a5,10(a0) + 15a12: 4d68 lw a0,92(a0) + 15a14: c151 beqz a0,15a98 + 15a16: 47c1 li a5,16 + 15a18: a13c sb a5,2(a0) + 15a1a: 0ac44783 lbu a5,172(s0) + 15a1e: 0539 addi a0,a0,14 + 15a20: 4631 li a2,12 + 15a22: fef50aa3 sb a5,-11(a0) + 15a26: 0ad44783 lbu a5,173(s0) + 15a2a: 0a040593 addi a1,s0,160 + 15a2e: fef50b23 sb a5,-10(a0) + 15a32: 0ae44783 lbu a5,174(s0) + 15a36: fef50ba3 sb a5,-9(a0) + 15a3a: 0ae45783 lhu a5,174(s0) + 15a3e: 83a1 srli a5,a5,0x8 + 15a40: fef50c23 sb a5,-8(a0) + 15a44: 09444783 lbu a5,148(s0) + 15a48: fef50ca3 sb a5,-7(a0) + 15a4c: 09544783 lbu a5,149(s0) + 15a50: fef50d23 sb a5,-6(a0) + 15a54: 09644783 lbu a5,150(s0) + 15a58: fef50da3 sb a5,-5(a0) + 15a5c: 09645783 lhu a5,150(s0) + 15a60: 83a1 srli a5,a5,0x8 + 15a62: fef50e23 sb a5,-4(a0) + 15a66: 09c45783 lhu a5,156(s0) + 15a6a: fef50ea3 sb a5,-3(a0) + 15a6e: 09e44783 lbu a5,158(s0) + 15a72: fef50f23 sb a5,-2(a0) + 15a76: 09e45783 lhu a5,158(s0) + 15a7a: 83a1 srli a5,a5,0x8 + 15a7c: fef50fa3 sb a5,-1(a0) + 15a80: 1ffeb097 auipc ra,0x1ffeb + 15a84: ddc080e7 jalr -548(ra) # 2000085c + 15a88: 04400793 li a5,68 + 15a8c: a41c sb a5,8(s0) + 15a8e: 4501 li a0,0 + 15a90: 40b2 lw ra,12(sp) + 15a92: 4422 lw s0,8(sp) + 15a94: 0141 addi sp,sp,16 + 15a96: 8082 ret + 15a98: 4505 li a0,1 + 15a9a: bfdd j 15a90 + +00015a9c : +LL_RejectIndExt(): + 15a9c: 478d li a5,3 + 15a9e: a53c sb a5,10(a0) + 15aa0: 4d7c lw a5,92(a0) + 15aa2: cb99 beqz a5,15ab8 + 15aa4: 4745 li a4,17 + 15aa6: a3b8 sb a4,2(a5) + 15aa8: 0b654703 lbu a4,182(a0) + 15aac: b3b8 sb a4,3(a5) + 15aae: 0b554703 lbu a4,181(a0) + 15ab2: 4501 li a0,0 + 15ab4: a3d8 sb a4,4(a5) + 15ab6: 8082 ret + 15ab8: 4505 li a0,1 + 15aba: 8082 ret + +00015abc : +LL_LengthReq(): + 15abc: 4d7c lw a5,92(a0) + 15abe: c3bd beqz a5,15b24 + 15ac0: 4725 li a4,9 + 15ac2: a538 sb a4,10(a0) + 15ac4: 4751 li a4,20 + 15ac6: a3b8 sb a4,2(a5) + 15ac8: 11654703 lbu a4,278(a0) + 15acc: 11855603 lhu a2,280(a0) + 15ad0: 6685 lui a3,0x1 + 15ad2: b3b8 sb a4,3(a5) + 15ad4: 11655703 lhu a4,278(a0) + 15ad8: 84868693 addi a3,a3,-1976 # 848 <_sinit-0x7b8> + 15adc: 0ad65633 minu a2,a2,a3 + 15ae0: 8321 srli a4,a4,0x8 + 15ae2: a3d8 sb a4,4(a5) + 15ae4: 11a54703 lbu a4,282(a0) + 15ae8: 080645b3 zext.h a1,a2 + 15aec: b3f8 sb a4,7(a5) + 15aee: 11a55703 lhu a4,282(a0) + 15af2: 8321 srli a4,a4,0x8 + 15af4: a798 sb a4,8(a5) + 15af6: 11c55703 lhu a4,284(a0) + 15afa: b3d0 sb a2,5(a5) + 15afc: 0085d613 srli a2,a1,0x8 + 15b00: 0ad75733 minu a4,a4,a3 + 15b04: b798 sb a4,9(a5) + 15b06: 080746b3 zext.h a3,a4 + 15b0a: 0086d713 srli a4,a3,0x8 + 15b0e: a3f0 sb a2,6(a5) + 15b10: a7b8 sb a4,10(a5) + 15b12: 393c lbu a5,19(a0) + 15b14: 0047e793 ori a5,a5,4 + 15b18: b93c sb a5,19(a0) + 15b1a: 05000793 li a5,80 + 15b1e: a51c sb a5,8(a0) + 15b20: 4501 li a0,0 + 15b22: 8082 ret + 15b24: 4505 li a0,1 + 15b26: 8082 ret + +00015b28 : +LL_LengthRsp(): + 15b28: 4d7c lw a5,92(a0) + 15b2a: cfbd beqz a5,15ba8 + 15b2c: 4725 li a4,9 + 15b2e: a538 sb a4,10(a0) + 15b30: 4755 li a4,21 + 15b32: a3b8 sb a4,2(a5) + 15b34: 11654703 lbu a4,278(a0) + 15b38: 11855603 lhu a2,280(a0) + 15b3c: 6685 lui a3,0x1 + 15b3e: b3b8 sb a4,3(a5) + 15b40: 11655703 lhu a4,278(a0) + 15b44: 84868693 addi a3,a3,-1976 # 848 <_sinit-0x7b8> + 15b48: 0ad65633 minu a2,a2,a3 + 15b4c: 8321 srli a4,a4,0x8 + 15b4e: a3d8 sb a4,4(a5) + 15b50: 11a54703 lbu a4,282(a0) + 15b54: 080645b3 zext.h a1,a2 + 15b58: b3f8 sb a4,7(a5) + 15b5a: 11a55703 lhu a4,282(a0) + 15b5e: 8321 srli a4,a4,0x8 + 15b60: a798 sb a4,8(a5) + 15b62: 11c55703 lhu a4,284(a0) + 15b66: b3d0 sb a2,5(a5) + 15b68: 0085d613 srli a2,a1,0x8 + 15b6c: 0ad75733 minu a4,a4,a3 + 15b70: b798 sb a4,9(a5) + 15b72: 080746b3 zext.h a3,a4 + 15b76: 0086d713 srli a4,a3,0x8 + 15b7a: a3f0 sb a2,6(a5) + 15b7c: a7b8 sb a4,10(a5) + 15b7e: 11454783 lbu a5,276(a0) + 15b82: 0a050aa3 sb zero,181(a0) + 15b86: c789 beqz a5,15b90 + 15b88: 355e lhu a5,44(a0) + 15b8a: 1007e793 ori a5,a5,256 + 15b8e: b55e sh a5,44(a0) + 15b90: 357e lhu a5,46(a0) + 15b92: 28b01713 bseti a4,zero,0xb + 15b96: 8f7d and a4,a4,a5 + 15b98: c701 beqz a4,15ba0 + 15b9a: 48b79793 bclri a5,a5,0xb + 15b9e: b57e sh a5,46(a0) + 15ba0: 4785 li a5,1 + 15ba2: a51c sb a5,8(a0) + 15ba4: 4501 li a0,0 + 15ba6: 8082 ret + 15ba8: 4505 li a0,1 + 15baa: 8082 ret + +00015bac : +LL_PHYReq(): + 15bac: 478d li a5,3 + 15bae: a53c sb a5,10(a0) + 15bb0: 4d7c lw a5,92(a0) + 15bb2: 4759 li a4,22 + 15bb4: a3b8 sb a4,2(a5) + 15bb6: 13254703 lbu a4,306(a0) + 15bba: b3b8 sb a4,3(a5) + 15bbc: 13354703 lbu a4,307(a0) + 15bc0: a3d8 sb a4,4(a5) + 15bc2: 8b05 andi a4,a4,1 + 15bc4: 12c55783 lhu a5,300(a0) + 15bc8: c71d beqz a4,15bf6 + 15bca: fb078793 addi a5,a5,-80 + 15bce: 4721 li a4,8 + 15bd0: 02e7c7b3 div a5,a5,a4 + 15bd4: 12a55703 lhu a4,298(a0) + 15bd8: 0807c7b3 zext.h a5,a5 + 15bdc: 0af757b3 minu a5,a4,a5 + 15be0: 10f50aa3 sb a5,277(a0) + 15be4: 393c lbu a5,19(a0) + 15be6: 0047e793 ori a5,a5,4 + 15bea: b93c sb a5,19(a0) + 15bec: 05500793 li a5,85 + 15bf0: a51c sb a5,8(a0) + 15bf2: 4501 li a0,0 + 15bf4: 8082 ret + 15bf6: fbc78793 addi a5,a5,-68 + 15bfa: 4711 li a4,4 + 15bfc: bfd1 j 15bd0 + +00015bfe : +LL_PHYRsp(): + 15bfe: 478d li a5,3 + 15c00: a53c sb a5,10(a0) + 15c02: 4d7c lw a5,92(a0) + 15c04: 475d li a4,23 + 15c06: a3b8 sb a4,2(a5) + 15c08: 13254703 lbu a4,306(a0) + 15c0c: b3b8 sb a4,3(a5) + 15c0e: 13354683 lbu a3,307(a0) + 15c12: a3d4 sb a3,4(a5) + 15c14: 13754683 lbu a3,311(a0) + 15c18: 12c55783 lhu a5,300(a0) + 15c1c: 8f75 and a4,a4,a3 + 15c1e: 8b05 andi a4,a4,1 + 15c20: c71d beqz a4,15c4e + 15c22: fb078793 addi a5,a5,-80 + 15c26: 4721 li a4,8 + 15c28: 02e7c7b3 div a5,a5,a4 + 15c2c: 12a55703 lhu a4,298(a0) + 15c30: 0807c7b3 zext.h a5,a5 + 15c34: 0af757b3 minu a5,a4,a5 + 15c38: 10f50aa3 sb a5,277(a0) + 15c3c: 05800793 li a5,88 + 15c40: a51c sb a5,8(a0) + 15c42: 393c lbu a5,19(a0) + 15c44: 0047e793 ori a5,a5,4 + 15c48: b93c sb a5,19(a0) + 15c4a: 4501 li a0,0 + 15c4c: 8082 ret + 15c4e: fbc78793 addi a5,a5,-68 + 15c52: 4711 li a4,4 + 15c54: bfd1 j 15c28 + +00015c56 : +printchar(): + 15c56: 1101 addi sp,sp,-32 + 15c58: ce06 sw ra,28(sp) + 15c5a: c62e sw a1,12(sp) + 15c5c: cd0d beqz a0,15c96 + 15c5e: 4118 lw a4,0(a0) + 15c60: 87aa mv a5,a0 + 15c62: c305 beqz a4,15c82 + 15c64: 4158 lw a4,4(a0) + 15c66: 557d li a0,-1 + 15c68: cb11 beqz a4,15c7c + 15c6a: 4685 li a3,1 + 15c6c: 00d71b63 bne a4,a3,15c82 + 15c70: 4798 lw a4,8(a5) + 15c72: 00070023 sb zero,0(a4) + 15c76: 0007a223 sw zero,4(a5) + 15c7a: 4505 li a0,1 + 15c7c: 40f2 lw ra,28(sp) + 15c7e: 6105 addi sp,sp,32 + 15c80: 8082 ret + 15c82: 4798 lw a4,8(a5) + 15c84: 46b2 lw a3,12(sp) + 15c86: a314 sb a3,0(a4) + 15c88: 4798 lw a4,8(a5) + 15c8a: 0705 addi a4,a4,1 + 15c8c: c798 sw a4,8(a5) + 15c8e: 43d8 lw a4,4(a5) + 15c90: 177d addi a4,a4,-1 + 15c92: c3d8 sw a4,4(a5) + 15c94: b7dd j 15c7a + 15c96: 4605 li a2,1 + 15c98: 006c addi a1,sp,12 + 15c9a: cbaec0ef jal ra,2154 <_write> + 15c9e: bff1 j 15c7a + +00015ca0 : +prints(): + 15ca0: 1101 addi sp,sp,-32 + 15ca2: cc22 sw s0,24(sp) + 15ca4: ca26 sw s1,20(sp) + 15ca6: c452 sw s4,8(sp) + 15ca8: c256 sw s5,4(sp) + 15caa: c05a sw s6,0(sp) + 15cac: ce06 sw ra,28(sp) + 15cae: c84a sw s2,16(sp) + 15cb0: c64e sw s3,12(sp) + 15cb2: 8a2a mv s4,a0 + 15cb4: 8aae mv s5,a1 + 15cb6: 8432 mv s0,a2 + 15cb8: 84ba mv s1,a4 + 15cba: 0016fb13 andi s6,a3,1 + 15cbe: 08064c63 bltz a2,15d56 + 15cc2: 852e mv a0,a1 + 15cc4: 8936 mv s2,a3 + 15cc6: 66b010ef jal ra,17b30 + 15cca: 89aa mv s3,a0 + 15ccc: 08855363 bge a0,s0,15d52 + 15cd0: 02955e63 bge a0,s1,15d0c + 15cd4: 8c05 sub s0,s0,s1 + 15cd6: 080b1b63 bnez s6,15d6c + 15cda: 02000b13 li s6,32 + 15cde: 8922 mv s2,s0 + 15ce0: 09204063 bgtz s2,15d60 + 15ce4: 4901 li s2,0 + 15ce6: 0b246933 max s2,s0,s2 + 15cea: 41240433 sub s0,s0,s2 + 15cee: 0299da63 bge s3,s1,15d22 + 15cf2: 413484b3 sub s1,s1,s3 + 15cf6: 89a6 mv s3,s1 + 15cf8: 03000593 li a1,48 + 15cfc: 8552 mv a0,s4 + 15cfe: 19fd addi s3,s3,-1 + 15d00: f57ff0ef jal ra,15c56 + 15d04: fe099ae3 bnez s3,15cf8 + 15d08: 9926 add s2,s2,s1 + 15d0a: a821 j 15d22 + 15d0c: 8c09 sub s0,s0,a0 + 15d0e: 00297913 andi s2,s2,2 + 15d12: fc0902e3 beqz s2,15cd6 + 15d16: f0e1 bnez s1,15cd6 + 15d18: 040b0163 beqz s6,15d5a + 15d1c: 4901 li s2,0 + 15d1e: 03000b13 li s6,48 + 15d22: 84ca mv s1,s2 + 15d24: 412487b3 sub a5,s1,s2 + 15d28: 97d6 add a5,a5,s5 + 15d2a: 00078583 lb a1,0(a5) + 15d2e: e1b9 bnez a1,15d74 + 15d30: 8922 mv s2,s0 + 15d32: 05204663 bgtz s2,15d7e + 15d36: 4781 li a5,0 + 15d38: 40f2 lw ra,28(sp) + 15d3a: 0af46533 max a0,s0,a5 + 15d3e: 4462 lw s0,24(sp) + 15d40: 4942 lw s2,16(sp) + 15d42: 49b2 lw s3,12(sp) + 15d44: 4a22 lw s4,8(sp) + 15d46: 4a92 lw s5,4(sp) + 15d48: 4b02 lw s6,0(sp) + 15d4a: 9526 add a0,a0,s1 + 15d4c: 44d2 lw s1,20(sp) + 15d4e: 6105 addi sp,sp,32 + 15d50: 8082 ret + 15d52: 4401 li s0,0 + 15d54: bf6d j 15d0e + 15d56: 4981 li s3,0 + 15d58: bfbd j 15cd6 + 15d5a: 03000b13 li s6,48 + 15d5e: b741 j 15cde + 15d60: 85da mv a1,s6 + 15d62: 8552 mv a0,s4 + 15d64: ef3ff0ef jal ra,15c56 + 15d68: 197d addi s2,s2,-1 + 15d6a: bf9d j 15ce0 + 15d6c: 02000b13 li s6,32 + 15d70: 4901 li s2,0 + 15d72: bfb5 j 15cee + 15d74: 8552 mv a0,s4 + 15d76: ee1ff0ef jal ra,15c56 + 15d7a: 0485 addi s1,s1,1 + 15d7c: b765 j 15d24 + 15d7e: 85da mv a1,s6 + 15d80: 8552 mv a0,s4 + 15d82: ed5ff0ef jal ra,15c56 + 15d86: 197d addi s2,s2,-1 + 15d88: b76d j 15d32 + +00015d8a : +printInt(): + 15d8a: 7139 addi sp,sp,-64 + 15d8c: da26 sw s1,52(sp) + 15d8e: d64e sw s3,44(sp) + 15d90: de06 sw ra,60(sp) + 15d92: dc22 sw s0,56(sp) + 15d94: d84a sw s2,48(sp) + 15d96: d452 sw s4,40(sp) + 15d98: d256 sw s5,36(sp) + 15d9a: d05a sw s6,32(sp) + 15d9c: 84ba mv s1,a4 + 15d9e: 89be mv s3,a5 + 15da0: e585 bnez a1,15dc8 + 15da2: 03000793 li a5,48 + 15da6: 4701 li a4,0 + 15da8: 86ce mv a3,s3 + 15daa: 8626 mv a2,s1 + 15dac: 002c addi a1,sp,8 + 15dae: 847c sh a5,8(sp) + 15db0: ef1ff0ef jal ra,15ca0 + 15db4: 50f2 lw ra,60(sp) + 15db6: 5462 lw s0,56(sp) + 15db8: 54d2 lw s1,52(sp) + 15dba: 5942 lw s2,48(sp) + 15dbc: 59b2 lw s3,44(sp) + 15dbe: 5a22 lw s4,40(sp) + 15dc0: 5a92 lw s5,36(sp) + 15dc2: 5b02 lw s6,32(sp) + 15dc4: 6121 addi sp,sp,64 + 15dc6: 8082 ret + 15dc8: 892a mv s2,a0 + 15dca: 8436 mv s0,a3 + 15dcc: 8ac2 mv s5,a6 + 15dce: 8b46 mv s6,a7 + 15dd0: ca91 beqz a3,15de4 + 15dd2: 47a9 li a5,10 + 15dd4: 4401 li s0,0 + 15dd6: 00f61763 bne a2,a5,15de4 + 15dda: 0005d563 bgez a1,15de4 + 15dde: 40b005b3 neg a1,a1 + 15de2: 4405 li s0,1 + 15de4: 00010fa3 sb zero,31(sp) + 15de8: 01f10713 addi a4,sp,31 + 15dec: 46a5 li a3,9 + 15dee: fc6a8513 addi a0,s5,-58 + 15df2: 02c5f7b3 remu a5,a1,a2 + 15df6: 00f6d363 bge a3,a5,15dfc + 15dfa: 97aa add a5,a5,a0 + 15dfc: 03078793 addi a5,a5,48 + 15e00: fef70fa3 sb a5,-1(a4) + 15e04: fff70a13 addi s4,a4,-1 + 15e08: 02c5d7b3 divu a5,a1,a2 + 15e0c: 04c5f963 bgeu a1,a2,15e5e + 15e10: c819 beqz s0,15e26 + 15e12: c8a9 beqz s1,15e64 + 15e14: 0029f793 andi a5,s3,2 + 15e18: c7b1 beqz a5,15e64 + 15e1a: 02d00593 li a1,45 + 15e1e: 854a mv a0,s2 + 15e20: e37ff0ef jal ra,15c56 + 15e24: 14fd addi s1,s1,-1 + 15e26: 0049f793 andi a5,s3,4 + 15e2a: c38d beqz a5,15e4c + 15e2c: 06100793 li a5,97 + 15e30: 03000593 li a1,48 + 15e34: 854a mv a0,s2 + 15e36: 02fa9f63 bne s5,a5,15e74 + 15e3a: e1dff0ef jal ra,15c56 + 15e3e: 07800593 li a1,120 + 15e42: 854a mv a0,s2 + 15e44: e13ff0ef jal ra,15c56 + 15e48: 0409 addi s0,s0,2 + 15e4a: 14f9 addi s1,s1,-2 + 15e4c: 875a mv a4,s6 + 15e4e: 86ce mv a3,s3 + 15e50: 8626 mv a2,s1 + 15e52: 85d2 mv a1,s4 + 15e54: 854a mv a0,s2 + 15e56: e4bff0ef jal ra,15ca0 + 15e5a: 9522 add a0,a0,s0 + 15e5c: bfa1 j 15db4 + 15e5e: 85be mv a1,a5 + 15e60: 8752 mv a4,s4 + 15e62: bf41 j 15df2 + 15e64: 02d00793 li a5,45 + 15e68: fefa0fa3 sb a5,-1(s4) + 15e6c: 4401 li s0,0 + 15e6e: ffe70a13 addi s4,a4,-2 + 15e72: bf55 j 15e26 + 15e74: de3ff0ef jal ra,15c56 + 15e78: 05800593 li a1,88 + 15e7c: b7d9 j 15e42 + +00015e7e : +printLongLongInt(): + 15e7e: 4501 li a0,0 + 15e80: 8082 ret + +00015e82 : +printDouble(): + 15e82: 4501 li a0,0 + 15e84: 8082 ret + +00015e86 : +print(): + 15e86: 7139 addi sp,sp,-64 + 15e88: d05a sw s6,32(sp) + 15e8a: 6b69 lui s6,0x1a + 15e8c: dc22 sw s0,56(sp) + 15e8e: da26 sw s1,52(sp) + 15e90: d84a sw s2,48(sp) + 15e92: d64e sw s3,44(sp) + 15e94: d452 sw s4,40(sp) + 15e96: d256 sw s5,36(sp) + 15e98: ce5e sw s7,28(sp) + 15e9a: ca66 sw s9,20(sp) + 15e9c: c86a sw s10,16(sp) + 15e9e: de06 sw ra,60(sp) + 15ea0: cc62 sw s8,24(sp) + 15ea2: 89aa mv s3,a0 + 15ea4: 892e mv s2,a1 + 15ea6: 8432 mv s0,a2 + 15ea8: 4a01 li s4,0 + 15eaa: 4481 li s1,0 + 15eac: 02500b93 li s7,37 + 15eb0: 02d00a93 li s5,45 + 15eb4: 4ca5 li s9,9 + 15eb6: 4d29 li s10,10 + 15eb8: f68b0b13 addi s6,s6,-152 # 19f68 + 15ebc: 00090583 lb a1,0(s2) + 15ec0: e595 bnez a1,15eec + 15ec2: 00098663 beqz s3,15ece + 15ec6: 4581 li a1,0 + 15ec8: 854e mv a0,s3 + 15eca: d8dff0ef jal ra,15c56 + 15ece: 50f2 lw ra,60(sp) + 15ed0: 5462 lw s0,56(sp) + 15ed2: 5942 lw s2,48(sp) + 15ed4: 59b2 lw s3,44(sp) + 15ed6: 5a22 lw s4,40(sp) + 15ed8: 5a92 lw s5,36(sp) + 15eda: 5b02 lw s6,32(sp) + 15edc: 4bf2 lw s7,28(sp) + 15ede: 4c62 lw s8,24(sp) + 15ee0: 4cd2 lw s9,20(sp) + 15ee2: 4d42 lw s10,16(sp) + 15ee4: 8526 mv a0,s1 + 15ee6: 54d2 lw s1,52(sp) + 15ee8: 6121 addi sp,sp,64 + 15eea: 8082 ret + 15eec: 01758863 beq a1,s7,15efc + 15ef0: 854e mv a0,s3 + 15ef2: d65ff0ef jal ra,15c56 + 15ef6: 0485 addi s1,s1,1 + 15ef8: 0905 addi s2,s2,1 + 15efa: b7c9 j 15ebc + 15efc: 00190783 lb a5,1(s2) + 15f00: 00190c13 addi s8,s2,1 + 15f04: 01779a63 bne a5,s7,15f18 + 15f08: 02500593 li a1,37 + 15f0c: 854e mv a0,s3 + 15f0e: d49ff0ef jal ra,15c56 + 15f12: 0485 addi s1,s1,1 + 15f14: 8962 mv s2,s8 + 15f16: b7cd j 15ef8 + 15f18: d7cd beqz a5,15ec2 + 15f1a: 03578663 beq a5,s5,15f46 + 15f1e: 00facc63 blt s5,a5,15f36 + 15f22: 02300713 li a4,35 + 15f26: 04e78763 beq a5,a4,15f74 + 15f2a: 02b00713 li a4,43 + 15f2e: 04e78063 beq a5,a4,15f6e + 15f32: 4781 li a5,0 + 15f34: a821 j 15f4c + 15f36: 03000713 li a4,48 + 15f3a: fee79ce3 bne a5,a4,15f32 + 15f3e: 00290c13 addi s8,s2,2 + 15f42: 4789 li a5,2 + 15f44: a021 j 15f4c + 15f46: 00290c13 addi s8,s2,2 + 15f4a: 4785 li a5,1 + 15f4c: 000c0703 lb a4,0(s8) # 80000000 <_eusrstack+0x5fffd000> + 15f50: 03570d63 beq a4,s5,15f8a + 15f54: 02eac463 blt s5,a4,15f7c + 15f58: 02300693 li a3,35 + 15f5c: 02d70a63 beq a4,a3,15f90 + 15f60: 02b00693 li a3,43 + 15f64: 02d70863 beq a4,a3,15f94 + 15f68: 8962 mv s2,s8 + 15f6a: 4601 li a2,0 + 15f6c: a825 j 15fa4 + 15f6e: 00290c13 addi s8,s2,2 + 15f72: b7c1 j 15f32 + 15f74: 00290c13 addi s8,s2,2 + 15f78: 4791 li a5,4 + 15f7a: bfc9 j 15f4c + 15f7c: 03000693 li a3,48 + 15f80: fed714e3 bne a4,a3,15f68 + 15f84: 0027e793 ori a5,a5,2 + 15f88: a031 j 15f94 + 15f8a: 0c05 addi s8,s8,1 + 15f8c: 4785 li a5,1 + 15f8e: bfe9 j 15f68 + 15f90: 0047e793 ori a5,a5,4 + 15f94: 0c05 addi s8,s8,1 + 15f96: bfc9 j 15f68 + 15f98: 03a60633 mul a2,a2,s10 + 15f9c: 60471713 sext.b a4,a4 + 15fa0: 0905 addi s2,s2,1 + 15fa2: 963a add a2,a2,a4 + 15fa4: 00090683 lb a3,0(s2) + 15fa8: fd068713 addi a4,a3,-48 + 15fac: 0ff77593 zext.b a1,a4 + 15fb0: febcf4e3 bgeu s9,a1,15f98 + 15fb4: 02e00713 li a4,46 + 15fb8: 4599 li a1,6 + 15fba: 00e69f63 bne a3,a4,15fd8 + 15fbe: 0905 addi s2,s2,1 + 15fc0: 4581 li a1,0 + 15fc2: 46a5 li a3,9 + 15fc4: 4829 li a6,10 + 15fc6: 00090703 lb a4,0(s2) + 15fca: fd070713 addi a4,a4,-48 + 15fce: 0ff77513 zext.b a0,a4 + 15fd2: 02a6f963 bgeu a3,a0,16004 + 15fd6: 8a2e mv s4,a1 + 15fd8: 00090683 lb a3,0(s2) + 15fdc: 06c00713 li a4,108 + 15fe0: 04e68063 beq a3,a4,16020 + 15fe4: 02d74763 blt a4,a3,16012 + 15fe8: 06800713 li a4,104 + 15fec: 06e68b63 beq a3,a4,16062 + 15ff0: 06a00713 li a4,106 + 15ff4: 06e68e63 beq a3,a4,16070 + 15ff8: 04c00713 li a4,76 + 15ffc: 06e68a63 beq a3,a4,16070 + 16000: 4701 li a4,0 + 16002: a03d j 16030 + 16004: 030585b3 mul a1,a1,a6 + 16008: 60471713 sext.b a4,a4 + 1600c: 0905 addi s2,s2,1 + 1600e: 95ba add a1,a1,a4 + 16010: bf5d j 15fc6 + 16012: 07400713 li a4,116 + 16016: 04e68d63 beq a3,a4,16070 + 1601a: 07a00713 li a4,122 + 1601e: bff9 j 15ffc + 16020: 00190503 lb a0,1(s2) + 16024: 470d li a4,3 + 16026: 00d51463 bne a0,a3,1602e + 1602a: 0905 addi s2,s2,1 + 1602c: 4711 li a4,4 + 1602e: 0905 addi s2,s2,1 + 16030: 00090683 lb a3,0(s2) + 16034: 06000513 li a0,96 + 16038: 02d55e63 bge a0,a3,16074 + 1603c: 07800513 li a0,120 + 16040: ead54ce3 blt a0,a3,15ef8 + 16044: 06200513 li a0,98 + 16048: ead558e3 bge a0,a3,15ef8 + 1604c: f9d68693 addi a3,a3,-99 + 16050: 0ff6f693 zext.b a3,a3 + 16054: 4555 li a0,21 + 16056: ead561e3 bltu a0,a3,15ef8 + 1605a: 2166c6b3 sh2add a3,a3,s6 + 1605e: 4294 lw a3,0(a3) + 16060: 8682 jr a3 + 16062: 00190503 lb a0,1(s2) + 16066: 4701 li a4,0 + 16068: fcd514e3 bne a0,a3,16030 + 1606c: 0909 addi s2,s2,2 + 1606e: b7c9 j 16030 + 16070: 0905 addi s2,s2,1 + 16072: b779 j 16000 + 16074: 04700513 li a0,71 + 16078: 02d54463 blt a0,a3,160a0 + 1607c: 04400713 li a4,68 + 16080: 14d74063 blt a4,a3,161c0 + 16084: 04300713 li a4,67 + 16088: e6e698e3 bne a3,a4,15ef8 + 1608c: 4018 lw a4,0(s0) + 1608e: 00440c13 addi s8,s0,4 + 16092: 000106a3 sb zero,13(sp) + 16096: 8658 sb a4,12(sp) + 16098: 86be mv a3,a5 + 1609a: 4701 li a4,0 + 1609c: 006c addi a1,sp,12 + 1609e: a0a1 j 160e6 + 160a0: 05800593 li a1,88 + 160a4: 04100813 li a6,65 + 160a8: e4b698e3 bne a3,a1,15ef8 + 160ac: 4691 li a3,4 + 160ae: 08d71163 bne a4,a3,16130 + 160b2: 00740593 addi a1,s0,7 + 160b6: 99e1 andi a1,a1,-8 + 160b8: 00858413 addi s0,a1,8 + 160bc: 88c2 mv a7,a6 + 160be: 883e mv a6,a5 + 160c0: 4701 li a4,0 + 160c2: 87b2 mv a5,a2 + 160c4: 46c1 li a3,16 + 160c6: 41d0 lw a2,4(a1) + 160c8: 418c lw a1,0(a1) + 160ca: 854e mv a0,s3 + 160cc: db3ff0ef jal ra,15e7e + 160d0: 94aa add s1,s1,a0 + 160d2: b51d j 15ef8 + 160d4: 400c lw a1,0(s0) + 160d6: 00440c13 addi s8,s0,4 + 160da: e581 bnez a1,160e2 + 160dc: 65e9 lui a1,0x1a + 160de: f6058593 addi a1,a1,-160 # 19f60 + 160e2: 8752 mv a4,s4 + 160e4: 86be mv a3,a5 + 160e6: 854e mv a0,s3 + 160e8: bb9ff0ef jal ra,15ca0 + 160ec: a825 j 16124 + 160ee: 4691 li a3,4 + 160f0: 00d71e63 bne a4,a3,1610c + 160f4: 00740593 addi a1,s0,7 + 160f8: 99e1 andi a1,a1,-8 + 160fa: 883e mv a6,a5 + 160fc: 00858413 addi s0,a1,8 + 16100: 06100893 li a7,97 + 16104: 87b2 mv a5,a2 + 16106: 4705 li a4,1 + 16108: 46a9 li a3,10 + 1610a: bf75 j 160c6 + 1610c: 00440c13 addi s8,s0,4 + 16110: 88d2 mv a7,s4 + 16112: 06100813 li a6,97 + 16116: 8732 mv a4,a2 + 16118: 4685 li a3,1 + 1611a: 4629 li a2,10 + 1611c: 400c lw a1,0(s0) + 1611e: 854e mv a0,s3 + 16120: c6bff0ef jal ra,15d8a + 16124: 94aa add s1,s1,a0 + 16126: 8462 mv s0,s8 + 16128: bbc1 j 15ef8 + 1612a: 06100813 li a6,97 + 1612e: bfbd j 160ac + 16130: 00440c13 addi s8,s0,4 + 16134: 88d2 mv a7,s4 + 16136: 8732 mv a4,a2 + 16138: 4681 li a3,0 + 1613a: 4641 li a2,16 + 1613c: b7c5 j 1611c + 1613e: 4691 li a3,4 + 16140: 00d71d63 bne a4,a3,1615a + 16144: 00740593 addi a1,s0,7 + 16148: 99e1 andi a1,a1,-8 + 1614a: 883e mv a6,a5 + 1614c: 00858413 addi s0,a1,8 + 16150: 06100893 li a7,97 + 16154: 87b2 mv a5,a2 + 16156: 4701 li a4,0 + 16158: bf45 j 16108 + 1615a: 00440c13 addi s8,s0,4 + 1615e: 88d2 mv a7,s4 + 16160: 06100813 li a6,97 + 16164: 8732 mv a4,a2 + 16166: 4681 li a3,0 + 16168: bf4d j 1611a + 1616a: 4691 li a3,4 + 1616c: 0047e793 ori a5,a5,4 + 16170: 00d71a63 bne a4,a3,16184 + 16174: 00740593 addi a1,s0,7 + 16178: 99e1 andi a1,a1,-8 + 1617a: 00858413 addi s0,a1,8 + 1617e: 06100893 li a7,97 + 16182: bf35 j 160be + 16184: 00440c13 addi s8,s0,4 + 16188: 88d2 mv a7,s4 + 1618a: 06100813 li a6,97 + 1618e: b765 j 16136 + 16190: 4691 li a3,4 + 16192: 00d71e63 bne a4,a3,161ae + 16196: 00740593 addi a1,s0,7 + 1619a: 99e1 andi a1,a1,-8 + 1619c: 883e mv a6,a5 + 1619e: 00858413 addi s0,a1,8 + 161a2: 06100893 li a7,97 + 161a6: 87b2 mv a5,a2 + 161a8: 4701 li a4,0 + 161aa: 46a1 li a3,8 + 161ac: bf29 j 160c6 + 161ae: 8732 mv a4,a2 + 161b0: 00440c13 addi s8,s0,4 + 161b4: 88d2 mv a7,s4 + 161b6: 06100813 li a6,97 + 161ba: 4681 li a3,0 + 161bc: 4621 li a2,8 + 161be: bfb9 j 1611c + 161c0: 04100893 li a7,65 + 161c4: 00740513 addi a0,s0,7 + 161c8: 9961 andi a0,a0,-8 + 161ca: 883e mv a6,a5 + 161cc: 8732 mv a4,a2 + 161ce: 87ae mv a5,a1 + 161d0: 4150 lw a2,4(a0) + 161d2: 410c lw a1,0(a0) + 161d4: 00850413 addi s0,a0,8 + 161d8: 46a9 li a3,10 + 161da: 854e mv a0,s3 + 161dc: ca7ff0ef jal ra,15e82 + 161e0: bdc5 j 160d0 + 161e2: 06100893 li a7,97 + 161e6: bff9 j 161c4 + +000161e8 : +printf(): + 161e8: 7139 addi sp,sp,-64 + 161ea: d22e sw a1,36(sp) + 161ec: d432 sw a2,40(sp) + 161ee: 85aa mv a1,a0 + 161f0: 1050 addi a2,sp,36 + 161f2: 4501 li a0,0 + 161f4: ce06 sw ra,28(sp) + 161f6: d636 sw a3,44(sp) + 161f8: d83a sw a4,48(sp) + 161fa: da3e sw a5,52(sp) + 161fc: dc42 sw a6,56(sp) + 161fe: de46 sw a7,60(sp) + 16200: c632 sw a2,12(sp) + 16202: c85ff0ef jal ra,15e86 + 16206: 40f2 lw ra,28(sp) + 16208: 6121 addi sp,sp,64 + 1620a: 8082 ret + +0001620c : +sprintf(): + 1620c: 7139 addi sp,sp,-64 + 1620e: d432 sw a2,40(sp) + 16210: da3e sw a5,52(sp) + 16212: c62a sw a0,12(sp) + 16214: 1030 addi a2,sp,40 + 16216: 57fd li a5,-1 + 16218: 0048 addi a0,sp,4 + 1621a: ce06 sw ra,28(sp) + 1621c: d636 sw a3,44(sp) + 1621e: d83a sw a4,48(sp) + 16220: dc42 sw a6,56(sp) + 16222: de46 sw a7,60(sp) + 16224: c202 sw zero,4(sp) + 16226: c43e sw a5,8(sp) + 16228: c032 sw a2,0(sp) + 1622a: c5dff0ef jal ra,15e86 + 1622e: 40f2 lw ra,28(sp) + 16230: 6121 addi sp,sp,64 + 16232: 8082 ret + +00016234 : +puts(): + 16234: 1101 addi sp,sp,-32 + 16236: cc22 sw s0,24(sp) + 16238: ca26 sw s1,20(sp) + 1623a: ce06 sw ra,28(sp) + 1623c: 00050783 lb a5,0(a0) + 16240: 84aa mv s1,a0 + 16242: 4401 li s0,0 + 16244: 87dc sb a5,15(sp) + 16246: 0405 addi s0,s0,1 + 16248: ef99 bnez a5,16266 + 1624a: 47a9 li a5,10 + 1624c: 00f10593 addi a1,sp,15 + 16250: 4605 li a2,1 + 16252: 4501 li a0,0 + 16254: 87dc sb a5,15(sp) + 16256: effeb0ef jal ra,2154 <_write> + 1625a: 40f2 lw ra,28(sp) + 1625c: 8522 mv a0,s0 + 1625e: 4462 lw s0,24(sp) + 16260: 44d2 lw s1,20(sp) + 16262: 6105 addi sp,sp,32 + 16264: 8082 ret + 16266: 4605 li a2,1 + 16268: 00f10593 addi a1,sp,15 + 1626c: 4501 li a0,0 + 1626e: ee7eb0ef jal ra,2154 <_write> + 16272: 008487b3 add a5,s1,s0 + 16276: 00078783 lb a5,0(a5) + 1627a: b7e9 j 16244 + +0001627c <__lshrdi3>: +__lshrdi3(): + 1627c: ce09 beqz a2,16296 <__lshrdi3+0x1a> + 1627e: 02000793 li a5,32 + 16282: 8f91 sub a5,a5,a2 + 16284: 00f05a63 blez a5,16298 <__lshrdi3+0x1c> + 16288: 00f597b3 sll a5,a1,a5 + 1628c: 00c55533 srl a0,a0,a2 + 16290: 00c5d5b3 srl a1,a1,a2 + 16294: 8d5d or a0,a0,a5 + 16296: 8082 ret + 16298: 1601 addi a2,a2,-32 + 1629a: 00c5d533 srl a0,a1,a2 + 1629e: 4581 li a1,0 + 162a0: 8082 ret + +000162a2 <__udivdi3>: +__udivdi3(): + 162a2: 8832 mv a6,a2 + 162a4: 88aa mv a7,a0 + 162a6: 872e mv a4,a1 + 162a8: eacd bnez a3,1635a <__udivdi3+0xb8> + 162aa: 0ec5ff63 bgeu a1,a2,163a8 <__udivdi3+0x106> + 162ae: 67c1 lui a5,0x10 + 162b0: 18f66a63 bltu a2,a5,16444 <__udivdi3+0x1a2> + 162b4: 010007b7 lui a5,0x1000 + 162b8: 00f637b3 sltu a5,a2,a5 + 162bc: 40f007b3 neg a5,a5 + 162c0: 9be1 andi a5,a5,-8 + 162c2: 07e1 addi a5,a5,24 # 1000018 <_data_lma+0xfe4a5c> + 162c4: 00f65333 srl t1,a2,a5 + 162c8: 00004697 auipc a3,0x4 + 162cc: d3868693 addi a3,a3,-712 # 1a000 <__clz_tab> + 162d0: 969a add a3,a3,t1 + 162d2: 2294 lbu a3,0(a3) + 162d4: 02000313 li t1,32 + 162d8: 97b6 add a5,a5,a3 + 162da: 40f306b3 sub a3,t1,a5 + 162de: 00f30b63 beq t1,a5,162f4 <__udivdi3+0x52> + 162e2: 00d59733 sll a4,a1,a3 + 162e6: 00f557b3 srl a5,a0,a5 + 162ea: 00d61833 sll a6,a2,a3 + 162ee: 8f5d or a4,a4,a5 + 162f0: 00d518b3 sll a7,a0,a3 + 162f4: 01085613 srli a2,a6,0x10 + 162f8: 02c75533 divu a0,a4,a2 + 162fc: 080846b3 zext.h a3,a6 + 16300: 0108d793 srli a5,a7,0x10 + 16304: 02c77733 remu a4,a4,a2 + 16308: 02a685b3 mul a1,a3,a0 + 1630c: 0742 slli a4,a4,0x10 + 1630e: 8fd9 or a5,a5,a4 + 16310: 00b7fa63 bgeu a5,a1,16324 <__udivdi3+0x82> + 16314: 97c2 add a5,a5,a6 + 16316: fff50713 addi a4,a0,-1 + 1631a: 0107e463 bltu a5,a6,16322 <__udivdi3+0x80> + 1631e: 30b7e863 bltu a5,a1,1662e <__udivdi3+0x38c> + 16322: 853a mv a0,a4 + 16324: 8f8d sub a5,a5,a1 + 16326: 02c7d733 divu a4,a5,a2 + 1632a: 0808c8b3 zext.h a7,a7 + 1632e: 02c7f7b3 remu a5,a5,a2 + 16332: 02e686b3 mul a3,a3,a4 + 16336: 07c2 slli a5,a5,0x10 + 16338: 00f8e8b3 or a7,a7,a5 + 1633c: 00d8fb63 bgeu a7,a3,16352 <__udivdi3+0xb0> + 16340: 98c2 add a7,a7,a6 + 16342: fff70793 addi a5,a4,-1 + 16346: 0108e563 bltu a7,a6,16350 <__udivdi3+0xae> + 1634a: 1779 addi a4,a4,-2 + 1634c: 00d8e363 bltu a7,a3,16352 <__udivdi3+0xb0> + 16350: 873e mv a4,a5 + 16352: 0542 slli a0,a0,0x10 + 16354: 8d59 or a0,a0,a4 + 16356: 4581 li a1,0 + 16358: 8082 ret + 1635a: 00d5f563 bgeu a1,a3,16364 <__udivdi3+0xc2> + 1635e: 4581 li a1,0 + 16360: 4501 li a0,0 + 16362: 8082 ret + 16364: 67c1 lui a5,0x10 + 16366: 18f6e563 bltu a3,a5,164f0 <__udivdi3+0x24e> + 1636a: 010007b7 lui a5,0x1000 + 1636e: 00f6b7b3 sltu a5,a3,a5 + 16372: 40f007b3 neg a5,a5 + 16376: 9be1 andi a5,a5,-8 + 16378: 07e1 addi a5,a5,24 # 1000018 <_data_lma+0xfe4a5c> + 1637a: 00f6d833 srl a6,a3,a5 + 1637e: 00004717 auipc a4,0x4 + 16382: c8270713 addi a4,a4,-894 # 1a000 <__clz_tab> + 16386: 9742 add a4,a4,a6 + 16388: 2318 lbu a4,0(a4) + 1638a: 02000893 li a7,32 + 1638e: 973e add a4,a4,a5 + 16390: 40e88833 sub a6,a7,a4 + 16394: 18e89263 bne a7,a4,16518 <__udivdi3+0x276> + 16398: 26b6ed63 bltu a3,a1,16612 <__udivdi3+0x370> + 1639c: 00c53533 sltu a0,a0,a2 + 163a0: 00154513 xori a0,a0,1 + 163a4: 4581 li a1,0 + 163a6: 8082 ret + 163a8: c645 beqz a2,16450 <__udivdi3+0x1ae> + 163aa: 67c1 lui a5,0x10 + 163ac: 24f67b63 bgeu a2,a5,16602 <__udivdi3+0x360> + 163b0: 10063713 sltiu a4,a2,256 + 163b4: 00174713 xori a4,a4,1 + 163b8: 070e slli a4,a4,0x3 + 163ba: 00e656b3 srl a3,a2,a4 + 163be: 00004797 auipc a5,0x4 + 163c2: c4278793 addi a5,a5,-958 # 1a000 <__clz_tab> + 163c6: 97b6 add a5,a5,a3 + 163c8: 239c lbu a5,0(a5) + 163ca: 02000693 li a3,32 + 163ce: 97ba add a5,a5,a4 + 163d0: 40f68eb3 sub t4,a3,a5 + 163d4: 08f69d63 bne a3,a5,1646e <__udivdi3+0x1cc> + 163d8: 40c587b3 sub a5,a1,a2 + 163dc: 4585 li a1,1 + 163de: 01065693 srli a3,a2,0x10 + 163e2: 08064633 zext.h a2,a2 + 163e6: 02d7d533 divu a0,a5,a3 + 163ea: 0108d713 srli a4,a7,0x10 + 163ee: 02d7f7b3 remu a5,a5,a3 + 163f2: 02c50333 mul t1,a0,a2 + 163f6: 07c2 slli a5,a5,0x10 + 163f8: 8fd9 or a5,a5,a4 + 163fa: 0067fa63 bgeu a5,t1,1640e <__udivdi3+0x16c> + 163fe: 97c2 add a5,a5,a6 + 16400: fff50713 addi a4,a0,-1 + 16404: 0107e463 bltu a5,a6,1640c <__udivdi3+0x16a> + 16408: 2267e063 bltu a5,t1,16628 <__udivdi3+0x386> + 1640c: 853a mv a0,a4 + 1640e: 406787b3 sub a5,a5,t1 + 16412: 02d7d733 divu a4,a5,a3 + 16416: 0808c8b3 zext.h a7,a7 + 1641a: 02d7f7b3 remu a5,a5,a3 + 1641e: 02c70633 mul a2,a4,a2 + 16422: 07c2 slli a5,a5,0x10 + 16424: 00f8e8b3 or a7,a7,a5 + 16428: 00c8fb63 bgeu a7,a2,1643e <__udivdi3+0x19c> + 1642c: 98c2 add a7,a7,a6 + 1642e: fff70793 addi a5,a4,-1 + 16432: 0108e563 bltu a7,a6,1643c <__udivdi3+0x19a> + 16436: 1779 addi a4,a4,-2 + 16438: 00c8e363 bltu a7,a2,1643e <__udivdi3+0x19c> + 1643c: 873e mv a4,a5 + 1643e: 0542 slli a0,a0,0x10 + 16440: 8d59 or a0,a0,a4 + 16442: 8082 ret + 16444: 10063793 sltiu a5,a2,256 + 16448: 0017c793 xori a5,a5,1 + 1644c: 078e slli a5,a5,0x3 + 1644e: bd9d j 162c4 <__udivdi3+0x22> + 16450: 4681 li a3,0 + 16452: 00004797 auipc a5,0x4 + 16456: bae78793 addi a5,a5,-1106 # 1a000 <__clz_tab> + 1645a: 97b6 add a5,a5,a3 + 1645c: 239c lbu a5,0(a5) + 1645e: 4701 li a4,0 + 16460: 02000693 li a3,32 + 16464: 97ba add a5,a5,a4 + 16466: 40f68eb3 sub t4,a3,a5 + 1646a: f6f687e3 beq a3,a5,163d8 <__udivdi3+0x136> + 1646e: 01d61833 sll a6,a2,t4 + 16472: 00f5d333 srl t1,a1,a5 + 16476: 01085693 srli a3,a6,0x10 + 1647a: 02d35e33 divu t3,t1,a3 + 1647e: 01d595b3 sll a1,a1,t4 + 16482: 00f557b3 srl a5,a0,a5 + 16486: 8fcd or a5,a5,a1 + 16488: 08084633 zext.h a2,a6 + 1648c: 0107d713 srli a4,a5,0x10 + 16490: 01d518b3 sll a7,a0,t4 + 16494: 02d37333 remu t1,t1,a3 + 16498: 03c605b3 mul a1,a2,t3 + 1649c: 0342 slli t1,t1,0x10 + 1649e: 00676733 or a4,a4,t1 + 164a2: 00b77b63 bgeu a4,a1,164b8 <__udivdi3+0x216> + 164a6: 9742 add a4,a4,a6 + 164a8: fffe0513 addi a0,t3,-1 + 164ac: 17076a63 bltu a4,a6,16620 <__udivdi3+0x37e> + 164b0: 16b77863 bgeu a4,a1,16620 <__udivdi3+0x37e> + 164b4: 1e79 addi t3,t3,-2 + 164b6: 9742 add a4,a4,a6 + 164b8: 8f0d sub a4,a4,a1 + 164ba: 02d75533 divu a0,a4,a3 + 164be: 0807c7b3 zext.h a5,a5 + 164c2: 02d77733 remu a4,a4,a3 + 164c6: 02a60333 mul t1,a2,a0 + 164ca: 0742 slli a4,a4,0x10 + 164cc: 8fd9 or a5,a5,a4 + 164ce: 0067fb63 bgeu a5,t1,164e4 <__udivdi3+0x242> + 164d2: 97c2 add a5,a5,a6 + 164d4: fff50713 addi a4,a0,-1 + 164d8: 1507e063 bltu a5,a6,16618 <__udivdi3+0x376> + 164dc: 1267fe63 bgeu a5,t1,16618 <__udivdi3+0x376> + 164e0: 1579 addi a0,a0,-2 + 164e2: 97c2 add a5,a5,a6 + 164e4: 010e1593 slli a1,t3,0x10 + 164e8: 406787b3 sub a5,a5,t1 + 164ec: 8dc9 or a1,a1,a0 + 164ee: bde5 j 163e6 <__udivdi3+0x144> + 164f0: 1006b793 sltiu a5,a3,256 + 164f4: 0017c793 xori a5,a5,1 + 164f8: 078e slli a5,a5,0x3 + 164fa: 00f6d833 srl a6,a3,a5 + 164fe: 00004717 auipc a4,0x4 + 16502: b0270713 addi a4,a4,-1278 # 1a000 <__clz_tab> + 16506: 9742 add a4,a4,a6 + 16508: 2318 lbu a4,0(a4) + 1650a: 02000893 li a7,32 + 1650e: 973e add a4,a4,a5 + 16510: 40e88833 sub a6,a7,a4 + 16514: e8e882e3 beq a7,a4,16398 <__udivdi3+0xf6> + 16518: 00e65e33 srl t3,a2,a4 + 1651c: 010696b3 sll a3,a3,a6 + 16520: 00de6e33 or t3,t3,a3 + 16524: 00e5d8b3 srl a7,a1,a4 + 16528: 010e5e93 srli t4,t3,0x10 + 1652c: 03d8d7b3 divu a5,a7,t4 + 16530: 010595b3 sll a1,a1,a6 + 16534: 00e55733 srl a4,a0,a4 + 16538: 8f4d or a4,a4,a1 + 1653a: 080e4333 zext.h t1,t3 + 1653e: 01075693 srli a3,a4,0x10 + 16542: 01061633 sll a2,a2,a6 + 16546: 03d8f8b3 remu a7,a7,t4 + 1654a: 02f305b3 mul a1,t1,a5 + 1654e: 08c2 slli a7,a7,0x10 + 16550: 0116e6b3 or a3,a3,a7 + 16554: 00b6fb63 bgeu a3,a1,1656a <__udivdi3+0x2c8> + 16558: 96f2 add a3,a3,t3 + 1655a: fff78893 addi a7,a5,-1 + 1655e: 0dc6e363 bltu a3,t3,16624 <__udivdi3+0x382> + 16562: 0cb6f163 bgeu a3,a1,16624 <__udivdi3+0x382> + 16566: 17f9 addi a5,a5,-2 + 16568: 96f2 add a3,a3,t3 + 1656a: 8e8d sub a3,a3,a1 + 1656c: 03d6d5b3 divu a1,a3,t4 + 16570: 08074733 zext.h a4,a4 + 16574: 03d6f6b3 remu a3,a3,t4 + 16578: 02b308b3 mul a7,t1,a1 + 1657c: 06c2 slli a3,a3,0x10 + 1657e: 8f55 or a4,a4,a3 + 16580: 01177b63 bgeu a4,a7,16596 <__udivdi3+0x2f4> + 16584: 9772 add a4,a4,t3 + 16586: fff58693 addi a3,a1,-1 + 1658a: 09c76963 bltu a4,t3,1661c <__udivdi3+0x37a> + 1658e: 09177763 bgeu a4,a7,1661c <__udivdi3+0x37a> + 16592: 15f9 addi a1,a1,-2 + 16594: 9772 add a4,a4,t3 + 16596: 07c2 slli a5,a5,0x10 + 16598: 6ec1 lui t4,0x10 + 1659a: 8fcd or a5,a5,a1 + 1659c: fffe8693 addi a3,t4,-1 # ffff + 165a0: 00d7f5b3 and a1,a5,a3 + 165a4: 0107d313 srli t1,a5,0x10 + 165a8: 8ef1 and a3,a3,a2 + 165aa: 8241 srli a2,a2,0x10 + 165ac: 02d58e33 mul t3,a1,a3 + 165b0: 41170733 sub a4,a4,a7 + 165b4: 02d306b3 mul a3,t1,a3 + 165b8: 010e5893 srli a7,t3,0x10 + 165bc: 02c585b3 mul a1,a1,a2 + 165c0: 95b6 add a1,a1,a3 + 165c2: 95c6 add a1,a1,a7 + 165c4: 02c30333 mul t1,t1,a2 + 165c8: 00d5f363 bgeu a1,a3,165ce <__udivdi3+0x32c> + 165cc: 9376 add t1,t1,t4 + 165ce: 0105d693 srli a3,a1,0x10 + 165d2: 969a add a3,a3,t1 + 165d4: 02d76363 bltu a4,a3,165fa <__udivdi3+0x358> + 165d8: 00d70563 beq a4,a3,165e2 <__udivdi3+0x340> + 165dc: 853e mv a0,a5 + 165de: 4581 li a1,0 + 165e0: 8082 ret + 165e2: 66c1 lui a3,0x10 + 165e4: 16fd addi a3,a3,-1 # ffff + 165e6: 00d5f733 and a4,a1,a3 + 165ea: 0742 slli a4,a4,0x10 + 165ec: 00de7e33 and t3,t3,a3 + 165f0: 01051533 sll a0,a0,a6 + 165f4: 9772 add a4,a4,t3 + 165f6: fee573e3 bgeu a0,a4,165dc <__udivdi3+0x33a> + 165fa: fff78513 addi a0,a5,-1 + 165fe: 4581 li a1,0 + 16600: 8082 ret + 16602: 010007b7 lui a5,0x1000 + 16606: 02f67763 bgeu a2,a5,16634 <__udivdi3+0x392> + 1660a: 01065693 srli a3,a2,0x10 + 1660e: 4741 li a4,16 + 16610: b37d j 163be <__udivdi3+0x11c> + 16612: 4581 li a1,0 + 16614: 4505 li a0,1 + 16616: 8082 ret + 16618: 853a mv a0,a4 + 1661a: b5e9 j 164e4 <__udivdi3+0x242> + 1661c: 85b6 mv a1,a3 + 1661e: bfa5 j 16596 <__udivdi3+0x2f4> + 16620: 8e2a mv t3,a0 + 16622: bd59 j 164b8 <__udivdi3+0x216> + 16624: 87c6 mv a5,a7 + 16626: b791 j 1656a <__udivdi3+0x2c8> + 16628: 1579 addi a0,a0,-2 + 1662a: 97c2 add a5,a5,a6 + 1662c: b3cd j 1640e <__udivdi3+0x16c> + 1662e: 1579 addi a0,a0,-2 + 16630: 97c2 add a5,a5,a6 + 16632: b9cd j 16324 <__udivdi3+0x82> + 16634: 01865693 srli a3,a2,0x18 + 16638: 4761 li a4,24 + 1663a: b351 j 163be <__udivdi3+0x11c> + +0001663c <__adddf3>: +__adddf3(): + 1663c: 001007b7 lui a5,0x100 + 16640: 17fd addi a5,a5,-1 # fffff <_data_lma+0xe4a43> + 16642: 00b7f8b3 and a7,a5,a1 + 16646: 00d7f833 and a6,a5,a3 + 1664a: 0146de13 srli t3,a3,0x14 + 1664e: 0145d793 srli a5,a1,0x14 + 16652: 088e slli a7,a7,0x3 + 16654: 01d65313 srli t1,a2,0x1d + 16658: 01d55713 srli a4,a0,0x1d + 1665c: 080e slli a6,a6,0x3 + 1665e: 7ff7f793 andi a5,a5,2047 + 16662: 7ffe7e13 andi t3,t3,2047 + 16666: 81fd srli a1,a1,0x1f + 16668: 82fd srli a3,a3,0x1f + 1666a: 01176733 or a4,a4,a7 + 1666e: 01036833 or a6,t1,a6 + 16672: 00351e93 slli t4,a0,0x3 + 16676: 00361313 slli t1,a2,0x3 + 1667a: 41c788b3 sub a7,a5,t3 + 1667e: 16d58863 beq a1,a3,167ee <__adddf3+0x1b2> + 16682: 11105063 blez a7,16782 <__adddf3+0x146> + 16686: 1e0e0b63 beqz t3,1687c <__adddf3+0x240> + 1668a: 7ff00693 li a3,2047 + 1668e: 54d78d63 beq a5,a3,16be8 <__adddf3+0x5ac> + 16692: 03800693 li a3,56 + 16696: 4605 li a2,1 + 16698: 29781813 bseti a6,a6,0x17 + 1669c: 0316c763 blt a3,a7,166ca <__adddf3+0x8e> + 166a0: 46fd li a3,31 + 166a2: 4116cb63 blt a3,a7,16ab8 <__adddf3+0x47c> + 166a6: 02000693 li a3,32 + 166aa: 411686b3 sub a3,a3,a7 + 166ae: 00d81633 sll a2,a6,a3 + 166b2: 01135533 srl a0,t1,a7 + 166b6: 00d316b3 sll a3,t1,a3 + 166ba: 8e49 or a2,a2,a0 + 166bc: 00d036b3 snez a3,a3 + 166c0: 011858b3 srl a7,a6,a7 + 166c4: 8e55 or a2,a2,a3 + 166c6: 41170733 sub a4,a4,a7 + 166ca: 40ce8633 sub a2,t4,a2 + 166ce: 00ceb6b3 sltu a3,t4,a2 + 166d2: 8f15 sub a4,a4,a3 + 166d4: 008006b7 lui a3,0x800 + 166d8: 00d77533 and a0,a4,a3 + 166dc: 24050563 beqz a0,16926 <__adddf3+0x2ea> + 166e0: 16fd addi a3,a3,-1 # 7fffff <_data_lma+0x7e4a43> + 166e2: 8f75 and a4,a4,a3 + 166e4: 26070f63 beqz a4,16962 <__adddf3+0x326> + 166e8: 60071693 clz a3,a4 + 166ec: 16e1 addi a3,a3,-8 + 166ee: 02000513 li a0,32 + 166f2: 40d508b3 sub a7,a0,a3 + 166f6: 011658b3 srl a7,a2,a7 + 166fa: 00d71733 sll a4,a4,a3 + 166fe: 00e8e8b3 or a7,a7,a4 + 16702: 00d61633 sll a2,a2,a3 + 16706: 32f6c163 blt a3,a5,16a28 <__adddf3+0x3ec> + 1670a: 8e9d sub a3,a3,a5 + 1670c: 0685 addi a3,a3,1 + 1670e: 8d15 sub a0,a0,a3 + 16710: 00a617b3 sll a5,a2,a0 + 16714: 00d65733 srl a4,a2,a3 + 16718: 00f037b3 snez a5,a5 + 1671c: 8fd9 or a5,a5,a4 + 1671e: 00a89533 sll a0,a7,a0 + 16722: 00f56633 or a2,a0,a5 + 16726: 00d8d733 srl a4,a7,a3 + 1672a: 4781 li a5,0 + 1672c: 00767693 andi a3,a2,7 + 16730: ce81 beqz a3,16748 <__adddf3+0x10c> + 16732: 00f67693 andi a3,a2,15 + 16736: 4511 li a0,4 + 16738: 00a68863 beq a3,a0,16748 <__adddf3+0x10c> + 1673c: 00460693 addi a3,a2,4 + 16740: 00c6b633 sltu a2,a3,a2 + 16744: 9732 add a4,a4,a2 + 16746: 8636 mv a2,a3 + 16748: 008006b7 lui a3,0x800 + 1674c: 8ef9 and a3,a3,a4 + 1674e: 26068263 beqz a3,169b2 <__adddf3+0x376> + 16752: 0785 addi a5,a5,1 + 16754: 7ff00693 li a3,2047 + 16758: 1ad78a63 beq a5,a3,1690c <__adddf3+0x2d0> + 1675c: 820d srli a2,a2,0x3 + 1675e: 01d71893 slli a7,a4,0x1d + 16762: 00971813 slli a6,a4,0x9 + 16766: 00c8e8b3 or a7,a7,a2 + 1676a: 00c85813 srli a6,a6,0xc + 1676e: 7ff7f793 andi a5,a5,2047 + 16772: 07d2 slli a5,a5,0x14 + 16774: 0107e7b3 or a5,a5,a6 + 16778: 05fe slli a1,a1,0x1f + 1677a: 8fcd or a5,a5,a1 + 1677c: 8546 mv a0,a7 + 1677e: 85be mv a1,a5 + 16780: 8082 ret + 16782: 12088063 beqz a7,168a2 <__adddf3+0x266> + 16786: 40fe08b3 sub a7,t3,a5 + 1678a: 30079b63 bnez a5,16aa0 <__adddf3+0x464> + 1678e: 01d767b3 or a5,a4,t4 + 16792: 28078463 beqz a5,16a1a <__adddf3+0x3de> + 16796: fff88793 addi a5,a7,-1 + 1679a: 4e078263 beqz a5,16c7e <__adddf3+0x642> + 1679e: 7ff00593 li a1,2047 + 167a2: 44b88c63 beq a7,a1,16bfa <__adddf3+0x5be> + 167a6: 03800593 li a1,56 + 167aa: 4605 li a2,1 + 167ac: 02f5c863 blt a1,a5,167dc <__adddf3+0x1a0> + 167b0: 88be mv a7,a5 + 167b2: 47fd li a5,31 + 167b4: 4717c663 blt a5,a7,16c20 <__adddf3+0x5e4> + 167b8: 02000793 li a5,32 + 167bc: 411787b3 sub a5,a5,a7 + 167c0: 00f71633 sll a2,a4,a5 + 167c4: 011ed5b3 srl a1,t4,a7 + 167c8: 00fe97b3 sll a5,t4,a5 + 167cc: 8e4d or a2,a2,a1 + 167ce: 00f037b3 snez a5,a5 + 167d2: 011758b3 srl a7,a4,a7 + 167d6: 8e5d or a2,a2,a5 + 167d8: 41180833 sub a6,a6,a7 + 167dc: 40c30633 sub a2,t1,a2 + 167e0: 00c33333 sltu t1,t1,a2 + 167e4: 40680733 sub a4,a6,t1 + 167e8: 87f2 mv a5,t3 + 167ea: 85b6 mv a1,a3 + 167ec: b5e5 j 166d4 <__adddf3+0x98> + 167ee: 15105163 blez a7,16930 <__adddf3+0x2f4> + 167f2: 100e1163 bnez t3,168f4 <__adddf3+0x2b8> + 167f6: 006866b3 or a3,a6,t1 + 167fa: 22068363 beqz a3,16a20 <__adddf3+0x3e4> + 167fe: fff88693 addi a3,a7,-1 + 16802: 3a068a63 beqz a3,16bb6 <__adddf3+0x57a> + 16806: 7ff00613 li a2,2047 + 1680a: 48c88663 beq a7,a2,16c96 <__adddf3+0x65a> + 1680e: 03800513 li a0,56 + 16812: 4605 li a2,1 + 16814: 02d54963 blt a0,a3,16846 <__adddf3+0x20a> + 16818: 88b6 mv a7,a3 + 1681a: 46fd li a3,31 + 1681c: 3316d063 bge a3,a7,16b3c <__adddf3+0x500> + 16820: fe088693 addi a3,a7,-32 + 16824: 02000613 li a2,32 + 16828: 00d856b3 srl a3,a6,a3 + 1682c: 00c88a63 beq a7,a2,16840 <__adddf3+0x204> + 16830: 04000613 li a2,64 + 16834: 41160633 sub a2,a2,a7 + 16838: 00c81633 sll a2,a6,a2 + 1683c: 00c36333 or t1,t1,a2 + 16840: 00603633 snez a2,t1 + 16844: 8e55 or a2,a2,a3 + 16846: 01d606b3 add a3,a2,t4 + 1684a: 00c6b533 sltu a0,a3,a2 + 1684e: 972a add a4,a4,a0 + 16850: 8636 mv a2,a3 + 16852: 008006b7 lui a3,0x800 + 16856: 8ef9 and a3,a3,a4 + 16858: c6f9 beqz a3,16926 <__adddf3+0x2ea> + 1685a: 0785 addi a5,a5,1 + 1685c: 7ff00693 li a3,2047 + 16860: 0ad78663 beq a5,a3,1690c <__adddf3+0x2d0> + 16864: 00165693 srli a3,a2,0x1 + 16868: 8a05 andi a2,a2,1 + 1686a: 01f71513 slli a0,a4,0x1f + 1686e: 8ed1 or a3,a3,a2 + 16870: 49771713 bclri a4,a4,0x17 + 16874: 00d56633 or a2,a0,a3 + 16878: 8305 srli a4,a4,0x1 + 1687a: bd4d j 1672c <__adddf3+0xf0> + 1687c: 006866b3 or a3,a6,t1 + 16880: 1a068063 beqz a3,16a20 <__adddf3+0x3e4> + 16884: fff88693 addi a3,a7,-1 + 16888: 34068563 beqz a3,16bd2 <__adddf3+0x596> + 1688c: 7ff00613 li a2,2047 + 16890: 14c88a63 beq a7,a2,169e4 <__adddf3+0x3a8> + 16894: 03800513 li a0,56 + 16898: 4605 li a2,1 + 1689a: e2d548e3 blt a0,a3,166ca <__adddf3+0x8e> + 1689e: 88b6 mv a7,a3 + 168a0: b501 j 166a0 <__adddf3+0x64> + 168a2: 00178893 addi a7,a5,1 + 168a6: 7fe8f893 andi a7,a7,2046 + 168aa: 1c089463 bnez a7,16a72 <__adddf3+0x436> + 168ae: 01d76e33 or t3,a4,t4 + 168b2: 006868b3 or a7,a6,t1 + 168b6: 2e079663 bnez a5,16ba2 <__adddf3+0x566> + 168ba: 3a0e0563 beqz t3,16c64 <__adddf3+0x628> + 168be: 3e088663 beqz a7,16caa <__adddf3+0x66e> + 168c2: 406e8633 sub a2,t4,t1 + 168c6: 00ceb533 sltu a0,t4,a2 + 168ca: 41070e33 sub t3,a4,a6 + 168ce: 40ae0e33 sub t3,t3,a0 + 168d2: 00800537 lui a0,0x800 + 168d6: 00ae7533 and a0,t3,a0 + 168da: 42050e63 beqz a0,16d16 <__adddf3+0x6da> + 168de: 41d30eb3 sub t4,t1,t4 + 168e2: 40e80833 sub a6,a6,a4 + 168e6: 01d33333 sltu t1,t1,t4 + 168ea: 8676 mv a2,t4 + 168ec: 40680733 sub a4,a6,t1 + 168f0: 85b6 mv a1,a3 + 168f2: bd2d j 1672c <__adddf3+0xf0> + 168f4: 7ff00693 li a3,2047 + 168f8: 0ed78663 beq a5,a3,169e4 <__adddf3+0x3a8> + 168fc: 03800693 li a3,56 + 16900: 4605 li a2,1 + 16902: 29781813 bseti a6,a6,0x17 + 16906: f116dae3 bge a3,a7,1681a <__adddf3+0x1de> + 1690a: bf35 j 16846 <__adddf3+0x20a> + 1690c: 7ff00793 li a5,2047 + 16910: 4801 li a6,0 + 16912: 07d2 slli a5,a5,0x14 + 16914: 0107e7b3 or a5,a5,a6 + 16918: 05fe slli a1,a1,0x1f + 1691a: 4881 li a7,0 + 1691c: 8fcd or a5,a5,a1 + 1691e: 8546 mv a0,a7 + 16920: 85be mv a1,a5 + 16922: 8082 ret + 16924: 4785 li a5,1 + 16926: 00767513 andi a0,a2,7 + 1692a: e00514e3 bnez a0,16732 <__adddf3+0xf6> + 1692e: aa3d j 16a6c <__adddf3+0x430> + 16930: 10088063 beqz a7,16a30 <__adddf3+0x3f4> + 16934: 40fe08b3 sub a7,t3,a5 + 16938: 1a079463 bnez a5,16ae0 <__adddf3+0x4a4> + 1693c: 01d767b3 or a5,a4,t4 + 16940: 36078f63 beqz a5,16cbe <__adddf3+0x682> + 16944: fff88693 addi a3,a7,-1 + 16948: 26068763 beqz a3,16bb6 <__adddf3+0x57a> + 1694c: 7ff00793 li a5,2047 + 16950: 2af88f63 beq a7,a5,16c0e <__adddf3+0x5d2> + 16954: 03800613 li a2,56 + 16958: 4785 li a5,1 + 1695a: 1cd64263 blt a2,a3,16b1e <__adddf3+0x4e2> + 1695e: 88b6 mv a7,a3 + 16960: aa59 j 16af6 <__adddf3+0x4ba> + 16962: 60061893 clz a7,a2 + 16966: 457d li a0,31 + 16968: 01888693 addi a3,a7,24 + 1696c: d8d551e3 bge a0,a3,166ee <__adddf3+0xb2> + 16970: 18e1 addi a7,a7,-8 + 16972: 011618b3 sll a7,a2,a7 + 16976: 1af6cc63 blt a3,a5,16b2e <__adddf3+0x4f2> + 1697a: 40f68633 sub a2,a3,a5 + 1697e: 00160693 addi a3,a2,1 + 16982: 3ad55b63 bge a0,a3,16d38 <__adddf3+0x6fc> + 16986: 1605 addi a2,a2,-31 + 16988: 02000793 li a5,32 + 1698c: 00c8d633 srl a2,a7,a2 + 16990: 00f68b63 beq a3,a5,169a6 <__adddf3+0x36a> + 16994: 04000793 li a5,64 + 16998: 8f95 sub a5,a5,a3 + 1699a: 00f898b3 sll a7,a7,a5 + 1699e: 011038b3 snez a7,a7 + 169a2: 01166633 or a2,a2,a7 + 169a6: 00767513 andi a0,a2,7 + 169aa: 4781 li a5,0 + 169ac: d80513e3 bnez a0,16732 <__adddf3+0xf6> + 169b0: a875 j 16a6c <__adddf3+0x430> + 169b2: 00365693 srli a3,a2,0x3 + 169b6: 01d71893 slli a7,a4,0x1d + 169ba: 7ff00613 li a2,2047 + 169be: 00d8e8b3 or a7,a7,a3 + 169c2: 00375813 srli a6,a4,0x3 + 169c6: 02c78863 beq a5,a2,169f6 <__adddf3+0x3ba> + 169ca: 0832 slli a6,a6,0xc + 169cc: 7ff7f793 andi a5,a5,2047 + 169d0: 00c85813 srli a6,a6,0xc + 169d4: 07d2 slli a5,a5,0x14 + 169d6: 0107e7b3 or a5,a5,a6 + 169da: 05fe slli a1,a1,0x1f + 169dc: 8fcd or a5,a5,a1 + 169de: 8546 mv a0,a7 + 169e0: 85be mv a1,a5 + 169e2: 8082 ret + 169e4: 050e slli a0,a0,0x3 + 169e6: 00355893 srli a7,a0,0x3 + 169ea: 01d71793 slli a5,a4,0x1d + 169ee: 00f8e8b3 or a7,a7,a5 + 169f2: 00375813 srli a6,a4,0x3 + 169f6: 0108e8b3 or a7,a7,a6 + 169fa: f00889e3 beqz a7,1690c <__adddf3+0x2d0> + 169fe: 7ff00793 li a5,2047 + 16a02: 00080837 lui a6,0x80 + 16a06: 4581 li a1,0 + 16a08: 07d2 slli a5,a5,0x14 + 16a0a: 0107e7b3 or a5,a5,a6 + 16a0e: 05fe slli a1,a1,0x1f + 16a10: 4881 li a7,0 + 16a12: 8fcd or a5,a5,a1 + 16a14: 8546 mv a0,a7 + 16a16: 85be mv a1,a5 + 16a18: 8082 ret + 16a1a: 8e9a mv t4,t1 + 16a1c: 8742 mv a4,a6 + 16a1e: 85b6 mv a1,a3 + 16a20: 003ed693 srli a3,t4,0x3 + 16a24: 87c6 mv a5,a7 + 16a26: bf41 j 169b6 <__adddf3+0x37a> + 16a28: 8f95 sub a5,a5,a3 + 16a2a: 49789713 bclri a4,a7,0x17 + 16a2e: b9fd j 1672c <__adddf3+0xf0> + 16a30: 00178893 addi a7,a5,1 + 16a34: 7fe8f693 andi a3,a7,2046 + 16a38: 12069463 bnez a3,16b60 <__adddf3+0x524> + 16a3c: 01d766b3 or a3,a4,t4 + 16a40: 20079463 bnez a5,16c48 <__adddf3+0x60c> + 16a44: 28068363 beqz a3,16cca <__adddf3+0x68e> + 16a48: 006866b3 or a3,a6,t1 + 16a4c: 28068863 beqz a3,16cdc <__adddf3+0x6a0> + 16a50: 9376 add t1,t1,t4 + 16a52: 983a add a6,a6,a4 + 16a54: 01d336b3 sltu a3,t1,t4 + 16a58: 00d80733 add a4,a6,a3 + 16a5c: 00800537 lui a0,0x800 + 16a60: 8d79 and a0,a0,a4 + 16a62: 861a mv a2,t1 + 16a64: c501 beqz a0,16a6c <__adddf3+0x430> + 16a66: 4785 li a5,1 + 16a68: 49771713 bclri a4,a4,0x17 + 16a6c: 8eb2 mv t4,a2 + 16a6e: 88be mv a7,a5 + 16a70: bf45 j 16a20 <__adddf3+0x3e4> + 16a72: 406e8633 sub a2,t4,t1 + 16a76: 00ceb8b3 sltu a7,t4,a2 + 16a7a: 41070533 sub a0,a4,a6 + 16a7e: 41150533 sub a0,a0,a7 + 16a82: 008008b7 lui a7,0x800 + 16a86: 011578b3 and a7,a0,a7 + 16a8a: 10089163 bnez a7,16b8c <__adddf3+0x550> + 16a8e: 00a668b3 or a7,a2,a0 + 16a92: 872a mv a4,a0 + 16a94: c40898e3 bnez a7,166e4 <__adddf3+0xa8> + 16a98: 4581 li a1,0 + 16a9a: 4781 li a5,0 + 16a9c: 4801 li a6,0 + 16a9e: b9d1 j 16772 <__adddf3+0x136> + 16aa0: 7ff00793 li a5,2047 + 16aa4: 14fe0b63 beq t3,a5,16bfa <__adddf3+0x5be> + 16aa8: 03800793 li a5,56 + 16aac: 4605 li a2,1 + 16aae: 29771713 bseti a4,a4,0x17 + 16ab2: d117d0e3 bge a5,a7,167b2 <__adddf3+0x176> + 16ab6: b31d j 167dc <__adddf3+0x1a0> + 16ab8: fe088693 addi a3,a7,-32 # 7fffe0 <_data_lma+0x7e4a24> + 16abc: 02000613 li a2,32 + 16ac0: 00d856b3 srl a3,a6,a3 + 16ac4: 00c88a63 beq a7,a2,16ad8 <__adddf3+0x49c> + 16ac8: 04000613 li a2,64 + 16acc: 41160633 sub a2,a2,a7 + 16ad0: 00c81633 sll a2,a6,a2 + 16ad4: 00c36333 or t1,t1,a2 + 16ad8: 00603633 snez a2,t1 + 16adc: 8e55 or a2,a2,a3 + 16ade: b6f5 j 166ca <__adddf3+0x8e> + 16ae0: 7ff00793 li a5,2047 + 16ae4: 12fe0563 beq t3,a5,16c0e <__adddf3+0x5d2> + 16ae8: 03800693 li a3,56 + 16aec: 4785 li a5,1 + 16aee: 29771713 bseti a4,a4,0x17 + 16af2: 0316c663 blt a3,a7,16b1e <__adddf3+0x4e2> + 16af6: 47fd li a5,31 + 16af8: 1f17cb63 blt a5,a7,16cee <__adddf3+0x6b2> + 16afc: 02000693 li a3,32 + 16b00: 411686b3 sub a3,a3,a7 + 16b04: 00d717b3 sll a5,a4,a3 + 16b08: 011ed633 srl a2,t4,a7 + 16b0c: 00de96b3 sll a3,t4,a3 + 16b10: 8fd1 or a5,a5,a2 + 16b12: 00d036b3 snez a3,a3 + 16b16: 011758b3 srl a7,a4,a7 + 16b1a: 8fd5 or a5,a5,a3 + 16b1c: 9846 add a6,a6,a7 + 16b1e: 933e add t1,t1,a5 + 16b20: 00f337b3 sltu a5,t1,a5 + 16b24: 01078733 add a4,a5,a6 + 16b28: 861a mv a2,t1 + 16b2a: 87f2 mv a5,t3 + 16b2c: b31d j 16852 <__adddf3+0x216> + 16b2e: 49789813 bclri a6,a7,0x17 + 16b32: 8f95 sub a5,a5,a3 + 16b34: 08f6 slli a7,a7,0x1d + 16b36: 00385813 srli a6,a6,0x3 + 16b3a: bd41 j 169ca <__adddf3+0x38e> + 16b3c: 02000693 li a3,32 + 16b40: 411686b3 sub a3,a3,a7 + 16b44: 00d81633 sll a2,a6,a3 + 16b48: 01135533 srl a0,t1,a7 + 16b4c: 00d316b3 sll a3,t1,a3 + 16b50: 8e49 or a2,a2,a0 + 16b52: 00d036b3 snez a3,a3 + 16b56: 011858b3 srl a7,a6,a7 + 16b5a: 8e55 or a2,a2,a3 + 16b5c: 9746 add a4,a4,a7 + 16b5e: b1e5 j 16846 <__adddf3+0x20a> + 16b60: 7ff00793 li a5,2047 + 16b64: daf884e3 beq a7,a5,1690c <__adddf3+0x2d0> + 16b68: 006e8533 add a0,t4,t1 + 16b6c: 010707b3 add a5,a4,a6 + 16b70: 01d536b3 sltu a3,a0,t4 + 16b74: 97b6 add a5,a5,a3 + 16b76: 8105 srli a0,a0,0x1 + 16b78: 01f79613 slli a2,a5,0x1f + 16b7c: 8e49 or a2,a2,a0 + 16b7e: 891d andi a0,a0,7 + 16b80: 0017d713 srli a4,a5,0x1 + 16b84: 87c6 mv a5,a7 + 16b86: ba0516e3 bnez a0,16732 <__adddf3+0xf6> + 16b8a: b5cd j 16a6c <__adddf3+0x430> + 16b8c: 41d30eb3 sub t4,t1,t4 + 16b90: 40e80833 sub a6,a6,a4 + 16b94: 01d33333 sltu t1,t1,t4 + 16b98: 8676 mv a2,t4 + 16b9a: 40680733 sub a4,a6,t1 + 16b9e: 85b6 mv a1,a3 + 16ba0: b691 j 166e4 <__adddf3+0xa8> + 16ba2: 120e1163 bnez t3,16cc4 <__adddf3+0x688> + 16ba6: 16089e63 bnez a7,16d22 <__adddf3+0x6e6> + 16baa: 4581 li a1,0 + 16bac: 7ff00793 li a5,2047 + 16bb0: 00080837 lui a6,0x80 + 16bb4: be7d j 16772 <__adddf3+0x136> + 16bb6: 9376 add t1,t1,t4 + 16bb8: 983a add a6,a6,a4 + 16bba: 01d336b3 sltu a3,t1,t4 + 16bbe: 00d80733 add a4,a6,a3 + 16bc2: 008007b7 lui a5,0x800 + 16bc6: 8ff9 and a5,a5,a4 + 16bc8: 861a mv a2,t1 + 16bca: d4078de3 beqz a5,16924 <__adddf3+0x2e8> + 16bce: 4789 li a5,2 + 16bd0: b951 j 16864 <__adddf3+0x228> + 16bd2: 406e8333 sub t1,t4,t1 + 16bd6: 41070833 sub a6,a4,a6 + 16bda: 006eb6b3 sltu a3,t4,t1 + 16bde: 861a mv a2,t1 + 16be0: 40d80733 sub a4,a6,a3 + 16be4: 4785 li a5,1 + 16be6: b4fd j 166d4 <__adddf3+0x98> + 16be8: 050e slli a0,a0,0x3 + 16bea: 810d srli a0,a0,0x3 + 16bec: 01d71893 slli a7,a4,0x1d + 16bf0: 011568b3 or a7,a0,a7 + 16bf4: 00375813 srli a6,a4,0x3 + 16bf8: bbfd j 169f6 <__adddf3+0x3ba> + 16bfa: 060e slli a2,a2,0x3 + 16bfc: 01d81793 slli a5,a6,0x1d + 16c00: 820d srli a2,a2,0x3 + 16c02: 00f668b3 or a7,a2,a5 + 16c06: 00385813 srli a6,a6,0x3 + 16c0a: 85b6 mv a1,a3 + 16c0c: b3ed j 169f6 <__adddf3+0x3ba> + 16c0e: 060e slli a2,a2,0x3 + 16c10: 01d81793 slli a5,a6,0x1d + 16c14: 820d srli a2,a2,0x3 + 16c16: 00f668b3 or a7,a2,a5 + 16c1a: 00385813 srli a6,a6,0x3 + 16c1e: bbe1 j 169f6 <__adddf3+0x3ba> + 16c20: fe088793 addi a5,a7,-32 + 16c24: 02000613 li a2,32 + 16c28: 00f757b3 srl a5,a4,a5 + 16c2c: 00c88a63 beq a7,a2,16c40 <__adddf3+0x604> + 16c30: 04000613 li a2,64 + 16c34: 41160633 sub a2,a2,a7 + 16c38: 00c71733 sll a4,a4,a2 + 16c3c: 00eeeeb3 or t4,t4,a4 + 16c40: 01d03633 snez a2,t4 + 16c44: 8e5d or a2,a2,a5 + 16c46: be59 j 167dc <__adddf3+0x1a0> + 16c48: d2f9 beqz a3,16c0e <__adddf3+0x5d2> + 16c4a: 00686333 or t1,a6,t1 + 16c4e: da0318e3 bnez t1,169fe <__adddf3+0x3c2> + 16c52: 050e slli a0,a0,0x3 + 16c54: 810d srli a0,a0,0x3 + 16c56: 01d71793 slli a5,a4,0x1d + 16c5a: 00f568b3 or a7,a0,a5 + 16c5e: 00375813 srli a6,a4,0x3 + 16c62: bb51 j 169f6 <__adddf3+0x3ba> + 16c64: e2088ae3 beqz a7,16a98 <__adddf3+0x45c> + 16c68: 00361713 slli a4,a2,0x3 + 16c6c: 01d81893 slli a7,a6,0x1d + 16c70: 830d srli a4,a4,0x3 + 16c72: 00e8e8b3 or a7,a7,a4 + 16c76: 00385813 srli a6,a6,0x3 + 16c7a: 85b6 mv a1,a3 + 16c7c: b3b9 j 169ca <__adddf3+0x38e> + 16c7e: 41d30eb3 sub t4,t1,t4 + 16c82: 40e80833 sub a6,a6,a4 + 16c86: 01d33333 sltu t1,t1,t4 + 16c8a: 8676 mv a2,t4 + 16c8c: 40680733 sub a4,a6,t1 + 16c90: 85b6 mv a1,a3 + 16c92: 4785 li a5,1 + 16c94: b481 j 166d4 <__adddf3+0x98> + 16c96: 00351793 slli a5,a0,0x3 + 16c9a: 01d71893 slli a7,a4,0x1d + 16c9e: 838d srli a5,a5,0x3 + 16ca0: 00f8e8b3 or a7,a7,a5 + 16ca4: 00375813 srli a6,a4,0x3 + 16ca8: b3b9 j 169f6 <__adddf3+0x3ba> + 16caa: 00351693 slli a3,a0,0x3 + 16cae: 01d71893 slli a7,a4,0x1d + 16cb2: 828d srli a3,a3,0x3 + 16cb4: 00d8e8b3 or a7,a7,a3 + 16cb8: 00375813 srli a6,a4,0x3 + 16cbc: b339 j 169ca <__adddf3+0x38e> + 16cbe: 8e9a mv t4,t1 + 16cc0: 8742 mv a4,a6 + 16cc2: bbb9 j 16a20 <__adddf3+0x3e4> + 16cc4: f80887e3 beqz a7,16c52 <__adddf3+0x616> + 16cc8: bb1d j 169fe <__adddf3+0x3c2> + 16cca: 060e slli a2,a2,0x3 + 16ccc: 01d81713 slli a4,a6,0x1d + 16cd0: 820d srli a2,a2,0x3 + 16cd2: 00e668b3 or a7,a2,a4 + 16cd6: 00385813 srli a6,a6,0x3 + 16cda: b9c5 j 169ca <__adddf3+0x38e> + 16cdc: 050e slli a0,a0,0x3 + 16cde: 810d srli a0,a0,0x3 + 16ce0: 01d71693 slli a3,a4,0x1d + 16ce4: 00d568b3 or a7,a0,a3 + 16ce8: 00375813 srli a6,a4,0x3 + 16cec: b9f9 j 169ca <__adddf3+0x38e> + 16cee: fe088693 addi a3,a7,-32 + 16cf2: 02000793 li a5,32 + 16cf6: 00d756b3 srl a3,a4,a3 + 16cfa: 00f88a63 beq a7,a5,16d0e <__adddf3+0x6d2> + 16cfe: 04000793 li a5,64 + 16d02: 411787b3 sub a5,a5,a7 + 16d06: 00f717b3 sll a5,a4,a5 + 16d0a: 00feeeb3 or t4,t4,a5 + 16d0e: 01d037b3 snez a5,t4 + 16d12: 8fd5 or a5,a5,a3 + 16d14: b529 j 16b1e <__adddf3+0x4e2> + 16d16: 01c668b3 or a7,a2,t3 + 16d1a: 8772 mv a4,t3 + 16d1c: d40898e3 bnez a7,16a6c <__adddf3+0x430> + 16d20: bba5 j 16a98 <__adddf3+0x45c> + 16d22: 00361793 slli a5,a2,0x3 + 16d26: 01d81893 slli a7,a6,0x1d + 16d2a: 838d srli a5,a5,0x3 + 16d2c: 00f8e8b3 or a7,a7,a5 + 16d30: 00385813 srli a6,a6,0x3 + 16d34: 85b6 mv a1,a3 + 16d36: b1c1 j 169f6 <__adddf3+0x3ba> + 16d38: 02000513 li a0,32 + 16d3c: 8d15 sub a0,a0,a3 + 16d3e: 4781 li a5,0 + 16d40: baf1 j 1671c <__adddf3+0xe0> + +00016d42 <__divdf3>: +__divdf3(): + 16d42: 1141 addi sp,sp,-16 + 16d44: 0145d713 srli a4,a1,0x14 + 16d48: 00c59793 slli a5,a1,0xc + 16d4c: c622 sw s0,12(sp) + 16d4e: c426 sw s1,8(sp) + 16d50: 7ff77713 andi a4,a4,2047 + 16d54: 83b1 srli a5,a5,0xc + 16d56: 81fd srli a1,a1,0x1f + 16d58: 10070263 beqz a4,16e5c <__divdf3+0x11a> + 16d5c: 7ff00813 li a6,2047 + 16d60: 13070c63 beq a4,a6,16e98 <__divdf3+0x156> + 16d64: 01d55893 srli a7,a0,0x1d + 16d68: 078e slli a5,a5,0x3 + 16d6a: 00f8e7b3 or a5,a7,a5 + 16d6e: 00351e13 slli t3,a0,0x3 + 16d72: 4301 li t1,0 + 16d74: c0170513 addi a0,a4,-1023 + 16d78: 4f01 li t5,0 + 16d7a: 29779893 bseti a7,a5,0x17 + 16d7e: 0146d793 srli a5,a3,0x14 + 16d82: 00c69713 slli a4,a3,0xc + 16d86: 7ff7f793 andi a5,a5,2047 + 16d8a: 8331 srli a4,a4,0xc + 16d8c: 82fd srli a3,a3,0x1f + 16d8e: cbd9 beqz a5,16e24 <__divdf3+0xe2> + 16d90: 7ff00813 li a6,2047 + 16d94: 07078d63 beq a5,a6,16e0e <__divdf3+0xcc> + 16d98: 00371813 slli a6,a4,0x3 + 16d9c: c0178793 addi a5,a5,-1023 # 7ffc01 <_data_lma+0x7e4645> + 16da0: 01d65713 srli a4,a2,0x1d + 16da4: 01076733 or a4,a4,a6 + 16da8: 00361e93 slli t4,a2,0x3 + 16dac: 8d1d sub a0,a0,a5 + 16dae: 4f81 li t6,0 + 16db0: 29771713 bseti a4,a4,0x17 + 16db4: 463d li a2,15 + 16db6: 00d5c833 xor a6,a1,a3 + 16dba: 16666e63 bltu a2,t1,16f36 <__divdf3+0x1f4> + 16dbe: 00003617 auipc a2,0x3 + 16dc2: 20260613 addi a2,a2,514 # 19fc0 + 16dc6: 20c347b3 sh2add a5,t1,a2 + 16dca: 439c lw a5,0(a5) + 16dcc: 97b2 add a5,a5,a2 + 16dce: 8782 jr a5 + 16dd0: 8e9d sub a3,a3,a5 + 16dd2: 03800613 li a2,56 + 16dd6: 3ed65b63 bge a2,a3,171cc <__divdf3+0x48a> + 16dda: 4781 li a5,0 + 16ddc: 4681 li a3,0 + 16dde: 4601 li a2,0 + 16de0: 4432 lw s0,12(sp) + 16de2: 07d2 slli a5,a5,0x14 + 16de4: 8fd5 or a5,a5,a3 + 16de6: 087e slli a6,a6,0x1f + 16de8: 0107e7b3 or a5,a5,a6 + 16dec: 44a2 lw s1,8(sp) + 16dee: 8532 mv a0,a2 + 16df0: 85be mv a1,a5 + 16df2: 0141 addi sp,sp,16 + 16df4: 8082 ret + 16df6: 7ff00793 li a5,2047 + 16dfa: 4681 li a3,0 + 16dfc: 4601 li a2,0 + 16dfe: b7cd j 16de0 <__divdf3+0x9e> + 16e00: 4801 li a6,0 + 16e02: 7ff00793 li a5,2047 + 16e06: 000806b7 lui a3,0x80 + 16e0a: 4601 li a2,0 + 16e0c: bfd1 j 16de0 <__divdf3+0x9e> + 16e0e: 00c76eb3 or t4,a4,a2 + 16e12: 80150513 addi a0,a0,-2047 # 7ff801 <_data_lma+0x7e4245> + 16e16: 100e9663 bnez t4,16f22 <__divdf3+0x1e0> + 16e1a: 00236313 ori t1,t1,2 + 16e1e: 4701 li a4,0 + 16e20: 4f89 li t6,2 + 16e22: bf49 j 16db4 <__divdf3+0x72> + 16e24: 00c76eb3 or t4,a4,a2 + 16e28: 0e0e8863 beqz t4,16f18 <__divdf3+0x1d6> + 16e2c: 34070d63 beqz a4,17186 <__divdf3+0x444> + 16e30: 60071793 clz a5,a4 + 16e34: ff578f93 addi t6,a5,-11 + 16e38: 4875 li a6,29 + 16e3a: ff878e93 addi t4,a5,-8 + 16e3e: 41f80833 sub a6,a6,t6 + 16e42: 01d71733 sll a4,a4,t4 + 16e46: 01065833 srl a6,a2,a6 + 16e4a: 00e86733 or a4,a6,a4 + 16e4e: 01d61eb3 sll t4,a2,t4 + 16e52: 97aa add a5,a5,a0 + 16e54: 3f378513 addi a0,a5,1011 + 16e58: 4f81 li t6,0 + 16e5a: bfa9 j 16db4 <__divdf3+0x72> + 16e5c: 00a7e8b3 or a7,a5,a0 + 16e60: 0c088663 beqz a7,16f2c <__divdf3+0x1ea> + 16e64: 30078263 beqz a5,17168 <__divdf3+0x426> + 16e68: 60079813 clz a6,a5 + 16e6c: ff580713 addi a4,a6,-11 # 7fff5 <_data_lma+0x64a39> + 16e70: 48f5 li a7,29 + 16e72: ff880e13 addi t3,a6,-8 + 16e76: 40e888b3 sub a7,a7,a4 + 16e7a: 01c797b3 sll a5,a5,t3 + 16e7e: 011558b3 srl a7,a0,a7 + 16e82: 00f8e8b3 or a7,a7,a5 + 16e86: 01c51e33 sll t3,a0,t3 + 16e8a: c0d00713 li a4,-1011 + 16e8e: 41070533 sub a0,a4,a6 + 16e92: 4301 li t1,0 + 16e94: 4f01 li t5,0 + 16e96: b5e5 j 16d7e <__divdf3+0x3c> + 16e98: 00a7e8b3 or a7,a5,a0 + 16e9c: 06089763 bnez a7,16f0a <__divdf3+0x1c8> + 16ea0: 4e01 li t3,0 + 16ea2: 4321 li t1,8 + 16ea4: 7ff00513 li a0,2047 + 16ea8: 4f09 li t5,2 + 16eaa: bdd1 j 16d7e <__divdf3+0x3c> + 16eac: 8f7e mv t5,t6 + 16eae: 4789 li a5,2 + 16eb0: 3cff0963 beq t5,a5,17282 <__divdf3+0x540> + 16eb4: 478d li a5,3 + 16eb6: f4ff05e3 beq t5,a5,16e00 <__divdf3+0xbe> + 16eba: 4785 li a5,1 + 16ebc: 8836 mv a6,a3 + 16ebe: f0ff0ee3 beq t5,a5,16dda <__divdf3+0x98> + 16ec2: 3ff50793 addi a5,a0,1023 + 16ec6: 20f05863 blez a5,170d6 <__divdf3+0x394> + 16eca: 007ef693 andi a3,t4,7 + 16ece: 3a069063 bnez a3,1726e <__divdf3+0x52c> + 16ed2: 010006b7 lui a3,0x1000 + 16ed6: 8ef9 and a3,a3,a4 + 16ed8: c689 beqz a3,16ee2 <__divdf3+0x1a0> + 16eda: 40050793 addi a5,a0,1024 + 16ede: 49871713 bclri a4,a4,0x18 + 16ee2: 7fe00693 li a3,2046 + 16ee6: f0f6c8e3 blt a3,a5,16df6 <__divdf3+0xb4> + 16eea: 003ede93 srli t4,t4,0x3 + 16eee: 01d71613 slli a2,a4,0x1d + 16ef2: 00971693 slli a3,a4,0x9 + 16ef6: 01d66633 or a2,a2,t4 + 16efa: 82b1 srli a3,a3,0xc + 16efc: 7ff7f793 andi a5,a5,2047 + 16f00: b5c5 j 16de0 <__divdf3+0x9e> + 16f02: 86ae mv a3,a1 + 16f04: 8746 mv a4,a7 + 16f06: 8ef2 mv t4,t3 + 16f08: b75d j 16eae <__divdf3+0x16c> + 16f0a: 8e2a mv t3,a0 + 16f0c: 88be mv a7,a5 + 16f0e: 4331 li t1,12 + 16f10: 7ff00513 li a0,2047 + 16f14: 4f0d li t5,3 + 16f16: b5a5 j 16d7e <__divdf3+0x3c> + 16f18: 00136313 ori t1,t1,1 + 16f1c: 4701 li a4,0 + 16f1e: 4f85 li t6,1 + 16f20: bd51 j 16db4 <__divdf3+0x72> + 16f22: 00336313 ori t1,t1,3 + 16f26: 8eb2 mv t4,a2 + 16f28: 4f8d li t6,3 + 16f2a: b569 j 16db4 <__divdf3+0x72> + 16f2c: 4e01 li t3,0 + 16f2e: 4311 li t1,4 + 16f30: 4501 li a0,0 + 16f32: 4f05 li t5,1 + 16f34: b5a9 j 16d7e <__divdf3+0x3c> + 16f36: 21176f63 bltu a4,a7,17154 <__divdf3+0x412> + 16f3a: 20e88b63 beq a7,a4,17150 <__divdf3+0x40e> + 16f3e: 8f72 mv t5,t3 + 16f40: 157d addi a0,a0,-1 + 16f42: 87c6 mv a5,a7 + 16f44: 4e01 li t3,0 + 16f46: 00871693 slli a3,a4,0x8 + 16f4a: 0106d893 srli a7,a3,0x10 + 16f4e: 0317d733 divu a4,a5,a7 + 16f52: 018ed613 srli a2,t4,0x18 + 16f56: 8e55 or a2,a2,a3 + 16f58: 008e9593 slli a1,t4,0x8 + 16f5c: 08064333 zext.h t1,a2 + 16f60: 010f5693 srli a3,t5,0x10 + 16f64: 0317f7b3 remu a5,a5,a7 + 16f68: 02e30eb3 mul t4,t1,a4 + 16f6c: 07c2 slli a5,a5,0x10 + 16f6e: 8fd5 or a5,a5,a3 + 16f70: 01d7f863 bgeu a5,t4,16f80 <__divdf3+0x23e> + 16f74: 97b2 add a5,a5,a2 + 16f76: fff70693 addi a3,a4,-1 + 16f7a: 24c7f463 bgeu a5,a2,171c2 <__divdf3+0x480> + 16f7e: 8736 mv a4,a3 + 16f80: 41d787b3 sub a5,a5,t4 + 16f84: 0317deb3 divu t4,a5,a7 + 16f88: 080f46b3 zext.h a3,t5 + 16f8c: 0317f7b3 remu a5,a5,a7 + 16f90: 03d30433 mul s0,t1,t4 + 16f94: 07c2 slli a5,a5,0x10 + 16f96: 8edd or a3,a3,a5 + 16f98: 0086f863 bgeu a3,s0,16fa8 <__divdf3+0x266> + 16f9c: 96b2 add a3,a3,a2 + 16f9e: fffe8793 addi a5,t4,-1 + 16fa2: 20c6fb63 bgeu a3,a2,171b8 <__divdf3+0x476> + 16fa6: 8ebe mv t4,a5 + 16fa8: 0742 slli a4,a4,0x10 + 16faa: 64c1 lui s1,0x10 + 16fac: 01d76733 or a4,a4,t4 + 16fb0: fff48f13 addi t5,s1,-1 # ffff + 16fb4: 01e77eb3 and t4,a4,t5 + 16fb8: 01075293 srli t0,a4,0x10 + 16fbc: 0105df93 srli t6,a1,0x10 + 16fc0: 01e5ff33 and t5,a1,t5 + 16fc4: 03df03b3 mul t2,t5,t4 + 16fc8: 8e81 sub a3,a3,s0 + 16fca: 03df8eb3 mul t4,t6,t4 + 16fce: 0103d793 srli a5,t2,0x10 + 16fd2: 03e28433 mul s0,t0,t5 + 16fd6: 9ea2 add t4,t4,s0 + 16fd8: 97f6 add a5,a5,t4 + 16fda: 03f282b3 mul t0,t0,t6 + 16fde: 0087f363 bgeu a5,s0,16fe4 <__divdf3+0x2a2> + 16fe2: 92a6 add t0,t0,s1 + 16fe4: 6441 lui s0,0x10 + 16fe6: 147d addi s0,s0,-1 # ffff + 16fe8: 0107de93 srli t4,a5,0x10 + 16fec: 8fe1 and a5,a5,s0 + 16fee: 07c2 slli a5,a5,0x10 + 16ff0: 0083f3b3 and t2,t2,s0 + 16ff4: 9e96 add t4,t4,t0 + 16ff6: 979e add a5,a5,t2 + 16ff8: 13d6ea63 bltu a3,t4,1712c <__divdf3+0x3ea> + 16ffc: 13d68663 beq a3,t4,17128 <__divdf3+0x3e6> + 17000: 40fe07b3 sub a5,t3,a5 + 17004: 41d686b3 sub a3,a3,t4 + 17008: 00fe3e33 sltu t3,t3,a5 + 1700c: 41c686b3 sub a3,a3,t3 + 17010: 24d60163 beq a2,a3,17252 <__divdf3+0x510> + 17014: 0316deb3 divu t4,a3,a7 + 17018: 0107de13 srli t3,a5,0x10 + 1701c: 0316f6b3 remu a3,a3,a7 + 17020: 03d302b3 mul t0,t1,t4 + 17024: 06c2 slli a3,a3,0x10 + 17026: 00de66b3 or a3,t3,a3 + 1702a: 0056fb63 bgeu a3,t0,17040 <__divdf3+0x2fe> + 1702e: 96b2 add a3,a3,a2 + 17030: fffe8e13 addi t3,t4,-1 + 17034: 24c6e563 bltu a3,a2,1727e <__divdf3+0x53c> + 17038: 2456f363 bgeu a3,t0,1727e <__divdf3+0x53c> + 1703c: 1ef9 addi t4,t4,-2 + 1703e: 96b2 add a3,a3,a2 + 17040: 405686b3 sub a3,a3,t0 + 17044: 0316de33 divu t3,a3,a7 + 17048: 0807c7b3 zext.h a5,a5 + 1704c: 0316f6b3 remu a3,a3,a7 + 17050: 03c30333 mul t1,t1,t3 + 17054: 06c2 slli a3,a3,0x10 + 17056: 8fd5 or a5,a5,a3 + 17058: 0067fb63 bgeu a5,t1,1706e <__divdf3+0x32c> + 1705c: 97b2 add a5,a5,a2 + 1705e: fffe0693 addi a3,t3,-1 + 17062: 20c7ec63 bltu a5,a2,1727a <__divdf3+0x538> + 17066: 2067fa63 bgeu a5,t1,1727a <__divdf3+0x538> + 1706a: 1e79 addi t3,t3,-2 + 1706c: 97b2 add a5,a5,a2 + 1706e: 0ec2 slli t4,t4,0x10 + 17070: 01ceeeb3 or t4,t4,t3 + 17074: 010ed293 srli t0,t4,0x10 + 17078: 080ec6b3 zext.h a3,t4 + 1707c: 03e28e33 mul t3,t0,t5 + 17080: 406787b3 sub a5,a5,t1 + 17084: 02df88b3 mul a7,t6,a3 + 17088: 03e68f33 mul t5,a3,t5 + 1708c: 98f2 add a7,a7,t3 + 1708e: 010f5693 srli a3,t5,0x10 + 17092: 96c6 add a3,a3,a7 + 17094: 025f8fb3 mul t6,t6,t0 + 17098: 01c6f463 bgeu a3,t3,170a0 <__divdf3+0x35e> + 1709c: 68c1 lui a7,0x10 + 1709e: 9fc6 add t6,t6,a7 + 170a0: 6341 lui t1,0x10 + 170a2: 137d addi t1,t1,-1 # ffff + 170a4: 0106d893 srli a7,a3,0x10 + 170a8: 0066f6b3 and a3,a3,t1 + 170ac: 06c2 slli a3,a3,0x10 + 170ae: 006f7f33 and t5,t5,t1 + 170b2: 98fe add a7,a7,t6 + 170b4: 96fa add a3,a3,t5 + 170b6: 0f17f663 bgeu a5,a7,171a2 <__divdf3+0x460> + 170ba: 97b2 add a5,a5,a2 + 170bc: fffe8e13 addi t3,t4,-1 + 170c0: 833e mv t1,a5 + 170c2: 16c7e663 bltu a5,a2,1722e <__divdf3+0x4ec> + 170c6: 1d17e463 bltu a5,a7,1728e <__divdf3+0x54c> + 170ca: 1d178d63 beq a5,a7,172a4 <__divdf3+0x562> + 170ce: 8ef2 mv t4,t3 + 170d0: 001eee93 ori t4,t4,1 + 170d4: b3fd j 16ec2 <__divdf3+0x180> + 170d6: 4685 li a3,1 + 170d8: ce079ce3 bnez a5,16dd0 <__divdf3+0x8e> + 170dc: 41e50513 addi a0,a0,1054 + 170e0: 00ae97b3 sll a5,t4,a0 + 170e4: 00f037b3 snez a5,a5 + 170e8: 00a71533 sll a0,a4,a0 + 170ec: 8fc9 or a5,a5,a0 + 170ee: 00dedeb3 srl t4,t4,a3 + 170f2: 00feeeb3 or t4,t4,a5 + 170f6: 007ef793 andi a5,t4,7 + 170fa: 00d75733 srl a4,a4,a3 + 170fe: cf81 beqz a5,17116 <__divdf3+0x3d4> + 17100: 00fef793 andi a5,t4,15 + 17104: 4691 li a3,4 + 17106: 00d78863 beq a5,a3,17116 <__divdf3+0x3d4> + 1710a: 004e8793 addi a5,t4,4 + 1710e: 01d7beb3 sltu t4,a5,t4 + 17112: 9776 add a4,a4,t4 + 17114: 8ebe mv t4,a5 + 17116: 008005b7 lui a1,0x800 + 1711a: 8df9 and a1,a1,a4 + 1711c: 4785 li a5,1 + 1711e: 4681 li a3,0 + 17120: 4601 li a2,0 + 17122: ca059fe3 bnez a1,16de0 <__divdf3+0x9e> + 17126: a8d5 j 1721a <__divdf3+0x4d8> + 17128: ecfe7ce3 bgeu t3,a5,17000 <__divdf3+0x2be> + 1712c: 00be02b3 add t0,t3,a1 + 17130: 01c2b3b3 sltu t2,t0,t3 + 17134: 00c38e33 add t3,t2,a2 + 17138: 96f2 add a3,a3,t3 + 1713a: fff70413 addi s0,a4,-1 + 1713e: 8e16 mv t3,t0 + 17140: 06d67663 bgeu a2,a3,171ac <__divdf3+0x46a> + 17144: 0fd6ef63 bltu a3,t4,17242 <__divdf3+0x500> + 17148: 0ede8b63 beq t4,a3,1723e <__divdf3+0x4fc> + 1714c: 8722 mv a4,s0 + 1714e: bd4d j 17000 <__divdf3+0x2be> + 17150: dfde67e3 bltu t3,t4,16f3e <__divdf3+0x1fc> + 17154: 001e5693 srli a3,t3,0x1 + 17158: 01f89f13 slli t5,a7,0x1f + 1715c: 0018d793 srli a5,a7,0x1 + 17160: 00df6f33 or t5,t5,a3 + 17164: 0e7e slli t3,t3,0x1f + 17166: b3c5 j 16f46 <__divdf3+0x204> + 17168: 60051893 clz a7,a0 + 1716c: 4371 li t1,28 + 1716e: 01588713 addi a4,a7,21 # 10015 + 17172: 02088813 addi a6,a7,32 + 17176: cee35de3 bge t1,a4,16e70 <__divdf3+0x12e> + 1717a: ff888793 addi a5,a7,-8 + 1717e: 00f518b3 sll a7,a0,a5 + 17182: 4e01 li t3,0 + 17184: b319 j 16e8a <__divdf3+0x148> + 17186: 60061813 clz a6,a2 + 1718a: 4ef1 li t4,28 + 1718c: 01580f93 addi t6,a6,21 + 17190: 02080793 addi a5,a6,32 + 17194: cbfed2e3 bge t4,t6,16e38 <__divdf3+0xf6> + 17198: 1861 addi a6,a6,-8 + 1719a: 4e81 li t4,0 + 1719c: 01061733 sll a4,a2,a6 + 171a0: b94d j 16e52 <__divdf3+0x110> + 171a2: f31797e3 bne a5,a7,170d0 <__divdf3+0x38e> + 171a6: d0068ee3 beqz a3,16ec2 <__divdf3+0x180> + 171aa: bf01 j 170ba <__divdf3+0x378> + 171ac: fad610e3 bne a2,a3,1714c <__divdf3+0x40a> + 171b0: f8038ae3 beqz t2,17144 <__divdf3+0x402> + 171b4: 8722 mv a4,s0 + 171b6: b5a9 j 17000 <__divdf3+0x2be> + 171b8: de86f7e3 bgeu a3,s0,16fa6 <__divdf3+0x264> + 171bc: 1ef9 addi t4,t4,-2 + 171be: 96b2 add a3,a3,a2 + 171c0: b3e5 j 16fa8 <__divdf3+0x266> + 171c2: dbd7fee3 bgeu a5,t4,16f7e <__divdf3+0x23c> + 171c6: 1779 addi a4,a4,-2 + 171c8: 97b2 add a5,a5,a2 + 171ca: bb5d j 16f80 <__divdf3+0x23e> + 171cc: 467d li a2,31 + 171ce: f0d657e3 bge a2,a3,170dc <__divdf3+0x39a> + 171d2: 5605 li a2,-31 + 171d4: 40f607b3 sub a5,a2,a5 + 171d8: 02000613 li a2,32 + 171dc: 00f757b3 srl a5,a4,a5 + 171e0: 00c68863 beq a3,a2,171f0 <__divdf3+0x4ae> + 171e4: 43e50513 addi a0,a0,1086 + 171e8: 00a71733 sll a4,a4,a0 + 171ec: 00eeeeb3 or t4,t4,a4 + 171f0: 01d03eb3 snez t4,t4 + 171f4: 00feeeb3 or t4,t4,a5 + 171f8: 007ef713 andi a4,t4,7 + 171fc: 4681 li a3,0 + 171fe: c315 beqz a4,17222 <__divdf3+0x4e0> + 17200: 00fef793 andi a5,t4,15 + 17204: 4691 li a3,4 + 17206: 4701 li a4,0 + 17208: 00d78963 beq a5,a3,1721a <__divdf3+0x4d8> + 1720c: 004e8793 addi a5,t4,4 + 17210: 01d7beb3 sltu t4,a5,t4 + 17214: 01d03733 snez a4,t4 + 17218: 8ebe mv t4,a5 + 1721a: 00971693 slli a3,a4,0x9 + 1721e: 82b1 srli a3,a3,0xc + 17220: 0776 slli a4,a4,0x1d + 17222: 003ede93 srli t4,t4,0x3 + 17226: 00eee633 or a2,t4,a4 + 1722a: 4781 li a5,0 + 1722c: be55 j 16de0 <__divdf3+0x9e> + 1722e: 8ef2 mv t4,t3 + 17230: eb1310e3 bne t1,a7,170d0 <__divdf3+0x38e> + 17234: c8b687e3 beq a3,a1,16ec2 <__divdf3+0x180> + 17238: 001eee93 ori t4,t4,1 + 1723c: b159 j 16ec2 <__divdf3+0x180> + 1723e: f0f2f7e3 bgeu t0,a5,1714c <__divdf3+0x40a> + 17242: 92ae add t0,t0,a1 + 17244: 00b2b3b3 sltu t2,t0,a1 + 17248: 93b2 add t2,t2,a2 + 1724a: 1779 addi a4,a4,-2 + 1724c: 8e16 mv t3,t0 + 1724e: 969e add a3,a3,t2 + 17250: bb45 j 17000 <__divdf3+0x2be> + 17252: c0200693 li a3,-1022 + 17256: 3ff50793 addi a5,a0,1023 + 1725a: 5efd li t4,-1 + 1725c: e6d54de3 blt a0,a3,170d6 <__divdf3+0x394> + 17260: 004e8693 addi a3,t4,4 + 17264: 01d6beb3 sltu t4,a3,t4 + 17268: 9776 add a4,a4,t4 + 1726a: 8eb6 mv t4,a3 + 1726c: b19d j 16ed2 <__divdf3+0x190> + 1726e: 00fef693 andi a3,t4,15 + 17272: 4611 li a2,4 + 17274: c4c68fe3 beq a3,a2,16ed2 <__divdf3+0x190> + 17278: b7e5 j 17260 <__divdf3+0x51e> + 1727a: 8e36 mv t3,a3 + 1727c: bbcd j 1706e <__divdf3+0x32c> + 1727e: 8ef2 mv t4,t3 + 17280: b3c1 j 17040 <__divdf3+0x2fe> + 17282: 8836 mv a6,a3 + 17284: 7ff00793 li a5,2047 + 17288: 4681 li a3,0 + 1728a: 4601 li a2,0 + 1728c: be91 j 16de0 <__divdf3+0x9e> + 1728e: 00159e13 slli t3,a1,0x1 + 17292: 00be3333 sltu t1,t3,a1 + 17296: 9332 add t1,t1,a2 + 17298: 933e add t1,t1,a5 + 1729a: 1ef9 addi t4,t4,-2 + 1729c: 85f2 mv a1,t3 + 1729e: f9130be3 beq t1,a7,17234 <__divdf3+0x4f2> + 172a2: b53d j 170d0 <__divdf3+0x38e> + 172a4: fed5e5e3 bltu a1,a3,1728e <__divdf3+0x54c> + 172a8: 8ef2 mv t4,t3 + 172aa: f8b697e3 bne a3,a1,17238 <__divdf3+0x4f6> + 172ae: b911 j 16ec2 <__divdf3+0x180> + +000172b0 <__muldf3>: +__muldf3(): + 172b0: 1141 addi sp,sp,-16 + 172b2: 0145d793 srli a5,a1,0x14 + 172b6: 00c59e93 slli t4,a1,0xc + 172ba: c622 sw s0,12(sp) + 172bc: c426 sw s1,8(sp) + 172be: c24a sw s2,4(sp) + 172c0: c04e sw s3,0(sp) + 172c2: 7ff7f793 andi a5,a5,2047 + 172c6: 00cede93 srli t4,t4,0xc + 172ca: 81fd srli a1,a1,0x1f + 172cc: 14078963 beqz a5,1741e <__muldf3+0x16e> + 172d0: 7ff00713 li a4,2047 + 172d4: 18e78263 beq a5,a4,17458 <__muldf3+0x1a8> + 172d8: 0e8e slli t4,t4,0x3 + 172da: 01d55713 srli a4,a0,0x1d + 172de: 01d76eb3 or t4,a4,t4 + 172e2: 00351293 slli t0,a0,0x3 + 172e6: c0178e13 addi t3,a5,-1023 + 172ea: 4881 li a7,0 + 172ec: 4481 li s1,0 + 172ee: 297e9e93 bseti t4,t4,0x17 + 172f2: 0146d793 srli a5,a3,0x14 + 172f6: 00c69713 slli a4,a3,0xc + 172fa: 7ff7f793 andi a5,a5,2047 + 172fe: 8432 mv s0,a2 + 17300: 00c75313 srli t1,a4,0xc + 17304: 01f6d393 srli t2,a3,0x1f + 17308: cbf9 beqz a5,173de <__muldf3+0x12e> + 1730a: 7ff00513 li a0,2047 + 1730e: 06a78663 beq a5,a0,1737a <__muldf3+0xca> + 17312: 00331713 slli a4,t1,0x3 + 17316: 01d65513 srli a0,a2,0x1d + 1731a: 8f49 or a4,a4,a0 + 1731c: c0178693 addi a3,a5,-1023 + 17320: 01c68f33 add t5,a3,t3 + 17324: 29771313 bseti t1,a4,0x17 + 17328: 4729 li a4,10 + 1732a: 00361413 slli s0,a2,0x3 + 1732e: 4501 li a0,0 + 17330: 001f0e13 addi t3,t5,1 + 17334: 17174663 blt a4,a7,174a0 <__muldf3+0x1f0> + 17338: 0075c833 xor a6,a1,t2 + 1733c: 8fc2 mv t6,a6 + 1733e: 4589 li a1,2 + 17340: 0515cf63 blt a1,a7,1739e <__muldf3+0xee> + 17344: fff88613 addi a2,a7,-1 + 17348: 4885 li a7,1 + 1734a: 18c8eb63 bltu a7,a2,174e0 <__muldf3+0x230> + 1734e: 10b50f63 beq a0,a1,1746c <__muldf3+0x1bc> + 17352: 4785 li a5,1 + 17354: 887e mv a6,t6 + 17356: 06f51663 bne a0,a5,173c2 <__muldf3+0x112> + 1735a: 4781 li a5,0 + 1735c: 4681 li a3,0 + 1735e: 4701 li a4,0 + 17360: 4432 lw s0,12(sp) + 17362: 07d2 slli a5,a5,0x14 + 17364: 8fd5 or a5,a5,a3 + 17366: 087e slli a6,a6,0x1f + 17368: 0107e7b3 or a5,a5,a6 + 1736c: 44a2 lw s1,8(sp) + 1736e: 4912 lw s2,4(sp) + 17370: 4982 lw s3,0(sp) + 17372: 853a mv a0,a4 + 17374: 85be mv a1,a5 + 17376: 0141 addi sp,sp,16 + 17378: 8082 ret + 1737a: 00c36633 or a2,t1,a2 + 1737e: 7ffe0f13 addi t5,t3,2047 + 17382: 10060163 beqz a2,17484 <__muldf3+0x1d4> + 17386: 0075c833 xor a6,a1,t2 + 1738a: 28b01693 bseti a3,zero,0xb + 1738e: 0038e893 ori a7,a7,3 + 17392: 4729 li a4,10 + 17394: 8fc2 mv t6,a6 + 17396: 9e36 add t3,t3,a3 + 17398: 41174463 blt a4,a7,177a0 <__muldf3+0x4f0> + 1739c: 450d li a0,3 + 1739e: 29101633 bset a2,zero,a7 + 173a2: 53067713 andi a4,a2,1328 + 173a6: c305 beqz a4,173c6 <__muldf3+0x116> + 173a8: 4789 li a5,2 + 173aa: 0cf48163 beq s1,a5,1746c <__muldf3+0x1bc> + 173ae: 478d li a5,3 + 173b0: 12f48163 beq s1,a5,174d2 <__muldf3+0x222> + 173b4: 8526 mv a0,s1 + 173b6: 4785 li a5,1 + 173b8: 8376 mv t1,t4 + 173ba: 8416 mv s0,t0 + 173bc: 887e mv a6,t6 + 173be: f8f50ee3 beq a0,a5,1735a <__muldf3+0xaa> + 173c2: 8f72 mv t5,t3 + 173c4: acbd j 17642 <__muldf3+0x392> + 173c6: 24067593 andi a1,a2,576 + 173ca: e5dd bnez a1,17478 <__muldf3+0x1c8> + 173cc: 08867613 andi a2,a2,136 + 173d0: 10060863 beqz a2,174e0 <__muldf3+0x230> + 173d4: 8f9e mv t6,t2 + 173d6: 8e9a mv t4,t1 + 173d8: 82a2 mv t0,s0 + 173da: 84aa mv s1,a0 + 173dc: b7f1 j 173a8 <__muldf3+0xf8> + 173de: 00c36733 or a4,t1,a2 + 173e2: cf61 beqz a4,174ba <__muldf3+0x20a> + 173e4: 30030f63 beqz t1,17702 <__muldf3+0x452> + 173e8: 60031f13 clz t5,t1 + 173ec: ff5f0713 addi a4,t5,-11 + 173f0: 4575 li a0,29 + 173f2: ff8f0793 addi a5,t5,-8 + 173f6: 8d19 sub a0,a0,a4 + 173f8: 00a65533 srl a0,a2,a0 + 173fc: 00f31733 sll a4,t1,a5 + 17400: 00e56333 or t1,a0,a4 + 17404: 00f61433 sll s0,a2,a5 + 17408: 41ee0f33 sub t5,t3,t5 + 1740c: c0df0f13 addi t5,t5,-1011 + 17410: 4729 li a4,10 + 17412: 4501 li a0,0 + 17414: 001f0e13 addi t3,t5,1 + 17418: f31750e3 bge a4,a7,17338 <__muldf3+0x88> + 1741c: a051 j 174a0 <__muldf3+0x1f0> + 1741e: 00aee2b3 or t0,t4,a0 + 17422: 08028763 beqz t0,174b0 <__muldf3+0x200> + 17426: 2c0e8063 beqz t4,176e6 <__muldf3+0x436> + 1742a: 600e9813 clz a6,t4 + 1742e: ff580793 addi a5,a6,-11 + 17432: 4775 li a4,29 + 17434: ff880293 addi t0,a6,-8 + 17438: 8f1d sub a4,a4,a5 + 1743a: 005e9eb3 sll t4,t4,t0 + 1743e: 00e55733 srl a4,a0,a4 + 17442: 01d76eb3 or t4,a4,t4 + 17446: 005512b3 sll t0,a0,t0 + 1744a: c0d00e13 li t3,-1011 + 1744e: 410e0e33 sub t3,t3,a6 + 17452: 4881 li a7,0 + 17454: 4481 li s1,0 + 17456: bd71 j 172f2 <__muldf3+0x42> + 17458: 00aee2b3 or t0,t4,a0 + 1745c: 04029463 bnez t0,174a4 <__muldf3+0x1f4> + 17460: 4e81 li t4,0 + 17462: 48a1 li a7,8 + 17464: 7ff00e13 li t3,2047 + 17468: 4489 li s1,2 + 1746a: b561 j 172f2 <__muldf3+0x42> + 1746c: 887e mv a6,t6 + 1746e: 7ff00793 li a5,2047 + 17472: 4681 li a3,0 + 17474: 4701 li a4,0 + 17476: b5ed j 17360 <__muldf3+0xb0> + 17478: 4801 li a6,0 + 1747a: 7ff00793 li a5,2047 + 1747e: 000806b7 lui a3,0x80 + 17482: bdf9 j 17360 <__muldf3+0xb0> + 17484: 28b01713 bseti a4,zero,0xb + 17488: 0028e893 ori a7,a7,2 + 1748c: 47a9 li a5,10 + 1748e: 9e3a add t3,t3,a4 + 17490: 2917dc63 bge a5,a7,17728 <__muldf3+0x478> + 17494: 4401 li s0,0 + 17496: 47b9 li a5,14 + 17498: 4509 li a0,2 + 1749a: 472d li a4,11 + 1749c: 30e78063 beq a5,a4,1779c <__muldf3+0x4ec> + 174a0: 8fae mv t6,a1 + 174a2: b719 j 173a8 <__muldf3+0xf8> + 174a4: 82aa mv t0,a0 + 174a6: 48b1 li a7,12 + 174a8: 7ff00e13 li t3,2047 + 174ac: 448d li s1,3 + 174ae: b591 j 172f2 <__muldf3+0x42> + 174b0: 4e81 li t4,0 + 174b2: 4891 li a7,4 + 174b4: 4e01 li t3,0 + 174b6: 4485 li s1,1 + 174b8: bd2d j 172f2 <__muldf3+0x42> + 174ba: 8f72 mv t5,t3 + 174bc: 0018e893 ori a7,a7,1 + 174c0: 4729 li a4,10 + 174c2: 4301 li t1,0 + 174c4: 4401 li s0,0 + 174c6: 4505 li a0,1 + 174c8: 001f0e13 addi t3,t5,1 + 174cc: e71756e3 bge a4,a7,17338 <__muldf3+0x88> + 174d0: bfc1 j 174a0 <__muldf3+0x1f0> + 174d2: 4801 li a6,0 + 174d4: 7ff00793 li a5,2047 + 174d8: 000806b7 lui a3,0x80 + 174dc: 4701 li a4,0 + 174de: b549 j 17360 <__muldf3+0xb0> + 174e0: 65c1 lui a1,0x10 + 174e2: fff58493 addi s1,a1,-1 # ffff + 174e6: 0092f7b3 and a5,t0,s1 + 174ea: 0102d913 srli s2,t0,0x10 + 174ee: 01045893 srli a7,s0,0x10 + 174f2: 8ce1 and s1,s1,s0 + 174f4: 02978733 mul a4,a5,s1 + 174f8: 02990633 mul a2,s2,s1 + 174fc: 01075513 srli a0,a4,0x10 + 17500: 02f886b3 mul a3,a7,a5 + 17504: 96b2 add a3,a3,a2 + 17506: 9536 add a0,a0,a3 + 17508: 03190fb3 mul t6,s2,a7 + 1750c: 00c57363 bgeu a0,a2,17512 <__muldf3+0x262> + 17510: 9fae add t6,t6,a1 + 17512: 6441 lui s0,0x10 + 17514: fff40613 addi a2,s0,-1 # ffff + 17518: 00c575b3 and a1,a0,a2 + 1751c: 00c376b3 and a3,t1,a2 + 17520: 8f71 and a4,a4,a2 + 17522: 01035393 srli t2,t1,0x10 + 17526: 05c2 slli a1,a1,0x10 + 17528: 02d782b3 mul t0,a5,a3 + 1752c: 95ba add a1,a1,a4 + 1752e: 8141 srli a0,a0,0x10 + 17530: 02d90733 mul a4,s2,a3 + 17534: 0102d613 srli a2,t0,0x10 + 17538: 02f387b3 mul a5,t2,a5 + 1753c: 97ba add a5,a5,a4 + 1753e: 963e add a2,a2,a5 + 17540: 027907b3 mul a5,s2,t2 + 17544: 00e67363 bgeu a2,a4,1754a <__muldf3+0x29a> + 17548: 97a2 add a5,a5,s0 + 1754a: 69c1 lui s3,0x10 + 1754c: fff98313 addi t1,s3,-1 # ffff + 17550: 00667733 and a4,a2,t1 + 17554: 010ed413 srli s0,t4,0x10 + 17558: 0062f2b3 and t0,t0,t1 + 1755c: 006efeb3 and t4,t4,t1 + 17560: 0742 slli a4,a4,0x10 + 17562: 9716 add a4,a4,t0 + 17564: 03d48933 mul s2,s1,t4 + 17568: 8241 srli a2,a2,0x10 + 1756a: 963e add a2,a2,a5 + 1756c: 953a add a0,a0,a4 + 1756e: 03d882b3 mul t0,a7,t4 + 17572: 01095793 srli a5,s2,0x10 + 17576: 02940333 mul t1,s0,s1 + 1757a: 929a add t0,t0,t1 + 1757c: 9796 add a5,a5,t0 + 1757e: 028888b3 mul a7,a7,s0 + 17582: 0067f363 bgeu a5,t1,17588 <__muldf3+0x2d8> + 17586: 98ce add a7,a7,s3 + 17588: 69c1 lui s3,0x10 + 1758a: fff98313 addi t1,s3,-1 # ffff + 1758e: 0067f4b3 and s1,a5,t1 + 17592: 04c2 slli s1,s1,0x10 + 17594: 00697333 and t1,s2,t1 + 17598: 83c1 srli a5,a5,0x10 + 1759a: 97c6 add a5,a5,a7 + 1759c: 03d682b3 mul t0,a3,t4 + 175a0: 006488b3 add a7,s1,t1 + 175a4: 02d406b3 mul a3,s0,a3 + 175a8: 0102d313 srli t1,t0,0x10 + 175ac: 03d38eb3 mul t4,t2,t4 + 175b0: 9eb6 add t4,t4,a3 + 175b2: 9e9a add t4,t4,t1 + 175b4: 02838333 mul t1,t2,s0 + 175b8: 00def363 bgeu t4,a3,175be <__muldf3+0x30e> + 175bc: 934e add t1,t1,s3 + 175be: 63c1 lui t2,0x10 + 175c0: 13fd addi t2,t2,-1 # ffff + 175c2: 007ef6b3 and a3,t4,t2 + 175c6: 06c2 slli a3,a3,0x10 + 175c8: 0072f2b3 and t0,t0,t2 + 175cc: 957e add a0,a0,t6 + 175ce: 9696 add a3,a3,t0 + 175d0: 9636 add a2,a2,a3 + 175d2: 00e53733 sltu a4,a0,a4 + 175d6: 9732 add a4,a4,a2 + 175d8: 98aa add a7,a7,a0 + 175da: 97ba add a5,a5,a4 + 175dc: 00a8b533 sltu a0,a7,a0 + 175e0: 953e add a0,a0,a5 + 175e2: 00d636b3 sltu a3,a2,a3 + 175e6: 00c73633 sltu a2,a4,a2 + 175ea: 8ed1 or a3,a3,a2 + 175ec: 00e7b733 sltu a4,a5,a4 + 175f0: 010ed613 srli a2,t4,0x10 + 175f4: 00f537b3 sltu a5,a0,a5 + 175f8: 96b2 add a3,a3,a2 + 175fa: 8f5d or a4,a4,a5 + 175fc: 9736 add a4,a4,a3 + 175fe: 971a add a4,a4,t1 + 17600: 00989793 slli a5,a7,0x9 + 17604: 0726 slli a4,a4,0x9 + 17606: 01755693 srli a3,a0,0x17 + 1760a: 8fcd or a5,a5,a1 + 1760c: 00d76333 or t1,a4,a3 + 17610: 00f037b3 snez a5,a5 + 17614: 0178d713 srli a4,a7,0x17 + 17618: 8fd9 or a5,a5,a4 + 1761a: 01000737 lui a4,0x1000 + 1761e: 0526 slli a0,a0,0x9 + 17620: 00e37733 and a4,t1,a4 + 17624: 00a7e433 or s0,a5,a0 + 17628: cf09 beqz a4,17642 <__muldf3+0x392> + 1762a: 00145713 srli a4,s0,0x1 + 1762e: 00147793 andi a5,s0,1 + 17632: 01f31693 slli a3,t1,0x1f + 17636: 8fd9 or a5,a5,a4 + 17638: 00d7e433 or s0,a5,a3 + 1763c: 00135313 srli t1,t1,0x1 + 17640: 8f72 mv t5,t3 + 17642: 3fff0613 addi a2,t5,1023 + 17646: 04c05863 blez a2,17696 <__muldf3+0x3e6> + 1764a: 00747793 andi a5,s0,7 + 1764e: cf81 beqz a5,17666 <__muldf3+0x3b6> + 17650: 00f47793 andi a5,s0,15 + 17654: 4711 li a4,4 + 17656: 00e78863 beq a5,a4,17666 <__muldf3+0x3b6> + 1765a: 00440713 addi a4,s0,4 + 1765e: 008737b3 sltu a5,a4,s0 + 17662: 933e add t1,t1,a5 + 17664: 843a mv s0,a4 + 17666: 010007b7 lui a5,0x1000 + 1766a: 00f377b3 and a5,t1,a5 + 1766e: c789 beqz a5,17678 <__muldf3+0x3c8> + 17670: 400f0613 addi a2,t5,1024 + 17674: 49831313 bclri t1,t1,0x18 + 17678: 7fe00793 li a5,2046 + 1767c: 0ac7c163 blt a5,a2,1771e <__muldf3+0x46e> + 17680: 00345793 srli a5,s0,0x3 + 17684: 01d31713 slli a4,t1,0x1d + 17688: 00931693 slli a3,t1,0x9 + 1768c: 8f5d or a4,a4,a5 + 1768e: 82b1 srli a3,a3,0xc + 17690: 7ff67793 andi a5,a2,2047 + 17694: b1f1 j 17360 <__muldf3+0xb0> + 17696: 4705 li a4,1 + 17698: ee59 bnez a2,17736 <__muldf3+0x486> + 1769a: 41ef0f13 addi t5,t5,1054 + 1769e: 01e41633 sll a2,s0,t5 + 176a2: 00c03633 snez a2,a2 + 176a6: 01e31f33 sll t5,t1,t5 + 176aa: 00e457b3 srl a5,s0,a4 + 176ae: 01e66633 or a2,a2,t5 + 176b2: 8e5d or a2,a2,a5 + 176b4: 00767793 andi a5,a2,7 + 176b8: 00e355b3 srl a1,t1,a4 + 176bc: cf81 beqz a5,176d4 <__muldf3+0x424> + 176be: 00f67793 andi a5,a2,15 + 176c2: 4711 li a4,4 + 176c4: 00e78863 beq a5,a4,176d4 <__muldf3+0x424> + 176c8: 00460793 addi a5,a2,4 + 176cc: 00c7b633 sltu a2,a5,a2 + 176d0: 95b2 add a1,a1,a2 + 176d2: 863e mv a2,a5 + 176d4: 00800537 lui a0,0x800 + 176d8: 8d6d and a0,a0,a1 + 176da: 4785 li a5,1 + 176dc: 4681 li a3,0 + 176de: 4701 li a4,0 + 176e0: c80510e3 bnez a0,17360 <__muldf3+0xb0> + 176e4: a05d j 1778a <__muldf3+0x4da> + 176e6: 60051713 clz a4,a0 + 176ea: 48f1 li a7,28 + 176ec: 01570793 addi a5,a4,21 # 1000015 <_data_lma+0xfe4a59> + 176f0: 02070813 addi a6,a4,32 + 176f4: d2f8dfe3 bge a7,a5,17432 <__muldf3+0x182> + 176f8: 1761 addi a4,a4,-8 + 176fa: 4281 li t0,0 + 176fc: 00e51eb3 sll t4,a0,a4 + 17700: b3a9 j 1744a <__muldf3+0x19a> + 17702: 60061793 clz a5,a2 + 17706: 46f1 li a3,28 + 17708: 01578713 addi a4,a5,21 # 1000015 <_data_lma+0xfe4a59> + 1770c: 02078f13 addi t5,a5,32 + 17710: cee6d0e3 bge a3,a4,173f0 <__muldf3+0x140> + 17714: 17e1 addi a5,a5,-8 + 17716: 4401 li s0,0 + 17718: 00f61333 sll t1,a2,a5 + 1771c: b1f5 j 17408 <__muldf3+0x158> + 1771e: 7ff00793 li a5,2047 + 17722: 4681 li a3,0 + 17724: 4701 li a4,0 + 17726: b92d j 17360 <__muldf3+0xb0> + 17728: 0075c833 xor a6,a1,t2 + 1772c: 8fc2 mv t6,a6 + 1772e: 4301 li t1,0 + 17730: 4401 li s0,0 + 17732: 4509 li a0,2 + 17734: b129 j 1733e <__muldf3+0x8e> + 17736: 8f11 sub a4,a4,a2 + 17738: 03800793 li a5,56 + 1773c: c0e7cfe3 blt a5,a4,1735a <__muldf3+0xaa> + 17740: 47fd li a5,31 + 17742: f4e7dce3 bge a5,a4,1769a <__muldf3+0x3ea> + 17746: 5785 li a5,-31 + 17748: 8f91 sub a5,a5,a2 + 1774a: 02000693 li a3,32 + 1774e: 00f357b3 srl a5,t1,a5 + 17752: 00d70863 beq a4,a3,17762 <__muldf3+0x4b2> + 17756: 43ef0f13 addi t5,t5,1086 + 1775a: 01e31f33 sll t5,t1,t5 + 1775e: 01e46433 or s0,s0,t5 + 17762: 00803633 snez a2,s0 + 17766: 8e5d or a2,a2,a5 + 17768: 00767713 andi a4,a2,7 + 1776c: 4681 li a3,0 + 1776e: c31d beqz a4,17794 <__muldf3+0x4e4> + 17770: 00f67793 andi a5,a2,15 + 17774: 4711 li a4,4 + 17776: 4581 li a1,0 + 17778: 00e78963 beq a5,a4,1778a <__muldf3+0x4da> + 1777c: 00460793 addi a5,a2,4 + 17780: 00c7b633 sltu a2,a5,a2 + 17784: 00c035b3 snez a1,a2 + 17788: 863e mv a2,a5 + 1778a: 00959693 slli a3,a1,0x9 + 1778e: 01d59713 slli a4,a1,0x1d + 17792: 82b1 srli a3,a3,0xc + 17794: 820d srli a2,a2,0x3 + 17796: 8f51 or a4,a4,a2 + 17798: 4781 li a5,0 + 1779a: b6d9 j 17360 <__muldf3+0xb0> + 1779c: 8332 mv t1,a2 + 1779e: b91d j 173d4 <__muldf3+0x124> + 177a0: 473d li a4,15 + 177a2: 00e89763 bne a7,a4,177b0 <__muldf3+0x500> + 177a6: 4801 li a6,0 + 177a8: 000806b7 lui a3,0x80 + 177ac: 4701 li a4,0 + 177ae: be4d j 17360 <__muldf3+0xb0> + 177b0: 861a mv a2,t1 + 177b2: 47ad li a5,11 + 177b4: 450d li a0,3 + 177b6: b1d5 j 1749a <__muldf3+0x1ea> + +000177b8 <__fixunsdfsi>: +__fixunsdfsi(): + 177b8: 0145d793 srli a5,a1,0x14 + 177bc: 00c59713 slli a4,a1,0xc + 177c0: 7ff7f793 andi a5,a5,2047 + 177c4: 3fe00613 li a2,1022 + 177c8: 86aa mv a3,a0 + 177ca: 8331 srli a4,a4,0xc + 177cc: 81fd srli a1,a1,0x1f + 177ce: 4501 li a0,0 + 177d0: 00f65363 bge a2,a5,177d6 <__fixunsdfsi+0x1e> + 177d4: c191 beqz a1,177d8 <__fixunsdfsi+0x20> + 177d6: 8082 ret + 177d8: 41e00613 li a2,1054 + 177dc: 557d li a0,-1 + 177de: fef64ce3 blt a2,a5,177d6 <__fixunsdfsi+0x1e> + 177e2: 43300613 li a2,1075 + 177e6: 8e1d sub a2,a2,a5 + 177e8: 45fd li a1,31 + 177ea: 29471713 bseti a4,a4,0x14 + 177ee: 00c5ca63 blt a1,a2,17802 <__fixunsdfsi+0x4a> + 177f2: bed78793 addi a5,a5,-1043 + 177f6: 00f71733 sll a4,a4,a5 + 177fa: 00c6d533 srl a0,a3,a2 + 177fe: 8d59 or a0,a0,a4 + 17800: 8082 ret + 17802: 41300513 li a0,1043 + 17806: 8d1d sub a0,a0,a5 + 17808: 00a75533 srl a0,a4,a0 + 1780c: 8082 ret + +0001780e <__floatsidf>: +__floatsidf(): + 1780e: c121 beqz a0,1784e <__floatsidf+0x40> + 17810: 40a00733 neg a4,a0 + 17814: 41e00793 li a5,1054 + 17818: 0ae56733 max a4,a0,a4 + 1781c: 46a9 li a3,10 + 1781e: 60071613 clz a2,a4 + 17822: 8f91 sub a5,a5,a2 + 17824: 817d srli a0,a0,0x1f + 17826: 7ff7f793 andi a5,a5,2047 + 1782a: 02c6cd63 blt a3,a2,17864 <__floatsidf+0x56> + 1782e: 46ad li a3,11 + 17830: 8e91 sub a3,a3,a2 + 17832: 00d756b3 srl a3,a4,a3 + 17836: 06b2 slli a3,a3,0xc + 17838: 82b1 srli a3,a3,0xc + 1783a: 07d2 slli a5,a5,0x14 + 1783c: 0655 addi a2,a2,21 + 1783e: 8fd5 or a5,a5,a3 + 17840: 057e slli a0,a0,0x1f + 17842: 8fc9 or a5,a5,a0 + 17844: 00c71733 sll a4,a4,a2 + 17848: 853a mv a0,a4 + 1784a: 85be mv a1,a5 + 1784c: 8082 ret + 1784e: 4781 li a5,0 + 17850: 4681 li a3,0 + 17852: 4501 li a0,0 + 17854: 07d2 slli a5,a5,0x14 + 17856: 8fd5 or a5,a5,a3 + 17858: 057e slli a0,a0,0x1f + 1785a: 8fc9 or a5,a5,a0 + 1785c: 4701 li a4,0 + 1785e: 853a mv a0,a4 + 17860: 85be mv a1,a5 + 17862: 8082 ret + 17864: 1655 addi a2,a2,-11 + 17866: 00c716b3 sll a3,a4,a2 + 1786a: 06b2 slli a3,a3,0xc + 1786c: 82b1 srli a3,a3,0xc + 1786e: 07d2 slli a5,a5,0x14 + 17870: 8fd5 or a5,a5,a3 + 17872: 057e slli a0,a0,0x1f + 17874: 8fc9 or a5,a5,a0 + 17876: 4701 li a4,0 + 17878: 853a mv a0,a4 + 1787a: 85be mv a1,a5 + 1787c: 8082 ret + +0001787e <__floatunsidf>: +__floatunsidf(): + 1787e: c90d beqz a0,178b0 <__floatunsidf+0x32> + 17880: 41e00793 li a5,1054 + 17884: 60051713 clz a4,a0 + 17888: 46a9 li a3,10 + 1788a: 8f99 sub a5,a5,a4 + 1788c: 7ff7f793 andi a5,a5,2047 + 17890: 02e6c663 blt a3,a4,178bc <__floatunsidf+0x3e> + 17894: 46ad li a3,11 + 17896: 8e99 sub a3,a3,a4 + 17898: 00d556b3 srl a3,a0,a3 + 1789c: 0755 addi a4,a4,21 + 1789e: 06b2 slli a3,a3,0xc + 178a0: 00e51533 sll a0,a0,a4 + 178a4: 07d2 slli a5,a5,0x14 + 178a6: 00c6d713 srli a4,a3,0xc + 178aa: 8fd9 or a5,a5,a4 + 178ac: 85be mv a1,a5 + 178ae: 8082 ret + 178b0: 4781 li a5,0 + 178b2: 4701 li a4,0 + 178b4: 07d2 slli a5,a5,0x14 + 178b6: 8fd9 or a5,a5,a4 + 178b8: 85be mv a1,a5 + 178ba: 8082 ret + 178bc: 1755 addi a4,a4,-11 + 178be: 00e51733 sll a4,a0,a4 + 178c2: 0732 slli a4,a4,0xc + 178c4: 8331 srli a4,a4,0xc + 178c6: 07d2 slli a5,a5,0x14 + 178c8: 8fd9 or a5,a5,a4 + 178ca: 4501 li a0,0 + 178cc: 85be mv a1,a5 + 178ce: 8082 ret + +000178d0 <__gesf2>: +__gtsf2(): + 178d0: 01755613 srli a2,a0,0x17 + 178d4: 00800737 lui a4,0x800 + 178d8: 177d addi a4,a4,-1 # 7fffff <_data_lma+0x7e4a43> + 178da: 0175d693 srli a3,a1,0x17 + 178de: 0ff67613 zext.b a2,a2 + 178e2: 0ff00813 li a6,255 + 178e6: 00a778b3 and a7,a4,a0 + 178ea: 01f55793 srli a5,a0,0x1f + 178ee: 8f6d and a4,a4,a1 + 178f0: 0ff6f513 zext.b a0,a3 + 178f4: 81fd srli a1,a1,0x1f + 178f6: 03060563 beq a2,a6,17920 <__gesf2+0x50> + 178fa: 01050a63 beq a0,a6,1790e <__gesf2+0x3e> + 178fe: ea05 bnez a2,1792e <__gesf2+0x5e> + 17900: e909 bnez a0,17912 <__gesf2+0x42> + 17902: c339 beqz a4,17948 <__gesf2+0x78> + 17904: 04089e63 bnez a7,17960 <__gesf2+0x90> + 17908: c9a1 beqz a1,17958 <__gesf2+0x88> + 1790a: 852e mv a0,a1 + 1790c: 8082 ret + 1790e: e739 bnez a4,1795c <__gesf2+0x8c> + 17910: e219 bnez a2,17916 <__gesf2+0x46> + 17912: fe088be3 beqz a7,17908 <__gesf2+0x38> + 17916: 00b79963 bne a5,a1,17928 <__gesf2+0x58> + 1791a: cf9d beqz a5,17958 <__gesf2+0x88> + 1791c: 853e mv a0,a5 + 1791e: 8082 ret + 17920: 02089e63 bnez a7,1795c <__gesf2+0x8c> + 17924: 02c50563 beq a0,a2,1794e <__gesf2+0x7e> + 17928: 4505 li a0,1 + 1792a: e79d bnez a5,17958 <__gesf2+0x88> + 1792c: 8082 ret + 1792e: dd6d beqz a0,17928 <__gesf2+0x58> + 17930: feb79ce3 bne a5,a1,17928 <__gesf2+0x58> + 17934: fec54ae3 blt a0,a2,17928 <__gesf2+0x58> + 17938: fea641e3 blt a2,a0,1791a <__gesf2+0x4a> + 1793c: ff1766e3 bltu a4,a7,17928 <__gesf2+0x58> + 17940: 4501 li a0,0 + 17942: fce8ece3 bltu a7,a4,1791a <__gesf2+0x4a> + 17946: 8082 ret + 17948: fe0890e3 bnez a7,17928 <__gesf2+0x58> + 1794c: 8082 ret + 1794e: e719 bnez a4,1795c <__gesf2+0x8c> + 17950: fcb79ce3 bne a5,a1,17928 <__gesf2+0x58> + 17954: 4501 li a0,0 + 17956: 8082 ret + 17958: 557d li a0,-1 + 1795a: 8082 ret + 1795c: 5579 li a0,-2 + 1795e: 8082 ret + 17960: fcb78ee3 beq a5,a1,1793c <__gesf2+0x6c> + 17964: b7d1 j 17928 <__gesf2+0x58> + +00017966 <__lesf2>: +__lesf2(): + 17966: 01755613 srli a2,a0,0x17 + 1796a: 00800737 lui a4,0x800 + 1796e: 177d addi a4,a4,-1 # 7fffff <_data_lma+0x7e4a43> + 17970: 0175d693 srli a3,a1,0x17 + 17974: 0ff67613 zext.b a2,a2 + 17978: 0ff00813 li a6,255 + 1797c: 00a778b3 and a7,a4,a0 + 17980: 01f55793 srli a5,a0,0x1f + 17984: 8f6d and a4,a4,a1 + 17986: 0ff6f513 zext.b a0,a3 + 1798a: 81fd srli a1,a1,0x1f + 1798c: 03060663 beq a2,a6,179b8 <__lesf2+0x52> + 17990: 01050a63 beq a0,a6,179a4 <__lesf2+0x3e> + 17994: ee05 bnez a2,179cc <__lesf2+0x66> + 17996: e911 bnez a0,179aa <__lesf2+0x44> + 17998: cb29 beqz a4,179ea <__lesf2+0x84> + 1799a: 04089f63 bnez a7,179f8 <__lesf2+0x92> + 1799e: c9b9 beqz a1,179f4 <__lesf2+0x8e> + 179a0: 852e mv a0,a1 + 179a2: 8082 ret + 179a4: 4509 li a0,2 + 179a6: eb01 bnez a4,179b6 <__lesf2+0x50> + 179a8: e219 bnez a2,179ae <__lesf2+0x48> + 179aa: fe088ae3 beqz a7,1799e <__lesf2+0x38> + 179ae: 02b78b63 beq a5,a1,179e4 <__lesf2+0x7e> + 179b2: 4505 li a0,1 + 179b4: e3a1 bnez a5,179f4 <__lesf2+0x8e> + 179b6: 8082 ret + 179b8: 02089c63 bnez a7,179f0 <__lesf2+0x8a> + 179bc: fec51be3 bne a0,a2,179b2 <__lesf2+0x4c> + 179c0: 4509 li a0,2 + 179c2: fb75 bnez a4,179b6 <__lesf2+0x50> + 179c4: feb797e3 bne a5,a1,179b2 <__lesf2+0x4c> + 179c8: 4501 li a0,0 + 179ca: 8082 ret + 179cc: d17d beqz a0,179b2 <__lesf2+0x4c> + 179ce: feb792e3 bne a5,a1,179b2 <__lesf2+0x4c> + 179d2: fec540e3 blt a0,a2,179b2 <__lesf2+0x4c> + 179d6: 00a64763 blt a2,a0,179e4 <__lesf2+0x7e> + 179da: fd176ce3 bltu a4,a7,179b2 <__lesf2+0x4c> + 179de: 4501 li a0,0 + 179e0: fce8fbe3 bgeu a7,a4,179b6 <__lesf2+0x50> + 179e4: cb81 beqz a5,179f4 <__lesf2+0x8e> + 179e6: 853e mv a0,a5 + 179e8: 8082 ret + 179ea: fc0894e3 bnez a7,179b2 <__lesf2+0x4c> + 179ee: 8082 ret + 179f0: 4509 li a0,2 + 179f2: 8082 ret + 179f4: 557d li a0,-1 + 179f6: 8082 ret + 179f8: feb781e3 beq a5,a1,179da <__lesf2+0x74> + 179fc: bf5d j 179b2 <__lesf2+0x4c> + +000179fe <__fixunssfsi>: +__fixunssfsi(): + 179fe: 01755713 srli a4,a0,0x17 + 17a02: 00951793 slli a5,a0,0x9 + 17a06: 0ff77713 zext.b a4,a4 + 17a0a: 07e00613 li a2,126 + 17a0e: 0097d693 srli a3,a5,0x9 + 17a12: 01f55793 srli a5,a0,0x1f + 17a16: 4501 li a0,0 + 17a18: 00e65363 bge a2,a4,17a1e <__fixunssfsi+0x20> + 17a1c: c391 beqz a5,17a20 <__fixunssfsi+0x22> + 17a1e: 8082 ret + 17a20: 09e00793 li a5,158 + 17a24: 557d li a0,-1 + 17a26: fee7cce3 blt a5,a4,17a1e <__fixunssfsi+0x20> + 17a2a: 09500613 li a2,149 + 17a2e: 29769793 bseti a5,a3,0x17 + 17a32: 00e65763 bge a2,a4,17a40 <__fixunssfsi+0x42> + 17a36: f6a70713 addi a4,a4,-150 + 17a3a: 00e79533 sll a0,a5,a4 + 17a3e: 8082 ret + 17a40: 09600513 li a0,150 + 17a44: 8d19 sub a0,a0,a4 + 17a46: 00a7d533 srl a0,a5,a0 + 17a4a: 8082 ret + +00017a4c <__floatsisf>: +__floatsisf(): + 17a4c: cd1d beqz a0,17a8a <__floatsisf+0x3e> + 17a4e: 40a006b3 neg a3,a0 + 17a52: 09e00793 li a5,158 + 17a56: 0ad566b3 max a3,a0,a3 + 17a5a: 09600613 li a2,150 + 17a5e: 60069593 clz a1,a3 + 17a62: 8f8d sub a5,a5,a1 + 17a64: 01f55713 srli a4,a0,0x1f + 17a68: 02f64963 blt a2,a5,17a9a <__floatsisf+0x4e> + 17a6c: 4621 li a2,8 + 17a6e: 08c58a63 beq a1,a2,17b02 <__floatsisf+0xb6> + 17a72: 15e1 addi a1,a1,-8 + 17a74: 00b696b3 sll a3,a3,a1 + 17a78: 0ff7f513 zext.b a0,a5 + 17a7c: 06a6 slli a3,a3,0x9 + 17a7e: 82a5 srli a3,a3,0x9 + 17a80: 055e slli a0,a0,0x17 + 17a82: 8d55 or a0,a0,a3 + 17a84: 077e slli a4,a4,0x1f + 17a86: 8d59 or a0,a0,a4 + 17a88: 8082 ret + 17a8a: 4701 li a4,0 + 17a8c: 4501 li a0,0 + 17a8e: 4681 li a3,0 + 17a90: 055e slli a0,a0,0x17 + 17a92: 8d55 or a0,a0,a3 + 17a94: 077e slli a4,a4,0x1f + 17a96: 8d59 or a0,a0,a4 + 17a98: 8082 ret + 17a9a: 09900613 li a2,153 + 17a9e: 04f64663 blt a2,a5,17aea <__floatsisf+0x9e> + 17aa2: 4615 li a2,5 + 17aa4: ffb58513 addi a0,a1,-5 + 17aa8: 00c58463 beq a1,a2,17ab0 <__floatsisf+0x64> + 17aac: 00a696b3 sll a3,a3,a0 + 17ab0: 0076f513 andi a0,a3,7 + 17ab4: 49a69613 bclri a2,a3,0x1a + 17ab8: cd19 beqz a0,17ad6 <__floatsisf+0x8a> + 17aba: 8abd andi a3,a3,15 + 17abc: 4511 li a0,4 + 17abe: 00a68c63 beq a3,a0,17ad6 <__floatsisf+0x8a> + 17ac2: 0611 addi a2,a2,4 + 17ac4: 040006b7 lui a3,0x4000 + 17ac8: 8ef1 and a3,a3,a2 + 17aca: c691 beqz a3,17ad6 <__floatsisf+0x8a> + 17acc: 09f00793 li a5,159 + 17ad0: 8f8d sub a5,a5,a1 + 17ad2: 49a61613 bclri a2,a2,0x1a + 17ad6: 00661693 slli a3,a2,0x6 + 17ada: 0ff7f513 zext.b a0,a5 + 17ade: 82a5 srli a3,a3,0x9 + 17ae0: 055e slli a0,a0,0x17 + 17ae2: 8d55 or a0,a0,a3 + 17ae4: 077e slli a4,a4,0x1f + 17ae6: 8d59 or a0,a0,a4 + 17ae8: 8082 ret + 17aea: 01b58613 addi a2,a1,27 + 17aee: 4515 li a0,5 + 17af0: 00c69633 sll a2,a3,a2 + 17af4: 8d0d sub a0,a0,a1 + 17af6: 00a6d6b3 srl a3,a3,a0 + 17afa: 00c03633 snez a2,a2 + 17afe: 8ed1 or a3,a3,a2 + 17b00: bf45 j 17ab0 <__floatsisf+0x64> + 17b02: 06a6 slli a3,a3,0x9 + 17b04: 82a5 srli a3,a3,0x9 + 17b06: 09600513 li a0,150 + 17b0a: b759 j 17a90 <__floatsisf+0x44> + +00017b0c : +memcmp(): + 17b0c: 4701 li a4,0 + 17b0e: 00e61463 bne a2,a4,17b16 + 17b12: 4501 li a0,0 + 17b14: 8082 ret + 17b16: 00e507b3 add a5,a0,a4 + 17b1a: 0705 addi a4,a4,1 + 17b1c: 00e586b3 add a3,a1,a4 + 17b20: 239c lbu a5,0(a5) + 17b22: fff6c683 lbu a3,-1(a3) # 3ffffff <_data_lma+0x3fe4a43> + 17b26: fed784e3 beq a5,a3,17b0e + 17b2a: 40d78533 sub a0,a5,a3 + 17b2e: 8082 ret + +00017b30 : +strlen(): + 17b30: 87aa mv a5,a0 + 17b32: 2398 lbu a4,0(a5) + 17b34: 0785 addi a5,a5,1 + 17b36: ff75 bnez a4,17b32 + 17b38: 40a78533 sub a0,a5,a0 + 17b3c: 157d addi a0,a0,-1 # 7fffff <_data_lma+0x7e4a43> + 17b3e: 8082 ret + +00017b40 : +vprintf(): + 17b40: 862a mv a2,a0 + 17b42: 8381a503 lw a0,-1992(gp) # 200011f0 <_impure_ptr> + 17b46: 86ae mv a3,a1 + 17b48: c10d beqz a0,17b6a + 17b4a: 4d1c lw a5,24(a0) + 17b4c: ef99 bnez a5,17b6a + 17b4e: 1101 addi sp,sp,-32 + 17b50: ce06 sw ra,28(sp) + 17b52: c62e sw a1,12(sp) + 17b54: c432 sw a2,8(sp) + 17b56: c22a sw a0,4(sp) + 17b58: 2a91 jal 17cac <__sinit> + 17b5a: 4512 lw a0,4(sp) + 17b5c: 46b2 lw a3,12(sp) + 17b5e: 4622 lw a2,8(sp) + 17b60: 40f2 lw ra,28(sp) + 17b62: 450c lw a1,8(a0) + 17b64: 6105 addi sp,sp,32 + 17b66: 3630006f j 186c8 <_vfiprintf_r> + 17b6a: 450c lw a1,8(a0) + 17b6c: bfed j 17b66 + +00017b6e <_vsniprintf_r>: +_vsnprintf_r(): + 17b6e: 7119 addi sp,sp,-128 + 17b70: dca2 sw s0,120(sp) + 17b72: daa6 sw s1,116(sp) + 17b74: de86 sw ra,124(sp) + 17b76: d8ca sw s2,112(sp) + 17b78: 84aa mv s1,a0 + 17b7a: 8432 mv s0,a2 + 17b7c: 00065c63 bgez a2,17b94 <_vsniprintf_r+0x26> + 17b80: 08b00793 li a5,139 + 17b84: c11c sw a5,0(a0) + 17b86: 557d li a0,-1 + 17b88: 50f6 lw ra,124(sp) + 17b8a: 5466 lw s0,120(sp) + 17b8c: 54d6 lw s1,116(sp) + 17b8e: 5946 lw s2,112(sp) + 17b90: 6109 addi sp,sp,128 + 17b92: 8082 ret + 17b94: 20800793 li a5,520 + 17b98: 82fc sh a5,20(sp) + 17b9a: c42e sw a1,8(sp) + 17b9c: cc2e sw a1,24(sp) + 17b9e: 8636 mv a2,a3 + 17ba0: 4781 li a5,0 + 17ba2: 86ba mv a3,a4 + 17ba4: c019 beqz s0,17baa <_vsniprintf_r+0x3c> + 17ba6: fff40793 addi a5,s0,-1 + 17baa: 597d li s2,-1 + 17bac: 002c addi a1,sp,8 + 17bae: 8526 mv a0,s1 + 17bb0: c83e sw a5,16(sp) + 17bb2: ce3e sw a5,28(sp) + 17bb4: 01211b23 sh s2,22(sp) + 17bb8: 21e9 jal 18082 <_svfiprintf_r> + 17bba: 01255563 bge a0,s2,17bc4 <_vsniprintf_r+0x56> + 17bbe: 08b00793 li a5,139 + 17bc2: c09c sw a5,0(s1) + 17bc4: d071 beqz s0,17b88 <_vsniprintf_r+0x1a> + 17bc6: 47a2 lw a5,8(sp) + 17bc8: 00078023 sb zero,0(a5) + 17bcc: bf75 j 17b88 <_vsniprintf_r+0x1a> + +00017bce : +vsnprintf(): + 17bce: 8736 mv a4,a3 + 17bd0: 86b2 mv a3,a2 + 17bd2: 862e mv a2,a1 + 17bd4: 85aa mv a1,a0 + 17bd6: 8381a503 lw a0,-1992(gp) # 200011f0 <_impure_ptr> + 17bda: f95ff06f j 17b6e <_vsniprintf_r> + +00017bde : +std(): + 17bde: 1141 addi sp,sp,-16 + 17be0: c422 sw s0,8(sp) + 17be2: c606 sw ra,12(sp) + 17be4: 842a mv s0,a0 + 17be6: a54e sh a1,12(a0) + 17be8: a572 sh a2,14(a0) + 17bea: 00052023 sw zero,0(a0) + 17bee: 00052223 sw zero,4(a0) + 17bf2: 00052423 sw zero,8(a0) + 17bf6: 06052223 sw zero,100(a0) + 17bfa: 00052823 sw zero,16(a0) + 17bfe: 00052a23 sw zero,20(a0) + 17c02: 00052c23 sw zero,24(a0) + 17c06: 4621 li a2,8 + 17c08: 4581 li a1,0 + 17c0a: 05c50513 addi a0,a0,92 + 17c0e: cdaea0ef jal ra,20e8 + 17c12: 00001797 auipc a5,0x1 + 17c16: d9878793 addi a5,a5,-616 # 189aa <__sread> + 17c1a: d05c sw a5,36(s0) + 17c1c: 00001797 auipc a5,0x1 + 17c20: db878793 addi a5,a5,-584 # 189d4 <__swrite> + 17c24: d41c sw a5,40(s0) + 17c26: 00001797 auipc a5,0x1 + 17c2a: df478793 addi a5,a5,-524 # 18a1a <__sseek> + 17c2e: d45c sw a5,44(s0) + 17c30: 00001797 auipc a5,0x1 + 17c34: e1878793 addi a5,a5,-488 # 18a48 <__sclose> + 17c38: 40b2 lw ra,12(sp) + 17c3a: d000 sw s0,32(s0) + 17c3c: d81c sw a5,48(s0) + 17c3e: 4422 lw s0,8(sp) + 17c40: 0141 addi sp,sp,16 + 17c42: 8082 ret + +00017c44 <_cleanup_r>: +_cleanup_r(): + 17c44: 00001597 auipc a1,0x1 + 17c48: 13c58593 addi a1,a1,316 # 18d80 <_fflush_r> + 17c4c: a249 j 17dce <_fwalk_reent> + +00017c4e <__sfmoreglue>: +__sfmoreglue(): + 17c4e: 1141 addi sp,sp,-16 + 17c50: c226 sw s1,4(sp) + 17c52: 06800793 li a5,104 + 17c56: fff58493 addi s1,a1,-1 + 17c5a: 02f484b3 mul s1,s1,a5 + 17c5e: c04a sw s2,0(sp) + 17c60: 892e mv s2,a1 + 17c62: c422 sw s0,8(sp) + 17c64: c606 sw ra,12(sp) + 17c66: 07448593 addi a1,s1,116 + 17c6a: 2435 jal 17e96 <_malloc_r> + 17c6c: 842a mv s0,a0 + 17c6e: cd01 beqz a0,17c86 <__sfmoreglue+0x38> + 17c70: 00052023 sw zero,0(a0) + 17c74: 01252223 sw s2,4(a0) + 17c78: 0531 addi a0,a0,12 + 17c7a: c408 sw a0,8(s0) + 17c7c: 06848613 addi a2,s1,104 + 17c80: 4581 li a1,0 + 17c82: c66ea0ef jal ra,20e8 + 17c86: 40b2 lw ra,12(sp) + 17c88: 8522 mv a0,s0 + 17c8a: 4422 lw s0,8(sp) + 17c8c: 4492 lw s1,4(sp) + 17c8e: 4902 lw s2,0(sp) + 17c90: 0141 addi sp,sp,16 + 17c92: 8082 ret + +00017c94 <__sfp_lock_acquire>: +__sfp_lock_acquire(): + 17c94: a9418513 addi a0,gp,-1388 # 2000144c <__lock___sfp_recursive_mutex> + 17c98: a245 j 17e38 <__retarget_lock_acquire_recursive> + +00017c9a <__sfp_lock_release>: +__sfp_lock_release(): + 17c9a: a9418513 addi a0,gp,-1388 # 2000144c <__lock___sfp_recursive_mutex> + 17c9e: aa71 j 17e3a <__retarget_lock_release_recursive> + +00017ca0 <__sinit_lock_acquire>: +__sinit_lock_acquire(): + 17ca0: a9818513 addi a0,gp,-1384 # 20001450 <__lock___sinit_recursive_mutex> + 17ca4: aa51 j 17e38 <__retarget_lock_acquire_recursive> + +00017ca6 <__sinit_lock_release>: +__sinit_lock_release(): + 17ca6: a9818513 addi a0,gp,-1384 # 20001450 <__lock___sinit_recursive_mutex> + 17caa: aa41 j 17e3a <__retarget_lock_release_recursive> + +00017cac <__sinit>: +__sinit(): + 17cac: 1141 addi sp,sp,-16 + 17cae: c422 sw s0,8(sp) + 17cb0: c606 sw ra,12(sp) + 17cb2: 842a mv s0,a0 + 17cb4: fedff0ef jal ra,17ca0 <__sinit_lock_acquire> + 17cb8: 4c1c lw a5,24(s0) + 17cba: c791 beqz a5,17cc6 <__sinit+0x1a> + 17cbc: 4422 lw s0,8(sp) + 17cbe: 40b2 lw ra,12(sp) + 17cc0: 0141 addi sp,sp,16 + 17cc2: fe5ff06f j 17ca6 <__sinit_lock_release> + 17cc6: 00000797 auipc a5,0x0 + 17cca: f7e78793 addi a5,a5,-130 # 17c44 <_cleanup_r> + 17cce: d41c sw a5,40(s0) + 17cd0: 04042423 sw zero,72(s0) + 17cd4: 04042623 sw zero,76(s0) + 17cd8: 04042823 sw zero,80(s0) + 17cdc: 8b81a783 lw a5,-1864(gp) # 20001270 <_global_impure_ptr> + 17ce0: 00879463 bne a5,s0,17ce8 <__sinit+0x3c> + 17ce4: 4785 li a5,1 + 17ce6: cc1c sw a5,24(s0) + 17ce8: 8522 mv a0,s0 + 17cea: 2815 jal 17d1e <__sfp> + 17cec: c048 sw a0,4(s0) + 17cee: 8522 mv a0,s0 + 17cf0: 203d jal 17d1e <__sfp> + 17cf2: c408 sw a0,8(s0) + 17cf4: 8522 mv a0,s0 + 17cf6: 2025 jal 17d1e <__sfp> + 17cf8: c448 sw a0,12(s0) + 17cfa: 4048 lw a0,4(s0) + 17cfc: 4601 li a2,0 + 17cfe: 4591 li a1,4 + 17d00: edfff0ef jal ra,17bde + 17d04: 4408 lw a0,8(s0) + 17d06: 4605 li a2,1 + 17d08: 45a5 li a1,9 + 17d0a: ed5ff0ef jal ra,17bde + 17d0e: 4448 lw a0,12(s0) + 17d10: 4609 li a2,2 + 17d12: 45c9 li a1,18 + 17d14: ecbff0ef jal ra,17bde + 17d18: 4785 li a5,1 + 17d1a: cc1c sw a5,24(s0) + 17d1c: b745 j 17cbc <__sinit+0x10> + +00017d1e <__sfp>: +__sfp(): + 17d1e: 1141 addi sp,sp,-16 + 17d20: c226 sw s1,4(sp) + 17d22: c04a sw s2,0(sp) + 17d24: c606 sw ra,12(sp) + 17d26: c422 sw s0,8(sp) + 17d28: 892a mv s2,a0 + 17d2a: f6bff0ef jal ra,17c94 <__sfp_lock_acquire> + 17d2e: 8b81a483 lw s1,-1864(gp) # 20001270 <_global_impure_ptr> + 17d32: 4c9c lw a5,24(s1) + 17d34: e781 bnez a5,17d3c <__sfp+0x1e> + 17d36: 8526 mv a0,s1 + 17d38: f75ff0ef jal ra,17cac <__sinit> + 17d3c: 04848493 addi s1,s1,72 + 17d40: 4480 lw s0,8(s1) + 17d42: 40dc lw a5,4(s1) + 17d44: 17fd addi a5,a5,-1 + 17d46: 0007d663 bgez a5,17d52 <__sfp+0x34> + 17d4a: 409c lw a5,0(s1) + 17d4c: c7a5 beqz a5,17db4 <__sfp+0x96> + 17d4e: 4084 lw s1,0(s1) + 17d50: bfc5 j 17d40 <__sfp+0x22> + 17d52: 00c41703 lh a4,12(s0) + 17d56: ef21 bnez a4,17dae <__sfp+0x90> + 17d58: 77c1 lui a5,0xffff0 + 17d5a: 0785 addi a5,a5,1 # ffff0001 <_eusrstack+0xdffed001> + 17d5c: c45c sw a5,12(s0) + 17d5e: 05840513 addi a0,s0,88 + 17d62: 06042223 sw zero,100(s0) + 17d66: 28c1 jal 17e36 <__retarget_lock_init_recursive> + 17d68: f33ff0ef jal ra,17c9a <__sfp_lock_release> + 17d6c: 4621 li a2,8 + 17d6e: 00042023 sw zero,0(s0) + 17d72: 00042423 sw zero,8(s0) + 17d76: 00042223 sw zero,4(s0) + 17d7a: 00042823 sw zero,16(s0) + 17d7e: 00042a23 sw zero,20(s0) + 17d82: 00042c23 sw zero,24(s0) + 17d86: 4581 li a1,0 + 17d88: 05c40513 addi a0,s0,92 + 17d8c: b5cea0ef jal ra,20e8 + 17d90: 02042a23 sw zero,52(s0) + 17d94: 02042c23 sw zero,56(s0) + 17d98: 04042423 sw zero,72(s0) + 17d9c: 04042623 sw zero,76(s0) + 17da0: 40b2 lw ra,12(sp) + 17da2: 8522 mv a0,s0 + 17da4: 4422 lw s0,8(sp) + 17da6: 4492 lw s1,4(sp) + 17da8: 4902 lw s2,0(sp) + 17daa: 0141 addi sp,sp,16 + 17dac: 8082 ret + 17dae: 06840413 addi s0,s0,104 + 17db2: bf49 j 17d44 <__sfp+0x26> + 17db4: 4591 li a1,4 + 17db6: 854a mv a0,s2 + 17db8: e97ff0ef jal ra,17c4e <__sfmoreglue> + 17dbc: c088 sw a0,0(s1) + 17dbe: 842a mv s0,a0 + 17dc0: f559 bnez a0,17d4e <__sfp+0x30> + 17dc2: ed9ff0ef jal ra,17c9a <__sfp_lock_release> + 17dc6: 47b1 li a5,12 + 17dc8: 00f92023 sw a5,0(s2) + 17dcc: bfd1 j 17da0 <__sfp+0x82> + +00017dce <_fwalk_reent>: +_fwalk_reent(): + 17dce: 7179 addi sp,sp,-48 + 17dd0: d422 sw s0,40(sp) + 17dd2: d04a sw s2,32(sp) + 17dd4: ce4e sw s3,28(sp) + 17dd6: cc52 sw s4,24(sp) + 17dd8: c85a sw s6,16(sp) + 17dda: c65e sw s7,12(sp) + 17ddc: d606 sw ra,44(sp) + 17dde: d226 sw s1,36(sp) + 17de0: ca56 sw s5,20(sp) + 17de2: 892a mv s2,a0 + 17de4: 8a2e mv s4,a1 + 17de6: 04850413 addi s0,a0,72 + 17dea: 4981 li s3,0 + 17dec: 4b05 li s6,1 + 17dee: 5bfd li s7,-1 + 17df0: 4404 lw s1,8(s0) + 17df2: 00442a83 lw s5,4(s0) + 17df6: 1afd addi s5,s5,-1 + 17df8: 020ad063 bgez s5,17e18 <_fwalk_reent+0x4a> + 17dfc: 4000 lw s0,0(s0) + 17dfe: f86d bnez s0,17df0 <_fwalk_reent+0x22> + 17e00: 50b2 lw ra,44(sp) + 17e02: 5422 lw s0,40(sp) + 17e04: 5492 lw s1,36(sp) + 17e06: 5902 lw s2,32(sp) + 17e08: 4a62 lw s4,24(sp) + 17e0a: 4ad2 lw s5,20(sp) + 17e0c: 4b42 lw s6,16(sp) + 17e0e: 4bb2 lw s7,12(sp) + 17e10: 854e mv a0,s3 + 17e12: 49f2 lw s3,28(sp) + 17e14: 6145 addi sp,sp,48 + 17e16: 8082 ret + 17e18: 24de lhu a5,12(s1) + 17e1a: 00fb7b63 bgeu s6,a5,17e30 <_fwalk_reent+0x62> + 17e1e: 00e49783 lh a5,14(s1) + 17e22: 01778763 beq a5,s7,17e30 <_fwalk_reent+0x62> + 17e26: 85a6 mv a1,s1 + 17e28: 854a mv a0,s2 + 17e2a: 9a02 jalr s4 + 17e2c: 00a9e9b3 or s3,s3,a0 + 17e30: 06848493 addi s1,s1,104 + 17e34: b7c9 j 17df6 <_fwalk_reent+0x28> + +00017e36 <__retarget_lock_init_recursive>: +__retarget_lock_init_recursive(): + 17e36: 8082 ret + +00017e38 <__retarget_lock_acquire_recursive>: +__retarget_lock_acquire_recursive(): + 17e38: 8082 ret + +00017e3a <__retarget_lock_release_recursive>: +__retarget_lock_release_recursive(): + 17e3a: 8082 ret + +00017e3c : +sbrk_aligned(): + 17e3c: 1141 addi sp,sp,-16 + 17e3e: c04a sw s2,0(sp) + 17e40: a9c18913 addi s2,gp,-1380 # 20001454 <__malloc_sbrk_start> + 17e44: 00092783 lw a5,0(s2) + 17e48: c422 sw s0,8(sp) + 17e4a: c226 sw s1,4(sp) + 17e4c: c606 sw ra,12(sp) + 17e4e: 84aa mv s1,a0 + 17e50: 842e mv s0,a1 + 17e52: e791 bnez a5,17e5e + 17e54: 4581 li a1,0 + 17e56: 32d000ef jal ra,18982 <_sbrk_r> + 17e5a: 00a92023 sw a0,0(s2) + 17e5e: 85a2 mv a1,s0 + 17e60: 8526 mv a0,s1 + 17e62: 321000ef jal ra,18982 <_sbrk_r> + 17e66: 597d li s2,-1 + 17e68: 01251a63 bne a0,s2,17e7c + 17e6c: 547d li s0,-1 + 17e6e: 40b2 lw ra,12(sp) + 17e70: 8522 mv a0,s0 + 17e72: 4422 lw s0,8(sp) + 17e74: 4492 lw s1,4(sp) + 17e76: 4902 lw s2,0(sp) + 17e78: 0141 addi sp,sp,16 + 17e7a: 8082 ret + 17e7c: 00350413 addi s0,a0,3 + 17e80: 9871 andi s0,s0,-4 + 17e82: fe8506e3 beq a0,s0,17e6e + 17e86: 40a405b3 sub a1,s0,a0 + 17e8a: 8526 mv a0,s1 + 17e8c: 2f7000ef jal ra,18982 <_sbrk_r> + 17e90: fd251fe3 bne a0,s2,17e6e + 17e94: bfe1 j 17e6c + +00017e96 <_malloc_r>: +_malloc_r(): + 17e96: 1101 addi sp,sp,-32 + 17e98: ca26 sw s1,20(sp) + 17e9a: 00358493 addi s1,a1,3 + 17e9e: 98f1 andi s1,s1,-4 + 17ea0: c84a sw s2,16(sp) + 17ea2: 04a1 addi s1,s1,8 + 17ea4: 47b1 li a5,12 + 17ea6: ce06 sw ra,28(sp) + 17ea8: cc22 sw s0,24(sp) + 17eaa: c64e sw s3,12(sp) + 17eac: 892a mv s2,a0 + 17eae: 0af4f4b3 maxu s1,s1,a5 + 17eb2: 0004c463 bltz s1,17eba <_malloc_r+0x24> + 17eb6: 00b4fd63 bgeu s1,a1,17ed0 <_malloc_r+0x3a> + 17eba: 47b1 li a5,12 + 17ebc: 00f92023 sw a5,0(s2) + 17ec0: 4501 li a0,0 + 17ec2: 40f2 lw ra,28(sp) + 17ec4: 4462 lw s0,24(sp) + 17ec6: 44d2 lw s1,20(sp) + 17ec8: 4942 lw s2,16(sp) + 17eca: 49b2 lw s3,12(sp) + 17ecc: 6105 addi sp,sp,32 + 17ece: 8082 ret + 17ed0: 06e010ef jal ra,18f3e <__malloc_lock> + 17ed4: aa018993 addi s3,gp,-1376 # 20001458 <__malloc_free_list> + 17ed8: 0009a783 lw a5,0(s3) + 17edc: 843e mv s0,a5 + 17ede: e829 bnez s0,17f30 <_malloc_r+0x9a> + 17ee0: 85a6 mv a1,s1 + 17ee2: 854a mv a0,s2 + 17ee4: f59ff0ef jal ra,17e3c + 17ee8: 57fd li a5,-1 + 17eea: 842a mv s0,a0 + 17eec: 0af51a63 bne a0,a5,17fa0 <_malloc_r+0x10a> + 17ef0: 0009a403 lw s0,0(s3) + 17ef4: 87a2 mv a5,s0 + 17ef6: ebd9 bnez a5,17f8c <_malloc_r+0xf6> + 17ef8: 00042983 lw s3,0(s0) + 17efc: 4581 li a1,0 + 17efe: 854a mv a0,s2 + 17f00: 99a2 add s3,s3,s0 + 17f02: 281000ef jal ra,18982 <_sbrk_r> + 17f06: 08a99663 bne s3,a0,17f92 <_malloc_r+0xfc> + 17f0a: 401c lw a5,0(s0) + 17f0c: 048d addi s1,s1,3 + 17f0e: 854a mv a0,s2 + 17f10: 8c9d sub s1,s1,a5 + 17f12: 98f1 andi s1,s1,-4 + 17f14: 47b1 li a5,12 + 17f16: 04a1 addi s1,s1,8 + 17f18: 0af4f4b3 maxu s1,s1,a5 + 17f1c: 85a6 mv a1,s1 + 17f1e: f1fff0ef jal ra,17e3c + 17f22: 57fd li a5,-1 + 17f24: 06f50763 beq a0,a5,17f92 <_malloc_r+0xfc> + 17f28: 401c lw a5,0(s0) + 17f2a: 97a6 add a5,a5,s1 + 17f2c: c01c sw a5,0(s0) + 17f2e: a015 j 17f52 <_malloc_r+0xbc> + 17f30: 4014 lw a3,0(s0) + 17f32: 8e85 sub a3,a3,s1 + 17f34: 0406c963 bltz a3,17f86 <_malloc_r+0xf0> + 17f38: 472d li a4,11 + 17f3a: 02d77e63 bgeu a4,a3,17f76 <_malloc_r+0xe0> + 17f3e: c004 sw s1,0(s0) + 17f40: 00940733 add a4,s0,s1 + 17f44: 02879763 bne a5,s0,17f72 <_malloc_r+0xdc> + 17f48: 00e9a023 sw a4,0(s3) + 17f4c: 405c lw a5,4(s0) + 17f4e: c314 sw a3,0(a4) + 17f50: c35c sw a5,4(a4) + 17f52: 854a mv a0,s2 + 17f54: 7f3000ef jal ra,18f46 <__malloc_unlock> + 17f58: 00b40513 addi a0,s0,11 + 17f5c: 00440793 addi a5,s0,4 + 17f60: 9961 andi a0,a0,-8 + 17f62: 40f50733 sub a4,a0,a5 + 17f66: f4f50ee3 beq a0,a5,17ec2 <_malloc_r+0x2c> + 17f6a: 943a add s0,s0,a4 + 17f6c: 8f89 sub a5,a5,a0 + 17f6e: c01c sw a5,0(s0) + 17f70: bf89 j 17ec2 <_malloc_r+0x2c> + 17f72: c3d8 sw a4,4(a5) + 17f74: bfe1 j 17f4c <_malloc_r+0xb6> + 17f76: 4058 lw a4,4(s0) + 17f78: 00879563 bne a5,s0,17f82 <_malloc_r+0xec> + 17f7c: 00e9a023 sw a4,0(s3) + 17f80: bfc9 j 17f52 <_malloc_r+0xbc> + 17f82: c3d8 sw a4,4(a5) + 17f84: b7f9 j 17f52 <_malloc_r+0xbc> + 17f86: 87a2 mv a5,s0 + 17f88: 4040 lw s0,4(s0) + 17f8a: bf91 j 17ede <_malloc_r+0x48> + 17f8c: 843e mv s0,a5 + 17f8e: 43dc lw a5,4(a5) + 17f90: b79d j 17ef6 <_malloc_r+0x60> + 17f92: 47b1 li a5,12 + 17f94: 00f92023 sw a5,0(s2) + 17f98: 854a mv a0,s2 + 17f9a: 7ad000ef jal ra,18f46 <__malloc_unlock> + 17f9e: b70d j 17ec0 <_malloc_r+0x2a> + 17fa0: c104 sw s1,0(a0) + 17fa2: bf45 j 17f52 <_malloc_r+0xbc> + +00017fa4 <__ssputs_r>: +__ssputs_r(): + 17fa4: 1101 addi sp,sp,-32 + 17fa6: c84a sw s2,16(sp) + 17fa8: 0085a903 lw s2,8(a1) + 17fac: cc22 sw s0,24(sp) + 17fae: c64e sw s3,12(sp) + 17fb0: c452 sw s4,8(sp) + 17fb2: c256 sw s5,4(sp) + 17fb4: ce06 sw ra,28(sp) + 17fb6: ca26 sw s1,20(sp) + 17fb8: c05a sw s6,0(sp) + 17fba: 0005aa03 lw s4,0(a1) + 17fbe: 842e mv s0,a1 + 17fc0: 8ab2 mv s5,a2 + 17fc2: 89b6 mv s3,a3 + 17fc4: 0726e563 bltu a3,s2,1802e <__ssputs_r+0x8a> + 17fc8: 00c59783 lh a5,12(a1) + 17fcc: 4807f713 andi a4,a5,1152 + 17fd0: cf29 beqz a4,1802a <__ssputs_r+0x86> + 17fd2: 4858 lw a4,20(s0) + 17fd4: 448d li s1,3 + 17fd6: 498c lw a1,16(a1) + 17fd8: 02e484b3 mul s1,s1,a4 + 17fdc: 4709 li a4,2 + 17fde: 40ba0a33 sub s4,s4,a1 + 17fe2: 4007f793 andi a5,a5,1024 + 17fe6: 8b2a mv s6,a0 + 17fe8: 02e4c4b3 div s1,s1,a4 + 17fec: 00168713 addi a4,a3,1 + 17ff0: 9752 add a4,a4,s4 + 17ff2: 0ae4f4b3 maxu s1,s1,a4 + 17ff6: c7a5 beqz a5,1805e <__ssputs_r+0xba> + 17ff8: 85a6 mv a1,s1 + 17ffa: e9dff0ef jal ra,17e96 <_malloc_r> + 17ffe: 892a mv s2,a0 + 18000: c925 beqz a0,18070 <__ssputs_r+0xcc> + 18002: 480c lw a1,16(s0) + 18004: 8652 mv a2,s4 + 18006: 8ccea0ef jal ra,20d2 + 1800a: 245e lhu a5,12(s0) + 1800c: b7f7f793 andi a5,a5,-1153 + 18010: 0807e793 ori a5,a5,128 + 18014: a45e sh a5,12(s0) + 18016: 01242823 sw s2,16(s0) + 1801a: c844 sw s1,20(s0) + 1801c: 9952 add s2,s2,s4 + 1801e: 414484b3 sub s1,s1,s4 + 18022: 01242023 sw s2,0(s0) + 18026: c404 sw s1,8(s0) + 18028: 894e mv s2,s3 + 1802a: 0129f363 bgeu s3,s2,18030 <__ssputs_r+0x8c> + 1802e: 894e mv s2,s3 + 18030: 4008 lw a0,0(s0) + 18032: 864a mv a2,s2 + 18034: 85d6 mv a1,s5 + 18036: 8c2ea0ef jal ra,20f8 + 1803a: 441c lw a5,8(s0) + 1803c: 4501 li a0,0 + 1803e: 412787b3 sub a5,a5,s2 + 18042: c41c sw a5,8(s0) + 18044: 401c lw a5,0(s0) + 18046: 97ca add a5,a5,s2 + 18048: c01c sw a5,0(s0) + 1804a: 40f2 lw ra,28(sp) + 1804c: 4462 lw s0,24(sp) + 1804e: 44d2 lw s1,20(sp) + 18050: 4942 lw s2,16(sp) + 18052: 49b2 lw s3,12(sp) + 18054: 4a22 lw s4,8(sp) + 18056: 4a92 lw s5,4(sp) + 18058: 4b02 lw s6,0(sp) + 1805a: 6105 addi sp,sp,32 + 1805c: 8082 ret + 1805e: 8626 mv a2,s1 + 18060: 791000ef jal ra,18ff0 <_realloc_r> + 18064: 892a mv s2,a0 + 18066: f945 bnez a0,18016 <__ssputs_r+0x72> + 18068: 480c lw a1,16(s0) + 1806a: 855a mv a0,s6 + 1806c: 6e3000ef jal ra,18f4e <_free_r> + 18070: 47b1 li a5,12 + 18072: 00fb2023 sw a5,0(s6) + 18076: 245e lhu a5,12(s0) + 18078: 557d li a0,-1 + 1807a: 0407e793 ori a5,a5,64 + 1807e: a45e sh a5,12(s0) + 18080: b7e9 j 1804a <__ssputs_r+0xa6> + +00018082 <_svfiprintf_r>: +_svfprintf_r(): + 18082: 25de lhu a5,12(a1) + 18084: 7135 addi sp,sp,-160 + 18086: cd22 sw s0,152(sp) + 18088: cb26 sw s1,148(sp) + 1808a: c94a sw s2,144(sp) + 1808c: c552 sw s4,136(sp) + 1808e: cf06 sw ra,156(sp) + 18090: c74e sw s3,140(sp) + 18092: c356 sw s5,132(sp) + 18094: c15a sw s6,128(sp) + 18096: dede sw s7,124(sp) + 18098: dce2 sw s8,120(sp) + 1809a: 0807f793 andi a5,a5,128 + 1809e: 8a2a mv s4,a0 + 180a0: 892e mv s2,a1 + 180a2: 84b2 mv s1,a2 + 180a4: 8436 mv s0,a3 + 180a6: c3a1 beqz a5,180e6 <_svfiprintf_r+0x64> + 180a8: 499c lw a5,16(a1) + 180aa: ef95 bnez a5,180e6 <_svfiprintf_r+0x64> + 180ac: 04000593 li a1,64 + 180b0: de7ff0ef jal ra,17e96 <_malloc_r> + 180b4: 00a92023 sw a0,0(s2) + 180b8: 00a92823 sw a0,16(s2) + 180bc: e10d bnez a0,180de <_svfiprintf_r+0x5c> + 180be: 47b1 li a5,12 + 180c0: 00fa2023 sw a5,0(s4) + 180c4: 557d li a0,-1 + 180c6: 40fa lw ra,156(sp) + 180c8: 446a lw s0,152(sp) + 180ca: 44da lw s1,148(sp) + 180cc: 494a lw s2,144(sp) + 180ce: 49ba lw s3,140(sp) + 180d0: 4a2a lw s4,136(sp) + 180d2: 4a9a lw s5,132(sp) + 180d4: 4b0a lw s6,128(sp) + 180d6: 5bf6 lw s7,124(sp) + 180d8: 5c66 lw s8,120(sp) + 180da: 610d addi sp,sp,160 + 180dc: 8082 ret + 180de: 04000793 li a5,64 + 180e2: 00f92a23 sw a5,20(s2) + 180e6: 02000793 li a5,32 + 180ea: 02f104a3 sb a5,41(sp) + 180ee: 03000793 li a5,48 + 180f2: d202 sw zero,36(sp) + 180f4: 02f10523 sb a5,42(sp) + 180f8: c622 sw s0,12(sp) + 180fa: 02500b93 li s7,37 + 180fe: 00002a97 auipc s5,0x2 + 18102: 062a8a93 addi s5,s5,98 # 1a160 <__sf_fake_stdin+0x20> + 18106: 4b29 li s6,10 + 18108: 8426 mv s0,s1 + 1810a: 201c lbu a5,0(s0) + 1810c: c399 beqz a5,18112 <_svfiprintf_r+0x90> + 1810e: 09779963 bne a5,s7,181a0 <_svfiprintf_r+0x11e> + 18112: 40940c33 sub s8,s0,s1 + 18116: 00940e63 beq s0,s1,18132 <_svfiprintf_r+0xb0> + 1811a: 86e2 mv a3,s8 + 1811c: 8626 mv a2,s1 + 1811e: 85ca mv a1,s2 + 18120: 8552 mv a0,s4 + 18122: e83ff0ef jal ra,17fa4 <__ssputs_r> + 18126: 57fd li a5,-1 + 18128: 18f50763 beq a0,a5,182b6 <_svfiprintf_r+0x234> + 1812c: 5792 lw a5,36(sp) + 1812e: 97e2 add a5,a5,s8 + 18130: d23e sw a5,36(sp) + 18132: 201c lbu a5,0(s0) + 18134: 18078163 beqz a5,182b6 <_svfiprintf_r+0x234> + 18138: 57fd li a5,-1 + 1813a: 00140493 addi s1,s0,1 + 1813e: c802 sw zero,16(sp) + 18140: ce02 sw zero,28(sp) + 18142: ca3e sw a5,20(sp) + 18144: cc02 sw zero,24(sp) + 18146: 040109a3 sb zero,83(sp) + 1814a: d482 sw zero,104(sp) + 1814c: 208c lbu a1,0(s1) + 1814e: 4615 li a2,5 + 18150: 8556 mv a0,s5 + 18152: 5d5000ef jal ra,18f26 + 18156: 47c2 lw a5,16(sp) + 18158: 00148413 addi s0,s1,1 + 1815c: e521 bnez a0,181a4 <_svfiprintf_r+0x122> + 1815e: 0107f713 andi a4,a5,16 + 18162: c709 beqz a4,1816c <_svfiprintf_r+0xea> + 18164: 02000713 li a4,32 + 18168: 04e109a3 sb a4,83(sp) + 1816c: 0087f713 andi a4,a5,8 + 18170: c709 beqz a4,1817a <_svfiprintf_r+0xf8> + 18172: 02b00713 li a4,43 + 18176: 04e109a3 sb a4,83(sp) + 1817a: 2094 lbu a3,0(s1) + 1817c: 02a00713 li a4,42 + 18180: 02e68963 beq a3,a4,181b2 <_svfiprintf_r+0x130> + 18184: 47f2 lw a5,28(sp) + 18186: 8426 mv s0,s1 + 18188: 4681 li a3,0 + 1818a: 4625 li a2,9 + 1818c: 2018 lbu a4,0(s0) + 1818e: 00140593 addi a1,s0,1 + 18192: fd070713 addi a4,a4,-48 + 18196: 06e67263 bgeu a2,a4,181fa <_svfiprintf_r+0x178> + 1819a: c685 beqz a3,181c2 <_svfiprintf_r+0x140> + 1819c: ce3e sw a5,28(sp) + 1819e: a015 j 181c2 <_svfiprintf_r+0x140> + 181a0: 0405 addi s0,s0,1 + 181a2: b7a5 j 1810a <_svfiprintf_r+0x88> + 181a4: 41550533 sub a0,a0,s5 + 181a8: 28a797b3 bset a5,a5,a0 + 181ac: 84a2 mv s1,s0 + 181ae: c83e sw a5,16(sp) + 181b0: bf71 j 1814c <_svfiprintf_r+0xca> + 181b2: 4732 lw a4,12(sp) + 181b4: 00470693 addi a3,a4,4 + 181b8: 4318 lw a4,0(a4) + 181ba: c636 sw a3,12(sp) + 181bc: 02074863 bltz a4,181ec <_svfiprintf_r+0x16a> + 181c0: ce3a sw a4,28(sp) + 181c2: 2018 lbu a4,0(s0) + 181c4: 02e00793 li a5,46 + 181c8: 04f71c63 bne a4,a5,18220 <_svfiprintf_r+0x19e> + 181cc: 3018 lbu a4,1(s0) + 181ce: 02a00793 li a5,42 + 181d2: 02f71a63 bne a4,a5,18206 <_svfiprintf_r+0x184> + 181d6: 47b2 lw a5,12(sp) + 181d8: 0409 addi s0,s0,2 + 181da: 00478713 addi a4,a5,4 + 181de: 439c lw a5,0(a5) + 181e0: c63a sw a4,12(sp) + 181e2: 577d li a4,-1 + 181e4: 0ae7e7b3 max a5,a5,a4 + 181e8: ca3e sw a5,20(sp) + 181ea: a81d j 18220 <_svfiprintf_r+0x19e> + 181ec: 40e00733 neg a4,a4 + 181f0: 0027e793 ori a5,a5,2 + 181f4: ce3a sw a4,28(sp) + 181f6: c83e sw a5,16(sp) + 181f8: b7e9 j 181c2 <_svfiprintf_r+0x140> + 181fa: 036787b3 mul a5,a5,s6 + 181fe: 842e mv s0,a1 + 18200: 4685 li a3,1 + 18202: 97ba add a5,a5,a4 + 18204: b761 j 1818c <_svfiprintf_r+0x10a> + 18206: 0405 addi s0,s0,1 + 18208: ca02 sw zero,20(sp) + 1820a: 4681 li a3,0 + 1820c: 4781 li a5,0 + 1820e: 4625 li a2,9 + 18210: 2018 lbu a4,0(s0) + 18212: 00140593 addi a1,s0,1 + 18216: fd070713 addi a4,a4,-48 + 1821a: 06e67463 bgeu a2,a4,18282 <_svfiprintf_r+0x200> + 1821e: f6e9 bnez a3,181e8 <_svfiprintf_r+0x166> + 18220: 200c lbu a1,0(s0) + 18222: 460d li a2,3 + 18224: 00002517 auipc a0,0x2 + 18228: f4450513 addi a0,a0,-188 # 1a168 <__sf_fake_stdin+0x28> + 1822c: 4fb000ef jal ra,18f26 + 18230: cd11 beqz a0,1824c <_svfiprintf_r+0x1ca> + 18232: 00002797 auipc a5,0x2 + 18236: f3678793 addi a5,a5,-202 # 1a168 <__sf_fake_stdin+0x28> + 1823a: 8d1d sub a0,a0,a5 + 1823c: 47c2 lw a5,16(sp) + 1823e: 04000713 li a4,64 + 18242: 00a71733 sll a4,a4,a0 + 18246: 8fd9 or a5,a5,a4 + 18248: 0405 addi s0,s0,1 + 1824a: c83e sw a5,16(sp) + 1824c: 200c lbu a1,0(s0) + 1824e: 4619 li a2,6 + 18250: 00002517 auipc a0,0x2 + 18254: f1c50513 addi a0,a0,-228 # 1a16c <__sf_fake_stdin+0x2c> + 18258: 00140493 addi s1,s0,1 + 1825c: 02b10423 sb a1,40(sp) + 18260: 4c7000ef jal ra,18f26 + 18264: c12d beqz a0,182c6 <_svfiprintf_r+0x244> + 18266: 00000793 li a5,0 + 1826a: e795 bnez a5,18296 <_svfiprintf_r+0x214> + 1826c: 4742 lw a4,16(sp) + 1826e: 47b2 lw a5,12(sp) + 18270: 10077713 andi a4,a4,256 + 18274: cf09 beqz a4,1828e <_svfiprintf_r+0x20c> + 18276: 0791 addi a5,a5,4 + 18278: c63e sw a5,12(sp) + 1827a: 5792 lw a5,36(sp) + 1827c: 97ce add a5,a5,s3 + 1827e: d23e sw a5,36(sp) + 18280: b561 j 18108 <_svfiprintf_r+0x86> + 18282: 036787b3 mul a5,a5,s6 + 18286: 842e mv s0,a1 + 18288: 4685 li a3,1 + 1828a: 97ba add a5,a5,a4 + 1828c: b751 j 18210 <_svfiprintf_r+0x18e> + 1828e: 079d addi a5,a5,7 + 18290: 9be1 andi a5,a5,-8 + 18292: 07a1 addi a5,a5,8 + 18294: b7d5 j 18278 <_svfiprintf_r+0x1f6> + 18296: 0078 addi a4,sp,12 + 18298: 00000697 auipc a3,0x0 + 1829c: d0c68693 addi a3,a3,-756 # 17fa4 <__ssputs_r> + 182a0: 864a mv a2,s2 + 182a2: 080c addi a1,sp,16 + 182a4: 8552 mv a0,s4 + 182a6: 00000097 auipc ra,0x0 + 182aa: 000000e7 jalr zero # 0 <_sinit-0x1000> + 182ae: 57fd li a5,-1 + 182b0: 89aa mv s3,a0 + 182b2: fcf514e3 bne a0,a5,1827a <_svfiprintf_r+0x1f8> + 182b6: 00c95783 lhu a5,12(s2) + 182ba: 0407f793 andi a5,a5,64 + 182be: e00793e3 bnez a5,180c4 <_svfiprintf_r+0x42> + 182c2: 5512 lw a0,36(sp) + 182c4: b509 j 180c6 <_svfiprintf_r+0x44> + 182c6: 0078 addi a4,sp,12 + 182c8: 00000697 auipc a3,0x0 + 182cc: cdc68693 addi a3,a3,-804 # 17fa4 <__ssputs_r> + 182d0: 864a mv a2,s2 + 182d2: 080c addi a1,sp,16 + 182d4: 8552 mv a0,s4 + 182d6: 2239 jal 183e4 <_printf_i> + 182d8: bfd9 j 182ae <_svfiprintf_r+0x22c> + +000182da <_printf_common>: +_printf_common(): + 182da: 7179 addi sp,sp,-48 + 182dc: ca56 sw s5,20(sp) + 182de: 499c lw a5,16(a1) + 182e0: 8aba mv s5,a4 + 182e2: 4598 lw a4,8(a1) + 182e4: d422 sw s0,40(sp) + 182e6: d04a sw s2,32(sp) + 182e8: ce4e sw s3,28(sp) + 182ea: cc52 sw s4,24(sp) + 182ec: d606 sw ra,44(sp) + 182ee: d226 sw s1,36(sp) + 182f0: c85a sw s6,16(sp) + 182f2: c65e sw s7,12(sp) + 182f4: 0ae7e7b3 max a5,a5,a4 + 182f8: c21c sw a5,0(a2) + 182fa: 0435c703 lbu a4,67(a1) + 182fe: 89aa mv s3,a0 + 18300: 842e mv s0,a1 + 18302: 8932 mv s2,a2 + 18304: 8a36 mv s4,a3 + 18306: c319 beqz a4,1830c <_printf_common+0x32> + 18308: 0785 addi a5,a5,1 + 1830a: c21c sw a5,0(a2) + 1830c: 401c lw a5,0(s0) + 1830e: 0207f793 andi a5,a5,32 + 18312: c791 beqz a5,1831e <_printf_common+0x44> + 18314: 00092783 lw a5,0(s2) + 18318: 0789 addi a5,a5,2 + 1831a: 00f92023 sw a5,0(s2) + 1831e: 4004 lw s1,0(s0) + 18320: 8899 andi s1,s1,6 + 18322: e891 bnez s1,18336 <_printf_common+0x5c> + 18324: 01940b13 addi s6,s0,25 + 18328: 5bfd li s7,-1 + 1832a: 445c lw a5,12(s0) + 1832c: 00092703 lw a4,0(s2) + 18330: 8f99 sub a5,a5,a4 + 18332: 04f4cc63 blt s1,a5,1838a <_printf_common+0xb0> + 18336: 04344783 lbu a5,67(s0) + 1833a: 00f036b3 snez a3,a5 + 1833e: 401c lw a5,0(s0) + 18340: 0207f793 andi a5,a5,32 + 18344: eba5 bnez a5,183b4 <_printf_common+0xda> + 18346: 04340613 addi a2,s0,67 + 1834a: 85d2 mv a1,s4 + 1834c: 854e mv a0,s3 + 1834e: 9a82 jalr s5 + 18350: 57fd li a5,-1 + 18352: 04f50363 beq a0,a5,18398 <_printf_common+0xbe> + 18356: 401c lw a5,0(s0) + 18358: 4711 li a4,4 + 1835a: 4481 li s1,0 + 1835c: 8b99 andi a5,a5,6 + 1835e: 00e79963 bne a5,a4,18370 <_printf_common+0x96> + 18362: 00092783 lw a5,0(s2) + 18366: 4444 lw s1,12(s0) + 18368: 8c9d sub s1,s1,a5 + 1836a: 4781 li a5,0 + 1836c: 0af4e4b3 max s1,s1,a5 + 18370: 441c lw a5,8(s0) + 18372: 4818 lw a4,16(s0) + 18374: 00f75463 bge a4,a5,1837c <_printf_common+0xa2> + 18378: 8f99 sub a5,a5,a4 + 1837a: 94be add s1,s1,a5 + 1837c: 4901 li s2,0 + 1837e: 0469 addi s0,s0,26 + 18380: 5b7d li s6,-1 + 18382: 05249863 bne s1,s2,183d2 <_printf_common+0xf8> + 18386: 4501 li a0,0 + 18388: a809 j 1839a <_printf_common+0xc0> + 1838a: 4685 li a3,1 + 1838c: 865a mv a2,s6 + 1838e: 85d2 mv a1,s4 + 18390: 854e mv a0,s3 + 18392: 9a82 jalr s5 + 18394: 01751e63 bne a0,s7,183b0 <_printf_common+0xd6> + 18398: 557d li a0,-1 + 1839a: 50b2 lw ra,44(sp) + 1839c: 5422 lw s0,40(sp) + 1839e: 5492 lw s1,36(sp) + 183a0: 5902 lw s2,32(sp) + 183a2: 49f2 lw s3,28(sp) + 183a4: 4a62 lw s4,24(sp) + 183a6: 4ad2 lw s5,20(sp) + 183a8: 4b42 lw s6,16(sp) + 183aa: 4bb2 lw s7,12(sp) + 183ac: 6145 addi sp,sp,48 + 183ae: 8082 ret + 183b0: 0485 addi s1,s1,1 + 183b2: bfa5 j 1832a <_printf_common+0x50> + 183b4: 00d40733 add a4,s0,a3 + 183b8: 03000613 li a2,48 + 183bc: 04c701a3 sb a2,67(a4) + 183c0: 04544703 lbu a4,69(s0) + 183c4: 00168793 addi a5,a3,1 + 183c8: 97a2 add a5,a5,s0 + 183ca: 0689 addi a3,a3,2 + 183cc: 04e781a3 sb a4,67(a5) + 183d0: bf9d j 18346 <_printf_common+0x6c> + 183d2: 4685 li a3,1 + 183d4: 8622 mv a2,s0 + 183d6: 85d2 mv a1,s4 + 183d8: 854e mv a0,s3 + 183da: 9a82 jalr s5 + 183dc: fb650ee3 beq a0,s6,18398 <_printf_common+0xbe> + 183e0: 0905 addi s2,s2,1 + 183e2: b745 j 18382 <_printf_common+0xa8> + +000183e4 <_printf_i>: +_printf_i(): + 183e4: 7179 addi sp,sp,-48 + 183e6: d422 sw s0,40(sp) + 183e8: d04a sw s2,32(sp) + 183ea: ce4e sw s3,28(sp) + 183ec: cc52 sw s4,24(sp) + 183ee: d606 sw ra,44(sp) + 183f0: d226 sw s1,36(sp) + 183f2: ca56 sw s5,20(sp) + 183f4: c85a sw s6,16(sp) + 183f6: 0185c803 lbu a6,24(a1) + 183fa: 07800793 li a5,120 + 183fe: 892a mv s2,a0 + 18400: 842e mv s0,a1 + 18402: 89b2 mv s3,a2 + 18404: 8a36 mv s4,a3 + 18406: 0307e263 bltu a5,a6,1842a <_printf_i+0x46> + 1840a: 06200793 li a5,98 + 1840e: 04358693 addi a3,a1,67 + 18412: 0307e163 bltu a5,a6,18434 <_printf_i+0x50> + 18416: 1c080c63 beqz a6,185ee <_printf_i+0x20a> + 1841a: 05800793 li a5,88 + 1841e: 00002617 auipc a2,0x2 + 18422: d5660613 addi a2,a2,-682 # 1a174 <__sf_fake_stdin+0x34> + 18426: 14f80863 beq a6,a5,18576 <_printf_i+0x192> + 1842a: 04240493 addi s1,s0,66 + 1842e: 05040123 sb a6,66(s0) + 18432: a815 j 18466 <_printf_i+0x82> + 18434: f9d80793 addi a5,a6,-99 + 18438: 0ff7f793 zext.b a5,a5 + 1843c: 4655 li a2,21 + 1843e: fef666e3 bltu a2,a5,1842a <_printf_i+0x46> + 18442: 00002617 auipc a2,0x2 + 18446: d5a60613 addi a2,a2,-678 # 1a19c <__sf_fake_stdin+0x5c> + 1844a: 20c7c7b3 sh2add a5,a5,a2 + 1844e: 439c lw a5,0(a5) + 18450: 97b2 add a5,a5,a2 + 18452: 8782 jr a5 + 18454: 431c lw a5,0(a4) + 18456: 04258493 addi s1,a1,66 + 1845a: 00478693 addi a3,a5,4 + 1845e: 439c lw a5,0(a5) + 18460: c314 sw a3,0(a4) + 18462: 04f58123 sb a5,66(a1) + 18466: 4785 li a5,1 + 18468: a275 j 18614 <_printf_i+0x230> + 1846a: 4190 lw a2,0(a1) + 1846c: 431c lw a5,0(a4) + 1846e: 08067513 andi a0,a2,128 + 18472: 00478593 addi a1,a5,4 + 18476: c129 beqz a0,184b8 <_printf_i+0xd4> + 18478: 439c lw a5,0(a5) + 1847a: c30c sw a1,0(a4) + 1847c: 4058 lw a4,4(s0) + 1847e: 1207df63 bgez a5,185bc <_printf_i+0x1d8> + 18482: 02d00593 li a1,45 + 18486: 04b401a3 sb a1,67(s0) + 1848a: c418 sw a4,8(s0) + 1848c: 02075e63 bgez a4,184c8 <_printf_i+0xe4> + 18490: 40f007b3 neg a5,a5 + 18494: 00002617 auipc a2,0x2 + 18498: ce060613 addi a2,a2,-800 # 1a174 <__sf_fake_stdin+0x34> + 1849c: 4829 li a6,10 + 1849e: 84b6 mv s1,a3 + 184a0: 0307f733 remu a4,a5,a6 + 184a4: 14fd addi s1,s1,-1 + 184a6: 9732 add a4,a4,a2 + 184a8: 2318 lbu a4,0(a4) + 184aa: a098 sb a4,0(s1) + 184ac: 873e mv a4,a5 + 184ae: 0307d7b3 divu a5,a5,a6 + 184b2: ff0777e3 bgeu a4,a6,184a0 <_printf_i+0xbc> + 184b6: a085 j 18516 <_printf_i+0x132> + 184b8: 439c lw a5,0(a5) + 184ba: 04067513 andi a0,a2,64 + 184be: c30c sw a1,0(a4) + 184c0: dd55 beqz a0,1847c <_printf_i+0x98> + 184c2: 60579793 sext.h a5,a5 + 184c6: bf5d j 1847c <_printf_i+0x98> + 184c8: 9a6d andi a2,a2,-5 + 184ca: c010 sw a2,0(s0) + 184cc: b7d1 j 18490 <_printf_i+0xac> + 184ce: 4190 lw a2,0(a1) + 184d0: 431c lw a5,0(a4) + 184d2: 08067513 andi a0,a2,128 + 184d6: 00478593 addi a1,a5,4 + 184da: c501 beqz a0,184e2 <_printf_i+0xfe> + 184dc: c30c sw a1,0(a4) + 184de: 439c lw a5,0(a5) + 184e0: a031 j 184ec <_printf_i+0x108> + 184e2: 04067613 andi a2,a2,64 + 184e6: c30c sw a1,0(a4) + 184e8: da7d beqz a2,184de <_printf_i+0xfa> + 184ea: 239e lhu a5,0(a5) + 184ec: 06f00713 li a4,111 + 184f0: 00002617 auipc a2,0x2 + 184f4: c8460613 addi a2,a2,-892 # 1a174 <__sf_fake_stdin+0x34> + 184f8: 0ce81063 bne a6,a4,185b8 <_printf_i+0x1d4> + 184fc: 4821 li a6,8 + 184fe: 040401a3 sb zero,67(s0) + 18502: 4058 lw a4,4(s0) + 18504: c418 sw a4,8(s0) + 18506: f8074ce3 bltz a4,1849e <_printf_i+0xba> + 1850a: 400c lw a1,0(s0) + 1850c: 99ed andi a1,a1,-5 + 1850e: c00c sw a1,0(s0) + 18510: f7d9 bnez a5,1849e <_printf_i+0xba> + 18512: 84b6 mv s1,a3 + 18514: f749 bnez a4,1849e <_printf_i+0xba> + 18516: 47a1 li a5,8 + 18518: 00f81e63 bne a6,a5,18534 <_printf_i+0x150> + 1851c: 401c lw a5,0(s0) + 1851e: 8b85 andi a5,a5,1 + 18520: cb91 beqz a5,18534 <_printf_i+0x150> + 18522: 4058 lw a4,4(s0) + 18524: 481c lw a5,16(s0) + 18526: 00e7c763 blt a5,a4,18534 <_printf_i+0x150> + 1852a: 03000793 li a5,48 + 1852e: fef48fa3 sb a5,-1(s1) + 18532: 14fd addi s1,s1,-1 + 18534: 8e85 sub a3,a3,s1 + 18536: c814 sw a3,16(s0) + 18538: 8752 mv a4,s4 + 1853a: 86ce mv a3,s3 + 1853c: 0070 addi a2,sp,12 + 1853e: 85a2 mv a1,s0 + 18540: 854a mv a0,s2 + 18542: d99ff0ef jal ra,182da <_printf_common> + 18546: 5afd li s5,-1 + 18548: 0d551a63 bne a0,s5,1861c <_printf_i+0x238> + 1854c: 557d li a0,-1 + 1854e: 50b2 lw ra,44(sp) + 18550: 5422 lw s0,40(sp) + 18552: 5492 lw s1,36(sp) + 18554: 5902 lw s2,32(sp) + 18556: 49f2 lw s3,28(sp) + 18558: 4a62 lw s4,24(sp) + 1855a: 4ad2 lw s5,20(sp) + 1855c: 4b42 lw s6,16(sp) + 1855e: 6145 addi sp,sp,48 + 18560: 8082 ret + 18562: 419c lw a5,0(a1) + 18564: 0207e793 ori a5,a5,32 + 18568: c19c sw a5,0(a1) + 1856a: 07800813 li a6,120 + 1856e: 00002617 auipc a2,0x2 + 18572: c1a60613 addi a2,a2,-998 # 1a188 <__sf_fake_stdin+0x48> + 18576: 050402a3 sb a6,69(s0) + 1857a: 400c lw a1,0(s0) + 1857c: 431c lw a5,0(a4) + 1857e: 0805f813 andi a6,a1,128 + 18582: 00478513 addi a0,a5,4 + 18586: 00080563 beqz a6,18590 <_printf_i+0x1ac> + 1858a: c308 sw a0,0(a4) + 1858c: 439c lw a5,0(a5) + 1858e: a039 j 1859c <_printf_i+0x1b8> + 18590: 0405f813 andi a6,a1,64 + 18594: c308 sw a0,0(a4) + 18596: fe080be3 beqz a6,1858c <_printf_i+0x1a8> + 1859a: 239e lhu a5,0(a5) + 1859c: 0015f713 andi a4,a1,1 + 185a0: c701 beqz a4,185a8 <_printf_i+0x1c4> + 185a2: 0205e593 ori a1,a1,32 + 185a6: c00c sw a1,0(s0) + 185a8: c399 beqz a5,185ae <_printf_i+0x1ca> + 185aa: 4841 li a6,16 + 185ac: bf89 j 184fe <_printf_i+0x11a> + 185ae: 4018 lw a4,0(s0) + 185b0: fdf77713 andi a4,a4,-33 + 185b4: c018 sw a4,0(s0) + 185b6: bfd5 j 185aa <_printf_i+0x1c6> + 185b8: 4829 li a6,10 + 185ba: b791 j 184fe <_printf_i+0x11a> + 185bc: 00002617 auipc a2,0x2 + 185c0: bb860613 addi a2,a2,-1096 # 1a174 <__sf_fake_stdin+0x34> + 185c4: 4829 li a6,10 + 185c6: bf35 j 18502 <_printf_i+0x11e> + 185c8: 4190 lw a2,0(a1) + 185ca: 431c lw a5,0(a4) + 185cc: 49cc lw a1,20(a1) + 185ce: 08067813 andi a6,a2,128 + 185d2: 00478513 addi a0,a5,4 + 185d6: 00080663 beqz a6,185e2 <_printf_i+0x1fe> + 185da: c308 sw a0,0(a4) + 185dc: 439c lw a5,0(a5) + 185de: c38c sw a1,0(a5) + 185e0: a039 j 185ee <_printf_i+0x20a> + 185e2: c308 sw a0,0(a4) + 185e4: 04067613 andi a2,a2,64 + 185e8: 439c lw a5,0(a5) + 185ea: da75 beqz a2,185de <_printf_i+0x1fa> + 185ec: a38e sh a1,0(a5) + 185ee: 00042823 sw zero,16(s0) + 185f2: 84b6 mv s1,a3 + 185f4: b791 j 18538 <_printf_i+0x154> + 185f6: 431c lw a5,0(a4) + 185f8: 41d0 lw a2,4(a1) + 185fa: 4581 li a1,0 + 185fc: 00478693 addi a3,a5,4 + 18600: c314 sw a3,0(a4) + 18602: 4384 lw s1,0(a5) + 18604: 8526 mv a0,s1 + 18606: 121000ef jal ra,18f26 + 1860a: c501 beqz a0,18612 <_printf_i+0x22e> + 1860c: 409507b3 sub a5,a0,s1 + 18610: c05c sw a5,4(s0) + 18612: 405c lw a5,4(s0) + 18614: c81c sw a5,16(s0) + 18616: 040401a3 sb zero,67(s0) + 1861a: bf39 j 18538 <_printf_i+0x154> + 1861c: 4814 lw a3,16(s0) + 1861e: 8626 mv a2,s1 + 18620: 85ce mv a1,s3 + 18622: 854a mv a0,s2 + 18624: 9a02 jalr s4 + 18626: f35503e3 beq a0,s5,1854c <_printf_i+0x168> + 1862a: 401c lw a5,0(s0) + 1862c: 8b89 andi a5,a5,2 + 1862e: e785 bnez a5,18656 <_printf_i+0x272> + 18630: 4448 lw a0,12(s0) + 18632: 47b2 lw a5,12(sp) + 18634: 0af56533 max a0,a0,a5 + 18638: bf19 j 1854e <_printf_i+0x16a> + 1863a: 4685 li a3,1 + 1863c: 8656 mv a2,s5 + 1863e: 85ce mv a1,s3 + 18640: 854a mv a0,s2 + 18642: 9a02 jalr s4 + 18644: f16504e3 beq a0,s6,1854c <_printf_i+0x168> + 18648: 0485 addi s1,s1,1 + 1864a: 445c lw a5,12(s0) + 1864c: 4732 lw a4,12(sp) + 1864e: 8f99 sub a5,a5,a4 + 18650: fef4c5e3 blt s1,a5,1863a <_printf_i+0x256> + 18654: bff1 j 18630 <_printf_i+0x24c> + 18656: 4481 li s1,0 + 18658: 01940a93 addi s5,s0,25 + 1865c: 5b7d li s6,-1 + 1865e: b7f5 j 1864a <_printf_i+0x266> + +00018660 <__sfputc_r>: +__sfputc_r(): + 18660: 461c lw a5,8(a2) + 18662: 17fd addi a5,a5,-1 + 18664: c61c sw a5,8(a2) + 18666: 0007d963 bgez a5,18678 <__sfputc_r+0x18> + 1866a: 4e18 lw a4,24(a2) + 1866c: 00e7c563 blt a5,a4,18676 <__sfputc_r+0x16> + 18670: 47a9 li a5,10 + 18672: 00f59363 bne a1,a5,18678 <__sfputc_r+0x18> + 18676: aee1 j 18a4e <__swbuf_r> + 18678: 421c lw a5,0(a2) + 1867a: 852e mv a0,a1 + 1867c: 00178713 addi a4,a5,1 + 18680: c218 sw a4,0(a2) + 18682: a38c sb a1,0(a5) + 18684: 8082 ret + +00018686 <__sfputs_r>: +__sfputs_r(): + 18686: 1101 addi sp,sp,-32 + 18688: cc22 sw s0,24(sp) + 1868a: ca26 sw s1,20(sp) + 1868c: c84a sw s2,16(sp) + 1868e: c64e sw s3,12(sp) + 18690: c452 sw s4,8(sp) + 18692: ce06 sw ra,28(sp) + 18694: 892a mv s2,a0 + 18696: 89ae mv s3,a1 + 18698: 8432 mv s0,a2 + 1869a: 00d604b3 add s1,a2,a3 + 1869e: 5a7d li s4,-1 + 186a0: 00941463 bne s0,s1,186a8 <__sfputs_r+0x22> + 186a4: 4501 li a0,0 + 186a6: a809 j 186b8 <__sfputs_r+0x32> + 186a8: 200c lbu a1,0(s0) + 186aa: 864e mv a2,s3 + 186ac: 854a mv a0,s2 + 186ae: fb3ff0ef jal ra,18660 <__sfputc_r> + 186b2: 0405 addi s0,s0,1 + 186b4: ff4516e3 bne a0,s4,186a0 <__sfputs_r+0x1a> + 186b8: 40f2 lw ra,28(sp) + 186ba: 4462 lw s0,24(sp) + 186bc: 44d2 lw s1,20(sp) + 186be: 4942 lw s2,16(sp) + 186c0: 49b2 lw s3,12(sp) + 186c2: 4a22 lw s4,8(sp) + 186c4: 6105 addi sp,sp,32 + 186c6: 8082 ret + +000186c8 <_vfiprintf_r>: +_vfiprintf_r(): + 186c8: 7135 addi sp,sp,-160 + 186ca: cd22 sw s0,152(sp) + 186cc: cb26 sw s1,148(sp) + 186ce: c94a sw s2,144(sp) + 186d0: c74e sw s3,140(sp) + 186d2: cf06 sw ra,156(sp) + 186d4: c552 sw s4,136(sp) + 186d6: c356 sw s5,132(sp) + 186d8: c15a sw s6,128(sp) + 186da: dede sw s7,124(sp) + 186dc: dce2 sw s8,120(sp) + 186de: 89aa mv s3,a0 + 186e0: 842e mv s0,a1 + 186e2: 8932 mv s2,a2 + 186e4: 84b6 mv s1,a3 + 186e6: c509 beqz a0,186f0 <_vfiprintf_r+0x28> + 186e8: 4d1c lw a5,24(a0) + 186ea: e399 bnez a5,186f0 <_vfiprintf_r+0x28> + 186ec: dc0ff0ef jal ra,17cac <__sinit> + 186f0: 00002797 auipc a5,0x2 + 186f4: a5078793 addi a5,a5,-1456 # 1a140 <__sf_fake_stdin> + 186f8: 04f41763 bne s0,a5,18746 <_vfiprintf_r+0x7e> + 186fc: 0049a403 lw s0,4(s3) + 18700: 507c lw a5,100(s0) + 18702: 8b85 andi a5,a5,1 + 18704: eb81 bnez a5,18714 <_vfiprintf_r+0x4c> + 18706: 245e lhu a5,12(s0) + 18708: 2007f793 andi a5,a5,512 + 1870c: e781 bnez a5,18714 <_vfiprintf_r+0x4c> + 1870e: 4c28 lw a0,88(s0) + 18710: f28ff0ef jal ra,17e38 <__retarget_lock_acquire_recursive> + 18714: 245e lhu a5,12(s0) + 18716: 8ba1 andi a5,a5,8 + 18718: c399 beqz a5,1871e <_vfiprintf_r+0x56> + 1871a: 481c lw a5,16(s0) + 1871c: efb9 bnez a5,1877a <_vfiprintf_r+0xb2> + 1871e: 85a2 mv a1,s0 + 18720: 854e mv a0,s3 + 18722: 2919 jal 18b38 <__swsetup_r> + 18724: c939 beqz a0,1877a <_vfiprintf_r+0xb2> + 18726: 507c lw a5,100(s0) + 18728: 8b85 andi a5,a5,1 + 1872a: c3a1 beqz a5,1876a <_vfiprintf_r+0xa2> + 1872c: 557d li a0,-1 + 1872e: 40fa lw ra,156(sp) + 18730: 446a lw s0,152(sp) + 18732: 44da lw s1,148(sp) + 18734: 494a lw s2,144(sp) + 18736: 49ba lw s3,140(sp) + 18738: 4a2a lw s4,136(sp) + 1873a: 4a9a lw s5,132(sp) + 1873c: 4b0a lw s6,128(sp) + 1873e: 5bf6 lw s7,124(sp) + 18740: 5c66 lw s8,120(sp) + 18742: 610d addi sp,sp,160 + 18744: 8082 ret + 18746: 00002797 auipc a5,0x2 + 1874a: 9da78793 addi a5,a5,-1574 # 1a120 <__sf_fake_stdout> + 1874e: 00f41563 bne s0,a5,18758 <_vfiprintf_r+0x90> + 18752: 0089a403 lw s0,8(s3) + 18756: b76d j 18700 <_vfiprintf_r+0x38> + 18758: 00002797 auipc a5,0x2 + 1875c: 9a878793 addi a5,a5,-1624 # 1a100 <__sf_fake_stderr> + 18760: faf410e3 bne s0,a5,18700 <_vfiprintf_r+0x38> + 18764: 00c9a403 lw s0,12(s3) + 18768: bf61 j 18700 <_vfiprintf_r+0x38> + 1876a: 245e lhu a5,12(s0) + 1876c: 2007f793 andi a5,a5,512 + 18770: ffd5 bnez a5,1872c <_vfiprintf_r+0x64> + 18772: 4c28 lw a0,88(s0) + 18774: ec6ff0ef jal ra,17e3a <__retarget_lock_release_recursive> + 18778: bf55 j 1872c <_vfiprintf_r+0x64> + 1877a: 02000793 li a5,32 + 1877e: 02f104a3 sb a5,41(sp) + 18782: 03000793 li a5,48 + 18786: d202 sw zero,36(sp) + 18788: 02f10523 sb a5,42(sp) + 1878c: c626 sw s1,12(sp) + 1878e: 02500b93 li s7,37 + 18792: 00002a97 auipc s5,0x2 + 18796: 9cea8a93 addi s5,s5,-1586 # 1a160 <__sf_fake_stdin+0x20> + 1879a: 4b29 li s6,10 + 1879c: 84ca mv s1,s2 + 1879e: 209c lbu a5,0(s1) + 187a0: c399 beqz a5,187a6 <_vfiprintf_r+0xde> + 187a2: 09779b63 bne a5,s7,18838 <_vfiprintf_r+0x170> + 187a6: 41248c33 sub s8,s1,s2 + 187aa: 01248e63 beq s1,s2,187c6 <_vfiprintf_r+0xfe> + 187ae: 86e2 mv a3,s8 + 187b0: 864a mv a2,s2 + 187b2: 85a2 mv a1,s0 + 187b4: 854e mv a0,s3 + 187b6: ed1ff0ef jal ra,18686 <__sfputs_r> + 187ba: 57fd li a5,-1 + 187bc: 18f50763 beq a0,a5,1894a <_vfiprintf_r+0x282> + 187c0: 5792 lw a5,36(sp) + 187c2: 97e2 add a5,a5,s8 + 187c4: d23e sw a5,36(sp) + 187c6: 209c lbu a5,0(s1) + 187c8: 18078163 beqz a5,1894a <_vfiprintf_r+0x282> + 187cc: 57fd li a5,-1 + 187ce: 00148913 addi s2,s1,1 + 187d2: c802 sw zero,16(sp) + 187d4: ce02 sw zero,28(sp) + 187d6: ca3e sw a5,20(sp) + 187d8: cc02 sw zero,24(sp) + 187da: 040109a3 sb zero,83(sp) + 187de: d482 sw zero,104(sp) + 187e0: 00094583 lbu a1,0(s2) + 187e4: 4615 li a2,5 + 187e6: 8556 mv a0,s5 + 187e8: 73e000ef jal ra,18f26 + 187ec: 47c2 lw a5,16(sp) + 187ee: 00190493 addi s1,s2,1 + 187f2: e529 bnez a0,1883c <_vfiprintf_r+0x174> + 187f4: 0107f713 andi a4,a5,16 + 187f8: c709 beqz a4,18802 <_vfiprintf_r+0x13a> + 187fa: 02000713 li a4,32 + 187fe: 04e109a3 sb a4,83(sp) + 18802: 0087f713 andi a4,a5,8 + 18806: c709 beqz a4,18810 <_vfiprintf_r+0x148> + 18808: 02b00713 li a4,43 + 1880c: 04e109a3 sb a4,83(sp) + 18810: 00094683 lbu a3,0(s2) + 18814: 02a00713 li a4,42 + 18818: 02e68963 beq a3,a4,1884a <_vfiprintf_r+0x182> + 1881c: 47f2 lw a5,28(sp) + 1881e: 84ca mv s1,s2 + 18820: 4681 li a3,0 + 18822: 4625 li a2,9 + 18824: 2098 lbu a4,0(s1) + 18826: 00148593 addi a1,s1,1 + 1882a: fd070713 addi a4,a4,-48 + 1882e: 06e67263 bgeu a2,a4,18892 <_vfiprintf_r+0x1ca> + 18832: c685 beqz a3,1885a <_vfiprintf_r+0x192> + 18834: ce3e sw a5,28(sp) + 18836: a015 j 1885a <_vfiprintf_r+0x192> + 18838: 0485 addi s1,s1,1 + 1883a: b795 j 1879e <_vfiprintf_r+0xd6> + 1883c: 41550533 sub a0,a0,s5 + 18840: 28a797b3 bset a5,a5,a0 + 18844: 8926 mv s2,s1 + 18846: c83e sw a5,16(sp) + 18848: bf61 j 187e0 <_vfiprintf_r+0x118> + 1884a: 4732 lw a4,12(sp) + 1884c: 00470693 addi a3,a4,4 + 18850: 4318 lw a4,0(a4) + 18852: c636 sw a3,12(sp) + 18854: 02074863 bltz a4,18884 <_vfiprintf_r+0x1bc> + 18858: ce3a sw a4,28(sp) + 1885a: 2098 lbu a4,0(s1) + 1885c: 02e00793 li a5,46 + 18860: 04f71c63 bne a4,a5,188b8 <_vfiprintf_r+0x1f0> + 18864: 3098 lbu a4,1(s1) + 18866: 02a00793 li a5,42 + 1886a: 02f71a63 bne a4,a5,1889e <_vfiprintf_r+0x1d6> + 1886e: 47b2 lw a5,12(sp) + 18870: 0489 addi s1,s1,2 + 18872: 00478713 addi a4,a5,4 + 18876: 439c lw a5,0(a5) + 18878: c63a sw a4,12(sp) + 1887a: 577d li a4,-1 + 1887c: 0ae7e7b3 max a5,a5,a4 + 18880: ca3e sw a5,20(sp) + 18882: a81d j 188b8 <_vfiprintf_r+0x1f0> + 18884: 40e00733 neg a4,a4 + 18888: 0027e793 ori a5,a5,2 + 1888c: ce3a sw a4,28(sp) + 1888e: c83e sw a5,16(sp) + 18890: b7e9 j 1885a <_vfiprintf_r+0x192> + 18892: 036787b3 mul a5,a5,s6 + 18896: 84ae mv s1,a1 + 18898: 4685 li a3,1 + 1889a: 97ba add a5,a5,a4 + 1889c: b761 j 18824 <_vfiprintf_r+0x15c> + 1889e: 0485 addi s1,s1,1 + 188a0: ca02 sw zero,20(sp) + 188a2: 4681 li a3,0 + 188a4: 4781 li a5,0 + 188a6: 4625 li a2,9 + 188a8: 2098 lbu a4,0(s1) + 188aa: 00148593 addi a1,s1,1 + 188ae: fd070713 addi a4,a4,-48 + 188b2: 06e67263 bgeu a2,a4,18916 <_vfiprintf_r+0x24e> + 188b6: f6e9 bnez a3,18880 <_vfiprintf_r+0x1b8> + 188b8: 208c lbu a1,0(s1) + 188ba: 460d li a2,3 + 188bc: 00002517 auipc a0,0x2 + 188c0: 8ac50513 addi a0,a0,-1876 # 1a168 <__sf_fake_stdin+0x28> + 188c4: 258d jal 18f26 + 188c6: cd11 beqz a0,188e2 <_vfiprintf_r+0x21a> + 188c8: 00002797 auipc a5,0x2 + 188cc: 8a078793 addi a5,a5,-1888 # 1a168 <__sf_fake_stdin+0x28> + 188d0: 8d1d sub a0,a0,a5 + 188d2: 47c2 lw a5,16(sp) + 188d4: 04000713 li a4,64 + 188d8: 00a71733 sll a4,a4,a0 + 188dc: 8fd9 or a5,a5,a4 + 188de: 0485 addi s1,s1,1 + 188e0: c83e sw a5,16(sp) + 188e2: 208c lbu a1,0(s1) + 188e4: 4619 li a2,6 + 188e6: 00002517 auipc a0,0x2 + 188ea: 88650513 addi a0,a0,-1914 # 1a16c <__sf_fake_stdin+0x2c> + 188ee: 00148913 addi s2,s1,1 + 188f2: 02b10423 sb a1,40(sp) + 188f6: 2d05 jal 18f26 + 188f8: c935 beqz a0,1896c <_vfiprintf_r+0x2a4> + 188fa: 00000793 li a5,0 + 188fe: e795 bnez a5,1892a <_vfiprintf_r+0x262> + 18900: 4742 lw a4,16(sp) + 18902: 47b2 lw a5,12(sp) + 18904: 10077713 andi a4,a4,256 + 18908: cf09 beqz a4,18922 <_vfiprintf_r+0x25a> + 1890a: 0791 addi a5,a5,4 + 1890c: c63e sw a5,12(sp) + 1890e: 5792 lw a5,36(sp) + 18910: 97d2 add a5,a5,s4 + 18912: d23e sw a5,36(sp) + 18914: b561 j 1879c <_vfiprintf_r+0xd4> + 18916: 036787b3 mul a5,a5,s6 + 1891a: 84ae mv s1,a1 + 1891c: 4685 li a3,1 + 1891e: 97ba add a5,a5,a4 + 18920: b761 j 188a8 <_vfiprintf_r+0x1e0> + 18922: 079d addi a5,a5,7 + 18924: 9be1 andi a5,a5,-8 + 18926: 07a1 addi a5,a5,8 + 18928: b7d5 j 1890c <_vfiprintf_r+0x244> + 1892a: 0078 addi a4,sp,12 + 1892c: 00000697 auipc a3,0x0 + 18930: d5a68693 addi a3,a3,-678 # 18686 <__sfputs_r> + 18934: 8622 mv a2,s0 + 18936: 080c addi a1,sp,16 + 18938: 854e mv a0,s3 + 1893a: 00000097 auipc ra,0x0 + 1893e: 000000e7 jalr zero # 0 <_sinit-0x1000> + 18942: 57fd li a5,-1 + 18944: 8a2a mv s4,a0 + 18946: fcf514e3 bne a0,a5,1890e <_vfiprintf_r+0x246> + 1894a: 507c lw a5,100(s0) + 1894c: 8b85 andi a5,a5,1 + 1894e: eb81 bnez a5,1895e <_vfiprintf_r+0x296> + 18950: 245e lhu a5,12(s0) + 18952: 2007f793 andi a5,a5,512 + 18956: e781 bnez a5,1895e <_vfiprintf_r+0x296> + 18958: 4c28 lw a0,88(s0) + 1895a: ce0ff0ef jal ra,17e3a <__retarget_lock_release_recursive> + 1895e: 245e lhu a5,12(s0) + 18960: 0407f793 andi a5,a5,64 + 18964: dc0794e3 bnez a5,1872c <_vfiprintf_r+0x64> + 18968: 5512 lw a0,36(sp) + 1896a: b3d1 j 1872e <_vfiprintf_r+0x66> + 1896c: 0078 addi a4,sp,12 + 1896e: 00000697 auipc a3,0x0 + 18972: d1868693 addi a3,a3,-744 # 18686 <__sfputs_r> + 18976: 8622 mv a2,s0 + 18978: 080c addi a1,sp,16 + 1897a: 854e mv a0,s3 + 1897c: a69ff0ef jal ra,183e4 <_printf_i> + 18980: b7c9 j 18942 <_vfiprintf_r+0x27a> + +00018982 <_sbrk_r>: +_sbrk_r(): + 18982: 1141 addi sp,sp,-16 + 18984: c422 sw s0,8(sp) + 18986: 842a mv s0,a0 + 18988: 852e mv a0,a1 + 1898a: aa01a223 sw zero,-1372(gp) # 2000145c + 1898e: c606 sw ra,12(sp) + 18990: b0bec0ef jal ra,549a <_sbrk> + 18994: 57fd li a5,-1 + 18996: 00f51663 bne a0,a5,189a2 <_sbrk_r+0x20> + 1899a: aa41a783 lw a5,-1372(gp) # 2000145c + 1899e: c391 beqz a5,189a2 <_sbrk_r+0x20> + 189a0: c01c sw a5,0(s0) + 189a2: 40b2 lw ra,12(sp) + 189a4: 4422 lw s0,8(sp) + 189a6: 0141 addi sp,sp,16 + 189a8: 8082 ret + +000189aa <__sread>: +__sread(): + 189aa: 1141 addi sp,sp,-16 + 189ac: c422 sw s0,8(sp) + 189ae: 842e mv s0,a1 + 189b0: 00e59583 lh a1,14(a1) + 189b4: c606 sw ra,12(sp) + 189b6: 2d45 jal 19066 <_read_r> + 189b8: 00054963 bltz a0,189ca <__sread+0x20> + 189bc: 487c lw a5,84(s0) + 189be: 97aa add a5,a5,a0 + 189c0: c87c sw a5,84(s0) + 189c2: 40b2 lw ra,12(sp) + 189c4: 4422 lw s0,8(sp) + 189c6: 0141 addi sp,sp,16 + 189c8: 8082 ret + 189ca: 245e lhu a5,12(s0) + 189cc: 48c79793 bclri a5,a5,0xc + 189d0: a45e sh a5,12(s0) + 189d2: bfc5 j 189c2 <__sread+0x18> + +000189d4 <__swrite>: +__swrite(): + 189d4: 25de lhu a5,12(a1) + 189d6: 1101 addi sp,sp,-32 + 189d8: cc22 sw s0,24(sp) + 189da: ca26 sw s1,20(sp) + 189dc: c84a sw s2,16(sp) + 189de: c64e sw s3,12(sp) + 189e0: ce06 sw ra,28(sp) + 189e2: 1007f793 andi a5,a5,256 + 189e6: 84aa mv s1,a0 + 189e8: 842e mv s0,a1 + 189ea: 8932 mv s2,a2 + 189ec: 89b6 mv s3,a3 + 189ee: c791 beqz a5,189fa <__swrite+0x26> + 189f0: 00e59583 lh a1,14(a1) + 189f4: 4689 li a3,2 + 189f6: 4601 li a2,0 + 189f8: 2919 jal 18e0e <_lseek_r> + 189fa: 245e lhu a5,12(s0) + 189fc: 00e41583 lh a1,14(s0) + 18a00: 40f2 lw ra,28(sp) + 18a02: 48c79793 bclri a5,a5,0xc + 18a06: a45e sh a5,12(s0) + 18a08: 4462 lw s0,24(sp) + 18a0a: 86ce mv a3,s3 + 18a0c: 864a mv a2,s2 + 18a0e: 49b2 lw s3,12(sp) + 18a10: 4942 lw s2,16(sp) + 18a12: 8526 mv a0,s1 + 18a14: 44d2 lw s1,20(sp) + 18a16: 6105 addi sp,sp,32 + 18a18: a8d5 j 18b0c <_write_r> + +00018a1a <__sseek>: +__sseek(): + 18a1a: 1141 addi sp,sp,-16 + 18a1c: c422 sw s0,8(sp) + 18a1e: 842e mv s0,a1 + 18a20: 00e59583 lh a1,14(a1) + 18a24: c606 sw ra,12(sp) + 18a26: 26e5 jal 18e0e <_lseek_r> + 18a28: 577d li a4,-1 + 18a2a: 245e lhu a5,12(s0) + 18a2c: 00e51963 bne a0,a4,18a3e <__sseek+0x24> + 18a30: 48c79793 bclri a5,a5,0xc + 18a34: a45e sh a5,12(s0) + 18a36: 40b2 lw ra,12(sp) + 18a38: 4422 lw s0,8(sp) + 18a3a: 0141 addi sp,sp,16 + 18a3c: 8082 ret + 18a3e: 28c79793 bseti a5,a5,0xc + 18a42: c868 sw a0,84(s0) + 18a44: a45e sh a5,12(s0) + 18a46: bfc5 j 18a36 <__sseek+0x1c> + +00018a48 <__sclose>: +__sclose(): + 18a48: 00e59583 lh a1,14(a1) + 18a4c: aaf1 j 18c28 <_close_r> + +00018a4e <__swbuf_r>: +__swbuf_r(): + 18a4e: 1101 addi sp,sp,-32 + 18a50: cc22 sw s0,24(sp) + 18a52: ca26 sw s1,20(sp) + 18a54: c84a sw s2,16(sp) + 18a56: ce06 sw ra,28(sp) + 18a58: c64e sw s3,12(sp) + 18a5a: 84aa mv s1,a0 + 18a5c: 892e mv s2,a1 + 18a5e: 8432 mv s0,a2 + 18a60: c509 beqz a0,18a6a <__swbuf_r+0x1c> + 18a62: 4d1c lw a5,24(a0) + 18a64: e399 bnez a5,18a6a <__swbuf_r+0x1c> + 18a66: a46ff0ef jal ra,17cac <__sinit> + 18a6a: 00001797 auipc a5,0x1 + 18a6e: 6d678793 addi a5,a5,1750 # 1a140 <__sf_fake_stdin> + 18a72: 02f41763 bne s0,a5,18aa0 <__swbuf_r+0x52> + 18a76: 40c0 lw s0,4(s1) + 18a78: 4c1c lw a5,24(s0) + 18a7a: c41c sw a5,8(s0) + 18a7c: 245e lhu a5,12(s0) + 18a7e: 8ba1 andi a5,a5,8 + 18a80: c399 beqz a5,18a86 <__swbuf_r+0x38> + 18a82: 481c lw a5,16(s0) + 18a84: ef95 bnez a5,18ac0 <__swbuf_r+0x72> + 18a86: 85a2 mv a1,s0 + 18a88: 8526 mv a0,s1 + 18a8a: 207d jal 18b38 <__swsetup_r> + 18a8c: c915 beqz a0,18ac0 <__swbuf_r+0x72> + 18a8e: 597d li s2,-1 + 18a90: 40f2 lw ra,28(sp) + 18a92: 4462 lw s0,24(sp) + 18a94: 44d2 lw s1,20(sp) + 18a96: 49b2 lw s3,12(sp) + 18a98: 854a mv a0,s2 + 18a9a: 4942 lw s2,16(sp) + 18a9c: 6105 addi sp,sp,32 + 18a9e: 8082 ret + 18aa0: 00001797 auipc a5,0x1 + 18aa4: 68078793 addi a5,a5,1664 # 1a120 <__sf_fake_stdout> + 18aa8: 00f41463 bne s0,a5,18ab0 <__swbuf_r+0x62> + 18aac: 4480 lw s0,8(s1) + 18aae: b7e9 j 18a78 <__swbuf_r+0x2a> + 18ab0: 00001797 auipc a5,0x1 + 18ab4: 65078793 addi a5,a5,1616 # 1a100 <__sf_fake_stderr> + 18ab8: fcf410e3 bne s0,a5,18a78 <__swbuf_r+0x2a> + 18abc: 44c0 lw s0,12(s1) + 18abe: bf6d j 18a78 <__swbuf_r+0x2a> + 18ac0: 481c lw a5,16(s0) + 18ac2: 4008 lw a0,0(s0) + 18ac4: 0ff97993 zext.b s3,s2 + 18ac8: 0ff97913 zext.b s2,s2 + 18acc: 8d1d sub a0,a0,a5 + 18ace: 485c lw a5,20(s0) + 18ad0: 00f54663 blt a0,a5,18adc <__swbuf_r+0x8e> + 18ad4: 85a2 mv a1,s0 + 18ad6: 8526 mv a0,s1 + 18ad8: 2465 jal 18d80 <_fflush_r> + 18ada: f955 bnez a0,18a8e <__swbuf_r+0x40> + 18adc: 441c lw a5,8(s0) + 18ade: 0505 addi a0,a0,1 + 18ae0: 17fd addi a5,a5,-1 + 18ae2: c41c sw a5,8(s0) + 18ae4: 401c lw a5,0(s0) + 18ae6: 00178713 addi a4,a5,1 + 18aea: c018 sw a4,0(s0) + 18aec: 01378023 sb s3,0(a5) + 18af0: 485c lw a5,20(s0) + 18af2: 00a78863 beq a5,a0,18b02 <__swbuf_r+0xb4> + 18af6: 245e lhu a5,12(s0) + 18af8: 8b85 andi a5,a5,1 + 18afa: dbd9 beqz a5,18a90 <__swbuf_r+0x42> + 18afc: 47a9 li a5,10 + 18afe: f8f919e3 bne s2,a5,18a90 <__swbuf_r+0x42> + 18b02: 85a2 mv a1,s0 + 18b04: 8526 mv a0,s1 + 18b06: 2cad jal 18d80 <_fflush_r> + 18b08: d541 beqz a0,18a90 <__swbuf_r+0x42> + 18b0a: b751 j 18a8e <__swbuf_r+0x40> + +00018b0c <_write_r>: +_write_r(): + 18b0c: 1141 addi sp,sp,-16 + 18b0e: c422 sw s0,8(sp) + 18b10: 842a mv s0,a0 + 18b12: 852e mv a0,a1 + 18b14: 85b2 mv a1,a2 + 18b16: 8636 mv a2,a3 + 18b18: aa01a223 sw zero,-1372(gp) # 2000145c + 18b1c: c606 sw ra,12(sp) + 18b1e: e36e90ef jal ra,2154 <_write> + 18b22: 57fd li a5,-1 + 18b24: 00f51663 bne a0,a5,18b30 <_write_r+0x24> + 18b28: aa41a783 lw a5,-1372(gp) # 2000145c + 18b2c: c391 beqz a5,18b30 <_write_r+0x24> + 18b2e: c01c sw a5,0(s0) + 18b30: 40b2 lw ra,12(sp) + 18b32: 4422 lw s0,8(sp) + 18b34: 0141 addi sp,sp,16 + 18b36: 8082 ret + +00018b38 <__swsetup_r>: +__swsetup_r(): + 18b38: 1141 addi sp,sp,-16 + 18b3a: c422 sw s0,8(sp) + 18b3c: c226 sw s1,4(sp) + 18b3e: c04a sw s2,0(sp) + 18b40: c606 sw ra,12(sp) + 18b42: 8381a483 lw s1,-1992(gp) # 200011f0 <_impure_ptr> + 18b46: 892a mv s2,a0 + 18b48: 842e mv s0,a1 + 18b4a: c491 beqz s1,18b56 <__swsetup_r+0x1e> + 18b4c: 4c9c lw a5,24(s1) + 18b4e: e781 bnez a5,18b56 <__swsetup_r+0x1e> + 18b50: 8526 mv a0,s1 + 18b52: 95aff0ef jal ra,17cac <__sinit> + 18b56: 00001797 auipc a5,0x1 + 18b5a: 5ea78793 addi a5,a5,1514 # 1a140 <__sf_fake_stdin> + 18b5e: 02f41363 bne s0,a5,18b84 <__swsetup_r+0x4c> + 18b62: 40c0 lw s0,4(s1) + 18b64: 00c41783 lh a5,12(s0) + 18b68: 0087f713 andi a4,a5,8 + 18b6c: e725 bnez a4,18bd4 <__swsetup_r+0x9c> + 18b6e: 0107f713 andi a4,a5,16 + 18b72: eb0d bnez a4,18ba4 <__swsetup_r+0x6c> + 18b74: 4725 li a4,9 + 18b76: 00e92023 sw a4,0(s2) + 18b7a: 0407e793 ori a5,a5,64 + 18b7e: a45e sh a5,12(s0) + 18b80: 557d li a0,-1 + 18b82: a071 j 18c0e <__swsetup_r+0xd6> + 18b84: 00001797 auipc a5,0x1 + 18b88: 59c78793 addi a5,a5,1436 # 1a120 <__sf_fake_stdout> + 18b8c: 00f41463 bne s0,a5,18b94 <__swsetup_r+0x5c> + 18b90: 4480 lw s0,8(s1) + 18b92: bfc9 j 18b64 <__swsetup_r+0x2c> + 18b94: 00001797 auipc a5,0x1 + 18b98: 56c78793 addi a5,a5,1388 # 1a100 <__sf_fake_stderr> + 18b9c: fcf414e3 bne s0,a5,18b64 <__swsetup_r+0x2c> + 18ba0: 44c0 lw s0,12(s1) + 18ba2: b7c9 j 18b64 <__swsetup_r+0x2c> + 18ba4: 8b91 andi a5,a5,4 + 18ba6: c39d beqz a5,18bcc <__swsetup_r+0x94> + 18ba8: 584c lw a1,52(s0) + 18baa: c989 beqz a1,18bbc <__swsetup_r+0x84> + 18bac: 04440793 addi a5,s0,68 + 18bb0: 00f58463 beq a1,a5,18bb8 <__swsetup_r+0x80> + 18bb4: 854a mv a0,s2 + 18bb6: 2e61 jal 18f4e <_free_r> + 18bb8: 02042a23 sw zero,52(s0) + 18bbc: 245e lhu a5,12(s0) + 18bbe: 00042223 sw zero,4(s0) + 18bc2: fdb7f793 andi a5,a5,-37 + 18bc6: a45e sh a5,12(s0) + 18bc8: 481c lw a5,16(s0) + 18bca: c01c sw a5,0(s0) + 18bcc: 245e lhu a5,12(s0) + 18bce: 0087e793 ori a5,a5,8 + 18bd2: a45e sh a5,12(s0) + 18bd4: 481c lw a5,16(s0) + 18bd6: eb99 bnez a5,18bec <__swsetup_r+0xb4> + 18bd8: 245e lhu a5,12(s0) + 18bda: 20000713 li a4,512 + 18bde: 2807f793 andi a5,a5,640 + 18be2: 00e78563 beq a5,a4,18bec <__swsetup_r+0xb4> + 18be6: 85a2 mv a1,s0 + 18be8: 854a mv a0,s2 + 18bea: 245d jal 18e90 <__smakebuf_r> + 18bec: 00c41783 lh a5,12(s0) + 18bf0: 0017f713 andi a4,a5,1 + 18bf4: c31d beqz a4,18c1a <__swsetup_r+0xe2> + 18bf6: 4858 lw a4,20(s0) + 18bf8: 00042423 sw zero,8(s0) + 18bfc: 40e00733 neg a4,a4 + 18c00: cc18 sw a4,24(s0) + 18c02: 4818 lw a4,16(s0) + 18c04: 4501 li a0,0 + 18c06: e701 bnez a4,18c0e <__swsetup_r+0xd6> + 18c08: 0807f713 andi a4,a5,128 + 18c0c: f73d bnez a4,18b7a <__swsetup_r+0x42> + 18c0e: 40b2 lw ra,12(sp) + 18c10: 4422 lw s0,8(sp) + 18c12: 4492 lw s1,4(sp) + 18c14: 4902 lw s2,0(sp) + 18c16: 0141 addi sp,sp,16 + 18c18: 8082 ret + 18c1a: 0027f713 andi a4,a5,2 + 18c1e: 4681 li a3,0 + 18c20: e311 bnez a4,18c24 <__swsetup_r+0xec> + 18c22: 4854 lw a3,20(s0) + 18c24: c414 sw a3,8(s0) + 18c26: bff1 j 18c02 <__swsetup_r+0xca> + +00018c28 <_close_r>: +_close_r(): + 18c28: 1141 addi sp,sp,-16 + 18c2a: c422 sw s0,8(sp) + 18c2c: 842a mv s0,a0 + 18c2e: 852e mv a0,a1 + 18c30: aa01a223 sw zero,-1372(gp) # 2000145c + 18c34: c606 sw ra,12(sp) + 18c36: 2975 jal 190f2 <_close> + 18c38: 57fd li a5,-1 + 18c3a: 00f51663 bne a0,a5,18c46 <_close_r+0x1e> + 18c3e: aa41a783 lw a5,-1372(gp) # 2000145c + 18c42: c391 beqz a5,18c46 <_close_r+0x1e> + 18c44: c01c sw a5,0(s0) + 18c46: 40b2 lw ra,12(sp) + 18c48: 4422 lw s0,8(sp) + 18c4a: 0141 addi sp,sp,16 + 18c4c: 8082 ret + +00018c4e <__sflush_r>: +__sflush_r(): + 18c4e: 00c59783 lh a5,12(a1) + 18c52: 1101 addi sp,sp,-32 + 18c54: cc22 sw s0,24(sp) + 18c56: ca26 sw s1,20(sp) + 18c58: ce06 sw ra,28(sp) + 18c5a: c84a sw s2,16(sp) + 18c5c: c64e sw s3,12(sp) + 18c5e: 0087f713 andi a4,a5,8 + 18c62: 84aa mv s1,a0 + 18c64: 842e mv s0,a1 + 18c66: e379 bnez a4,18d2c <__sflush_r+0xde> + 18c68: 41d8 lw a4,4(a1) + 18c6a: 00e04563 bgtz a4,18c74 <__sflush_r+0x26> + 18c6e: 41b8 lw a4,64(a1) + 18c70: 08e05663 blez a4,18cfc <__sflush_r+0xae> + 18c74: 5458 lw a4,44(s0) + 18c76: c359 beqz a4,18cfc <__sflush_r+0xae> + 18c78: 0004a903 lw s2,0(s1) + 18c7c: 0004a023 sw zero,0(s1) + 18c80: 500c lw a1,32(s0) + 18c82: 48c7d793 bexti a5,a5,0xc + 18c86: cba9 beqz a5,18cd8 <__sflush_r+0x8a> + 18c88: 4870 lw a2,84(s0) + 18c8a: 245e lhu a5,12(s0) + 18c8c: 8b91 andi a5,a5,4 + 18c8e: c799 beqz a5,18c9c <__sflush_r+0x4e> + 18c90: 405c lw a5,4(s0) + 18c92: 8e1d sub a2,a2,a5 + 18c94: 585c lw a5,52(s0) + 18c96: c399 beqz a5,18c9c <__sflush_r+0x4e> + 18c98: 403c lw a5,64(s0) + 18c9a: 8e1d sub a2,a2,a5 + 18c9c: 545c lw a5,44(s0) + 18c9e: 500c lw a1,32(s0) + 18ca0: 4681 li a3,0 + 18ca2: 8526 mv a0,s1 + 18ca4: 9782 jalr a5 + 18ca6: 57fd li a5,-1 + 18ca8: 04f50c63 beq a0,a5,18d00 <__sflush_r+0xb2> + 18cac: 481c lw a5,16(s0) + 18cae: 6705 lui a4,0x1 + 18cb0: 00042223 sw zero,4(s0) + 18cb4: c01c sw a5,0(s0) + 18cb6: 245e lhu a5,12(s0) + 18cb8: 8ff9 and a5,a5,a4 + 18cba: c391 beqz a5,18cbe <__sflush_r+0x70> + 18cbc: c868 sw a0,84(s0) + 18cbe: 584c lw a1,52(s0) + 18cc0: 0124a023 sw s2,0(s1) + 18cc4: cd85 beqz a1,18cfc <__sflush_r+0xae> + 18cc6: 04440793 addi a5,s0,68 + 18cca: 00f58463 beq a1,a5,18cd2 <__sflush_r+0x84> + 18cce: 8526 mv a0,s1 + 18cd0: 2cbd jal 18f4e <_free_r> + 18cd2: 02042a23 sw zero,52(s0) + 18cd6: a01d j 18cfc <__sflush_r+0xae> + 18cd8: 4601 li a2,0 + 18cda: 4685 li a3,1 + 18cdc: 8526 mv a0,s1 + 18cde: 9702 jalr a4 + 18ce0: 57fd li a5,-1 + 18ce2: 862a mv a2,a0 + 18ce4: faf513e3 bne a0,a5,18c8a <__sflush_r+0x3c> + 18ce8: 409c lw a5,0(s1) + 18cea: d3c5 beqz a5,18c8a <__sflush_r+0x3c> + 18cec: 4775 li a4,29 + 18cee: 00e78563 beq a5,a4,18cf8 <__sflush_r+0xaa> + 18cf2: 4759 li a4,22 + 18cf4: 06e79563 bne a5,a4,18d5e <__sflush_r+0x110> + 18cf8: 0124a023 sw s2,0(s1) + 18cfc: 4501 li a0,0 + 18cfe: a0b5 j 18d6a <__sflush_r+0x11c> + 18d00: 4098 lw a4,0(s1) + 18d02: 00c41783 lh a5,12(s0) + 18d06: cf01 beqz a4,18d1e <__sflush_r+0xd0> + 18d08: 46f5 li a3,29 + 18d0a: 00d70563 beq a4,a3,18d14 <__sflush_r+0xc6> + 18d0e: 46d9 li a3,22 + 18d10: 04d71963 bne a4,a3,18d62 <__sflush_r+0x114> + 18d14: 481c lw a5,16(s0) + 18d16: 00042223 sw zero,4(s0) + 18d1a: c01c sw a5,0(s0) + 18d1c: b74d j 18cbe <__sflush_r+0x70> + 18d1e: 4818 lw a4,16(s0) + 18d20: 00042223 sw zero,4(s0) + 18d24: 48c7d793 bexti a5,a5,0xc + 18d28: c018 sw a4,0(s0) + 18d2a: bf41 j 18cba <__sflush_r+0x6c> + 18d2c: 0105a983 lw s3,16(a1) + 18d30: fc0986e3 beqz s3,18cfc <__sflush_r+0xae> + 18d34: 0005a903 lw s2,0(a1) + 18d38: 8b8d andi a5,a5,3 + 18d3a: 0135a023 sw s3,0(a1) + 18d3e: 41390933 sub s2,s2,s3 + 18d42: 4701 li a4,0 + 18d44: e391 bnez a5,18d48 <__sflush_r+0xfa> + 18d46: 49d8 lw a4,20(a1) + 18d48: c418 sw a4,8(s0) + 18d4a: fb2059e3 blez s2,18cfc <__sflush_r+0xae> + 18d4e: 541c lw a5,40(s0) + 18d50: 500c lw a1,32(s0) + 18d52: 86ca mv a3,s2 + 18d54: 864e mv a2,s3 + 18d56: 8526 mv a0,s1 + 18d58: 9782 jalr a5 + 18d5a: 00a04f63 bgtz a0,18d78 <__sflush_r+0x12a> + 18d5e: 00c41783 lh a5,12(s0) + 18d62: 0407e793 ori a5,a5,64 + 18d66: a45e sh a5,12(s0) + 18d68: 557d li a0,-1 + 18d6a: 40f2 lw ra,28(sp) + 18d6c: 4462 lw s0,24(sp) + 18d6e: 44d2 lw s1,20(sp) + 18d70: 4942 lw s2,16(sp) + 18d72: 49b2 lw s3,12(sp) + 18d74: 6105 addi sp,sp,32 + 18d76: 8082 ret + 18d78: 99aa add s3,s3,a0 + 18d7a: 40a90933 sub s2,s2,a0 + 18d7e: b7f1 j 18d4a <__sflush_r+0xfc> + +00018d80 <_fflush_r>: +_fflush_r(): + 18d80: 499c lw a5,16(a1) + 18d82: 1141 addi sp,sp,-16 + 18d84: c606 sw ra,12(sp) + 18d86: c422 sw s0,8(sp) + 18d88: c226 sw s1,4(sp) + 18d8a: eb81 bnez a5,18d9a <_fflush_r+0x1a> + 18d8c: 4481 li s1,0 + 18d8e: 40b2 lw ra,12(sp) + 18d90: 4422 lw s0,8(sp) + 18d92: 8526 mv a0,s1 + 18d94: 4492 lw s1,4(sp) + 18d96: 0141 addi sp,sp,16 + 18d98: 8082 ret + 18d9a: 84aa mv s1,a0 + 18d9c: 842e mv s0,a1 + 18d9e: c509 beqz a0,18da8 <_fflush_r+0x28> + 18da0: 4d1c lw a5,24(a0) + 18da2: e399 bnez a5,18da8 <_fflush_r+0x28> + 18da4: f09fe0ef jal ra,17cac <__sinit> + 18da8: 00001797 auipc a5,0x1 + 18dac: 39878793 addi a5,a5,920 # 1a140 <__sf_fake_stdin> + 18db0: 02f41f63 bne s0,a5,18dee <_fflush_r+0x6e> + 18db4: 40c0 lw s0,4(s1) + 18db6: 00c41783 lh a5,12(s0) + 18dba: dbe9 beqz a5,18d8c <_fflush_r+0xc> + 18dbc: 5078 lw a4,100(s0) + 18dbe: 8b05 andi a4,a4,1 + 18dc0: e719 bnez a4,18dce <_fflush_r+0x4e> + 18dc2: 2007f793 andi a5,a5,512 + 18dc6: e781 bnez a5,18dce <_fflush_r+0x4e> + 18dc8: 4c28 lw a0,88(s0) + 18dca: 86eff0ef jal ra,17e38 <__retarget_lock_acquire_recursive> + 18dce: 8526 mv a0,s1 + 18dd0: 85a2 mv a1,s0 + 18dd2: e7dff0ef jal ra,18c4e <__sflush_r> + 18dd6: 507c lw a5,100(s0) + 18dd8: 84aa mv s1,a0 + 18dda: 8b85 andi a5,a5,1 + 18ddc: fbcd bnez a5,18d8e <_fflush_r+0xe> + 18dde: 245e lhu a5,12(s0) + 18de0: 2007f793 andi a5,a5,512 + 18de4: f7cd bnez a5,18d8e <_fflush_r+0xe> + 18de6: 4c28 lw a0,88(s0) + 18de8: 852ff0ef jal ra,17e3a <__retarget_lock_release_recursive> + 18dec: b74d j 18d8e <_fflush_r+0xe> + 18dee: 00001797 auipc a5,0x1 + 18df2: 33278793 addi a5,a5,818 # 1a120 <__sf_fake_stdout> + 18df6: 00f41463 bne s0,a5,18dfe <_fflush_r+0x7e> + 18dfa: 4480 lw s0,8(s1) + 18dfc: bf6d j 18db6 <_fflush_r+0x36> + 18dfe: 00001797 auipc a5,0x1 + 18e02: 30278793 addi a5,a5,770 # 1a100 <__sf_fake_stderr> + 18e06: faf418e3 bne s0,a5,18db6 <_fflush_r+0x36> + 18e0a: 44c0 lw s0,12(s1) + 18e0c: b76d j 18db6 <_fflush_r+0x36> + +00018e0e <_lseek_r>: +_lseek_r(): + 18e0e: 1141 addi sp,sp,-16 + 18e10: c422 sw s0,8(sp) + 18e12: 842a mv s0,a0 + 18e14: 852e mv a0,a1 + 18e16: 85b2 mv a1,a2 + 18e18: 8636 mv a2,a3 + 18e1a: aa01a223 sw zero,-1372(gp) # 2000145c + 18e1e: c606 sw ra,12(sp) + 18e20: 2cdd jal 19116 <_lseek> + 18e22: 57fd li a5,-1 + 18e24: 00f51663 bne a0,a5,18e30 <_lseek_r+0x22> + 18e28: aa41a783 lw a5,-1372(gp) # 2000145c + 18e2c: c391 beqz a5,18e30 <_lseek_r+0x22> + 18e2e: c01c sw a5,0(s0) + 18e30: 40b2 lw ra,12(sp) + 18e32: 4422 lw s0,8(sp) + 18e34: 0141 addi sp,sp,16 + 18e36: 8082 ret + +00018e38 <__swhatbuf_r>: +__swhatbuf_r(): + 18e38: 7159 addi sp,sp,-112 + 18e3a: d4a2 sw s0,104(sp) + 18e3c: 842e mv s0,a1 + 18e3e: 00e59583 lh a1,14(a1) + 18e42: d2a6 sw s1,100(sp) + 18e44: d0ca sw s2,96(sp) + 18e46: d686 sw ra,108(sp) + 18e48: 84b2 mv s1,a2 + 18e4a: 8936 mv s2,a3 + 18e4c: 0205d263 bgez a1,18e70 <__swhatbuf_r+0x38> + 18e50: 245e lhu a5,12(s0) + 18e52: 0807f793 andi a5,a5,128 + 18e56: eb8d bnez a5,18e88 <__swhatbuf_r+0x50> + 18e58: 40000713 li a4,1024 + 18e5c: 50b6 lw ra,108(sp) + 18e5e: 5426 lw s0,104(sp) + 18e60: 00f92023 sw a5,0(s2) + 18e64: c098 sw a4,0(s1) + 18e66: 5906 lw s2,96(sp) + 18e68: 5496 lw s1,100(sp) + 18e6a: 4501 li a0,0 + 18e6c: 6165 addi sp,sp,112 + 18e6e: 8082 ret + 18e70: 0030 addi a2,sp,8 + 18e72: 2c39 jal 19090 <_fstat_r> + 18e74: fc054ee3 bltz a0,18e50 <__swhatbuf_r+0x18> + 18e78: 4732 lw a4,12(sp) + 18e7a: 67bd lui a5,0xf + 18e7c: 8ff9 and a5,a5,a4 + 18e7e: 7779 lui a4,0xffffe + 18e80: 97ba add a5,a5,a4 + 18e82: 0017b793 seqz a5,a5 + 18e86: bfc9 j 18e58 <__swhatbuf_r+0x20> + 18e88: 4781 li a5,0 + 18e8a: 04000713 li a4,64 + 18e8e: b7f9 j 18e5c <__swhatbuf_r+0x24> + +00018e90 <__smakebuf_r>: +__smakebuf_r(): + 18e90: 25de lhu a5,12(a1) + 18e92: 7179 addi sp,sp,-48 + 18e94: d422 sw s0,40(sp) + 18e96: d606 sw ra,44(sp) + 18e98: d226 sw s1,36(sp) + 18e9a: d04a sw s2,32(sp) + 18e9c: ce4e sw s3,28(sp) + 18e9e: 8b89 andi a5,a5,2 + 18ea0: 842e mv s0,a1 + 18ea2: cf91 beqz a5,18ebe <__smakebuf_r+0x2e> + 18ea4: 04740793 addi a5,s0,71 + 18ea8: c01c sw a5,0(s0) + 18eaa: c81c sw a5,16(s0) + 18eac: 4785 li a5,1 + 18eae: c85c sw a5,20(s0) + 18eb0: 50b2 lw ra,44(sp) + 18eb2: 5422 lw s0,40(sp) + 18eb4: 5492 lw s1,36(sp) + 18eb6: 5902 lw s2,32(sp) + 18eb8: 49f2 lw s3,28(sp) + 18eba: 6145 addi sp,sp,48 + 18ebc: 8082 ret + 18ebe: 0074 addi a3,sp,12 + 18ec0: 0030 addi a2,sp,8 + 18ec2: 84aa mv s1,a0 + 18ec4: f75ff0ef jal ra,18e38 <__swhatbuf_r> + 18ec8: 49a2 lw s3,8(sp) + 18eca: 892a mv s2,a0 + 18ecc: 8526 mv a0,s1 + 18ece: 85ce mv a1,s3 + 18ed0: fc7fe0ef jal ra,17e96 <_malloc_r> + 18ed4: e919 bnez a0,18eea <__smakebuf_r+0x5a> + 18ed6: 00c41783 lh a5,12(s0) + 18eda: 2007f713 andi a4,a5,512 + 18ede: fb69 bnez a4,18eb0 <__smakebuf_r+0x20> + 18ee0: 9bf1 andi a5,a5,-4 + 18ee2: 0027e793 ori a5,a5,2 + 18ee6: a45e sh a5,12(s0) + 18ee8: bf75 j 18ea4 <__smakebuf_r+0x14> + 18eea: fffff797 auipc a5,0xfffff + 18eee: d5a78793 addi a5,a5,-678 # 17c44 <_cleanup_r> + 18ef2: d49c sw a5,40(s1) + 18ef4: 245e lhu a5,12(s0) + 18ef6: c008 sw a0,0(s0) + 18ef8: c808 sw a0,16(s0) + 18efa: 0807e793 ori a5,a5,128 + 18efe: a45e sh a5,12(s0) + 18f00: 47b2 lw a5,12(sp) + 18f02: 01342a23 sw s3,20(s0) + 18f06: cb99 beqz a5,18f1c <__smakebuf_r+0x8c> + 18f08: 00e41583 lh a1,14(s0) + 18f0c: 8526 mv a0,s1 + 18f0e: 226d jal 190b8 <_isatty_r> + 18f10: c511 beqz a0,18f1c <__smakebuf_r+0x8c> + 18f12: 245e lhu a5,12(s0) + 18f14: 9bf1 andi a5,a5,-4 + 18f16: 0017e793 ori a5,a5,1 + 18f1a: a45e sh a5,12(s0) + 18f1c: 245e lhu a5,12(s0) + 18f1e: 0127e533 or a0,a5,s2 + 18f22: a44a sh a0,12(s0) + 18f24: b771 j 18eb0 <__smakebuf_r+0x20> + +00018f26 : +memchr(): + 18f26: 0ff5f593 zext.b a1,a1 + 18f2a: 962a add a2,a2,a0 + 18f2c: 00c51463 bne a0,a2,18f34 + 18f30: 4501 li a0,0 + 18f32: 8082 ret + 18f34: 211c lbu a5,0(a0) + 18f36: feb78ee3 beq a5,a1,18f32 + 18f3a: 0505 addi a0,a0,1 + 18f3c: bfc5 j 18f2c + +00018f3e <__malloc_lock>: +__malloc_lock(): + 18f3e: a9018513 addi a0,gp,-1392 # 20001448 <__lock___malloc_recursive_mutex> + 18f42: ef7fe06f j 17e38 <__retarget_lock_acquire_recursive> + +00018f46 <__malloc_unlock>: +__malloc_unlock(): + 18f46: a9018513 addi a0,gp,-1392 # 20001448 <__lock___malloc_recursive_mutex> + 18f4a: ef1fe06f j 17e3a <__retarget_lock_release_recursive> + +00018f4e <_free_r>: +_free_r(): + 18f4e: c1c5 beqz a1,18fee <_free_r+0xa0> + 18f50: ffc5a783 lw a5,-4(a1) + 18f54: 1101 addi sp,sp,-32 + 18f56: cc22 sw s0,24(sp) + 18f58: ce06 sw ra,28(sp) + 18f5a: ffc58413 addi s0,a1,-4 + 18f5e: 0007d363 bgez a5,18f64 <_free_r+0x16> + 18f62: 943e add s0,s0,a5 + 18f64: c62a sw a0,12(sp) + 18f66: fd9ff0ef jal ra,18f3e <__malloc_lock> + 18f6a: aa018713 addi a4,gp,-1376 # 20001458 <__malloc_free_list> + 18f6e: 431c lw a5,0(a4) + 18f70: 4532 lw a0,12(sp) + 18f72: eb89 bnez a5,18f84 <_free_r+0x36> + 18f74: 00042223 sw zero,4(s0) + 18f78: c300 sw s0,0(a4) + 18f7a: 4462 lw s0,24(sp) + 18f7c: 40f2 lw ra,28(sp) + 18f7e: 6105 addi sp,sp,32 + 18f80: fc7ff06f j 18f46 <__malloc_unlock> + 18f84: 00f47d63 bgeu s0,a5,18f9e <_free_r+0x50> + 18f88: 4010 lw a2,0(s0) + 18f8a: 00c406b3 add a3,s0,a2 + 18f8e: 00d79663 bne a5,a3,18f9a <_free_r+0x4c> + 18f92: 4394 lw a3,0(a5) + 18f94: 43dc lw a5,4(a5) + 18f96: 96b2 add a3,a3,a2 + 18f98: c014 sw a3,0(s0) + 18f9a: c05c sw a5,4(s0) + 18f9c: bff1 j 18f78 <_free_r+0x2a> + 18f9e: 873e mv a4,a5 + 18fa0: 43dc lw a5,4(a5) + 18fa2: c399 beqz a5,18fa8 <_free_r+0x5a> + 18fa4: fef47de3 bgeu s0,a5,18f9e <_free_r+0x50> + 18fa8: 4314 lw a3,0(a4) + 18faa: 00d70633 add a2,a4,a3 + 18fae: 00861f63 bne a2,s0,18fcc <_free_r+0x7e> + 18fb2: 4010 lw a2,0(s0) + 18fb4: 96b2 add a3,a3,a2 + 18fb6: c314 sw a3,0(a4) + 18fb8: 00d70633 add a2,a4,a3 + 18fbc: fac79fe3 bne a5,a2,18f7a <_free_r+0x2c> + 18fc0: 4390 lw a2,0(a5) + 18fc2: 43dc lw a5,4(a5) + 18fc4: 96b2 add a3,a3,a2 + 18fc6: c314 sw a3,0(a4) + 18fc8: c35c sw a5,4(a4) + 18fca: bf45 j 18f7a <_free_r+0x2c> + 18fcc: 00c47563 bgeu s0,a2,18fd6 <_free_r+0x88> + 18fd0: 47b1 li a5,12 + 18fd2: c11c sw a5,0(a0) + 18fd4: b75d j 18f7a <_free_r+0x2c> + 18fd6: 4010 lw a2,0(s0) + 18fd8: 00c406b3 add a3,s0,a2 + 18fdc: 00d79663 bne a5,a3,18fe8 <_free_r+0x9a> + 18fe0: 4394 lw a3,0(a5) + 18fe2: 43dc lw a5,4(a5) + 18fe4: 96b2 add a3,a3,a2 + 18fe6: c014 sw a3,0(s0) + 18fe8: c05c sw a5,4(s0) + 18fea: c340 sw s0,4(a4) + 18fec: b779 j 18f7a <_free_r+0x2c> + 18fee: 8082 ret + +00018ff0 <_realloc_r>: +_realloc_r(): + 18ff0: 1101 addi sp,sp,-32 + 18ff2: ca26 sw s1,20(sp) + 18ff4: ce06 sw ra,28(sp) + 18ff6: cc22 sw s0,24(sp) + 18ff8: c84a sw s2,16(sp) + 18ffa: c64e sw s3,12(sp) + 18ffc: c452 sw s4,8(sp) + 18ffe: 84b2 mv s1,a2 + 19000: e999 bnez a1,19016 <_realloc_r+0x26> + 19002: 4462 lw s0,24(sp) + 19004: 40f2 lw ra,28(sp) + 19006: 44d2 lw s1,20(sp) + 19008: 4942 lw s2,16(sp) + 1900a: 49b2 lw s3,12(sp) + 1900c: 4a22 lw s4,8(sp) + 1900e: 85b2 mv a1,a2 + 19010: 6105 addi sp,sp,32 + 19012: e85fe06f j 17e96 <_malloc_r> + 19016: ee09 bnez a2,19030 <_realloc_r+0x40> + 19018: f37ff0ef jal ra,18f4e <_free_r> + 1901c: 4401 li s0,0 + 1901e: 40f2 lw ra,28(sp) + 19020: 8522 mv a0,s0 + 19022: 4462 lw s0,24(sp) + 19024: 44d2 lw s1,20(sp) + 19026: 4942 lw s2,16(sp) + 19028: 49b2 lw s3,12(sp) + 1902a: 4a22 lw s4,8(sp) + 1902c: 6105 addi sp,sp,32 + 1902e: 8082 ret + 19030: 8a2a mv s4,a0 + 19032: 842e mv s0,a1 + 19034: 206d jal 190de <_malloc_usable_size_r> + 19036: 892a mv s2,a0 + 19038: 00956663 bltu a0,s1,19044 <_realloc_r+0x54> + 1903c: 00155793 srli a5,a0,0x1 + 19040: fc97efe3 bltu a5,s1,1901e <_realloc_r+0x2e> + 19044: 85a6 mv a1,s1 + 19046: 8552 mv a0,s4 + 19048: e4ffe0ef jal ra,17e96 <_malloc_r> + 1904c: 89aa mv s3,a0 + 1904e: d579 beqz a0,1901c <_realloc_r+0x2c> + 19050: 85a2 mv a1,s0 + 19052: 0b24d633 minu a2,s1,s2 + 19056: 87ce90ef jal ra,20d2 + 1905a: 85a2 mv a1,s0 + 1905c: 8552 mv a0,s4 + 1905e: ef1ff0ef jal ra,18f4e <_free_r> + 19062: 844e mv s0,s3 + 19064: bf6d j 1901e <_realloc_r+0x2e> + +00019066 <_read_r>: +_read_r(): + 19066: 1141 addi sp,sp,-16 + 19068: c422 sw s0,8(sp) + 1906a: 842a mv s0,a0 + 1906c: 852e mv a0,a1 + 1906e: 85b2 mv a1,a2 + 19070: 8636 mv a2,a3 + 19072: aa01a223 sw zero,-1372(gp) # 2000145c + 19076: c606 sw ra,12(sp) + 19078: 206d jal 19122 <_read> + 1907a: 57fd li a5,-1 + 1907c: 00f51663 bne a0,a5,19088 <_read_r+0x22> + 19080: aa41a783 lw a5,-1372(gp) # 2000145c + 19084: c391 beqz a5,19088 <_read_r+0x22> + 19086: c01c sw a5,0(s0) + 19088: 40b2 lw ra,12(sp) + 1908a: 4422 lw s0,8(sp) + 1908c: 0141 addi sp,sp,16 + 1908e: 8082 ret + +00019090 <_fstat_r>: +_fstat_r(): + 19090: 1141 addi sp,sp,-16 + 19092: c422 sw s0,8(sp) + 19094: 842a mv s0,a0 + 19096: 852e mv a0,a1 + 19098: 85b2 mv a1,a2 + 1909a: aa01a223 sw zero,-1372(gp) # 2000145c + 1909e: c606 sw ra,12(sp) + 190a0: 28b9 jal 190fe <_fstat> + 190a2: 57fd li a5,-1 + 190a4: 00f51663 bne a0,a5,190b0 <_fstat_r+0x20> + 190a8: aa41a783 lw a5,-1372(gp) # 2000145c + 190ac: c391 beqz a5,190b0 <_fstat_r+0x20> + 190ae: c01c sw a5,0(s0) + 190b0: 40b2 lw ra,12(sp) + 190b2: 4422 lw s0,8(sp) + 190b4: 0141 addi sp,sp,16 + 190b6: 8082 ret + +000190b8 <_isatty_r>: +_isatty_r(): + 190b8: 1141 addi sp,sp,-16 + 190ba: c422 sw s0,8(sp) + 190bc: 842a mv s0,a0 + 190be: 852e mv a0,a1 + 190c0: aa01a223 sw zero,-1372(gp) # 2000145c + 190c4: c606 sw ra,12(sp) + 190c6: 2091 jal 1910a <_isatty> + 190c8: 57fd li a5,-1 + 190ca: 00f51663 bne a0,a5,190d6 <_isatty_r+0x1e> + 190ce: aa41a783 lw a5,-1372(gp) # 2000145c + 190d2: c391 beqz a5,190d6 <_isatty_r+0x1e> + 190d4: c01c sw a5,0(s0) + 190d6: 40b2 lw ra,12(sp) + 190d8: 4422 lw s0,8(sp) + 190da: 0141 addi sp,sp,16 + 190dc: 8082 ret + +000190de <_malloc_usable_size_r>: +_malloc_usable_size_r(): + 190de: ffc5a783 lw a5,-4(a1) + 190e2: ffc78513 addi a0,a5,-4 + 190e6: 0007d563 bgez a5,190f0 <_malloc_usable_size_r+0x12> + 190ea: 95aa add a1,a1,a0 + 190ec: 419c lw a5,0(a1) + 190ee: 953e add a0,a0,a5 + 190f0: 8082 ret + +000190f2 <_close>: +_close(): + 190f2: 05800793 li a5,88 + 190f6: aaf1a223 sw a5,-1372(gp) # 2000145c + 190fa: 557d li a0,-1 + 190fc: 8082 ret + +000190fe <_fstat>: +_fstat(): + 190fe: 05800793 li a5,88 + 19102: aaf1a223 sw a5,-1372(gp) # 2000145c + 19106: 557d li a0,-1 + 19108: 8082 ret + +0001910a <_isatty>: +_isatty(): + 1910a: 05800793 li a5,88 + 1910e: aaf1a223 sw a5,-1372(gp) # 2000145c + 19112: 4501 li a0,0 + 19114: 8082 ret + +00019116 <_lseek>: +_lseek(): + 19116: 05800793 li a5,88 + 1911a: aaf1a223 sw a5,-1372(gp) # 2000145c + 1911e: 557d li a0,-1 + 19120: 8082 ret + +00019122 <_read>: +_read(): + 19122: 05800793 li a5,88 + 19126: aaf1a223 sw a5,-1372(gp) # 2000145c + 1912a: 557d li a0,-1 + 1912c: 8082 ret + 1912e: 0000 unimp + 19130: 01f4 addi a3,sp,204 + 19132: 00fa slli ra,ra,0x1e + 19134: 0096 slli ra,ra,0x5 + 19136: 0064 addi s1,sp,12 + 19138: 0032004b .4byte 0x32004b + 1913c: 001e c.slli zero,0x7 + 1913e: 0014 .2byte 0x14 + 19140: 000d c.nop 3 + 19142: 0000 unimp + 19144: 3825 jal 1897c <_vfiprintf_r+0x2b4> + 19146: 2064 lbu s1,6(s0) + 19148: 6436255b .4byte 0x6436255b + 1914c: 3a5d jal 18b02 <__swbuf_r+0xb4> + 1914e: 0020 addi s0,sp,8 + 19150: 7325 lui t1,0xfffe9 + 19152: 0000 unimp + 19154: 4545 li a0,17 + 19156: 5250 lw a2,36(a2) + 19158: 525f4d4f .4byte 0x525f4d4f + 1915c: 6165 addi sp,sp,112 + 1915e: 2064 lbu s1,6(s0) + 19160: 43435553 .4byte 0x43435553 + 19164: 0000 unimp + 19166: 0000 unimp + 19168: 4545 li a0,17 + 1916a: 5250 lw a2,36(a2) + 1916c: 525f4d4f .4byte 0x525f4d4f + 19170: 6165 addi sp,sp,112 + 19172: 2064 lbu s1,6(s0) + 19174: 6c46 .2byte 0x6c46 + 19176: 6761 lui a4,0x18 + 19178: 4620 lw s0,72(a2) + 1917a: 6961 lui s2,0x18 + 1917c: 3a6c lbu a1,23(a2) + 1917e: 3025 jal 189a6 <_sbrk_r+0x24> + 19180: 7832 .2byte 0x7832 + 19182: 0000 unimp + 19184: b231 j 18a90 <__swbuf_r+0x42> + 19186: b3c1 j 18f46 <__malloc_unlock> + 19188: b3fd j 18f76 <_free_r+0x28> + 1918a: b9c9 j 18e5c <__swhatbuf_r+0x24> + 1918c: 21a6 lhu s1,2(a1) + 1918e: 0000 unimp + 19190: b231 j 18a9c <__swbuf_r+0x4e> + 19192: b3c1 j 18f52 <_free_r+0x4> + 19194: cafd beqz a3,1928a <_read+0x168> + 19196: 20dcb0a7 .4byte 0x20dcb0a7 + 1919a: 3025 jal 189c2 <__sread+0x18> + 1919c: 5832 lw a6,44(sp) + 1919e: 0021 c.nop 8 + 191a0: b231 j 18aac <__swbuf_r+0x5e> + 191a2: cace sw s3,84(sp) + 191a4: b1fd j 18e92 <__smakebuf_r+0x2> + 191a6: b3e6b4a3 .4byte 0xb3e6b4a3 + 191aa: b9c9 j 18e7c <__swhatbuf_r+0x44> + 191ac: 00a6 slli ra,ra,0x9 + 191ae: 0000 unimp + 191b0: b231 j 18abc <__swbuf_r+0x6e> + 191b2: cace sw s3,84(sp) + 191b4: b1fd j 18ea2 <__smakebuf_r+0x12> + 191b6: cae6b4a3 .4byte 0xcae6b4a3 + 191ba: 20dcb0a7 .4byte 0x20dcb0a7 + 191be: 3025 jal 189e6 <__swrite+0x12> + 191c0: 5832 lw a6,44(sp) + 191c2: 0021 c.nop 8 + 191c4: 7355 lui t1,0xffff5 + 191c6: 3a65 jal 18b7e <__swsetup_r+0x46> + 191c8: 6425 lui s0,0x9 + 191ca: 252c lbu a1,10(a0) + 191cc: 2c64 lbu s1,30(s0) + 191ce: 6425 lui s0,0x9 + 191d0: 252c lbu a1,10(a0) + 191d2: 0064 addi s1,sp,12 + 191d4: 4545 li a0,17 + 191d6: 5250 lw a2,36(a2) + 191d8: 525f4d4f .4byte 0x525f4d4f + 191dc: 6165 addi sp,sp,112 + 191de: 2064 lbu s1,6(s0) + 191e0: 6c46 .2byte 0x6c46 + 191e2: 6761 lui a4,0x18 + 191e4: 4620 lw s0,72(a2) + 191e6: 6961 lui s2,0x18 + 191e8: 326c lbu a1,7(a2) + 191ea: 253a lhu a4,10(a0) + 191ec: 3230 lbu a2,3(a2) + 191ee: 0078 addi a4,sp,12 + 191f0: 4545 li a0,17 + 191f2: 5250 lw a2,36(a2) + 191f4: 535f4d4f .4byte 0x535f4d4f + 191f8: 7661 lui a2,0xffff8 + 191fa: 5f65 li t5,-7 + 191fc: 756f7247 .4byte 0x756f7247 + 19200: 4470 lw a2,76(s0) + 19202: 7461 lui s0,0xffff8 + 19204: 3161 jal 18e8c <__swhatbuf_r+0x54> + 19206: 253a lhu a4,10(a0) + 19208: 0064 addi s1,sp,12 + 1920a: 0000 unimp + 1920c: b232 sh a2,34(a2) + 1920e: b3c1 j 18fce <_free_r+0x80> + 19210: b3fd j 18ffe <_realloc_r+0xe> + 19212: b9c9 j 18ee4 <__smakebuf_r+0x54> + 19214: 21a6 lhu s1,2(a1) + 19216: 0000 unimp + 19218: b232 sh a2,34(a2) + 1921a: b3c1 j 18fda <_free_r+0x8c> + 1921c: cafd beqz a3,19312 <_read+0x1f0> + 1921e: 20dcb0a7 .4byte 0x20dcb0a7 + 19222: 3025 jal 18a4a <__sclose+0x2> + 19224: 5832 lw a6,44(sp) + 19226: 0021 c.nop 8 + 19228: b232 sh a2,34(a2) + 1922a: cace sw s3,84(sp) + 1922c: b1fd j 18f1a <__smakebuf_r+0x8a> + 1922e: b3e6b4a3 .4byte 0xb3e6b4a3 + 19232: b9c9 j 18f04 <__smakebuf_r+0x74> + 19234: 00a6 slli ra,ra,0x9 + 19236: 0000 unimp + 19238: b232 sh a2,34(a2) + 1923a: cace sw s3,84(sp) + 1923c: b1fd j 18f2a + 1923e: cae6b4a3 .4byte 0xcae6b4a3 + 19242: 20dcb0a7 .4byte 0x20dcb0a7 + 19246: 3025 jal 18a6e <__swbuf_r+0x20> + 19248: 5832 lw a6,44(sp) + 1924a: 0021 c.nop 8 + 1924c: 4152 lw sp,20(sp) + 1924e: 4452 lw s0,20(sp) + 19250: 6c65 lui s8,0x19 + 19252: 7961 lui s2,0xffff8 + 19254: 6954 .2byte 0x6954 + 19256: 3a6d jal 18c10 <__swsetup_r+0xd8> + 19258: 6425 lui s0,0x9 + 1925a: 252c lbu a1,10(a0) + 1925c: 2c64 lbu s1,30(s0) + 1925e: 6425 lui s0,0x9 + 19260: 252c lbu a1,10(a0) + 19262: 0064 addi s1,sp,12 + 19264: 4545 li a0,17 + 19266: 5250 lw a2,36(a2) + 19268: 525f4d4f .4byte 0x525f4d4f + 1926c: 6165 addi sp,sp,112 + 1926e: 2064 lbu s1,6(s0) + 19270: 4152 lw sp,20(sp) + 19272: 4452 lw s0,20(sp) + 19274: 6c65 lui s8,0x19 + 19276: 7961 lui s2,0xffff8 + 19278: 6954 .2byte 0x6954 + 1927a: 206d jal 19324 <_read+0x202> + 1927c: 6c46 .2byte 0x6c46 + 1927e: 6761 lui a4,0x18 + 19280: 4620 lw s0,72(a2) + 19282: 6961 lui s2,0x18 + 19284: 336c lbu a1,7(a4) + 19286: 253a lhu a4,10(a0) + 19288: 3230 lbu a2,3(a2) + 1928a: 0078 addi a4,sp,12 + 1928c: 7355 lui t1,0xffff5 + 1928e: 2065 jal 19336 + 19290: 6544 .2byte 0x6544 + 19292: 6166 .2byte 0x6166 + 19294: 6c75 lui s8,0x1d + 19296: 2074 lbu a3,6(s0) + 19298: 6f50 .2byte 0x6f50 + 1929a: 7472 .2byte 0x7472 + 1929c: 6e49 lui t3,0x12 + 1929e: 6f66 .2byte 0x6f66 + 192a0: 0000 unimp + 192a2: 0000 unimp + 192a4: 7355 lui t1,0xffff5 + 192a6: 2065 jal 1934e + 192a8: 6544 .2byte 0x6544 + 192aa: 6166 .2byte 0x6166 + 192ac: 6c75 lui s8,0x1d + 192ae: 2074 lbu a3,6(s0) + 192b0: 756f7247 .4byte 0x756f7247 + 192b4: 4470 lw a2,76(s0) + 192b6: 7461 lui s0,0xffff8 + 192b8: 0061 c.nop 24 + 192ba: 0000 unimp + 192bc: 7355 lui t1,0xffff5 + 192be: 2065 jal 19366 + 192c0: 6544 .2byte 0x6544 + 192c2: 6166 .2byte 0x6166 + 192c4: 6c75 lui s8,0x1d + 192c6: 2074 lbu a3,6(s0) + 192c8: 4152 lw sp,20(sp) + 192ca: 4452 lw s0,20(sp) + 192cc: 6c65 lui s8,0x19 + 192ce: 7961 lui s2,0xffff8 + 192d0: 6954 .2byte 0x6954 + 192d2: 006d c.nop 27 + 192d4: 4545 li a0,17 + 192d6: 5250 lw a2,36(a2) + 192d8: 535f4d4f .4byte 0x535f4d4f + 192dc: 7661 lui a2,0xffff8 + 192de: 5f65 li t5,-7 + 192e0: 4152 lw sp,20(sp) + 192e2: 4452 lw s0,20(sp) + 192e4: 6c65 lui s8,0x19 + 192e6: 7961 lui s2,0xffff8 + 192e8: 6954 .2byte 0x6954 + 192ea: 3a6d jal 18ca4 <__sflush_r+0x56> + 192ec: 6425 lui s0,0x9 + 192ee: 0000 unimp + 192f0: b3c1b233 .4byte 0xb3c1b233 + 192f4: b3fd j 190e2 <_malloc_usable_size_r+0x4> + 192f6: b9c9 j 18fc8 <_free_r+0x7a> + 192f8: 21a6 lhu s1,2(a1) + 192fa: 0000 unimp + 192fc: b3c1b233 .4byte 0xb3c1b233 + 19300: cafd beqz a3,193f6 + 19302: 20dcb0a7 .4byte 0x20dcb0a7 + 19306: 3025 jal 18b2e <_write_r+0x22> + 19308: 5832 lw a6,44(sp) + 1930a: 0021 c.nop 8 + 1930c: caceb233 .4byte 0xcaceb233 + 19310: b1fd j 18ffe <_realloc_r+0xe> + 19312: b3e6b4a3 .4byte 0xb3e6b4a3 + 19316: b9c9 j 18fe8 <_free_r+0x9a> + 19318: 00a6 slli ra,ra,0x9 + 1931a: 0000 unimp + 1931c: caceb233 .4byte 0xcaceb233 + 19320: b1fd j 1900e <_realloc_r+0x1e> + 19322: cae6b4a3 .4byte 0xcae6b4a3 + 19326: 20dcb0a7 .4byte 0x20dcb0a7 + 1932a: 3025 jal 18b52 <__swsetup_r+0x1a> + 1932c: 5832 lw a6,44(sp) + 1932e: 0021 c.nop 8 + +00019330 : + 19330: 0101 0001 0100 0400 0000 0200 0100 0100 ................ + 19340: 0102 0000 0001 0100 0000 0014 0001 0201 ................ + 19350: 0002 0100 0000 0100 1400 0100 0100 0302 ................ + 19360: 0000 0001 0000 0100 0014 0001 0303 0001 ................ + 19370: 0100 0300 0000 0200 0100 0300 0104 0005 ................ + 19380: 0001 0201 0202 000a 0002 0504 0501 0100 ................ + 19390: 0100 0202 0a02 0200 0200 0106 0005 0002 ................ + 193a0: 0201 0202 000a 0002 0000 0000 0000 0000 ................ + ... + 193b8: 9552 fffe 9574 fffe 9584 fffe 9594 fffe R...t........... + 193c8: 95a8 fffe 6f54 206f 616c 6772 2065 6f6e ....Too large no + 193d8: 6974 0000 7270 666f 6c69 2065 6843 6e61 ti..profile Chan + 193e8: 6567 4243 4320 4148 3352 2e2e 0000 0000 geCB CHAR3...... + 193f8: 7055 6164 6574 3131 2520 2078 202d 6e49 Update11 %x - In + 19408: 2074 7825 252c 2064 000a 0000 5245 2e52 t %x,%d ....ERR. + 19418: 002e 0000 6e49 7469 6169 696c 657a 2e64 ....Initialized. + 19428: 002e 0000 6944 6373 6e6f 656e 7463 6465 ....Disconnected + 19438: 2e2e 5220 6165 6f73 3a6e 7825 000a 0000 .. Reason:%x.... + 19448: 6441 6576 7472 7369 6e69 2e67 002e 0000 Advertising..... + 19458: 6f43 6e6e 6365 6974 6e6f 6d20 7861 2e2e Connection max.. + 19468: 002e 0000 6f43 6e6e 2520 2078 202d 6e49 ....Conn %x - In + 19478: 2074 7825 0a20 0000 6f43 6e6e 6365 6574 t %x ...Connecte + 19488: 2e64 002e 6f43 6e6e 6365 6574 2064 6441 d...Connected Ad + 19498: 6576 7472 7369 6e69 2e67 002e 6157 7469 vertising...Wait + 194a8: 6e69 2067 6f66 2072 6461 6576 7472 7369 ing for advertis + 194b8: 6e69 2e67 002e 0000 7245 6f72 2e72 002e ing.....Error... + 194c8: 7245 6f72 2e72 252e 0a78 0000 96a0 fffe Error..%x....... + 194d8: 96b4 fffe 9790 fffe 96e8 fffe 977e fffe ............~... + 194e8: 97cc fffe 6850 2079 7075 6164 6574 5220 ....Phy update R + 194f8: 3a78 7825 5420 3a78 7825 2e20 0a2e 0000 x:%x Tx:%x ..... + 19508: 5959 2057 2d2d 6d20 7574 6520 6378 6168 YYW -- mtu excha + 19518: 676e 3a65 2520 0a64 0000 0000 544d d055 nge: %d.....MTU. + 19528: c9ad b7cc c6a2 b3f0 b9c9 a3a6 c7ac c7eb ................ + 19538: b4f3 d0f3 a3a1 25ba 0a64 0000 544d d055 .......%d...MTU. + 19548: c9ad b7cc c6a2 caf0 b0a7 a3dc d7ac ccb4 ................ + 19558: c2ac a3eb 25ba 3230 0a78 0000 4850 2059 .....%02x...PHY + 19568: 7055 6164 6574 2520 2e78 2e2e 000a 0000 Update %x....... + 19578: 9d48 fffe 9d7a fffe 9da6 fffe 9db0 fffe H...z........... + 19588: 9dba fffe 9dc4 fffe 9dce fffe f5b3 bcca ................ + 19598: afbb b3d3 e4c9 cbb6 dabf 6425 d320 c9b3 ..........%d ... + 195a8: c0e4 d0e0 3acd 6425 d320 c9b3 bbe4 c2d8 .....:%d ....... + 195b8: 3ab7 6425 e320 d6d0 3ab5 6425 252d 2064 .:%d ....:%d-%d + 195c8: b9ca dcc4 eab1 bed6 253a 2064 202d 6425 ........:%d - %d + 195d8: 0053 0000 a1c8 e7b5 aca3 a5b4 a2b7 2d20 S............. - + 195e8: 4320 2548 0064 0000 a1c8 e7b5 aca3 bbb2 CH%d........... + 195f8: a5b4 a2b7 2d20 4320 2548 0064 cbb6 dabf .... - CH%d..... + 19608: 2520 2064 a5b4 a2b7 253a 2064 ceb4 fdca %d ....:%d .... + 19618: baa3 6425 2d20 2520 2064 2020 a5b4 a2b7 ..%d - %d .... + 19628: d0e3 b5d6 baa3 6425 0000 0000 202d b4d7 ......%d....- .. + 19638: accc 253a 2064 f5cc febc e9d7 253a 2064 ..:%d ......:%d + 19648: d0c5 a8b6 252d 2c64 6425 252c 2c64 6425 ....-%d,%d,%d,%d + 19658: 252c 2064 6954 656d 253a 2d64 6425 0000 ,%d Time:%d-%d.. + 19668: d72d ccb4 3aac 6425 f5cc febc e9d7 253a -....:%d......:% + 19678: c564 b6d0 25a8 2c64 6425 252c 2c64 6425 d....%d,%d,%d,%d + 19688: 252c 2c64 6954 656d 253a 2d64 6425 0000 ,%d,Time:%d-%d.. + 19698: cc2d bcf5 25fe 2d64 6425 c520 b6d0 b3a8 -....%d-%d ..... + 196a8: caac 20b1 b5b7 d8bb f5cc febc e9d7 6425 ... ..........%d + 196b8: 002d 0000 dece cbc8 c1d6 d0d3 cbc8 2520 -............. % + 196c8: 2064 f5cc febc e9d7 c9b3 a2c1 2520 0064 d .......... %d. + 196d8: dece cbc8 c1d6 d0d3 cbc8 2520 2064 f5cc .......... %d .. + 196e8: febc e9d7 c9b3 a2c1 2520 2c64 6425 0000 ........ %d,%d.. + 196f8: cc2d bcf5 25fe 2d64 6425 c520 b6d0 d3a8 -....%d-%d ..... + 19708: c8d0 2dcb 0000 0000 ca2d bcc2 3afe aabf ...-....-....:.. + 19718: c5c3 f8bd ebc8 2d2d 0000 0000 d0d3 cbc8 ......--........ + 19728: c1d6 dece cbc8 2520 2064 f5cc febc e9d7 ...... %d ...... + 19738: c9b3 a2c1 0000 0000 d0d3 cbc8 c1d6 dece ................ + 19748: cbc8 2520 2064 f5cc febc e9d7 c9b3 a2c1 .. %d .......... + 19758: 2520 2c64 6425 0000 cc2d bcf5 25fe 2d64 %d,%d..-....%d- + 19768: 6425 c520 b6d0 cea8 c8de 2dcb 0000 0000 %d ........-.... + 19778: ca2d bcc2 3afe dece a8bf cbc8 ebc0 2d2d -....:........-- + 19788: 0000 0000 b32d caa4 bcb1 bce4 b2ec 20e2 ....-.......... + 19798: d8bb b7c2 6425 2520 2064 202d 6425 c520 ....%d %d - %d . + 197a8: b6d0 d3a8 c8d0 2dcb 0000 0000 b32d caa4 .......-....-... + 197b8: bcb1 bce4 b2ec 20e2 d8bb b7c2 6425 2520 ....... ....%d % + 197c8: 2064 202d 6425 c520 b6d0 cea8 c8de 2dcb d - %d ........- + 197d8: 0000 0000 c5c3 c5b4 aabf aca3 aabf c5c3 ................ + 197e8: c2ca febc 0000 0000 c5c3 c5b4 d8b9 aca3 ................ + 197f8: d8b9 c5c3 c2ca febc 0000 0000 b4cf d6ca ................ + 19808: e4bc d0d3 cbc8 aca3 aabf c6b5 c2ca febc ................ + 19818: 0000 0000 b4cf d6ca e4bc dece cbc8 aca3 ................ + 19828: d8b9 c6b5 c2ca febc 0000 0000 202d c2ca ............- .. + 19838: febc e4ca f6b3 203a 6425 0020 4620 4c5a ......: %d . FZL + 19848: 4320 6f6c 6573 0000 6553 5f74 6f50 7472 Close..Set_Port + 19858: 6e49 6f66 5320 6375 3a63 6425 0000 0000 Info Succ:%d.... + 19868: 6553 2074 7553 6363 0000 0000 6f4e 4e20 Set Succ....No N + 19878: 6565 2064 6153 6576 0000 0000 6553 5f74 eed Save....Set_ + 19888: 6f43 646e 7047 5320 6375 0063 6874 2065 CondGp Succ.the + 19898: 6173 656d 0000 0000 4452 5f52 7453 2061 same....RDR_Sta + 198a8: 7453 7261 0074 0000 4452 5f52 7453 2061 Start...RDR_Sta + 198b8: 6e45 0064 7270 6e69 2074 4152 5f52 7473 End.print RAR_st + 198c8: 2061 6e69 7469 0000 7453 706f 7020 6972 a init..Stop pri + 198d8: 746e 5220 5241 735f 6174 0000 6552 7663 nt RAR_sta..Recv + 198e8: 505f 6f72 4d20 5841 654c 736e 4520 7272 _Pro MAXLens Err + 198f8: 0000 0000 6552 7663 505f 6f72 4c20 6e65 ....Recv_Pro Len + 19908: 2073 7245 0072 0000 6552 7663 505f 6f72 s Err...Recv_Pro + 19918: 4820 6165 2064 7245 0072 0000 6548 6461 Head Err...Head + 19928: 4520 7272 0000 0000 6552 7663 505f 6f72 Err....Recv_Pro + 19938: 4320 4352 4520 7272 203a 3025 5834 252c CRC Err: %04X,% + 19948: 3430 0058 5243 2043 7245 3a72 2520 3430 04X.CRC Err: %04 + 19958: 2c58 3025 5834 0000 6552 7663 505f 6f72 X,%04X..Recv_Pro + 19968: 4120 4b43 203a 3025 5832 0000 544f 2041 ACK: %02X..OTA + 19978: 7055 5320 6174 7472 0000 0000 b344 fffe Up Start....D... + 19988: b34c fffe b34c fffe b34c fffe b34c fffe L...L...L...L... + 19998: b34c fffe b34c fffe b350 fffe b35a fffe L...L...P...Z... + 199a8: b34c fffe b364 fffe b37e fffe b34c fffe L...d...~...L... + 199b8: b34c fffe b34c fffe b34c fffe b388 fffe L...L...L....... + 199c8: b34c fffe b392 fffe b34c fffe b34c fffe L.......L...L... + 199d8: b3b8 fffe 434d 2055 7453 7261 3a74 7325 ....MCU Start:%s + 199e8: 0000 0000 434d 5f55 7352 3a74 3025 7834 ....MCU_Rst:%04x + 199f8: 000a 0000 b938 fffe b950 fffe b974 fffe ....8...P...t... + 19a08: b97e fffe b994 fffe 202a 0000 4843 3735 ~.......* ..CH57 + 19a18: 5f32 4c42 5f45 4550 4952 4c5f 4249 565f 2_BLE_PERI_LIB_V + 19a28: 2e31 0032 6568 6461 6620 6c69 2065 7265 1.2.head file er + 19a38: 6f72 2e72 2e2e 0000 494c 2042 6e69 7469 ror.....LIB init + 19a48: 6520 7272 726f 6320 646f 3a65 2520 2078 error code: %x + 19a58: 2e2e 0a2e 0000 0000 736c 4669 7172 3d20 ........lsiFrq = + 19a68: 2520 0a64 0000 0000 ed3c fffe ed30 fffe %d.....<...0... + 19a78: ed3c fffe ed2c fffe ed3c fffe ed2c fffe <...,...<...,... + 19a88: ed3c fffe ed2c fffe ed3c fffe ed34 fffe <...,...<...4... + 19a98: ed3c fffe ed2c fffe ed3c fffe ed3c fffe <...,...<...<... + 19aa8: ed2c fffe ed2c fffe ed2c fffe ed38 fffe ,...,...,...8... + 19ab8: ed38 fffe ed2c fffe ed2c fffe ed2c fffe 8...,...,...,... + 19ac8: ed3c fffe ed2c fffe ed3c fffe 0802 ffff <...,...<....... + 19ad8: 0836 ffff 0852 ffff 0860 ffff 13fe ffff 6...R...`....... + 19ae8: 1386 ffff 1430 ffff 1386 ffff 143c ffff ....0.......<... + 19af8: 1386 ffff 14f2 ffff 1386 ffff 1588 ffff ................ + 19b08: 1386 ffff 1594 ffff 1386 ffff 15a0 ffff ................ + 19b18: 1386 ffff 1386 ffff 1386 ffff 15b0 ffff ................ + 19b28: 1386 ffff 15c6 ffff ........ + +00019b30 : + 19b30: 2674 0001 9098 0000 26a8 0001 9cde 0000 t&.......&...... + 19b40: 2714 0001 9cb0 0000 27ba 0001 9c82 0000 .'.......'...... + 19b50: 2840 0001 a73c 0000 2886 0001 a73c 0000 @(..<....(..<... + 19b60: 28ba 0001 a6a2 0000 27ba 0001 9c36 0000 .(.......'..6... + 19b70: 294a 0001 9f36 0000 0000 0000 0000 0000 J)..6........... + 19b80: 2984 0001 9fd6 0000 29e4 0001 9108 0000 .).......)...... + 19b90: 2978 ffff 2978 ffff 29d6 ffff 29d6 ffff x)..x)...)...).. + 19ba0: 299a ffff 29d6 ffff 29ba ffff 29d6 ffff .)...)...)...).. + 19bb0: 29ce ffff 29d6 ffff 29de ffff .)...)...).. + +00019bbc : + 19bbc: 0101 0102 0102 0201 0201 0404 0106 0104 ................ + 19bcc: 0101 0101 0404 0102 0004 0000 3636 ffff ............66.. + 19bdc: 39e2 ffff 3820 ffff 3860 ffff 39c2 ffff .9.. 8..`8...9.. + 19bec: 38a4 ffff 38e0 ffff 391a ffff 394a ffff .8...8...9..J9.. + 19bfc: 3984 ffff .9.. + +00019c00 : + ... + 19c0c: 0000 8700 .... + +00019c10 : + 19c10: 4843 3735 5f32 4c42 5f45 4550 4952 4c5f CH572_BLE_PERI_L + 19c20: 4249 565f 2e31 2e32 0032 0000 6ec0 ffff IB_V1.2.2....n.. + 19c30: 6eec ffff 6f0e ffff 6f24 ffff 6f38 ffff .n...o..$o..8o.. + 19c40: 6f56 ffff 6f76 ffff 6f86 ffff 710e ffff Vo..vo...o...q.. + 19c50: 710e ffff 710e ffff 710e ffff 710e ffff .q...q...q...q.. + 19c60: 710e ffff 710e ffff 710e ffff 6fa2 ffff .q...q...q...o.. + 19c70: 7082 ffff 7096 ffff 70ac ffff 70ca ffff .p...p...p...p.. + 19c80: 710e ffff 710e ffff 6fc2 ffff 70e6 ffff .q...q...o...p.. + 19c90: 70f6 ffff 710e ffff 710e ffff 701e ffff .p...q...q...p.. + 19ca0: 7024 ffff 70fe ffff 76a2 ffff 7384 ffff $p...p...v...s.. + 19cb0: 7384 ffff 756e ffff 73c0 ffff 735c ffff .s..nu...s..\s.. + 19cc0: 7384 ffff 7384 ffff 7568 ffff 75a4 ffff .s...s..hu...u.. + 19cd0: 7924 ffff 794a ffff 7940 ffff 7954 ffff $y..Jy..@y..Ty.. + 19ce0: 7c2a ffff 7c9a ffff 7d04 ffff 7d04 ffff *|...|...}...}.. + 19cf0: 7ca8 ffff 7d04 ffff 7cc0 ffff 7cde ffff .|...}...|...|.. + 19d00: 7d04 ffff 7cf6 ffff 7d34 ffff 7dde ffff .}...|..4}...}.. + 19d10: 7dc8 ffff 7e04 ffff 7e04 ffff 7e68 ffff .}...~...~..h~.. + 19d20: 7ea6 ffff 81bc ffff 81c4 ffff 81de ffff .~.............. + 19d30: 81ea ffff 81f2 ffff 81fa ffff 8200 ffff ................ + 19d40: 8206 ffff 820c ffff 8212 ffff 8218 ffff ................ + 19d50: 8220 ffff 8226 ffff 822c ffff 824c ffff ...&...,...L... + 19d60: 824c ffff 824c ffff 8232 ffff 823a ffff L...L...2...:... + 19d70: 8240 ffff 8246 ffff 8228 ffff 824a ffff @...F...(...J... + 19d80: 825e ffff 83b0 ffff 826e ffff 82be ffff ^.......n....... + 19d90: 82d2 ffff 82e6 ffff 82fc ffff 8312 ffff ................ + 19da0: 8322 ffff 8338 ffff 83b0 ffff 83b0 ffff "...8........... + 19db0: 83b0 ffff 83b0 ffff 834e ffff 8370 ffff ........N...p... + 19dc0: 8392 ffff 83a4 ffff ........ + +00019dc8 : + 19dc8: 34fb 5f9b 0080 8000 1000 0000 0000 0000 .4._............ + +00019dd8 : + 19dd8: 42a4 0001 3f58 0001 3ed8 0001 40d4 0001 .B..X?...>...@.. + 19de8: 40a6 0001 4082 0001 403c 0001 4004 0001 .@...@..<@...@.. + 19df8: 4118 0001 411c 0001 4120 0001 4110 0001 .A...A.. A...A.. + 19e08: 3fc6 0001 4114 0001 3f08 0001 3edc 0001 .?...A...?...>.. + 19e18: ab18 ffff a7c0 ffff ab26 ffff a7c0 ffff ........&....... + 19e28: a7c0 ffff a7c0 ffff ab64 ffff a7c0 ffff ........d....... + 19e38: a7c0 ffff a7c0 ffff abc2 ffff a7c0 ffff ................ + 19e48: ab26 ffff a7c0 ffff a7c0 ffff ab8e ffff &............... + 19e58: a7c0 ffff a7c0 ffff a7c0 ffff abe6 ffff ................ + 19e68: a7c0 ffff a7c0 ffff a9be ffff a7c0 ffff ................ + 19e78: a7c0 ffff a7c0 ffff a7c0 ffff ab3a ffff ............:... + 19e88: a7c0 ffff ab5c ffff a748 ffff aa4a ffff ....\...H...J... + 19e98: a748 ffff a748 ffff a748 ffff aa88 ffff H...H...H....... + 19ea8: aa88 ffff a748 ffff a748 ffff a748 ffff ....H...H...H... + 19eb8: a748 ffff a748 ffff a748 ffff a748 ffff H...H...H...H... + 19ec8: a748 ffff a748 ffff a748 ffff a96e ffff H...H...H...n... + 19ed8: a748 ffff a748 ffff a748 ffff ab9a ffff H...H...H....... + 19ee8: a982 ffff a748 ffff ab9a ffff a748 ffff ....H.......H... + 19ef8: aba6 ffff .... + +00019efc : + 19efc: 50c2 0001 555c 0001 515c 0001 5660 0001 .P..\U..\Q..`V.. + 19f0c: 4f66 0001 5798 0001 5178 0001 51b2 0001 fO...W..xQ...Q.. + 19f1c: 54f6 0001 579c 0001 522c 0001 524a 0001 .T...W..,R..JR.. + 19f2c: 5284 0001 4f6a 0001 57a0 0001 53ce 0001 .R..jO...W...S.. + 19f3c: 57a4 0001 4fd8 0001 57a8 0001 5790 0001 .W...O...W...W.. + 19f4c: 5614 0001 55be 0001 5308 0001 5794 0001 .V...U...S...W.. + 19f5c: 5362 0001 6e28 6c75 296c 0000 608c 0001 bS..(null)...`.. + 19f6c: 60ee 0001 61e2 0001 61e2 0001 61e2 0001 .`...a...a...a.. + 19f7c: 5ef8 0001 5ef8 0001 5ef8 0001 5ef8 0001 .^...^...^...^.. + 19f8c: 5ef8 0001 5ef8 0001 5ef8 0001 6190 0001 .^...^...^...a.. + 19f9c: 616a 0001 5ef8 0001 5ef8 0001 60d4 0001 ja...^...^...`.. + 19fac: 5ef8 0001 613e 0001 5ef8 0001 5ef8 0001 .^..>a...^...^.. + 19fbc: 612a 0001 cf76 ffff ce36 ffff ce1a ffff *a..v...6....... + 19fcc: ceec ffff ce1a ffff ce40 ffff ce1a ffff ........@....... + 19fdc: ceec ffff ce36 ffff ce36 ffff ce40 ffff ....6...6...@... + 19fec: ceec ffff cf42 ffff cf42 ffff cf42 ffff ....B...B...B... + 19ffc: ce40 ffff @... + +0001a000 <__clz_tab>: + 1a000: 0100 0202 0303 0303 0404 0404 0404 0404 ................ + 1a010: 0505 0505 0505 0505 0505 0505 0505 0505 ................ + 1a020: 0606 0606 0606 0606 0606 0606 0606 0606 ................ + 1a030: 0606 0606 0606 0606 0606 0606 0606 0606 ................ + 1a040: 0707 0707 0707 0707 0707 0707 0707 0707 ................ + 1a050: 0707 0707 0707 0707 0707 0707 0707 0707 ................ + 1a060: 0707 0707 0707 0707 0707 0707 0707 0707 ................ + 1a070: 0707 0707 0707 0707 0707 0707 0707 0707 ................ + 1a080: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a090: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0a0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0b0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0c0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0d0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0e0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + 1a0f0: 0808 0808 0808 0808 0808 0808 0808 0808 ................ + +0001a100 <__sf_fake_stderr>: + ... + +0001a120 <__sf_fake_stdout>: + ... + +0001a140 <__sf_fake_stdin>: + ... + 1a160: 2d23 2b30 0020 0000 6c68 004c 6665 4567 #-0+ ...hlL.efgE + 1a170: 4746 0000 3130 3332 3534 3736 3938 4241 FG..0123456789AB + 1a180: 4443 4645 0000 0000 3130 3332 3534 3736 CDEF....01234567 + 1a190: 3938 6261 6463 6665 0000 0000 e2b8 ffff 89abcdef........ + 1a1a0: e2ce ffff e28e ffff e28e ffff e28e ffff ................ + 1a1b0: e28e ffff e2ce ffff e28e ffff e28e ffff ................ + 1a1c0: e28e ffff e28e ffff e42c ffff e332 ffff ........,...2... + 1a1d0: e3c6 ffff e28e ffff e28e ffff e45a ffff ............Z... + 1a1e0: e28e ffff e332 ffff e28e ffff e28e ffff ....2........... + 1a1f0: e3ce ffff .... + +Disassembly of section .vector_handler: + +0001a1f4 : +ENDOCE_IRQHandler(): +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\obj/../Startup/startup_CH572.S:111 + j 1b + 1a1f4: a001 j 1a1f4 + +Disassembly of section .highcode_fast: + +0001a1f6 : +tmosFindTask(): + 1a1f6: 87aa mv a5,a0 + 1a1f8: 93c1a503 lw a0,-1732(gp) # 200012f4 + 1a1fc: e111 bnez a0,1a200 + 1a1fe: 8082 ret + 1a200: 213a lhu a4,2(a0) + 1a202: 00b71563 bne a4,a1,1a20c + 1a206: 2118 lbu a4,0(a0) + 1a208: fef70be3 beq a4,a5,1a1fe + 1a20c: 4548 lw a0,12(a0) + 1a20e: b7fd j 1a1fc + +0001a210 : +TMOS_CB_PeriodicProcessEvent(): + 1a210: 872a mv a4,a0 + 1a212: 0ff5f513 zext.b a0,a1 + 1a216: c549 beqz a0,1a2a0 + 1a218: 1101 addi sp,sp,-32 + 1a21a: ca26 sw s1,20(sp) + 1a21c: ce06 sw ra,28(sp) + 1a21e: cc22 sw s0,24(sp) + 1a220: c84a sw s2,16(sp) + 1a222: c64e sw s3,12(sp) + 1a224: c452 sw s4,8(sp) + 1a226: 0015f793 andi a5,a1,1 + 1a22a: 84ae mv s1,a1 + 1a22c: e3b5 bnez a5,1a290 + 1a22e: 4685 li a3,1 + 1a230: 4621 li a2,8 + 1a232: 04c68563 beq a3,a2,1a27c + 1a236: 8436 mv s0,a3 + 1a238: 4884d5b3 bext a1,s1,s0 + 1a23c: 0685 addi a3,a3,1 + 1a23e: d9f5 beqz a1,1a232 + 1a240: 080449b3 zext.h s3,s0 + 1a244: 47b1 li a5,12 + 1a246: 20876733 sh3add a4,a4,s0 + 1a24a: 02f70733 mul a4,a4,a5 + 1a24e: 95418a13 addi s4,gp,-1708 # 2000130c + 1a252: 000a2903 lw s2,0(s4) + 1a256: 993a add s2,s2,a4 + 1a258: 00092783 lw a5,0(s2) # ffff8000 <_eusrstack+0xdfff5000> + 1a25c: c781 beqz a5,1a264 + 1a25e: 00492503 lw a0,4(s2) + 1a262: 9782 jalr a5 + 1a264: 4731 li a4,12 + 1a266: 02e989b3 mul s3,s3,a4 + 1a26a: 000a2783 lw a5,0(s4) + 1a26e: 97ce add a5,a5,s3 + 1a270: 479c lw a5,8(a5) + 1a272: c395 beqz a5,1a296 + 1a274: 28801433 bset s0,zero,s0 + 1a278: 080447b3 zext.h a5,s0 + 1a27c: 40f2 lw ra,28(sp) + 1a27e: 4462 lw s0,24(sp) + 1a280: 4942 lw s2,16(sp) + 1a282: 49b2 lw s3,12(sp) + 1a284: 4a22 lw s4,8(sp) + 1a286: 0097c533 xor a0,a5,s1 + 1a28a: 44d2 lw s1,20(sp) + 1a28c: 6105 addi sp,sp,32 + 1a28e: 8082 ret + 1a290: 4981 li s3,0 + 1a292: 4401 li s0,0 + 1a294: bf45 j 1a244 + 1a296: 00092023 sw zero,0(s2) + 1a29a: 00092223 sw zero,4(s2) + 1a29e: bfd9 j 1a274 + 1a2a0: 8082 ret + +0001a2a2 : +tmos_strlen(): + 1a2a2: 1141 addi sp,sp,-16 + 1a2a4: c422 sw s0,8(sp) + 1a2a6: e000e437 lui s0,0xe000e + 1a2aa: c226 sw s1,4(sp) + 1a2ac: 4004 lw s1,0(s0) + 1a2ae: c606 sw ra,12(sp) + 1a2b0: 002007b7 lui a5,0x200 + 1a2b4: 8cfd and s1,s1,a5 + 1a2b6: 18f42023 sw a5,384(s0) # e000e180 <_eusrstack+0xc000b180> + 1a2ba: 0000100f fence.i + 1a2be: 873fd0ef jal ra,17b30 + 1a2c2: 40b2 lw ra,12(sp) + 1a2c4: 10942023 sw s1,256(s0) + 1a2c8: 4422 lw s0,8(sp) + 1a2ca: 4492 lw s1,4(sp) + 1a2cc: 0141 addi sp,sp,16 + 1a2ce: 8082 ret + +0001a2d0 : +tmos_revmemcpy(): + 1a2d0: e000e737 lui a4,0xe000e + 1a2d4: 431c lw a5,0(a4) + 1a2d6: 002006b7 lui a3,0x200 + 1a2da: 18d72023 sw a3,384(a4) # e000e180 <_eusrstack+0xc000b180> + 1a2de: 8ff5 and a5,a5,a3 + 1a2e0: 0000100f fence.i + 1a2e4: fff60713 addi a4,a2,-1 # ffff7fff <_eusrstack+0xdfff4fff> + 1a2e8: 95ba add a1,a1,a4 + 1a2ea: 962a add a2,a2,a0 + 1a2ec: 00c51763 bne a0,a2,1a2fa + 1a2f0: e000e737 lui a4,0xe000e + 1a2f4: 10f72023 sw a5,256(a4) # e000e100 <_eusrstack+0xc000b100> + 1a2f8: 8082 ret + 1a2fa: 2198 lbu a4,0(a1) + 1a2fc: 15fd addi a1,a1,-1 + 1a2fe: 0505 addi a0,a0,1 + 1a300: fee50fa3 sb a4,-1(a0) + 1a304: b7e5 j 1a2ec + +0001a306 : +tmos_isbufset(): + 1a306: e000e737 lui a4,0xe000e + 1a30a: 431c lw a5,0(a4) + 1a30c: 002006b7 lui a3,0x200 + 1a310: 18d72023 sw a3,384(a4) # e000e180 <_eusrstack+0xc000b180> + 1a314: 8ff5 and a5,a5,a3 + 1a316: 0000100f fence.i + 1a31a: c501 beqz a0,1a322 + 1a31c: 00c50733 add a4,a0,a2 + 1a320: e619 bnez a2,1a32e + 1a322: e000e737 lui a4,0xe000e + 1a326: 10f72023 sw a5,256(a4) # e000e100 <_eusrstack+0xc000b100> + 1a32a: 4501 li a0,0 + 1a32c: 8082 ret + 1a32e: 2114 lbu a3,0(a0) + 1a330: 0505 addi a0,a0,1 + 1a332: feb698e3 bne a3,a1,1a322 + 1a336: fee51ce3 bne a0,a4,1a32e + 1a33a: e000e737 lui a4,0xe000e + 1a33e: 10f72023 sw a5,256(a4) # e000e100 <_eusrstack+0xc000b100> + 1a342: 4505 li a0,1 + 1a344: 8082 ret + +0001a346 : +tmos_start_periodic_callback_task(): + 1a346: 7179 addi sp,sp,-48 + 1a348: e000e7b7 lui a5,0xe000e + 1a34c: d422 sw s0,40(sp) + 1a34e: 4380 lw s0,0(a5) + 1a350: cc52 sw s4,24(sp) + 1a352: d606 sw ra,44(sp) + 1a354: d226 sw s1,36(sp) + 1a356: d04a sw s2,32(sp) + 1a358: ce4e sw s3,28(sp) + 1a35a: ca56 sw s5,20(sp) + 1a35c: c85a sw s6,16(sp) + 1a35e: c65e sw s7,12(sp) + 1a360: c462 sw s8,8(sp) + 1a362: 8a3a mv s4,a4 + 1a364: 00200737 lui a4,0x200 + 1a368: 8c79 and s0,s0,a4 + 1a36a: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 1a36e: 0000100f fence.i + 1a372: e105 bnez a0,1a392 + 1a374: 1087a023 sw s0,256(a5) + 1a378: 4509 li a0,2 + 1a37a: 50b2 lw ra,44(sp) + 1a37c: 5422 lw s0,40(sp) + 1a37e: 5492 lw s1,36(sp) + 1a380: 5902 lw s2,32(sp) + 1a382: 49f2 lw s3,28(sp) + 1a384: 4a62 lw s4,24(sp) + 1a386: 4ad2 lw s5,20(sp) + 1a388: 4b42 lw s6,16(sp) + 1a38a: 4bb2 lw s7,12(sp) + 1a38c: 4c22 lw s8,8(sp) + 1a38e: 6145 addi sp,sp,48 + 1a390: 8082 ret + 1a392: 9481a783 lw a5,-1720(gp) # 20001300 + 1a396: 89b6 mv s3,a3 + 1a398: 892a mv s2,a0 + 1a39a: 8aae mv s5,a1 + 1a39c: 8b32 mv s6,a2 + 1a39e: 95418b93 addi s7,gp,-1708 # 2000130c + 1a3a2: 9782 jalr a5 + 1a3a4: 000ba703 lw a4,0(s7) + 1a3a8: 4481 li s1,0 + 1a3aa: 46b1 li a3,12 + 1a3ac: 47a1 li a5,8 + 1a3ae: 02d48c33 mul s8,s1,a3 + 1a3b2: 01870633 add a2,a4,s8 + 1a3b6: 4210 lw a2,0(a2) + 1a3b8: ee2d bnez a2,1a432 + 1a3ba: 65c1 lui a1,0x10 + 1a3bc: f0058593 addi a1,a1,-256 # ff00 + 1a3c0: 4541 li a0,16 + 1a3c2: 262d jal 1a6ec + 1a3c4: ed19 bnez a0,1a3e2 + 1a3c6: 1ffe8797 auipc a5,0x1ffe8 + 1a3ca: 52a7a783 lw a5,1322(a5) # 200028f0 + 1a3ce: c781 beqz a5,1a3d6 + 1a3d0: 4581 li a1,0 + 1a3d2: 4511 li a0,4 + 1a3d4: 9782 jalr a5 + 1a3d6: e000e7b7 lui a5,0xe000e + 1a3da: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a3de: 452d li a0,11 + 1a3e0: bf69 j 1a37a + 1a3e2: 93c18713 addi a4,gp,-1732 # 200012f4 + 1a3e6: 431c lw a5,0(a4) + 1a3e8: e3a1 bnez a5,1a428 + 1a3ea: c308 sw a0,0(a4) + 1a3ec: 00050023 sb zero,0(a0) + 1a3f0: 289017b3 bset a5,zero,s1 + 1a3f4: a13e sh a5,2(a0) + 1a3f6: 000ba783 lw a5,0(s7) + 1a3fa: 00052623 sw zero,12(a0) + 1a3fe: 01652423 sw s6,8(a0) + 1a402: 01452223 sw s4,4(a0) + 1a406: 97e2 add a5,a5,s8 + 1a408: 0127a023 sw s2,0(a5) + 1a40c: 0157a223 sw s5,4(a5) + 1a410: 0147a423 sw s4,8(a5) + 1a414: 00098463 beqz s3,1a41c + 1a418: 00998023 sb s1,0(s3) + 1a41c: e000e7b7 lui a5,0xe000e + 1a420: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a424: 4501 li a0,0 + 1a426: bf91 j 1a37a + 1a428: 873e mv a4,a5 + 1a42a: 47dc lw a5,12(a5) + 1a42c: fff5 bnez a5,1a428 + 1a42e: c748 sw a0,12(a4) + 1a430: bf75 j 1a3ec + 1a432: 0485 addi s1,s1,1 + 1a434: f6f49de3 bne s1,a5,1a3ae + 1a438: e000e7b7 lui a5,0xe000e + 1a43c: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a440: 4521 li a0,8 + 1a442: bf25 j 1a37a + +0001a444 : +tmos_set_event(): + 1a444: e000e7b7 lui a5,0xe000e + 1a448: 4398 lw a4,0(a5) + 1a44a: 002006b7 lui a3,0x200 + 1a44e: 18d7a023 sw a3,384(a5) # e000e180 <_eusrstack+0xc000b180> + 1a452: 8f75 and a4,a4,a3 + 1a454: 0000100f fence.i + 1a458: 1ffe8697 auipc a3,0x1ffe8 + 1a45c: 4516c683 lbu a3,1105(a3) # 200028a9 + 1a460: 02d57163 bgeu a0,a3,1a482 + 1a464: 1ffe8697 auipc a3,0x1ffe8 + 1a468: 4406a623 sw zero,1100(a3) # 200028b0 + 1a46c: 9501a683 lw a3,-1712(gp) # 20001308 + 1a470: 20d52533 sh1add a0,a0,a3 + 1a474: 2116 lhu a3,0(a0) + 1a476: 8dd5 or a1,a1,a3 + 1a478: a10e sh a1,0(a0) + 1a47a: 10e7a023 sw a4,256(a5) + 1a47e: 4501 li a0,0 + 1a480: 8082 ret + 1a482: 10e7a023 sw a4,256(a5) + 1a486: 450d li a0,3 + 1a488: 8082 ret + +0001a48a : +tmos_update_periodic_callback_timer(): + 1a48a: 1101 addi sp,sp,-32 + 1a48c: e000e7b7 lui a5,0xe000e + 1a490: cc22 sw s0,24(sp) + 1a492: 4380 lw s0,0(a5) + 1a494: 00200737 lui a4,0x200 + 1a498: ce06 sw ra,28(sp) + 1a49a: ca26 sw s1,20(sp) + 1a49c: c84a sw s2,16(sp) + 1a49e: 8c79 and s0,s0,a4 + 1a4a0: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 1a4a4: 0000100f fence.i + 1a4a8: 479d li a5,7 + 1a4aa: 04a7e563 bltu a5,a0,1a4f4 + 1a4ae: 4731 li a4,12 + 1a4b0: 02e50733 mul a4,a0,a4 + 1a4b4: 9541a783 lw a5,-1708(gp) # 2000130c + 1a4b8: 97ba add a5,a5,a4 + 1a4ba: 439c lw a5,0(a5) + 1a4bc: cf85 beqz a5,1a4f4 + 1a4be: 28a01533 bset a0,zero,a0 + 1a4c2: 892e mv s2,a1 + 1a4c4: 080545b3 zext.h a1,a0 + 1a4c8: 4501 li a0,0 + 1a4ca: c62e sw a1,12(sp) + 1a4cc: 332d jal 1a1f6 + 1a4ce: 84aa mv s1,a0 + 1a4d0: c519 beqz a0,1a4de + 1a4d2: 45b2 lw a1,12(sp) + 1a4d4: 4501 li a0,0 + 1a4d6: 93deb0ef jal ra,5e12 + 1a4da: 0124a423 sw s2,8(s1) + 1a4de: e000e7b7 lui a5,0xe000e + 1a4e2: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a4e6: 4501 li a0,0 + 1a4e8: 40f2 lw ra,28(sp) + 1a4ea: 4462 lw s0,24(sp) + 1a4ec: 44d2 lw s1,20(sp) + 1a4ee: 4942 lw s2,16(sp) + 1a4f0: 6105 addi sp,sp,32 + 1a4f2: 8082 ret + 1a4f4: e000e7b7 lui a5,0xe000e + 1a4f8: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a4fc: 4509 li a0,2 + 1a4fe: b7ed j 1a4e8 + +0001a500 : +BLE_SetPHYTxMode(): + 1a500: 9e41a783 lw a5,-1564(gp) # 2000139c + 1a504: cb99 beqz a5,1a51a + 1a506: 4b94 lw a3,16(a5) + 1a508: 4bd0 lw a2,20(a5) + 1a50a: 4298 lw a4,0(a3) + 1a50c: 8f51 or a4,a4,a2 + 1a50e: c298 sw a4,0(a3) + 1a510: 4394 lw a3,0(a5) + 1a512: 479c lw a5,8(a5) + 1a514: 4298 lw a4,0(a3) + 1a516: 8fd9 or a5,a5,a4 + 1a518: c29c sw a5,0(a3) + 1a51a: 4705 li a4,1 + 1a51c: 9d81a783 lw a5,-1576(gp) # 20001390 + 1a520: 02e51263 bne a0,a4,1a544 + 1a524: 4398 lw a4,0(a5) + 1a526: fa0006b7 lui a3,0xfa000 + 1a52a: 16fd addi a3,a3,-1 # f9ffffff <_eusrstack+0xd9ffcfff> + 1a52c: cff77713 andi a4,a4,-769 + 1a530: c398 sw a4,0(a5) + 1a532: 53d8 lw a4,36(a5) + 1a534: 00259513 slli a0,a1,0x2 + 1a538: 0ca50513 addi a0,a0,202 + 1a53c: 8f75 and a4,a4,a3 + 1a53e: d3d8 sw a4,36(a5) + 1a540: f97f306f j e4d6 + 1a544: 4398 lw a4,0(a5) + 1a546: fa0006b7 lui a3,0xfa000 + 1a54a: 16fd addi a3,a3,-1 # f9ffffff <_eusrstack+0xd9ffcfff> + 1a54c: cff77713 andi a4,a4,-769 + 1a550: 10076713 ori a4,a4,256 + 1a554: c398 sw a4,0(a5) + 1a556: 53d8 lw a4,36(a5) + 1a558: 00359513 slli a0,a1,0x3 + 1a55c: 0ee50513 addi a0,a0,238 + 1a560: 8f75 and a4,a4,a3 + 1a562: 29971713 bseti a4,a4,0x19 + 1a566: d3d8 sw a4,36(a5) + 1a568: bfe1 j 1a540 + +0001a56a : +BLE_SetPHYRxMode(): + 1a56a: 9e41a783 lw a5,-1564(gp) # 2000139c + 1a56e: cf89 beqz a5,1a588 + 1a570: 43d4 lw a3,4(a5) + 1a572: 0087a803 lw a6,8(a5) + 1a576: 4298 lw a4,0(a3) + 1a578: 01076733 or a4,a4,a6 + 1a57c: c298 sw a4,0(a3) + 1a57e: 47d4 lw a3,12(a5) + 1a580: 4bdc lw a5,20(a5) + 1a582: 4298 lw a4,0(a3) + 1a584: 8fd9 or a5,a5,a4 + 1a586: c29c sw a5,0(a3) + 1a588: 00558793 addi a5,a1,5 + 1a58c: 4685 li a3,1 + 1a58e: 9d81a703 lw a4,-1576(gp) # 20001390 + 1a592: a001a803 lw a6,-1536(gp) # 200013b8 + 1a596: 0807c7b3 zext.h a5,a5 + 1a59a: 06d51263 bne a0,a3,1a5fe + 1a59e: 4314 lw a3,0(a4) + 1a5a0: fa0005b7 lui a1,0xfa000 + 1a5a4: 15fd addi a1,a1,-1 # f9ffffff <_eusrstack+0xd9ffcfff> + 1a5a6: cff6f693 andi a3,a3,-769 + 1a5aa: c314 sw a3,0(a4) + 1a5ac: 5354 lw a3,36(a4) + 1a5ae: 078e slli a5,a5,0x3 + 1a5b0: 8eed and a3,a3,a1 + 1a5b2: d354 sw a3,36(a4) + 1a5b4: 05082683 lw a3,80(a6) + 1a5b8: 9f41c583 lbu a1,-1548(gp) # 200013ac + 1a5bc: 89fd andi a1,a1,31 + 1a5be: 9a81 andi a3,a3,-32 + 1a5c0: 8ecd or a3,a3,a1 + 1a5c2: 04d82823 sw a3,80(a6) + 1a5c6: 4b54 lw a3,20(a4) + 1a5c8: fc06f693 andi a3,a3,-64 + 1a5cc: 00d6e693 ori a3,a3,13 + 1a5d0: cb54 sw a3,20(a4) + 1a5d2: 07f00693 li a3,127 + 1a5d6: af74 sb a3,30(a4) + 1a5d8: 4f54 lw a3,28(a4) + 1a5da: c006f693 andi a3,a3,-1024 + 1a5de: 0a06e693 ori a3,a3,160 + 1a5e2: cf54 sw a3,28(a4) + 1a5e4: 03c78793 addi a5,a5,60 + 1a5e8: 0807c7b3 zext.h a5,a5 + 1a5ec: c601 beqz a2,1a5f4 + 1a5ee: 0606 slli a2,a2,0x1 + 1a5f0: 080647b3 zext.h a5,a2 + 1a5f4: 1ffe8717 auipc a4,0x1ffe8 + 1a5f8: 42f71023 sh a5,1056(a4) # 20002a14 + 1a5fc: 8082 ret + 1a5fe: 4314 lw a3,0(a4) + 1a600: fa0005b7 lui a1,0xfa000 + 1a604: 15fd addi a1,a1,-1 # f9ffffff <_eusrstack+0xd9ffcfff> + 1a606: cff6f693 andi a3,a3,-769 + 1a60a: 1006e693 ori a3,a3,256 + 1a60e: c314 sw a3,0(a4) + 1a610: 5354 lw a3,36(a4) + 1a612: 0792 slli a5,a5,0x4 + 1a614: 8eed and a3,a3,a1 + 1a616: 29969693 bseti a3,a3,0x19 + 1a61a: d354 sw a3,36(a4) + 1a61c: 05082683 lw a3,80(a6) + 1a620: 9f51c583 lbu a1,-1547(gp) # 200013ad + 1a624: 89fd andi a1,a1,31 + 1a626: 9a81 andi a3,a3,-32 + 1a628: 8ecd or a3,a3,a1 + 1a62a: 04d82823 sw a3,80(a6) + 1a62e: 4b54 lw a3,20(a4) + 1a630: fc06f693 andi a3,a3,-64 + 1a634: 00b6e693 ori a3,a3,11 + 1a638: cb54 sw a3,20(a4) + 1a63a: 07800693 li a3,120 + 1a63e: af74 sb a3,30(a4) + 1a640: 4f54 lw a3,28(a4) + 1a642: c006f693 andi a3,a3,-1024 + 1a646: 09c6e693 ori a3,a3,156 + 1a64a: cf54 sw a3,28(a4) + 1a64c: bf61 j 1a5e4 + +0001a64e : +ble_ll_hw_api_shut(): + 1a64e: 1141 addi sp,sp,-16 + 1a650: 4501 li a0,0 + 1a652: c606 sw ra,12(sp) + 1a654: 239000ef jal ra,1b08c + 1a658: 9e41a783 lw a5,-1564(gp) # 2000139c + 1a65c: cb99 beqz a5,1a672 + 1a65e: 43d4 lw a3,4(a5) + 1a660: 4790 lw a2,8(a5) + 1a662: 4298 lw a4,0(a3) + 1a664: 8f51 or a4,a4,a2 + 1a666: c298 sw a4,0(a3) + 1a668: 4b94 lw a3,16(a5) + 1a66a: 4bdc lw a5,20(a5) + 1a66c: 4298 lw a4,0(a3) + 1a66e: 8fd9 or a5,a5,a4 + 1a670: c29c sw a5,0(a3) + 1a672: 9f01a783 lw a5,-1552(gp) # 200013a8 + 1a676: 4bb8 lw a4,80(a5) + 1a678: 8ff77713 andi a4,a4,-1793 + 1a67c: cbb8 sw a4,80(a5) + 1a67e: 4398 lw a4,0(a5) + 1a680: 00876713 ori a4,a4,8 + 1a684: c398 sw a4,0(a5) + 1a686: 40b2 lw ra,12(sp) + 1a688: 1ffe8797 auipc a5,0x1ffe8 + 1a68c: 380784a3 sb zero,905(a5) # 20002a11 + 1a690: 0141 addi sp,sp,16 + 1a692: 8082 ret + +0001a694 : +phy_status_clear(): + 1a694: 9f01a783 lw a5,-1552(gp) # 200013a8 + 1a698: 439c lw a5,0(a5) + 1a69a: 8b8d andi a5,a5,3 + 1a69c: c7b9 beqz a5,1a6ea + 1a69e: 1141 addi sp,sp,-16 + 1a6a0: c422 sw s0,8(sp) + 1a6a2: c606 sw ra,12(sp) + 1a6a4: 1ffe8717 auipc a4,0x1ffe8 + 1a6a8: 36d74703 lbu a4,877(a4) # 20002a11 + 1a6ac: 478d li a5,3 + 1a6ae: 1ffe8417 auipc s0,0x1ffe8 + 1a6b2: 35e40413 addi s0,s0,862 # 20002a0c + 1a6b6: 00f71863 bne a4,a5,1a6c6 + 1a6ba: 9dc1a783 lw a5,-1572(gp) # 20001394 + 1a6be: 4601 li a2,0 + 1a6c0: 4581 li a1,0 + 1a6c2: 4545 li a0,17 + 1a6c4: 9782 jalr a5 + 1a6c6: 305c lbu a5,5(s0) + 1a6c8: 46a1 li a3,8 + 1a6ca: 0ff7f713 zext.b a4,a5 + 1a6ce: 00d79863 bne a5,a3,1a6de + 1a6d2: 02000593 li a1,32 + 1a6d6: 9e01c503 lbu a0,-1568(gp) # 20001398 + 1a6da: a078 sb a4,6(s0) + 1a6dc: 33a5 jal 1a444 + 1a6de: 4422 lw s0,8(sp) + 1a6e0: 40b2 lw ra,12(sp) + 1a6e2: 9e018623 sb zero,-1556(gp) # 200013a4 + 1a6e6: 0141 addi sp,sp,16 + 1a6e8: b79d j 1a64e + 1a6ea: 8082 ret + +0001a6ec : +tmos_memory_allocate(): + 1a6ec: 1141 addi sp,sp,-16 + 1a6ee: e000e7b7 lui a5,0xe000e + 1a6f2: c422 sw s0,8(sp) + 1a6f4: 4380 lw s0,0(a5) + 1a6f6: 00200737 lui a4,0x200 + 1a6fa: c606 sw ra,12(sp) + 1a6fc: 8c79 and s0,s0,a4 + 1a6fe: 18e7a023 sw a4,384(a5) # e000e180 <_eusrstack+0xc000b180> + 1a702: 0000100f fence.i + 1a706: c111 beqz a0,1a70a + 1a708: e599 bnez a1,1a716 + 1a70a: e000e7b7 lui a5,0xe000e + 1a70e: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a712: 4501 li a0,0 + 1a714: a849 j 1a7a6 + 1a716: 050d addi a0,a0,3 + 1a718: 08054533 zext.h a0,a0 + 1a71c: 03400713 li a4,52 + 1a720: 9971 andi a0,a0,-4 + 1a722: 080547b3 zext.h a5,a0 + 1a726: 02a76263 bltu a4,a0,1a74a + 1a72a: a781a503 lw a0,-1416(gp) # 20001430 + 1a72e: a701a683 lw a3,-1424(gp) # 20001428 + 1a732: 00a69f63 bne a3,a0,1a750 + 1a736: 1ffe8717 auipc a4,0x1ffe8 + 1a73a: 1ba72703 lw a4,442(a4) # 200028f0 + 1a73e: d771 beqz a4,1a70a + 1a740: 07c2 slli a5,a5,0x10 + 1a742: 8ddd or a1,a1,a5 + 1a744: 4505 li a0,1 + 1a746: 9702 jalr a4 + 1a748: b7c9 j 1a70a + 1a74a: a741a503 lw a0,-1420(gp) # 2000142c + 1a74e: b7c5 j 1a72e + 1a750: 217a lhu a4,6(a0) + 1a752: ef31 bnez a4,1a7ae + 1a754: 215a lhu a4,4(a0) + 1a756: 04f76c63 bltu a4,a5,1a7ae + 1a75a: 40f706b3 sub a3,a4,a5 + 1a75e: 4821 li a6,8 + 1a760: 1ffe8617 auipc a2,0x1ffe8 + 1a764: 14860613 addi a2,a2,328 # 200028a8 + 1a768: 02d87563 bgeu a6,a3,1a792 + 1a76c: 00052883 lw a7,0(a0) + 1a770: 00465803 lhu a6,4(a2) + 1a774: 00878693 addi a3,a5,8 + 1a778: 8f1d sub a4,a4,a5 + 1a77a: 96aa add a3,a3,a0 + 1a77c: 1761 addi a4,a4,-8 + 1a77e: a2da sh a4,4(a3) + 1a780: 0116a023 sw a7,0(a3) + 1a784: 00069323 sh zero,6(a3) + 1a788: c114 sw a3,0(a0) + 1a78a: a15e sh a5,4(a0) + 1a78c: ff880713 addi a4,a6,-8 + 1a790: a25a sh a4,4(a2) + 1a792: 225a lhu a4,4(a2) + 1a794: a16e sh a1,6(a0) + 1a796: 0521 addi a0,a0,8 + 1a798: 40f707b3 sub a5,a4,a5 + 1a79c: a25e sh a5,4(a2) + 1a79e: e000e7b7 lui a5,0xe000e + 1a7a2: 1087a023 sw s0,256(a5) # e000e100 <_eusrstack+0xc000b100> + 1a7a6: 40b2 lw ra,12(sp) + 1a7a8: 4422 lw s0,8(sp) + 1a7aa: 0141 addi sp,sp,16 + 1a7ac: 8082 ret + 1a7ae: 4108 lw a0,0(a0) + 1a7b0: b749 j 1a732 + +0001a7b2 : +ll_connect_send_data(): + 1a7b2: 517c lw a5,100(a0) + 1a7b4: c7fd beqz a5,1a8a2 + 1a7b6: 1141 addi sp,sp,-16 + 1a7b8: c422 sw s0,8(sp) + 1a7ba: c606 sw ra,12(sp) + 1a7bc: 2158 lbu a4,4(a0) + 1a7be: 11554583 lbu a1,277(a0) + 1a7c2: 3794 lbu a3,9(a5) + 1a7c4: 27d2 lhu a2,12(a5) + 1a7c6: 842a mv s0,a0 + 1a7c8: 0fc77713 andi a4,a4,252 + 1a7cc: 60469513 sext.b a0,a3 + 1a7d0: 06c5f763 bgeu a1,a2,1a83e + 1a7d4: 06055163 bgez a0,1a836 + 1a7d8: 2788 lbu a0,8(a5) + 1a7da: 07f6f693 andi a3,a3,127 + 1a7de: b794 sb a3,9(a5) + 1a7e0: 4605 li a2,1 + 1a7e2: 00276693 ori a3,a4,2 + 1a7e6: 00c51463 bne a0,a2,1a7ee + 1a7ea: 00176693 ori a3,a4,1 + 1a7ee: a054 sb a3,4(s0) + 1a7f0: 43d8 lw a4,4(a5) + 1a7f2: 0709 addi a4,a4,2 + 1a7f4: c3d8 sw a4,4(a5) + 1a7f6: 4c68 lw a0,92(s0) + 1a7f8: a42c sb a1,10(s0) + 1a7fa: 862e mv a2,a1 + 1a7fc: 43cc lw a1,4(a5) + 1a7fe: 0509 addi a0,a0,2 + 1a800: 1ffe6097 auipc ra,0x1ffe6 + 1a804: 05c080e7 jalr 92(ra) # 2000085c + 1a808: 507c lw a5,100(s0) + 1a80a: 2434 lbu a3,10(s0) + 1a80c: 43d8 lw a4,4(a5) + 1a80e: 9736 add a4,a4,a3 + 1a810: c3d8 sw a4,4(a5) + 1a812: 27da lhu a4,12(a5) + 1a814: 8f15 sub a4,a4,a3 + 1a816: a7da sh a4,12(a5) + 1a818: 4789 li a5,2 + 1a81a: b81c sb a5,17(s0) + 1a81c: 02044703 lbu a4,32(s0) + 1a820: 1ffe8797 auipc a5,0x1ffe8 + 1a824: 0ba7c783 lbu a5,186(a5) # 200028da + 1a828: 06f76863 bltu a4,a5,1a898 + 1a82c: 40b2 lw ra,12(sp) + 1a82e: 4422 lw s0,8(sp) + 1a830: 4501 li a0,0 + 1a832: 0141 addi sp,sp,16 + 1a834: 8082 ret + 1a836: 00176713 ori a4,a4,1 + 1a83a: a058 sb a4,4(s0) + 1a83c: bf6d j 1a7f6 + 1a83e: 0ff67693 zext.b a3,a2 + 1a842: 02055463 bgez a0,1a86a + 1a846: 2788 lbu a0,8(a5) + 1a848: 4585 li a1,1 + 1a84a: 00276613 ori a2,a4,2 + 1a84e: 00b51463 bne a0,a1,1a856 + 1a852: 00176613 ori a2,a4,1 + 1a856: a050 sb a2,4(s0) + 1a858: a434 sb a3,10(s0) + 1a85a: 000784a3 sb zero,9(a5) + 1a85e: 4785 li a5,1 + 1a860: b81c sb a5,17(s0) + 1a862: 507c lw a5,100(s0) + 1a864: 439c lw a5,0(a5) + 1a866: fbdd bnez a5,1a81c + 1a868: b7d1 j 1a82c + 1a86a: 00176713 ori a4,a4,1 + 1a86e: a058 sb a4,4(s0) + 1a870: a434 sb a3,10(s0) + 1a872: 000784a3 sb zero,9(a5) + 1a876: 4c68 lw a0,92(s0) + 1a878: 43cc lw a1,4(a5) + 1a87a: 0509 addi a0,a0,2 + 1a87c: 1ffe6097 auipc ra,0x1ffe6 + 1a880: fe0080e7 jalr -32(ra) # 2000085c + 1a884: 507c lw a5,100(s0) + 1a886: 2434 lbu a3,10(s0) + 1a888: 43d8 lw a4,4(a5) + 1a88a: 9736 add a4,a4,a3 + 1a88c: c3d8 sw a4,4(a5) + 1a88e: 27da lhu a4,12(a5) + 1a890: 8f15 sub a4,a4,a3 + 1a892: a7da sh a4,12(a5) + 1a894: 478d li a5,3 + 1a896: b7e9 j 1a860 + 1a898: 205c lbu a5,4(s0) + 1a89a: 0107e793 ori a5,a5,16 + 1a89e: a05c sb a5,4(s0) + 1a8a0: b771 j 1a82c + 1a8a2: 4505 li a0,1 + 1a8a4: 8082 ret + +0001a8a6 : +ll_connect_recv_data(): + 1a8a6: 1141 addi sp,sp,-16 + 1a8a8: a8c1a783 lw a5,-1396(gp) # 20001444 + 1a8ac: c422 sw s0,8(sp) + 1a8ae: c606 sw ra,12(sp) + 1a8b0: 8b85 andi a5,a5,1 + 1a8b2: 842a mv s0,a0 + 1a8b4: efb9 bnez a5,1a912 + 1a8b6: bf2f90ef jal ra,13ca8 + 1a8ba: cd21 beqz a0,1a912 + 1a8bc: 253c lbu a5,10(a0) + 1a8be: a53e sh a5,10(a0) + 1a8c0: 547c lw a5,108(s0) + 1a8c2: e3a1 bnez a5,1a902 + 1a8c4: d468 sw a0,108(s0) + 1a8c6: d828 sw a0,112(s0) + 1a8c8: 4785 li a5,1 + 1a8ca: b87c sb a5,23(s0) + 1a8cc: 00052023 sw zero,0(a0) + 1a8d0: 342c lbu a1,11(s0) + 1a8d2: 1ffe8717 auipc a4,0x1ffe8 + 1a8d6: 15270713 addi a4,a4,338 # 20002a24 + 1a8da: a54e sh a1,12(a0) + 1a8dc: 305c lbu a5,5(s0) + 1a8de: 0ff5f593 zext.b a1,a1 + 1a8e2: a51c sb a5,8(a0) + 1a8e4: 4785 li a5,1 + 1a8e6: b51c sb a5,9(a0) + 1a8e8: 237e lhu a5,6(a4) + 1a8ea: 4148 lw a0,4(a0) + 1a8ec: 0785 addi a5,a5,1 + 1a8ee: a37e sh a5,6(a4) + 1a8f0: 1ffe6097 auipc ra,0x1ffe6 + 1a8f4: 690080e7 jalr 1680(ra) # 20000f80 + 1a8f8: 4501 li a0,0 + 1a8fa: 40b2 lw ra,12(sp) + 1a8fc: 4422 lw s0,8(sp) + 1a8fe: 0141 addi sp,sp,16 + 1a900: 8082 ret + 1a902: 583c lw a5,112(s0) + 1a904: c388 sw a0,0(a5) + 1a906: 387c lbu a5,23(s0) + 1a908: d828 sw a0,112(s0) + 1a90a: 0785 addi a5,a5,1 + 1a90c: 0ff7f793 zext.b a5,a5 + 1a910: bf6d j 1a8ca + 1a912: 205c lbu a5,4(s0) + 1a914: 00040323 sb zero,6(s0) + 1a918: 4505 li a0,1 + 1a91a: 0047c793 xori a5,a5,4 + 1a91e: a05c sb a5,4(s0) + 1a920: bfe9 j 1a8fa + +0001a922 : +llProcessConnectEvent(): + 1a922: 40050b63 beqz a0,1ad38 + 1a926: 1101 addi sp,sp,-32 + 1a928: c84a sw s2,16(sp) + 1a92a: 1ffe8917 auipc s2,0x1ffe8 + 1a92e: fd290913 addi s2,s2,-46 # 200028fc + 1a932: 00092783 lw a5,0(s2) + 1a936: ca26 sw s1,20(sp) + 1a938: 4564 lw s1,76(a0) + 1a93a: cc22 sw s0,24(sp) + 1a93c: ce06 sw ra,28(sp) + 1a93e: c64e sw s3,12(sp) + 1a940: c452 sw s4,8(sp) + 1a942: c256 sw s5,4(sp) + 1a944: 842a mv s0,a0 + 1a946: 9782 jalr a5 + 1a948: 22a4ee63 bltu s1,a0,1ab84 + 1a94c: 40a48533 sub a0,s1,a0 + 1a950: 00092783 lw a5,0(s2) + 1a954: 22054c63 bltz a0,1ab8c + 1a958: 3c1e lhu a5,56(s0) + 1a95a: 3066 lhu s1,38(s0) + 1a95c: 04c42983 lw s3,76(s0) + 1a960: 00895a83 lhu s5,8(s2) + 1a964: 2c97e863 bltu a5,s1,1ac34 + 1a968: 4c38 lw a4,88(s0) + 1a96a: 1ffe8a17 auipc s4,0x1ffe8 + 1a96e: f5ea0a13 addi s4,s4,-162 # 200028c8 + 1a972: 015a4483 lbu s1,21(s4) + 1a976: 40e987b3 sub a5,s3,a4 + 1a97a: 00e9f663 bgeu s3,a4,1a986 + 1a97e: 00492783 lw a5,4(s2) + 1a982: 8f99 sub a5,a5,a4 + 1a984: 97ce add a5,a5,s3 + 1a986: 000f46b7 lui a3,0xf4 + 1a98a: 24068613 addi a2,a3,576 # f4240 <_data_lma+0xd8c84> + 1a98e: 03564733 div a4,a2,s5 + 1a992: 23f68693 addi a3,a3,575 + 1a996: 02f707b3 mul a5,a4,a5 + 1a99a: 04245703 lhu a4,66(s0) + 1a99e: 02e7d7b3 divu a5,a5,a4 + 1a9a2: 94be add s1,s1,a5 + 1a9a4: 0804c4b3 zext.h s1,s1 + 1a9a8: 04941023 sh s1,64(s0) + 1a9ac: 035484b3 mul s1,s1,s5 + 1a9b0: 94b6 add s1,s1,a3 + 1a9b2: 02c4d4b3 divu s1,s1,a2 + 1a9b6: 3099e463 bltu s3,s1,1acbe + 1a9ba: 00092783 lw a5,0(s2) + 1a9be: 409984b3 sub s1,s3,s1 + 1a9c2: 9782 jalr a5 + 1a9c4: 30a4e163 bltu s1,a0,1acc6 + 1a9c8: 40a48533 sub a0,s1,a0 + 1a9cc: 00895683 lhu a3,8(s2) + 1a9d0: 04045783 lhu a5,64(s0) + 1a9d4: 016a4703 lbu a4,22(s4) + 1a9d8: 02d787b3 mul a5,a5,a3 + 1a9dc: 000f46b7 lui a3,0xf4 + 1a9e0: 23f68613 addi a2,a3,575 # f423f <_data_lma+0xd8c83> + 1a9e4: 24068693 addi a3,a3,576 + 1a9e8: 97b2 add a5,a5,a2 + 1a9ea: 02d7d7b3 divu a5,a5,a3 + 1a9ee: 97ba add a5,a5,a4 + 1a9f0: 32a7e063 bltu a5,a0,1ad10 + 1a9f4: 343e lhu a5,42(s0) + 1a9f6: 8522 mv a0,s0 + 1a9f8: 0785 addi a5,a5,1 + 1a9fa: b43e sh a5,42(s0) + 1a9fc: 12e44783 lbu a5,302(s0) + 1aa00: 2c078963 beqz a5,1acd2 + 1aa04: 2ec1 jal 1add4 + 1aa06: 8522 mv a0,s0 + 1aa08: c99f80ef jal ra,136a0 + 1aa0c: 16051363 bnez a0,1ab72 + 1aa10: 00895503 lhu a0,8(s2) + 1aa14: 04045783 lhu a5,64(s0) + 1aa18: 000f46b7 lui a3,0xf4 + 1aa1c: 23f68613 addi a2,a3,575 # f423f <_data_lma+0xd8c83> + 1aa20: 02a787b3 mul a5,a5,a0 + 1aa24: 24068693 addi a3,a3,576 + 1aa28: 4478 lw a4,76(s0) + 1aa2a: 02040023 sb zero,32(s0) + 1aa2e: 00492983 lw s3,4(s2) + 1aa32: 97b2 add a5,a5,a2 + 1aa34: 02d7d7b3 divu a5,a5,a3 + 1aa38: 28f76f63 bltu a4,a5,1acd6 + 1aa3c: 40f707b3 sub a5,a4,a5 + 1aa40: 4434 lw a3,72(s0) + 1aa42: c07c sw a5,68(s0) + 1aa44: 4a81 li s5,0 + 1aa46: 00e687b3 add a5,a3,a4 + 1aa4a: 84be mv s1,a5 + 1aa4c: 00d7e463 bltu a5,a3,1aa54 + 1aa50: 0137e463 bltu a5,s3,1aa58 + 1aa54: 413784b3 sub s1,a5,s3 + 1aa58: 383e lhu a5,50(s0) + 1aa5a: c464 sw s1,76(s0) + 1aa5c: c7a1 beqz a5,1aaa4 + 1aa5e: 3436 lhu a3,42(s0) + 1aa60: 387a lhu a4,54(s0) + 1aa62: 000f4637 lui a2,0xf4 + 1aa66: b876 sh a3,54(s0) + 1aa68: 40e68733 sub a4,a3,a4 + 1aa6c: 02e787b3 mul a5,a5,a4 + 1aa70: 385a lhu a4,52(s0) + 1aa72: 24060613 addi a2,a2,576 # f4240 <_data_lma+0xd8c84> + 1aa76: 4681 li a3,0 + 1aa78: 4581 li a1,0 + 1aa7a: 97ba add a5,a5,a4 + 1aa7c: 0807c7b3 zext.h a5,a5 + 1aa80: 02a78533 mul a0,a5,a0 + 1aa84: b85e sh a5,52(s0) + 1aa86: 81dfb0ef jal ra,162a2 <__udivdi3> + 1aa8a: cd09 beqz a0,1aaa4 + 1aa8c: 9526 add a0,a0,s1 + 1aa8e: 009534b3 sltu s1,a0,s1 + 1aa92: 95a6 add a1,a1,s1 + 1aa94: 87aa mv a5,a0 + 1aa96: 00ba9463 bne s5,a1,1aa9e + 1aa9a: 01356463 bltu a0,s3,1aaa2 + 1aa9e: 413507b3 sub a5,a0,s3 + 1aaa2: c47c sw a5,76(s0) + 1aaa4: 00092783 lw a5,0(s2) + 1aaa8: 9782 jalr a5 + 1aaaa: 84aa mv s1,a0 + 1aaac: 00092783 lw a5,0(s2) + 1aab0: 9782 jalr a5 + 1aab2: fe950de3 beq a0,s1,1aaac + 1aab6: 00092783 lw a5,0(s2) + 1aaba: 4064 lw s1,68(s0) + 1aabc: 9782 jalr a5 + 1aabe: 22a4e163 bltu s1,a0,1ace0 + 1aac2: 40a48533 sub a0,s1,a0 + 1aac6: 22050163 beqz a0,1ace8 + 1aaca: 00895983 lhu s3,8(s2) + 1aace: 04045783 lhu a5,64(s0) + 1aad2: 000f44b7 lui s1,0xf4 + 1aad6: 23f48713 addi a4,s1,575 # f423f <_data_lma+0xd8c83> + 1aada: 033787b3 mul a5,a5,s3 + 1aade: 24048493 addi s1,s1,576 + 1aae2: 97ba add a5,a5,a4 + 1aae4: 0297d7b3 divu a5,a5,s1 + 1aae8: 016a4703 lbu a4,22(s4) + 1aaec: 97ba add a5,a5,a4 + 1aaee: 1ea7ed63 bltu a5,a0,1ace8 + 1aaf2: 029535b3 mulhu a1,a0,s1 + 1aaf6: 03445a03 lhu s4,52(s0) + 1aafa: 864e mv a2,s3 + 1aafc: 4681 li a3,0 + 1aafe: 02950533 mul a0,a0,s1 + 1ab02: fa0fb0ef jal ra,162a2 <__udivdi3> + 1ab06: 00aa0933 add s2,s4,a0 + 1ab0a: 033a0533 mul a0,s4,s3 + 1ab0e: 000f4637 lui a2,0xf4 + 1ab12: 24060613 addi a2,a2,576 # f4240 <_data_lma+0xd8c84> + 1ab16: 4681 li a3,0 + 1ab18: 4581 li a1,0 + 1ab1a: f88fb0ef jal ra,162a2 <__udivdi3> + 1ab1e: c105 beqz a0,1ab3e + 1ab20: 029537b3 mulhu a5,a0,s1 + 1ab24: 864e mv a2,s3 + 1ab26: 4681 li a3,0 + 1ab28: 02b485b3 mul a1,s1,a1 + 1ab2c: 02a48533 mul a0,s1,a0 + 1ab30: 95be add a1,a1,a5 + 1ab32: f70fb0ef jal ra,162a2 <__udivdi3> + 1ab36: 40aa0a33 sub s4,s4,a0 + 1ab3a: 03441a23 sh s4,52(s0) + 1ab3e: 4535 li a0,13 + 1ab40: 3e91 jal 1a694 + 1ab42: 4581 li a1,0 + 1ab44: ffffa517 auipc a0,0xffffa + 1ab48: 1d450513 addi a0,a0,468 # 14d18 + 1ab4c: 1ffe8797 auipc a5,0x1ffe8 + 1ab50: fe87a423 sw s0,-24(a5) # 20002b34 + 1ab54: 4e4000ef jal ra,1b038 + 1ab58: 4795 li a5,5 + 1ab5a: 1ffe8717 auipc a4,0x1ffe8 + 1ab5e: eaf70ba3 sb a5,-329(a4) # 20002a11 + 1ab62: 00100737 lui a4,0x100 + 1ab66: 9f01a783 lw a5,-1552(gp) # 200013a8 + 1ab6a: c798 sw a4,8(a5) + 1ab6c: 0906 slli s2,s2,0x1 + 1ab6e: 0727a823 sw s2,112(a5) + 1ab72: 40f2 lw ra,28(sp) + 1ab74: 4462 lw s0,24(sp) + 1ab76: 44d2 lw s1,20(sp) + 1ab78: 4942 lw s2,16(sp) + 1ab7a: 49b2 lw s3,12(sp) + 1ab7c: 4a22 lw s4,8(sp) + 1ab7e: 4a92 lw s5,4(sp) + 1ab80: 6105 addi sp,sp,32 + 1ab82: 8082 ret + 1ab84: 00492783 lw a5,4(s2) + 1ab88: 94be add s1,s1,a5 + 1ab8a: b3c9 j 1a94c + 1ab8c: 9782 jalr a5 + 1ab8e: 4478 lw a4,76(s0) + 1ab90: 04e56763 bltu a0,a4,1abde + 1ab94: 8d19 sub a0,a0,a4 + 1ab96: 341e lhu a5,40(s0) + 1ab98: 00895703 lhu a4,8(s2) + 1ab9c: 078e slli a5,a5,0x3 + 1ab9e: 02e787b3 mul a5,a5,a4 + 1aba2: 32000713 li a4,800 + 1aba6: 19078793 addi a5,a5,400 + 1abaa: 02e7d7b3 divu a5,a5,a4 + 1abae: 02a7fd63 bgeu a5,a0,1abe8 + 1abb2: 45a1 li a1,8 + 1abb4: 8522 mv a0,s0 + 1abb6: a87f80ef jal ra,1363c + 1abba: 0aa40aa3 sb a0,181(s0) + 1abbe: 1ffe8797 auipc a5,0x1ffe8 + 1abc2: d327a783 lw a5,-718(a5) # 200028f0 + 1abc6: d7d5 beqz a5,1ab72 + 1abc8: 4462 lw s0,24(sp) + 1abca: 40f2 lw ra,28(sp) + 1abcc: 44d2 lw s1,20(sp) + 1abce: 4942 lw s2,16(sp) + 1abd0: 49b2 lw s3,12(sp) + 1abd2: 4a22 lw s4,8(sp) + 1abd4: 4a92 lw s5,4(sp) + 1abd6: 4589 li a1,2 + 1abd8: 4515 li a0,5 + 1abda: 6105 addi sp,sp,32 + 1abdc: 8782 jr a5 + 1abde: 00492783 lw a5,4(s2) + 1abe2: 8f99 sub a5,a5,a4 + 1abe4: 953e add a0,a0,a5 + 1abe6: bf45 j 1ab96 + 1abe8: 343e lhu a5,42(s0) + 1abea: 0785 addi a5,a5,1 + 1abec: b43e sh a5,42(s0) + 1abee: 12e44783 lbu a5,302(s0) + 1abf2: e399 bnez a5,1abf8 + 1abf4: 8522 mv a0,s0 + 1abf6: 2291 jal 1ad3a + 1abf8: 8522 mv a0,s0 + 1abfa: aa7f80ef jal ra,136a0 + 1abfe: f935 bnez a0,1ab72 + 1ac00: 4434 lw a3,72(s0) + 1ac02: 447c lw a5,76(s0) + 1ac04: 00492703 lw a4,4(s2) + 1ac08: 97b6 add a5,a5,a3 + 1ac0a: 84be mv s1,a5 + 1ac0c: 00d7e463 bltu a5,a3,1ac14 + 1ac10: 00e7e463 bltu a5,a4,1ac18 + 1ac14: 40e784b3 sub s1,a5,a4 + 1ac18: 00092783 lw a5,0(s2) + 1ac1c: c464 sw s1,76(s0) + 1ac1e: 9782 jalr a5 + 1ac20: 40a487b3 sub a5,s1,a0 + 1ac24: 00a4f563 bgeu s1,a0,1ac2e + 1ac28: 00492703 lw a4,4(s2) + 1ac2c: 97ba add a5,a5,a4 + 1ac2e: fa07cde3 bltz a5,1abe8 + 1ac32: b31d j 1a958 + 1ac34: 2414 lbu a3,8(s0) + 1ac36: 4705 li a4,1 + 1ac38: d2e698e3 bne a3,a4,1a968 + 1ac3c: 5078 lw a4,100(s0) + 1ac3e: d20715e3 bnez a4,1a968 + 1ac42: 347a lhu a4,46(s0) + 1ac44: d20712e3 bnez a4,1a968 + 1ac48: 3034 lbu a3,3(s0) + 1ac4a: 471d li a4,7 + 1ac4c: d0e69ee3 bne a3,a4,1a968 + 1ac50: 304a lhu a0,36(s0) + 1ac52: 8c9d sub s1,s1,a5 + 1ac54: 4e200793 li a5,1250 + 1ac58: 02950533 mul a0,a0,s1 + 1ac5c: 000f4637 lui a2,0xf4 + 1ac60: 24060613 addi a2,a2,576 # f4240 <_data_lma+0xd8c84> + 1ac64: 4681 li a3,0 + 1ac66: 02f50533 mul a0,a0,a5 + 1ac6a: 035535b3 mulhu a1,a0,s5 + 1ac6e: 03550533 mul a0,a0,s5 + 1ac72: e30fb0ef jal ra,162a2 <__udivdi3> + 1ac76: 013507b3 add a5,a0,s3 + 1ac7a: 00a7b533 sltu a0,a5,a0 + 1ac7e: 952e add a0,a0,a1 + 1ac80: 00492703 lw a4,4(s2) + 1ac84: 89be mv s3,a5 + 1ac86: e119 bnez a0,1ac8c + 1ac88: 00e7e463 bltu a5,a4,1ac90 + 1ac8c: 40e789b3 sub s3,a5,a4 + 1ac90: 02800793 li a5,40 + 1ac94: 02f487b3 mul a5,s1,a5 + 1ac98: 000f46b7 lui a3,0xf4 + 1ac9c: 23f68613 addi a2,a3,575 # f423f <_data_lma+0xd8c83> + 1aca0: 24068693 addi a3,a3,576 + 1aca4: 035787b3 mul a5,a5,s5 + 1aca8: 97b2 add a5,a5,a2 + 1acaa: 02d7d7b3 divu a5,a5,a3 + 1acae: 00f9e563 bltu s3,a5,1acb8 + 1acb2: 40f989b3 sub s3,s3,a5 + 1acb6: b94d j 1a968 + 1acb8: 8f1d sub a4,a4,a5 + 1acba: 99ba add s3,s3,a4 + 1acbc: b175 j 1a968 + 1acbe: 00492783 lw a5,4(s2) + 1acc2: 99be add s3,s3,a5 + 1acc4: b9dd j 1a9ba + 1acc6: 00492783 lw a5,4(s2) + 1acca: 97a6 add a5,a5,s1 + 1accc: 40a78533 sub a0,a5,a0 + 1acd0: b9f5 j 1a9cc + 1acd2: 20a5 jal 1ad3a + 1acd4: bb0d j 1aa06 + 1acd6: 013706b3 add a3,a4,s3 + 1acda: 40f687b3 sub a5,a3,a5 + 1acde: b38d j 1aa40 + 1ace0: 00492783 lw a5,4(s2) + 1ace4: 94be add s1,s1,a5 + 1ace6: bbf1 j 1aac2 + 1ace8: 1ffe8797 auipc a5,0x1ffe8 + 1acec: e407a623 sw zero,-436(a5) # 20002b34 + 1acf0: 286c lbu a1,22(s0) + 1acf2: 4462 lw s0,24(sp) + 1acf4: 40f2 lw ra,28(sp) + 1acf6: 44d2 lw s1,20(sp) + 1acf8: 4942 lw s2,16(sp) + 1acfa: 49b2 lw s3,12(sp) + 1acfc: 4a22 lw s4,8(sp) + 1acfe: 4a92 lw s5,4(sp) + 1ad00: 4501 li a0,0 + 1ad02: 6105 addi sp,sp,32 + 1ad04: 28b015b3 bset a1,zero,a1 + 1ad08: 0805c5b3 zext.h a1,a1 + 1ad0c: f38ff06f j 1a444 + 1ad10: 40e485b3 sub a1,s1,a4 + 1ad14: 00e4f763 bgeu s1,a4,1ad22 + 1ad18: 00492783 lw a5,4(s2) + 1ad1c: 8f99 sub a5,a5,a4 + 1ad1e: 009785b3 add a1,a5,s1 + 1ad22: 2868 lbu a0,22(s0) + 1ad24: 4462 lw s0,24(sp) + 1ad26: 40f2 lw ra,28(sp) + 1ad28: 44d2 lw s1,20(sp) + 1ad2a: 4942 lw s2,16(sp) + 1ad2c: 49b2 lw s3,12(sp) + 1ad2e: 4a22 lw s4,8(sp) + 1ad30: 4a92 lw s5,4(sp) + 1ad32: 6105 addi sp,sp,32 + 1ad34: f56ff06f j 1a48a + 1ad38: 8082 ret + +0001ad3a : +LL_HopGetChannel(): + 1ad3a: 7179 addi sp,sp,-48 + 1ad3c: d226 sw s1,36(sp) + 1ad3e: d606 sw ra,44(sp) + 1ad40: d422 sw s0,40(sp) + 1ad42: d04a sw s2,32(sp) + 1ad44: ce4e sw s3,28(sp) + 1ad46: cc52 sw s4,24(sp) + 1ad48: ca56 sw s5,20(sp) + 1ad4a: c85a sw s6,16(sp) + 1ad4c: c65e sw s7,12(sp) + 1ad4e: 3d7c lbu a5,31(a0) + 1ad50: 07554403 lbu s0,117(a0) + 1ad54: 84aa mv s1,a0 + 1ad56: 943e add s0,s0,a5 + 1ad58: 0ff47413 zext.b s0,s0 + 1ad5c: 02400793 li a5,36 + 1ad60: 0087f663 bgeu a5,s0,1ad6c + 1ad64: fdb40413 addi s0,s0,-37 + 1ad68: 0ff47413 zext.b s0,s0 + 1ad6c: 0804a903 lw s2,128(s1) + 1ad70: 0844a983 lw s3,132(s1) + 1ad74: 06848aa3 sb s0,117(s1) + 1ad78: 8622 mv a2,s0 + 1ad7a: 854a mv a0,s2 + 1ad7c: 85ce mv a1,s3 + 1ad7e: cfefb0ef jal ra,1627c <__lshrdi3> + 1ad82: 8905 andi a0,a0,1 + 1ad84: e505 bnez a0,1adac + 1ad86: 07b4cb03 lbu s6,123(s1) + 1ad8a: 4a01 li s4,0 + 1ad8c: 4a81 li s5,0 + 1ad8e: 03647b33 remu s6,s0,s6 + 1ad92: 02500b93 li s7,37 + 1ad96: 8652 mv a2,s4 + 1ad98: 854a mv a0,s2 + 1ad9a: 85ce mv a1,s3 + 1ad9c: ce0fb0ef jal ra,1627c <__lshrdi3> + 1ada0: 8905 andi a0,a0,1 + 1ada2: c50d beqz a0,1adcc + 1ada4: 035b1163 bne s6,s5,1adc6 + 1ada8: 0ffa7413 zext.b s0,s4 + 1adac: 06848a23 sb s0,116(s1) + 1adb0: 50b2 lw ra,44(sp) + 1adb2: 5422 lw s0,40(sp) + 1adb4: 5492 lw s1,36(sp) + 1adb6: 5902 lw s2,32(sp) + 1adb8: 49f2 lw s3,28(sp) + 1adba: 4a62 lw s4,24(sp) + 1adbc: 4ad2 lw s5,20(sp) + 1adbe: 4b42 lw s6,16(sp) + 1adc0: 4bb2 lw s7,12(sp) + 1adc2: 6145 addi sp,sp,48 + 1adc4: 8082 ret + 1adc6: 0a85 addi s5,s5,1 + 1adc8: 0ffafa93 zext.b s5,s5 + 1adcc: 0a05 addi s4,s4,1 + 1adce: fd7a14e3 bne s4,s7,1ad96 + 1add2: bfe9 j 1adac + +0001add4 : +LL_HopGetChannel2(): + 1add4: 493c lw a5,80(a0) + 1add6: 3532 lhu a2,42(a0) + 1add8: 7179 addi sp,sp,-48 + 1adda: 0107d693 srli a3,a5,0x10 + 1adde: 8ebd xor a3,a3,a5 + 1ade0: 0806c6b3 zext.h a3,a3 + 1ade4: 8e35 xor a2,a2,a3 + 1ade6: 40565793 srai a5,a2,0x5 + 1adea: 8b89 andi a5,a5,2 + 1adec: 48765713 bexti a4,a2,0x7 + 1adf0: 8f5d or a4,a4,a5 + 1adf2: 40365793 srai a5,a2,0x3 + 1adf6: 8b91 andi a5,a5,4 + 1adf8: 8f5d or a4,a4,a5 + 1adfa: 40165793 srai a5,a2,0x1 + 1adfe: 8ba1 andi a5,a5,8 + 1ae00: 8f5d or a4,a4,a5 + 1ae02: 00161793 slli a5,a2,0x1 + 1ae06: 8bc1 andi a5,a5,16 + 1ae08: 8f5d or a4,a4,a5 + 1ae0a: 00361793 slli a5,a2,0x3 + 1ae0e: 0207f793 andi a5,a5,32 + 1ae12: 8f5d or a4,a4,a5 + 1ae14: 00561793 slli a5,a2,0x5 + 1ae18: 0407f793 andi a5,a5,64 + 1ae1c: 8f5d or a4,a4,a5 + 1ae1e: 00761793 slli a5,a2,0x7 + 1ae22: 0ff7f793 zext.b a5,a5 + 1ae26: d422 sw s0,40(sp) + 1ae28: 8f5d or a4,a4,a5 + 1ae2a: 842a mv s0,a0 + 1ae2c: 00d65793 srli a5,a2,0xd + 1ae30: 00b65513 srli a0,a2,0xb + 1ae34: 8911 andi a0,a0,4 + 1ae36: 8b89 andi a5,a5,2 + 1ae38: 00865593 srli a1,a2,0x8 + 1ae3c: 8fc9 or a5,a5,a0 + 1ae3e: 00f65513 srli a0,a2,0xf + 1ae42: 8225 srli a2,a2,0x9 + 1ae44: 8fc9 or a5,a5,a0 + 1ae46: 8a21 andi a2,a2,8 + 1ae48: 8fd1 or a5,a5,a2 + 1ae4a: 00159613 slli a2,a1,0x1 + 1ae4e: 8a41 andi a2,a2,16 + 1ae50: 8fd1 or a5,a5,a2 + 1ae52: 00359613 slli a2,a1,0x3 + 1ae56: 02067613 andi a2,a2,32 + 1ae5a: 8fd1 or a5,a5,a2 + 1ae5c: 00559613 slli a2,a1,0x5 + 1ae60: 04067613 andi a2,a2,64 + 1ae64: 8fd1 or a5,a5,a2 + 1ae66: 00759613 slli a2,a1,0x7 + 1ae6a: 0ff67613 zext.b a2,a2 + 1ae6e: 8fd1 or a5,a5,a2 + 1ae70: 07a2 slli a5,a5,0x8 + 1ae72: 45c5 li a1,17 + 1ae74: 8f5d or a4,a4,a5 + 1ae76: 02b70733 mul a4,a4,a1 + 1ae7a: d226 sw s1,36(sp) + 1ae7c: d04a sw s2,32(sp) + 1ae7e: ce4e sw s3,28(sp) + 1ae80: 08042903 lw s2,128(s0) + 1ae84: 08442983 lw s3,132(s0) + 1ae88: c85a sw s6,16(sp) + 1ae8a: d606 sw ra,44(sp) + 1ae8c: cc52 sw s4,24(sp) + 1ae8e: ca56 sw s5,20(sp) + 1ae90: 9736 add a4,a4,a3 + 1ae92: 08074733 zext.h a4,a4 + 1ae96: 40575613 srai a2,a4,0x5 + 1ae9a: 8a09 andi a2,a2,2 + 1ae9c: 48775793 bexti a5,a4,0x7 + 1aea0: 8fd1 or a5,a5,a2 + 1aea2: 40375613 srai a2,a4,0x3 + 1aea6: 8a11 andi a2,a2,4 + 1aea8: 8fd1 or a5,a5,a2 + 1aeaa: 40175613 srai a2,a4,0x1 + 1aeae: 8a21 andi a2,a2,8 + 1aeb0: 8fd1 or a5,a5,a2 + 1aeb2: 00171613 slli a2,a4,0x1 + 1aeb6: 8a41 andi a2,a2,16 + 1aeb8: 8fd1 or a5,a5,a2 + 1aeba: 00371613 slli a2,a4,0x3 + 1aebe: 02067613 andi a2,a2,32 + 1aec2: 8fd1 or a5,a5,a2 + 1aec4: 00571613 slli a2,a4,0x5 + 1aec8: 04067613 andi a2,a2,64 + 1aecc: 8fd1 or a5,a5,a2 + 1aece: 00771613 slli a2,a4,0x7 + 1aed2: 0ff67613 zext.b a2,a2 + 1aed6: 8fd1 or a5,a5,a2 + 1aed8: 00b75813 srli a6,a4,0xb + 1aedc: 00d75613 srli a2,a4,0xd + 1aee0: 00487813 andi a6,a6,4 + 1aee4: 8a09 andi a2,a2,2 + 1aee6: 00875513 srli a0,a4,0x8 + 1aeea: 01066633 or a2,a2,a6 + 1aeee: 00f75813 srli a6,a4,0xf + 1aef2: 8325 srli a4,a4,0x9 + 1aef4: 01066633 or a2,a2,a6 + 1aef8: 8b21 andi a4,a4,8 + 1aefa: 8f51 or a4,a4,a2 + 1aefc: 00151613 slli a2,a0,0x1 + 1af00: 8a41 andi a2,a2,16 + 1af02: 8f51 or a4,a4,a2 + 1af04: 00351613 slli a2,a0,0x3 + 1af08: 02067613 andi a2,a2,32 + 1af0c: 8f51 or a4,a4,a2 + 1af0e: 00551613 slli a2,a0,0x5 + 1af12: 04067613 andi a2,a2,64 + 1af16: 8f51 or a4,a4,a2 + 1af18: 00751613 slli a2,a0,0x7 + 1af1c: 0ff67613 zext.b a2,a2 + 1af20: 8f51 or a4,a4,a2 + 1af22: 0722 slli a4,a4,0x8 + 1af24: 8fd9 or a5,a5,a4 + 1af26: 02b787b3 mul a5,a5,a1 + 1af2a: c65e sw s7,12(sp) + 1af2c: 97b6 add a5,a5,a3 + 1af2e: 0807c7b3 zext.h a5,a5 + 1af32: 4057d513 srai a0,a5,0x5 + 1af36: 8909 andi a0,a0,2 + 1af38: 4877d713 bexti a4,a5,0x7 + 1af3c: 8f49 or a4,a4,a0 + 1af3e: 4037d513 srai a0,a5,0x3 + 1af42: 8911 andi a0,a0,4 + 1af44: 8f49 or a4,a4,a0 + 1af46: 4017d513 srai a0,a5,0x1 + 1af4a: 8921 andi a0,a0,8 + 1af4c: 8f49 or a4,a4,a0 + 1af4e: 00179513 slli a0,a5,0x1 + 1af52: 8941 andi a0,a0,16 + 1af54: 8f49 or a4,a4,a0 + 1af56: 00379513 slli a0,a5,0x3 + 1af5a: 02057513 andi a0,a0,32 + 1af5e: 8f49 or a4,a4,a0 + 1af60: 00579513 slli a0,a5,0x5 + 1af64: 04057513 andi a0,a0,64 + 1af68: 8f49 or a4,a4,a0 + 1af6a: 00779513 slli a0,a5,0x7 + 1af6e: 0ff57513 zext.b a0,a0 + 1af72: 8d59 or a0,a0,a4 + 1af74: 00b7d813 srli a6,a5,0xb + 1af78: 00d7d713 srli a4,a5,0xd + 1af7c: 00487813 andi a6,a6,4 + 1af80: 8b09 andi a4,a4,2 + 1af82: 0087d613 srli a2,a5,0x8 + 1af86: 01076733 or a4,a4,a6 + 1af8a: 00f7d813 srli a6,a5,0xf + 1af8e: 83a5 srli a5,a5,0x9 + 1af90: 01076733 or a4,a4,a6 + 1af94: 8ba1 andi a5,a5,8 + 1af96: 8fd9 or a5,a5,a4 + 1af98: 00161713 slli a4,a2,0x1 + 1af9c: 8b41 andi a4,a4,16 + 1af9e: 8fd9 or a5,a5,a4 + 1afa0: 00361713 slli a4,a2,0x3 + 1afa4: 02077713 andi a4,a4,32 + 1afa8: 8fd9 or a5,a5,a4 + 1afaa: 00561713 slli a4,a2,0x5 + 1afae: 04077713 andi a4,a4,64 + 1afb2: 061e slli a2,a2,0x7 + 1afb4: 8fd9 or a5,a5,a4 + 1afb6: 0ff67613 zext.b a2,a2 + 1afba: 8fd1 or a5,a5,a2 + 1afbc: 07a2 slli a5,a5,0x8 + 1afbe: 00f56733 or a4,a0,a5 + 1afc2: 02b70733 mul a4,a4,a1 + 1afc6: 02500613 li a2,37 + 1afca: 854a mv a0,s2 + 1afcc: 85ce mv a1,s3 + 1afce: 9736 add a4,a4,a3 + 1afd0: 8eb9 xor a3,a3,a4 + 1afd2: 0806c4b3 zext.h s1,a3 + 1afd6: 02c4f633 remu a2,s1,a2 + 1afda: 0ff67b13 zext.b s6,a2 + 1afde: a9efb0ef jal ra,1627c <__lshrdi3> + 1afe2: 8905 andi a0,a0,1 + 1afe4: e515 bnez a0,1b010 + 1afe6: 07b44a83 lbu s5,123(s0) + 1afea: 4a01 li s4,0 + 1afec: 02500b93 li s7,37 + 1aff0: 029a8ab3 mul s5,s5,s1 + 1aff4: 4481 li s1,0 + 1aff6: 010ada93 srli s5,s5,0x10 + 1affa: 8626 mv a2,s1 + 1affc: 854a mv a0,s2 + 1affe: 85ce mv a1,s3 + 1b000: a7cfb0ef jal ra,1627c <__lshrdi3> + 1b004: 8905 andi a0,a0,1 + 1b006: c50d beqz a0,1b030 + 1b008: 034a9163 bne s5,s4,1b02a + 1b00c: 0ff4fb13 zext.b s6,s1 + 1b010: 07640a23 sb s6,116(s0) + 1b014: 50b2 lw ra,44(sp) + 1b016: 5422 lw s0,40(sp) + 1b018: 5492 lw s1,36(sp) + 1b01a: 5902 lw s2,32(sp) + 1b01c: 49f2 lw s3,28(sp) + 1b01e: 4a62 lw s4,24(sp) + 1b020: 4ad2 lw s5,20(sp) + 1b022: 4b42 lw s6,16(sp) + 1b024: 4bb2 lw s7,12(sp) + 1b026: 6145 addi sp,sp,48 + 1b028: 8082 ret + 1b02a: 0a05 addi s4,s4,1 + 1b02c: 0ffa7a13 zext.b s4,s4 + 1b030: 0485 addi s1,s1,1 + 1b032: fd7494e3 bne s1,s7,1affa + 1b036: bfe9 j 1b010 + +Disassembly of section .highcode_lp: + +0001b038 : +TMOS_ProcessRegister(): + 1b038: e199 bnez a1,1b03e + 1b03a: 94a1a023 sw a0,-1728(gp) # 200012f8 + 1b03e: 8082 ret + +0001b040 : +BB_DevInit(): + 1b040: 000207b7 lui a5,0x20 + 1b044: 9d81a703 lw a4,-1576(gp) # 20001390 + 1b048: 20c78793 addi a5,a5,524 # 2020c <_data_lma+0x4c50> + 1b04c: df1c sw a5,56(a4) + 1b04e: 05000793 li a5,80 + 1b052: df5c sw a5,60(a4) + 1b054: 03f00793 li a5,63 + 1b058: d31c sw a5,32(a4) + 1b05a: e000e6b7 lui a3,0xe000e + 1b05e: 47d1 li a5,20 + 1b060: 04f689a3 sb a5,83(a3) # e000e053 <_eusrstack+0xc000b053> + 1b064: 1ffe6797 auipc a5,0x1ffe6 + 1b068: b3e78793 addi a5,a5,-1218 # 20000ba2 + 1b06c: 0017e793 ori a5,a5,1 + 1b070: d6fc sw a5,108(a3) + 1b072: 5b5c lw a5,52(a4) + 1b074: 1ffe8697 auipc a3,0x1ffe8 + 1b078: 8686c683 lbu a3,-1944(a3) # 200028dc + 1b07c: 0406e693 ori a3,a3,64 + 1b080: 079e slli a5,a5,0x7 + 1b082: 06e6 slli a3,a3,0x19 + 1b084: 839d srli a5,a5,0x7 + 1b086: 8fd5 or a5,a5,a3 + 1b088: db5c sw a5,52(a4) + 1b08a: 8082 ret + +0001b08c : +LLE_DevSetMode(): + 1b08c: 9d81a783 lw a5,-1576(gp) # 20001390 + 1b090: 4398 lw a4,0(a5) + 1b092: fffd06b7 lui a3,0xfffd0 + 1b096: 16fd addi a3,a3,-1 # fffcffff <_eusrstack+0xdffccfff> + 1b098: a001a603 lw a2,-1536(gp) # 200013b8 + 1b09c: 8f75 and a4,a4,a3 + 1b09e: c11d beqz a0,1b0c4 + 1b0a0: c398 sw a4,0(a5) + 1b0a2: 4398 lw a4,0(a5) + 1b0a4: 8f75 and a4,a4,a3 + 1b0a6: 29171713 bseti a4,a4,0x11 + 1b0aa: c398 sw a4,0(a5) + 1b0ac: 461c lw a5,8(a2) + 1b0ae: 00330737 lui a4,0x330 + 1b0b2: 8fd9 or a5,a5,a4 + 1b0b4: 00030737 lui a4,0x30 + 1b0b8: c61c sw a5,8(a2) + 1b0ba: 8d59 or a0,a0,a4 + 1b0bc: 9f01a783 lw a5,-1552(gp) # 200013a8 + 1b0c0: cba8 sw a0,80(a5) + 1b0c2: 8082 ret + 1b0c4: 29071713 bseti a4,a4,0x10 + 1b0c8: c398 sw a4,0(a5) + 1b0ca: 461c lw a5,8(a2) + 1b0cc: ffce0737 lui a4,0xffce0 + 1b0d0: 177d addi a4,a4,-1 # ffcdffff <_eusrstack+0xdfcdcfff> + 1b0d2: 8ff9 and a5,a5,a4 + 1b0d4: b7c5 j 1b0b4 + +0001b0d6 : +LLE_DevInit(): + 1b0d6: 9e018623 sb zero,-1556(gp) # 200013a4 + 1b0da: 9e01a423 sw zero,-1560(gp) # 200013a0 + 1b0de: 9f01a783 lw a5,-1552(gp) # 200013a8 + 1b0e2: 08c00713 li a4,140 + 1b0e6: cbd8 sw a4,20(a5) + 1b0e8: 07600693 li a3,118 + 1b0ec: cfd4 sw a3,28(a5) + 1b0ee: d3d8 sw a4,36(a5) + 1b0f0: 06c00613 li a2,108 + 1b0f4: d7d0 sw a2,44(a5) + 1b0f6: dbd8 sw a4,52(a5) + 1b0f8: dfd0 sw a2,60(a5) + 1b0fa: c3f8 sw a4,68(a5) + 1b0fc: c7f4 sw a3,76(a5) + 1b0fe: 07800713 li a4,120 + 1b102: a3fa sh a4,6(a5) + 1b104: 0407aa23 sw zero,84(a5) + 1b108: 1ffe8717 auipc a4,0x1ffe8 + 1b10c: 91872703 lw a4,-1768(a4) # 20002a20 + 1b110: dff8 sw a4,124(a5) + 1b112: 577d li a4,-1 + 1b114: c798 sw a4,8(a5) + 1b116: 00160737 lui a4,0x160 + 1b11a: 073d addi a4,a4,15 # 16000f <_data_lma+0x144a53> + 1b11c: c7d8 sw a4,12(a5) + 1b11e: e000e737 lui a4,0xe000e + 1b122: 47d5 li a5,21 + 1b124: 04f70923 sb a5,82(a4) # e000e052 <_eusrstack+0xc000b052> + 1b128: 1ffe6797 auipc a5,0x1ffe6 + 1b12c: d9278793 addi a5,a5,-622 # 20000eba + 1b130: 0017e793 ori a5,a5,1 + 1b134: d73c sw a5,104(a4) + 1b136: 8082 ret + +0001b138 : +RFEND_WaitTune(): + 1b138: 6789 lui a5,0x2 + 1b13a: 9f01a703 lw a4,-1552(gp) # 200013a8 + 1b13e: f4078793 addi a5,a5,-192 # 1f40 <_einit+0xf3c> + 1b142: d37c sw a5,100(a4) + 1b144: a001a683 lw a3,-1536(gp) # 200013b8 + 1b148: 0906a783 lw a5,144(a3) + 1b14c: 49a7d793 bexti a5,a5,0x1a + 1b150: c791 beqz a5,1b15c + 1b152: 0906a783 lw a5,144(a3) + 1b156: 4997d793 bexti a5,a5,0x19 + 1b15a: e399 bnez a5,1b160 + 1b15c: 537c lw a5,100(a4) + 1b15e: f7ed bnez a5,1b148 + 1b160: 8082 ret + +0001b162 : +ll_advertise_tx(): + 1b162: 1141 addi sp,sp,-16 + 1b164: c226 sw s1,4(sp) + 1b166: 9d818493 addi s1,gp,-1576 # 20001390 + 1b16a: 4098 lw a4,0(s1) + 1b16c: c422 sw s0,8(sp) + 1b16e: c606 sw ra,12(sp) + 1b170: 5b5c lw a5,52(a4) + 1b172: 1ffe8417 auipc s0,0x1ffe8 + 1b176: 9b242403 lw s0,-1614(s0) # 20002b24 + 1b17a: 25800513 li a0,600 + 1b17e: 9bf1 andi a5,a5,-4 + 1b180: 0017e793 ori a5,a5,1 + 1b184: db5c sw a5,52(a4) + 1b186: 3719 jal 1b08c + 1b188: a001a703 lw a4,-1536(gp) # 200013b8 + 1b18c: 575c lw a5,44(a4) + 1b18e: 9bf5 andi a5,a5,-3 + 1b190: d75c sw a5,44(a4) + 1b192: 4094 lw a3,0(s1) + 1b194: 2838 lbu a4,18(s0) + 1b196: 429c lw a5,0(a3) + 1b198: 07f77713 andi a4,a4,127 + 1b19c: f807f793 andi a5,a5,-128 + 1b1a0: 8fd9 or a5,a5,a4 + 1b1a2: c29c sw a5,0(a3) + 1b1a4: 3058 lbu a4,5(s0) + 1b1a6: 4785 li a5,1 + 1b1a8: 00f70563 beq a4,a5,1b1b2 + 1b1ac: 8522 mv a0,s0 + 1b1ae: ab1f70ef jal ra,12c5e + 1b1b2: 9f01a603 lw a2,-1552(gp) # 200013a8 + 1b1b6: 425c lw a5,4(a2) + 1b1b8: ff0005b7 lui a1,0xff000 + 1b1bc: 4501 li a0,0 + 1b1be: 0017e793 ori a5,a5,1 + 1b1c2: c25c sw a5,4(a2) + 1b1c4: 409c lw a5,0(s1) + 1b1c6: 05444683 lbu a3,84(s0) + 1b1ca: 5bd8 lw a4,52(a5) + 1b1cc: 0406e693 ori a3,a3,64 + 1b1d0: 06e6 slli a3,a3,0x19 + 1b1d2: 071e slli a4,a4,0x7 + 1b1d4: 831d srli a4,a4,0x7 + 1b1d6: 8f55 or a4,a4,a3 + 1b1d8: dbd8 sw a4,52(a5) + 1b1da: 8e89c737 lui a4,0x8e89c + 1b1de: ed670713 addi a4,a4,-298 # 8e89bed6 <_eusrstack+0x6e898ed6> + 1b1e2: c7d8 sw a4,12(a5) + 1b1e4: d3b8 sw a4,96(a5) + 1b1e6: 00555737 lui a4,0x555 + 1b1ea: 55570713 addi a4,a4,1365 # 555555 <_data_lma+0x539f99> + 1b1ee: c3d8 sw a4,4(a5) + 1b1f0: cfb8 sw a4,88(a5) + 1b1f2: 4798 lw a4,8(a5) + 1b1f4: 008006b7 lui a3,0x800 + 1b1f8: 32d68693 addi a3,a3,813 # 80032d <_data_lma+0x7e4d71> + 1b1fc: 8f6d and a4,a4,a1 + 1b1fe: 8f55 or a4,a4,a3 + 1b200: c798 sw a4,8(a5) + 1b202: 4ff8 lw a4,92(a5) + 1b204: 8f6d and a4,a4,a1 + 1b206: 8f55 or a4,a4,a3 + 1b208: cff8 sw a4,92(a5) + 1b20a: 4789 li a5,2 + 1b20c: 1ffe8717 auipc a4,0x1ffe8 + 1b210: 80f702a3 sb a5,-2043(a4) # 20002a11 + 1b214: 403c lw a5,64(s0) + 1b216: de3c sw a5,120(a2) + 1b218: 05244583 lbu a1,82(s0) + 1b21c: 3430 lbu a2,11(s0) + 1b21e: 1ffe6097 auipc ra,0x1ffe6 + 1b222: a7e080e7 jalr -1410(ra) # 20000c9c + 1b226: 4422 lw s0,8(sp) + 1b228: 40b2 lw ra,12(sp) + 1b22a: 4492 lw s1,4(sp) + 1b22c: 4581 li a1,0 + 1b22e: 00000517 auipc a0,0x0 + 1b232: 1d850513 addi a0,a0,472 # 1b406 + 1b236: 0141 addi sp,sp,16 + 1b238: b501 j 1b038 + +0001b23a : +llAdvertiseStart(): + 1b23a: 1101 addi sp,sp,-32 + 1b23c: ce06 sw ra,28(sp) + 1b23e: cc22 sw s0,24(sp) + 1b240: ca26 sw s1,20(sp) + 1b242: c84a sw s2,16(sp) + 1b244: c64e sw s3,12(sp) + 1b246: c452 sw s4,8(sp) + 1b248: 2164 lbu s1,6(a0) + 1b24a: 000502a3 sb zero,5(a0) + 1b24e: 4785 li a5,1 + 1b250: 16f49863 bne s1,a5,1b3c0 + 1b254: 1ffe7717 auipc a4,0x1ffe7 + 1b258: 7bd74703 lbu a4,1981(a4) # 20002a11 + 1b25c: 4795 li a5,5 + 1b25e: 842a mv s0,a0 + 1b260: 02f71163 bne a4,a5,1b282 + 1b264: 4462 lw s0,24(sp) + 1b266: 390c lbu a1,17(a0) + 1b268: 40f2 lw ra,28(sp) + 1b26a: 44d2 lw s1,20(sp) + 1b26c: 4942 lw s2,16(sp) + 1b26e: 49b2 lw s3,12(sp) + 1b270: 4a22 lw s4,8(sp) + 1b272: 4501 li a0,0 + 1b274: 6105 addi sp,sp,32 + 1b276: 28b015b3 bset a1,zero,a1 + 1b27a: 0805c5b3 zext.h a1,a1 + 1b27e: 9c6ff06f j 1a444 + 1b282: 3938 lbu a4,19(a0) + 1b284: 478d li a5,3 + 1b286: 0af71563 bne a4,a5,1b330 + 1b28a: 1ffe5097 auipc ra,0x1ffe5 + 1b28e: 58c080e7 jalr 1420(ra) # 20000816 + 1b292: 890d andi a0,a0,3 + 1b294: 10050863 beqz a0,1b3a4 + 1b298: 10951f63 bne a0,s1,1b3b6 + 1b29c: 02600793 li a5,38 + 1b2a0: a83c sb a5,18(s0) + 1b2a2: 02500793 li a5,37 + 1b2a6: a85c sb a5,20(s0) + 1b2a8: 02700793 li a5,39 + 1b2ac: 3078 lbu a4,7(s0) + 1b2ae: b85c sb a5,21(s0) + 1b2b0: 4785 li a5,1 + 1b2b2: 04f70c63 beq a4,a5,1b30a + 1b2b6: 1ffe7917 auipc s2,0x1ffe7 + 1b2ba: 64690913 addi s2,s2,1606 # 200028fc + 1b2be: 00092783 lw a5,0(s2) + 1b2c2: 01144983 lbu s3,17(s0) + 1b2c6: 9782 jalr a5 + 1b2c8: 00092783 lw a5,0(s2) + 1b2cc: 01845a03 lhu s4,24(s0) + 1b2d0: 84aa mv s1,a0 + 1b2d2: 9782 jalr a5 + 1b2d4: 00895703 lhu a4,8(s2) + 1b2d8: 00f57793 andi a5,a0,15 + 1b2dc: 97d2 add a5,a5,s4 + 1b2de: 02e787b3 mul a5,a5,a4 + 1b2e2: 64000713 li a4,1600 + 1b2e6: 32078793 addi a5,a5,800 + 1b2ea: 02e7d7b3 divu a5,a5,a4 + 1b2ee: 00492703 lw a4,4(s2) + 1b2f2: 00978533 add a0,a5,s1 + 1b2f6: 85aa mv a1,a0 + 1b2f8: 00f56463 bltu a0,a5,1b300 + 1b2fc: 00e56463 bltu a0,a4,1b304 + 1b300: 40e505b3 sub a1,a0,a4 + 1b304: 854e mv a0,s3 + 1b306: 984ff0ef jal ra,1a48a + 1b30a: 4785 li a5,1 + 1b30c: 02f40423 sb a5,40(s0) + 1b310: 1ffe8797 auipc a5,0x1ffe8 + 1b314: 8287a783 lw a5,-2008(a5) # 20002b38 + 1b318: e7c5 bnez a5,1b3c0 + 1b31a: 4509 li a0,2 + 1b31c: b78ff0ef jal ra,1a694 + 1b320: 4462 lw s0,24(sp) + 1b322: 40f2 lw ra,28(sp) + 1b324: 44d2 lw s1,20(sp) + 1b326: 4942 lw s2,16(sp) + 1b328: 49b2 lw s3,12(sp) + 1b32a: 4a22 lw s4,8(sp) + 1b32c: 6105 addi sp,sp,32 + 1b32e: bd15 j 1b162 + 1b330: 4689 li a3,2 + 1b332: 351c lbu a5,9(a0) + 1b334: 02d71563 bne a4,a3,1b35e + 1b338: 0017f713 andi a4,a5,1 + 1b33c: cb19 beqz a4,1b352 + 1b33e: 8b89 andi a5,a5,2 + 1b340: 02500713 li a4,37 + 1b344: eb91 bnez a5,1b358 + 1b346: 02700793 li a5,39 + 1b34a: a838 sb a4,18(s0) + 1b34c: a85c sb a5,20(s0) + 1b34e: 4781 li a5,0 + 1b350: bfb1 j 1b2ac + 1b352: 02600713 li a4,38 + 1b356: bfc5 j 1b346 + 1b358: 02600793 li a5,38 + 1b35c: b7fd j 1b34a + 1b35e: cf99 beqz a5,1b37c + 1b360: 0017f693 andi a3,a5,1 + 1b364: 02500713 li a4,37 + 1b368: e691 bnez a3,1b374 + 1b36a: 8b89 andi a5,a5,2 + 1b36c: 0017b713 seqz a4,a5 + 1b370: 02670713 addi a4,a4,38 + 1b374: a838 sb a4,18(s0) + 1b376: 00040a23 sb zero,20(s0) + 1b37a: bfd1 j 1b34e + 1b37c: 295c lbu a5,20(a0) + 1b37e: 02400713 li a4,36 + 1b382: 00f76863 bltu a4,a5,1b392 + 1b386: 02500793 li a5,37 + 1b38a: a85c sb a5,20(s0) + 1b38c: 285c lbu a5,20(s0) + 1b38e: a83c sb a5,18(s0) + 1b390: bf7d j 1b34e + 1b392: 0785 addi a5,a5,1 + 1b394: 0ff7f793 zext.b a5,a5 + 1b398: a95c sb a5,20(a0) + 1b39a: 02700713 li a4,39 + 1b39e: fef764e3 bltu a4,a5,1b386 + 1b3a2: b7ed j 1b38c + 1b3a4: 02700713 li a4,39 + 1b3a8: 02500793 li a5,37 + 1b3ac: a85c sb a5,20(s0) + 1b3ae: a838 sb a4,18(s0) + 1b3b0: 02600793 li a5,38 + 1b3b4: bde5 j 1b2ac + 1b3b6: 02500713 li a4,37 + 1b3ba: 02700793 li a5,39 + 1b3be: b7fd j 1b3ac + 1b3c0: 40f2 lw ra,28(sp) + 1b3c2: 4462 lw s0,24(sp) + 1b3c4: 44d2 lw s1,20(sp) + 1b3c6: 4942 lw s2,16(sp) + 1b3c8: 49b2 lw s3,12(sp) + 1b3ca: 4a22 lw s4,8(sp) + 1b3cc: 6105 addi sp,sp,32 + 1b3ce: 8082 ret + +0001b3d0 : +ll_advertise_status_closed(): + 1b3d0: 3958 lbu a4,21(a0) + 1b3d2: c711 beqz a4,1b3de + 1b3d4: 2934 lbu a3,18(a0) + 1b3d6: 02d71063 bne a4,a3,1b3f6 + 1b3da: ae1f706f j 12eba + 1b3de: 295c lbu a5,20(a0) + 1b3e0: dfed beqz a5,1b3da + 1b3e2: 2938 lbu a4,18(a0) + 1b3e4: fef70be3 beq a4,a5,1b3da + 1b3e8: a93c sb a5,18(a0) + 1b3ea: 4581 li a1,0 + 1b3ec: 00000517 auipc a0,0x0 + 1b3f0: d7650513 addi a0,a0,-650 # 1b162 + 1b3f4: b191 j 1b038 + 1b3f6: 295c lbu a5,20(a0) + 1b3f8: c789 beqz a5,1b402 + 1b3fa: fef697e3 bne a3,a5,1b3e8 + 1b3fe: a938 sb a4,18(a0) + 1b400: b7ed j 1b3ea + 1b402: fee1 bnez a3,1b3da + 1b404: bfed j 1b3fe + +0001b406 : +ll_adv_legacy_ind_tx_process(): + 1b406: 1141 addi sp,sp,-16 + 1b408: 1ffe7797 auipc a5,0x1ffe7 + 1b40c: 6067c783 lbu a5,1542(a5) # 20002a0e + 1b410: c422 sw s0,8(sp) + 1b412: c606 sw ra,12(sp) + 1b414: 8b85 andi a5,a5,1 + 1b416: 1ffe7417 auipc s0,0x1ffe7 + 1b41a: 70e42403 lw s0,1806(s0) # 20002b24 + 1b41e: cf85 beqz a5,1b456 + 1b420: 2438 lbu a4,10(s0) + 1b422: 4789 li a5,2 + 1b424: 02f70963 beq a4,a5,1b456 + 1b428: 02500613 li a2,37 + 1b42c: 4581 li a1,0 + 1b42e: 4505 li a0,1 + 1b430: 1ffe6097 auipc ra,0x1ffe6 + 1b434: 86c080e7 jalr -1940(ra) # 20000c9c + 1b438: 1ffe7797 auipc a5,0x1ffe7 + 1b43c: 5d77c783 lbu a5,1495(a5) # 20002a0f + 1b440: 8b85 andi a5,a5,1 + 1b442: cb91 beqz a5,1b456 + 1b444: 4422 lw s0,8(sp) + 1b446: 40b2 lw ra,12(sp) + 1b448: 4581 li a1,0 + 1b44a: 00000517 auipc a0,0x0 + 1b44e: 01a50513 addi a0,a0,26 # 1b464 + 1b452: 0141 addi sp,sp,16 + 1b454: b6d5 j 1b038 + 1b456: 9f8ff0ef jal ra,1a64e + 1b45a: 8522 mv a0,s0 + 1b45c: 4422 lw s0,8(sp) + 1b45e: 40b2 lw ra,12(sp) + 1b460: 0141 addi sp,sp,16 + 1b462: b7bd j 1b3d0 + +0001b464 : +ll_adv_legacy_rx_process(): + 1b464: 1141 addi sp,sp,-16 + 1b466: c422 sw s0,8(sp) + 1b468: 1ffe7417 auipc s0,0x1ffe7 + 1b46c: 6bc42403 lw s0,1724(s0) # 20002b24 + 1b470: 4068 lw a0,68(s0) + 1b472: 4601 li a2,0 + 1b474: 00e40593 addi a1,s0,14 + 1b478: c606 sw ra,12(sp) + 1b47a: c226 sw s1,4(sp) + 1b47c: c04a sw s2,0(sp) + 1b47e: 1ffe5097 auipc ra,0x1ffe5 + 1b482: 7ba080e7 jalr 1978(ra) # 20000c38 + 1b486: e559 bnez a0,1b514 + 1b488: 406c lw a1,68(s0) + 1b48a: 477d li a4,31 + 1b48c: 319c lbu a5,1(a1) + 1b48e: 03f7f793 andi a5,a5,63 + 1b492: a45c sb a5,12(s0) + 1b494: 17e9 addi a5,a5,-6 + 1b496: 0ff7f793 zext.b a5,a5 + 1b49a: 06f76d63 bltu a4,a5,1b514 + 1b49e: 219c lbu a5,0(a1) + 1b4a0: 8bbd andi a5,a5,15 + 1b4a2: b45c sb a5,13(s0) + 1b4a4: 17f5 addi a5,a5,-3 + 1b4a6: 0fd7f793 andi a5,a5,253 + 1b4aa: e7ad bnez a5,1b514 + 1b4ac: 02a40913 addi s2,s0,42 + 1b4b0: 4619 li a2,6 + 1b4b2: 05a1 addi a1,a1,8 # ff000008 <_eusrstack+0xdeffd008> + 1b4b4: 854a mv a0,s2 + 1b4b6: 1ffe5097 auipc ra,0x1ffe5 + 1b4ba: 424080e7 jalr 1060(ra) # 200008da + 1b4be: c939 beqz a0,1b514 + 1b4c0: 406c lw a1,68(s0) + 1b4c2: 4485 li s1,1 + 1b4c4: 02940c23 sb s1,56(s0) + 1b4c8: 219c lbu a5,0(a1) + 1b4ca: 03a40513 addi a0,s0,58 + 1b4ce: 4619 li a2,6 + 1b4d0: 4867d793 bexti a5,a5,0x6 + 1b4d4: 0589 addi a1,a1,2 + 1b4d6: 02f40ca3 sb a5,57(s0) + 1b4da: 1ffe5097 auipc ra,0x1ffe5 + 1b4de: 382080e7 jalr 898(ra) # 2000085c + 1b4e2: 8522 mv a0,s0 + 1b4e4: 96ff70ef jal ra,12e52 + 1b4e8: c515 beqz a0,1b514 + 1b4ea: 3454 lbu a3,13(s0) + 1b4ec: 4715 li a4,5 + 1b4ee: 243c lbu a5,10(s0) + 1b4f0: 02e69b63 bne a3,a4,1b526 + 1b4f4: 02f4e063 bltu s1,a5,1b514 + 1b4f8: 1ffe7797 auipc a5,0x1ffe7 + 1b4fc: 4047a783 lw a5,1028(a5) # 200028fc + 1b500: 9782 jalr a5 + 1b502: cc48 sw a0,28(s0) + 1b504: 8522 mv a0,s0 + 1b506: 803f70ef jal ra,12d08 + 1b50a: 00951563 bne a0,s1,1b514 + 1b50e: 8522 mv a0,s0 + 1b510: b7bf70ef jal ra,1308a + 1b514: 93aff0ef jal ra,1a64e + 1b518: 8522 mv a0,s0 + 1b51a: 4422 lw s0,8(sp) + 1b51c: 40b2 lw ra,12(sp) + 1b51e: 4492 lw s1,4(sp) + 1b520: 4902 lw s2,0(sp) + 1b522: 0141 addi sp,sp,16 + 1b524: b575 j 1b3d0 + 1b526: c781 beqz a5,1b52e + 1b528: 4719 li a4,6 + 1b52a: fee795e3 bne a5,a4,1b514 + 1b52e: 00e40483 lb s1,14(s0) + 1b532: 452d li a0,11 + 1b534: 9ecec0ef jal ra,7720 + 1b538: 60451513 sext.b a0,a0 + 1b53c: fca4cce3 blt s1,a0,1b514 + 1b540: 387c lbu a5,23(s0) + 1b542: 4691 li a3,4 + 1b544: 4709 li a4,2 + 1b546: 0799 addi a5,a5,6 + 1b548: b43c sb a5,11(s0) + 1b54a: 403c lw a5,64(s0) + 1b54c: a434 sb a3,10(s0) + 1b54e: b058 sb a4,5(s0) + 1b550: a394 sb a3,0(a5) + 1b552: 403c lw a5,64(s0) + 1b554: 3434 lbu a3,11(s0) + 1b556: b394 sb a3,1(a5) + 1b558: 02944783 lbu a5,41(s0) + 1b55c: 8b85 andi a5,a5,1 + 1b55e: e789 bnez a5,1b568 + 1b560: 02844783 lbu a5,40(s0) + 1b564: 00e79763 bne a5,a4,1b572 + 1b568: 4038 lw a4,64(s0) + 1b56a: 231c lbu a5,0(a4) + 1b56c: 0407e793 ori a5,a5,64 + 1b570: a31c sb a5,0(a4) + 1b572: 4028 lw a0,64(s0) + 1b574: 85ca mv a1,s2 + 1b576: 4619 li a2,6 + 1b578: 0509 addi a0,a0,2 + 1b57a: 1ffe5097 auipc ra,0x1ffe5 + 1b57e: 2e2080e7 jalr 738(ra) # 2000085c + 1b582: 4028 lw a0,64(s0) + 1b584: 3870 lbu a2,23(s0) + 1b586: 504c lw a1,36(s0) + 1b588: 0521 addi a0,a0,8 + 1b58a: 1ffe5097 auipc ra,0x1ffe5 + 1b58e: 2d2080e7 jalr 722(ra) # 2000085c + 1b592: 05244583 lbu a1,82(s0) + 1b596: 3430 lbu a2,11(s0) + 1b598: 450d li a0,3 + 1b59a: 1ffe5097 auipc ra,0x1ffe5 + 1b59e: 702080e7 jalr 1794(ra) # 20000c9c + 1b5a2: 8acff0ef jal ra,1a64e + 1b5a6: 4422 lw s0,8(sp) + 1b5a8: 40b2 lw ra,12(sp) + 1b5aa: 4492 lw s1,4(sp) + 1b5ac: 4902 lw s2,0(sp) + 1b5ae: 4581 li a1,0 + 1b5b0: ffff8517 auipc a0,0xffff8 + 1b5b4: 96a50513 addi a0,a0,-1686 # 12f1a + 1b5b8: 0141 addi sp,sp,16 + 1b5ba: bcbd j 1b038 diff --git a/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.map b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.map new file mode 100644 index 0000000..8701f77 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/BLV_RF_W13_V04.map @@ -0,0 +1,5481 @@ +Archive member included to satisfy reference by file (symbol) + +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + ./User_Drivers/flash.o (FLASH_EEPROM_CMD) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + ./User_Drivers/peripheral.o (tmos_msg_deallocate) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + ./User_Drivers/gattprofile.o (tmos_memcpy) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (bleClock_t) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (tmos_snv_init) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + ./User_Drivers/peripheral.o (GAP_SetParamValue) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (GAP_PeriConnRegister) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + ./User_Drivers/peripheral.o (GATT_ExchangeMTU) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) (serviceChangedUUID) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) (gattGetClientStatus) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + ./User_Drivers/gattprofile.o (GATTServApp_ReadCharCfg) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) (L2CAP_GetMTU) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) (l2capProcessRxData) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) (l2capNotifyData) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) (L2CAP_CmdReject) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) (linkDB_Init) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (smFreePairingParams) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) (smpBuildPairingRsp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) (smResponderSendNextKeyInfo) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) (sm_ah) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (gBleHostPara) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) (LL_Encrypt) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (BB_DevInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (gBleIPPara) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (tmosSign) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) (RFEND_DevInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (API_DisconnectCmd) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) (gDtm_t) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) (gapBond_Invalid) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) (GGS_ParamInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (pGapRolesPeri_AppCGs) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) (GAPRole_ParamInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) (tmos_memory_allocate) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) (ATT_ParamInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) (ATT_ParseExchangeMTURsp) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) (ATT_ParseExchangeMTUReq) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) (LL_Init) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) (LL_AddrInit) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) (LL_AdvGetCore) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) (LL_ConnectEventRegister) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) (LL_CoreGetCore) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) (LL_HopGetChannel) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) (LL_ProcessTMOSReportMsg) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) (llSlaveStartEvent) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) (LL_WhitelistLookup) +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) (LL_SendAck) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + ./User_Drivers/debug.o (printf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) (__lshrdi3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) (__ashrdi3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (__divdi3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (__udivdi3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + ./HAL/SLEEP.o (__adddf3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + ./HAL/SLEEP.o (__divdf3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + ./HAL/SLEEP.o (__muldf3) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + ./HAL/SLEEP.o (__fixunsdfsi) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + ./HAL/SLEEP.o (__floatsidf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + ./HAL/SLEEP.o (__floatunsidf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + ./User_Drivers/sensor_scan.o (__gesf2) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + ./User_Drivers/sensor_scan.o (__lesf2) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + ./User_Drivers/sensor_scan.o (__fixunssfsi) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + ./User_Drivers/sensor_scan.o (__floatsisf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) (__clz_tab) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + ./User_Drivers/sensor_scan.o (memcmp) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcpy-asm.o) + ./User_Drivers/flash.o (memcpy) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memset.o) + ./User_Drivers/flash.o (memset) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) (strlen) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + ./User_Drivers/debug.o (vprintf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + ./User_Drivers/peripheral.o (vsnprintf) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) (__sinit) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (_fwalk) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (_global_impure_ptr) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (__retarget_lock_init_recursive) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (_malloc_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) (_svfprintf_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) (_printf_i) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) (_vfprintf_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) (_sbrk_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (__sread) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) (__swbuf_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) (_write_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) (__swsetup_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) (_close_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) (_fflush_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) (__sfvwrite_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) (_lseek_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) (__smakebuf_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) (memchr) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memmove.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) (memmove) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) (__malloc_lock) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) (_free_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) (_realloc_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) (_read_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) (errno) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) (_fstat_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) (_isatty_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) (_malloc_usable_size_r) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) (_close) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) (_fstat) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) (_isatty) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) (_lseek) +d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) (_read) + +Discarded input sections + + .text 0x0000000000000000 0x0 ./User_Drivers/debug.o + .data 0x0000000000000000 0x0 ./User_Drivers/debug.o + .bss 0x0000000000000000 0x0 ./User_Drivers/debug.o + .text.Dbg_NoTick_Println + 0x0000000000000000 0x48 ./User_Drivers/debug.o + .rodata.Dbg_Print_Buff.str1.4 + 0x0000000000000000 0xe ./User_Drivers/debug.o + .text.Dbg_Print_Buff + 0x0000000000000000 0xb4 ./User_Drivers/debug.o + .text 0x0000000000000000 0x0 ./User_Drivers/flash.o + .data 0x0000000000000000 0x0 ./User_Drivers/flash.o + .bss 0x0000000000000000 0x0 ./User_Drivers/flash.o + .text.EEPROM_Read_PortGroupData_2 + 0x0000000000000000 0x50 ./User_Drivers/flash.o + .text.EEPROM_Default_RARDelayTim + 0x0000000000000000 0x1c ./User_Drivers/flash.o + .text 0x0000000000000000 0x0 ./User_Drivers/gattprofile.o + .data 0x0000000000000000 0x0 ./User_Drivers/gattprofile.o + .bss 0x0000000000000000 0x0 ./User_Drivers/gattprofile.o + .text.SimpleProfile_GetParameter + 0x0000000000000000 0x72 ./User_Drivers/gattprofile.o + .rodata.SimpleProfile_GetParameter + 0x0000000000000000 0x14 ./User_Drivers/gattprofile.o + .srodata.simpleProfilechar3UUID + 0x0000000000000000 0x2 ./User_Drivers/gattprofile.o + .srodata.simpleProfilechar2UUID + 0x0000000000000000 0x2 ./User_Drivers/gattprofile.o + .text 0x0000000000000000 0x0 ./User_Drivers/peripheral.o + .data 0x0000000000000000 0x0 ./User_Drivers/peripheral.o + .bss 0x0000000000000000 0x0 ./User_Drivers/peripheral.o + .text 0x0000000000000000 0x0 ./User_Drivers/sensor_scan.o + .data 0x0000000000000000 0x0 ./User_Drivers/sensor_scan.o + .bss 0x0000000000000000 0x0 ./User_Drivers/sensor_scan.o + .text 0x0000000000000000 0x0 ./User_Drivers/uart.o + .data 0x0000000000000000 0x0 ./User_Drivers/uart.o + .bss 0x0000000000000000 0x0 ./User_Drivers/uart.o + .text 0x0000000000000000 0x0 ./User/main.o + .data 0x0000000000000000 0x0 ./User/main.o + .bss 0x0000000000000000 0x0 ./User/main.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_clk.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_clk.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_clk.o + .text.LClk_Cfg + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_clk.o + .text.HSECFG_Current + 0x0000000000000000 0x4e ./StdPeriphDriver/CH57x_clk.o + .text.RTC_GetTime + 0x0000000000000000 0x1a6 ./StdPeriphDriver/CH57x_clk.o + .text.RTC_SetCycleLSI + 0x0000000000000000 0x68 ./StdPeriphDriver/CH57x_clk.o + .text.RTC_GetCycleLSI + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_clk.o + .text.RTC_TMRFunCfg + 0x0000000000000000 0x84 ./StdPeriphDriver/CH57x_clk.o + .text.RTC_TRIGFunCfg + 0x0000000000000000 0x6e ./StdPeriphDriver/CH57x_clk.o + .text.RTC_ModeFunDisable + 0x0000000000000000 0x5a ./StdPeriphDriver/CH57x_clk.o + .text.RTC_GetITFlag + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_clk.o + .text.RTC_ClearITFlag + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_clk.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_cmp.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_cmp.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_cmp.o + .text.CMP_Init + 0x0000000000000000 0x14 ./StdPeriphDriver/CH57x_cmp.o + .text.CMP_OutToTIMCAPCfg + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_cmp.o + .text.CMP_INTCfg + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_cmp.o + .debug_info 0x0000000000000000 0x203 ./StdPeriphDriver/CH57x_cmp.o + .debug_abbrev 0x0000000000000000 0xc2 ./StdPeriphDriver/CH57x_cmp.o + .debug_loclists + 0x0000000000000000 0x5a ./StdPeriphDriver/CH57x_cmp.o + .debug_aranges + 0x0000000000000000 0x30 ./StdPeriphDriver/CH57x_cmp.o + .debug_rnglists + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_cmp.o + .debug_line 0x0000000000000000 0x178 ./StdPeriphDriver/CH57x_cmp.o + .debug_str 0x0000000000000000 0x3aa ./StdPeriphDriver/CH57x_cmp.o + .debug_line_str + 0x0000000000000000 0x1a1 ./StdPeriphDriver/CH57x_cmp.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_cmp.o + .debug_frame 0x0000000000000000 0x40 ./StdPeriphDriver/CH57x_cmp.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_cmp.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_flash.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_flash.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_flash.o + .text.UserOptionByteConfig + 0x0000000000000000 0xc2 ./StdPeriphDriver/CH57x_flash.o + .text.UserOptionByteClose_SWD + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_flash.o + .text.UserOptionByte_Active + 0x0000000000000000 0x86 ./StdPeriphDriver/CH57x_flash.o + .text.GET_UNIQUE_ID + 0x0000000000000000 0x4a ./StdPeriphDriver/CH57x_flash.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_gpio.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_gpio.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_gpio.o + .text.GPIOA_ITModeCfg + 0x0000000000000000 0x74 ./StdPeriphDriver/CH57x_gpio.o + .text.GPIOPinRemap + 0x0000000000000000 0x1c ./StdPeriphDriver/CH57x_gpio.o + .text.GPIOADigitalCfg + 0x0000000000000000 0x1c ./StdPeriphDriver/CH57x_gpio.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_i2c.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_i2c.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_Cmd 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GenerateSTART + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GenerateSTOP + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_AcknowledgeConfig + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_OwnAddress2Config + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_DualAddressCmd + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GeneralCallCmd + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_ITConfig + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_SendData + 0x0000000000000000 0xa ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_ReceiveData + 0x0000000000000000 0xe ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_Send7bitAddress + 0x0000000000000000 0x14 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_SoftwareResetCmd + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_Init + 0x0000000000000000 0x16e ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_NACKPositionConfig + 0x0000000000000000 0x30 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_SMBusAlertConfig + 0x0000000000000000 0x2c ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_TransmitPEC + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_PECPositionConfig + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_CalculatePEC + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GetPEC + 0x0000000000000000 0xc ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_ARPCmd + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_StretchClockCmd + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_FastModeDutyCycleConfig + 0x0000000000000000 0x2c ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_CheckEvent + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GetLastEvent + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GetFlagStatus + 0x0000000000000000 0x3c ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_ClearFlag + 0x0000000000000000 0x12 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_GetITStatus + 0x0000000000000000 0x26 ./StdPeriphDriver/CH57x_i2c.o + .text.I2C_ClearITPendingBit + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_i2c.o + .debug_info 0x0000000000000000 0x7a2 ./StdPeriphDriver/CH57x_i2c.o + .debug_abbrev 0x0000000000000000 0x24e ./StdPeriphDriver/CH57x_i2c.o + .debug_loclists + 0x0000000000000000 0x48a ./StdPeriphDriver/CH57x_i2c.o + .debug_aranges + 0x0000000000000000 0xf8 ./StdPeriphDriver/CH57x_i2c.o + .debug_rnglists + 0x0000000000000000 0x14a ./StdPeriphDriver/CH57x_i2c.o + .debug_line 0x0000000000000000 0xcd2 ./StdPeriphDriver/CH57x_i2c.o + .debug_str 0x0000000000000000 0x62b ./StdPeriphDriver/CH57x_i2c.o + .debug_line_str + 0x0000000000000000 0x272 ./StdPeriphDriver/CH57x_i2c.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_i2c.o + .debug_frame 0x0000000000000000 0x20c ./StdPeriphDriver/CH57x_i2c.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_i2c.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_keyscan.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_keyscan.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_keyscan.o + .text.KeyScan_Cfg + 0x0000000000000000 0x3a ./StdPeriphDriver/CH57x_keyscan.o + .text.KeyPress_Wake + 0x0000000000000000 0x7e ./StdPeriphDriver/CH57x_keyscan.o + .debug_info 0x0000000000000000 0x256 ./StdPeriphDriver/CH57x_keyscan.o + .debug_abbrev 0x0000000000000000 0x17d ./StdPeriphDriver/CH57x_keyscan.o + .debug_loclists + 0x0000000000000000 0x7e ./StdPeriphDriver/CH57x_keyscan.o + .debug_aranges + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_keyscan.o + .debug_rnglists + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_keyscan.o + .debug_line 0x0000000000000000 0x237 ./StdPeriphDriver/CH57x_keyscan.o + .debug_str 0x0000000000000000 0x253 ./StdPeriphDriver/CH57x_keyscan.o + .debug_line_str + 0x0000000000000000 0x266 ./StdPeriphDriver/CH57x_keyscan.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_keyscan.o + .debug_frame 0x0000000000000000 0x3c ./StdPeriphDriver/CH57x_keyscan.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_keyscan.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwm.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwm.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_CycleCfg + 0x0000000000000000 0x4e ./StdPeriphDriver/CH57x_pwm.o + .rodata.PWMX_CycleCfg + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_16bit_CycleCfg + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_16bit_ACTOUT + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_ACTOUT + 0x0000000000000000 0x8e ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_AlterOutCfg + 0x0000000000000000 0x1c ./StdPeriphDriver/CH57x_pwm.o + .text.PWMX_SyncOutCfg + 0x0000000000000000 0x26 ./StdPeriphDriver/CH57x_pwm.o + .text.PWM_DMACfg + 0x0000000000000000 0x4a ./StdPeriphDriver/CH57x_pwm.o + .debug_info 0x0000000000000000 0x375 ./StdPeriphDriver/CH57x_pwm.o + .debug_abbrev 0x0000000000000000 0xf5 ./StdPeriphDriver/CH57x_pwm.o + .debug_loclists + 0x0000000000000000 0x2ab ./StdPeriphDriver/CH57x_pwm.o + .debug_aranges + 0x0000000000000000 0x50 ./StdPeriphDriver/CH57x_pwm.o + .debug_rnglists + 0x0000000000000000 0x4c ./StdPeriphDriver/CH57x_pwm.o + .debug_line 0x0000000000000000 0x5ab ./StdPeriphDriver/CH57x_pwm.o + .debug_str 0x0000000000000000 0x37e ./StdPeriphDriver/CH57x_pwm.o + .debug_line_str + 0x0000000000000000 0x266 ./StdPeriphDriver/CH57x_pwm.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_pwm.o + .debug_frame 0x0000000000000000 0x80 ./StdPeriphDriver/CH57x_pwm.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_pwm.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwr.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwr.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_pwr.o + .text.PWR_PeriphClkCfg + 0x0000000000000000 0x50 ./StdPeriphDriver/CH57x_pwr.o + .text.PWR_PeriphWakeUpCfg + 0x0000000000000000 0xe6 ./StdPeriphDriver/CH57x_pwr.o + .text.PowerMonitor + 0x0000000000000000 0xd8 ./StdPeriphDriver/CH57x_pwr.o + .highcode.LowPower_Idle + 0x0000000000000000 0x40 ./StdPeriphDriver/CH57x_pwr.o + .highcode.LowPower_Halt + 0x0000000000000000 0x128 ./StdPeriphDriver/CH57x_pwr.o + .highcode.LowPower_Sleep + 0x0000000000000000 0x182 ./StdPeriphDriver/CH57x_pwr.o + .highcode.LowPower_Shutdown + 0x0000000000000000 0x17a ./StdPeriphDriver/CH57x_pwr.o + .debug_info 0x0000000000000000 0xedd ./StdPeriphDriver/CH57x_pwr.o + .debug_abbrev 0x0000000000000000 0x342 ./StdPeriphDriver/CH57x_pwr.o + .debug_loclists + 0x0000000000000000 0x3bd ./StdPeriphDriver/CH57x_pwr.o + .debug_aranges + 0x0000000000000000 0x50 ./StdPeriphDriver/CH57x_pwr.o + .debug_rnglists + 0x0000000000000000 0x98 ./StdPeriphDriver/CH57x_pwr.o + .debug_line 0x0000000000000000 0x1395 ./StdPeriphDriver/CH57x_pwr.o + .debug_str 0x0000000000000000 0x611 ./StdPeriphDriver/CH57x_pwr.o + .debug_line_str + 0x0000000000000000 0x287 ./StdPeriphDriver/CH57x_pwr.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_pwr.o + .debug_frame 0x0000000000000000 0x100 ./StdPeriphDriver/CH57x_pwr.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_pwr.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_spi.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_spi.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterDefInit + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_2WIRE_MasterOutputInit + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_2WIRE_MasterReceiveInit + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_2WIRE_SlaveInputInit + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_2WIRE_SlaveOutputInit + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_CLKCfg + 0x0000000000000000 0x22 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_DataMode + 0x0000000000000000 0x56 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterSendByte + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterRecvByte + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterTrans + 0x0000000000000000 0x36 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterRecv + 0x0000000000000000 0x2c ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterDMATrans + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_MasterDMARecv + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_SlaveInit + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_2WIRE_SlaveInit + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_SlaveRecvByte + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_SlaveSendByte + 0x0000000000000000 0x1c ./StdPeriphDriver/CH57x_spi.o + .highcode.SPI_SlaveRecv + 0x0000000000000000 0x2a ./StdPeriphDriver/CH57x_spi.o + .highcode.SPI_SlaveTrans + 0x0000000000000000 0x34 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_SlaveDMARecv + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_spi.o + .text.SPI_SlaveDMATrans + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_spi.o + .debug_info 0x0000000000000000 0x3f7 ./StdPeriphDriver/CH57x_spi.o + .debug_abbrev 0x0000000000000000 0x1e2 ./StdPeriphDriver/CH57x_spi.o + .debug_loclists + 0x0000000000000000 0x168 ./StdPeriphDriver/CH57x_spi.o + .debug_aranges + 0x0000000000000000 0xc0 ./StdPeriphDriver/CH57x_spi.o + .debug_rnglists + 0x0000000000000000 0xca ./StdPeriphDriver/CH57x_spi.o + .debug_line 0x0000000000000000 0xb1c ./StdPeriphDriver/CH57x_spi.o + .debug_str 0x0000000000000000 0x3e5 ./StdPeriphDriver/CH57x_spi.o + .debug_line_str + 0x0000000000000000 0x20e ./StdPeriphDriver/CH57x_spi.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_spi.o + .debug_frame 0x0000000000000000 0x160 ./StdPeriphDriver/CH57x_spi.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_spi.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_sys.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_sys.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_sys.o + .text.SYS_GetInfoSta + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_sys.o + .text.SYS_DisableAllIrq + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_sys.o + .text.SYS_RecoverIrq + 0x0000000000000000 0x14 ./StdPeriphDriver/CH57x_sys.o + .text.WWDG_ITCfg + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_sys.o + .highcode.mDelayuS + 0x0000000000000000 0xe ./StdPeriphDriver/CH57x_sys.o + .highcode.mDelaymS + 0x0000000000000000 0x24 ./StdPeriphDriver/CH57x_sys.o + .highcode.__wrap_memcpy + 0x0000000000000000 0xa ./StdPeriphDriver/CH57x_sys.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_timer.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_timer.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_timer.o + .text.TMR_TimerInit + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_timer.o + .text.TMR_EXTSingleCounterInit + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_timer.o + .text.TMR_PWMInit + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_timer.o + .text.TMR_CapInit + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_timer.o + .text.TMR_DMACfg + 0x0000000000000000 0x2c ./StdPeriphDriver/CH57x_timer.o + .text.ENC_Config + 0x0000000000000000 0x30 ./StdPeriphDriver/CH57x_timer.o + .debug_info 0x0000000000000000 0x2f2 ./StdPeriphDriver/CH57x_timer.o + .debug_abbrev 0x0000000000000000 0xd5 ./StdPeriphDriver/CH57x_timer.o + .debug_loclists + 0x0000000000000000 0xdc ./StdPeriphDriver/CH57x_timer.o + .debug_aranges + 0x0000000000000000 0x48 ./StdPeriphDriver/CH57x_timer.o + .debug_rnglists + 0x0000000000000000 0x43 ./StdPeriphDriver/CH57x_timer.o + .debug_line 0x0000000000000000 0x2d7 ./StdPeriphDriver/CH57x_timer.o + .debug_str 0x0000000000000000 0x364 ./StdPeriphDriver/CH57x_timer.o + .debug_line_str + 0x0000000000000000 0x27a ./StdPeriphDriver/CH57x_timer.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_timer.o + .debug_frame 0x0000000000000000 0x70 ./StdPeriphDriver/CH57x_timer.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_timer.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_uart.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_uart.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_uart.o + .text.UART_DefInit + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_uart.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbdev.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbdev.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbdev.o + .text.USB_DeviceInit + 0x0000000000000000 0x76 ./StdPeriphDriver/CH57x_usbdev.o + .text.DevEP1_IN_Deal + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_usbdev.o + .text.DevEP2_IN_Deal + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_usbdev.o + .text.DevEP3_IN_Deal + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_usbdev.o + .text.DevEP4_IN_Deal + 0x0000000000000000 0x16 ./StdPeriphDriver/CH57x_usbdev.o + .sbss.pEP3_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbdev.o + .sbss.pEP2_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbdev.o + .sbss.pEP1_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbdev.o + .sbss.pEP0_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbdev.o + .debug_info 0x0000000000000000 0x1d3 ./StdPeriphDriver/CH57x_usbdev.o + .debug_abbrev 0x0000000000000000 0xb9 ./StdPeriphDriver/CH57x_usbdev.o + .debug_aranges + 0x0000000000000000 0x40 ./StdPeriphDriver/CH57x_usbdev.o + .debug_rnglists + 0x0000000000000000 0x3a ./StdPeriphDriver/CH57x_usbdev.o + .debug_line 0x0000000000000000 0x2ef ./StdPeriphDriver/CH57x_usbdev.o + .debug_str 0x0000000000000000 0x262 ./StdPeriphDriver/CH57x_usbdev.o + .debug_line_str + 0x0000000000000000 0x21a ./StdPeriphDriver/CH57x_usbdev.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_usbdev.o + .debug_frame 0x0000000000000000 0x60 ./StdPeriphDriver/CH57x_usbdev.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_usbdev.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostBase.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostBase.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.SetUsbSpeed.part.0 + 0x0000000000000000 0x1a ./StdPeriphDriver/CH57x_usbhostBase.o + .text.DisableRootHubPort + 0x0000000000000000 0xa ./StdPeriphDriver/CH57x_usbhostBase.o + .rodata.AnalyzeRootHub.str1.4 + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.AnalyzeRootHub + 0x0000000000000000 0x78 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.SetHostUsbAddr + 0x0000000000000000 0x14 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.SetUsbSpeed + 0x0000000000000000 0x18 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.ResetRootHubPort + 0x0000000000000000 0x64 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.EnableRootHubPort + 0x0000000000000000 0x46 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.SelectHubPort + 0x0000000000000000 0x7e ./StdPeriphDriver/CH57x_usbhostBase.o + .text.WaitUSB_Interrupt + 0x0000000000000000 0x28 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.USBHostTransact + 0x0000000000000000 0x164 ./StdPeriphDriver/CH57x_usbhostBase.o + .rodata.HostCtrlTransfer.str1.4 + 0x0000000000000000 0x2e ./StdPeriphDriver/CH57x_usbhostBase.o + .text.HostCtrlTransfer + 0x0000000000000000 0x22c ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CopySetupReqPkg + 0x0000000000000000 0x20 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlGetDeviceDescr + 0x0000000000000000 0x54 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlGetConfigDescr + 0x0000000000000000 0x80 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlSetUsbAddress + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlSetUsbConfig + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlClearEndpStall + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.CtrlSetUsbIntercace + 0x0000000000000000 0x38 ./StdPeriphDriver/CH57x_usbhostBase.o + .text.USB_HostInit + 0x0000000000000000 0x68 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupClrEndpStall + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupSetUsbInterface + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupSetUsbConfig + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupSetUsbAddr + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupGetCfgDescr + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .srodata.SetupGetDevDescr + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostBase.o + .sbss.pHOST_TX_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbhostBase.o + .sbss.pHOST_RX_RAM_Addr + 0x0000000000000000 0x4 ./StdPeriphDriver/CH57x_usbhostBase.o + .bss.DevOnHubPort + 0x0000000000000000 0x30 ./StdPeriphDriver/CH57x_usbhostBase.o + .bss.ThisUsbDev + 0x0000000000000000 0xe ./StdPeriphDriver/CH57x_usbhostBase.o + .sbss.FoundNewDev + 0x0000000000000000 0x1 ./StdPeriphDriver/CH57x_usbhostBase.o + .sbss.UsbDevEndp0Size + 0x0000000000000000 0x1 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_info 0x0000000000000000 0xd63 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_abbrev 0x0000000000000000 0x38f ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_loclists + 0x0000000000000000 0x58c ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_aranges + 0x0000000000000000 0xb0 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_rnglists + 0x0000000000000000 0xd4 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_line 0x0000000000000000 0x12b0 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_str 0x0000000000000000 0x691 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_line_str + 0x0000000000000000 0x298 ./StdPeriphDriver/CH57x_usbhostBase.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_usbhostBase.o + .debug_frame 0x0000000000000000 0x270 ./StdPeriphDriver/CH57x_usbhostBase.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_usbhostBase.o + .text 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostClass.o + .data 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostClass.o + .bss 0x0000000000000000 0x0 ./StdPeriphDriver/CH57x_usbhostClass.o + .rodata.AnalyzeHidIntEndp.str1.4 + 0x0000000000000000 0x6 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.AnalyzeHidIntEndp + 0x0000000000000000 0xfe ./StdPeriphDriver/CH57x_usbhostClass.o + .text.AnalyzeBulkEndp + 0x0000000000000000 0xbe ./StdPeriphDriver/CH57x_usbhostClass.o + .text.SearchTypeDevice + 0x0000000000000000 0x6a ./StdPeriphDriver/CH57x_usbhostClass.o + .text.SETorOFFNumLock + 0x0000000000000000 0x70 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.CtrlGetHIDDeviceReport + 0x0000000000000000 0x80 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.CtrlGetHubDescr + 0x0000000000000000 0x3a ./StdPeriphDriver/CH57x_usbhostClass.o + .text.HubGetPortStatus + 0x0000000000000000 0x52 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.HubSetPortFeature + 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_usbhostClass.o + .rodata.InitRootDevice.str1.4 + 0x0000000000000000 0x116 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.InitRootDevice + 0x0000000000000000 0x384 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.HubClearPortFeature + 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_usbhostClass.o + .rodata.InitDevOnHub.str1.4 + 0x0000000000000000 0x75 ./StdPeriphDriver/CH57x_usbhostClass.o + .text.InitDevOnHub + 0x0000000000000000 0x37c ./StdPeriphDriver/CH57x_usbhostClass.o + .rodata.EnumHubPort.str1.4 + 0x0000000000000000 0x9c ./StdPeriphDriver/CH57x_usbhostClass.o + .text.EnumHubPort + 0x0000000000000000 0x20a ./StdPeriphDriver/CH57x_usbhostClass.o + .rodata.EnumAllHubPort.str1.4 + 0x0000000000000000 0x1b ./StdPeriphDriver/CH57x_usbhostClass.o + .text.EnumAllHubPort + 0x0000000000000000 0x58 ./StdPeriphDriver/CH57x_usbhostClass.o + .bss.Com_Buffer + 0x0000000000000000 0x80 ./StdPeriphDriver/CH57x_usbhostClass.o + .srodata.SetupGetHubDescr + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostClass.o + .srodata.SetupGetHIDDevReport + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostClass.o + .srodata.SetupSetHIDIdle + 0x0000000000000000 0x8 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_info 0x0000000000000000 0x1380 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_abbrev 0x0000000000000000 0x2c3 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_loclists + 0x0000000000000000 0x7e6 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_aranges + 0x0000000000000000 0x80 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_rnglists + 0x0000000000000000 0x82 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_line 0x0000000000000000 0x1b65 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_str 0x0000000000000000 0x890 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_line_str + 0x0000000000000000 0x30b ./StdPeriphDriver/CH57x_usbhostClass.o + .comment 0x0000000000000000 0x32 ./StdPeriphDriver/CH57x_usbhostClass.o + .debug_frame 0x0000000000000000 0x1f8 ./StdPeriphDriver/CH57x_usbhostClass.o + .riscv.attributes + 0x0000000000000000 0x51 ./StdPeriphDriver/CH57x_usbhostClass.o + .text 0x0000000000000000 0x0 ./Startup/startup_CH572.o + .data 0x0000000000000000 0x0 ./Startup/startup_CH572.o + .bss 0x0000000000000000 0x0 ./Startup/startup_CH572.o + .text 0x0000000000000000 0x0 ./HAL/MCU.o + .data 0x0000000000000000 0x0 ./HAL/MCU.o + .bss 0x0000000000000000 0x0 ./HAL/MCU.o + .text 0x0000000000000000 0x0 ./HAL/RTC.o + .data 0x0000000000000000 0x0 ./HAL/RTC.o + .bss 0x0000000000000000 0x0 ./HAL/RTC.o + .text.RTC_SetTignTime + 0x0000000000000000 0x48 ./HAL/RTC.o + .text 0x0000000000000000 0x0 ./HAL/SLEEP.o + .data 0x0000000000000000 0x0 ./HAL/SLEEP.o + .bss 0x0000000000000000 0x0 ./HAL/SLEEP.o + .text.CH57x_LowPower + 0x0000000000000000 0x4 ./HAL/SLEEP.o + .text.HAL_SleepInit + 0x0000000000000000 0x2 ./HAL/SLEEP.o + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.tmos_get_callback_task_time + 0x0000000000000000 0x94 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.TMOS_GetSystemClock + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.tmos_get_event + 0x0000000000000000 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.tmos_start_reload_task + 0x0000000000000000 0x8a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.tmos_get_task_timer + 0x0000000000000000 0x86 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text.TMOS_ProcessGet + 0x0000000000000000 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .text.tmos_snv_clear + 0x0000000000000000 0x94 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.gapValidConnTimeParams + 0x0000000000000000 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.GAP_UpdateLinkParamReq + 0x0000000000000000 0x94 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.gapSendSlaveSecurityReqEvent + 0x0000000000000000 0x70 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.gapProcessNewAddr + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.GAP_PasskeyUpdate + 0x0000000000000000 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.GAP_UpdateAdvertisingData + 0x0000000000000000 0x14e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.GAP_ConfigDeviceAddr + 0x0000000000000000 0xee G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text.gattReadLong + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text.gattRead + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text.gattWrite + 0x0000000000000000 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text.GATT_WriteNoRsp + 0x0000000000000000 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text.GATT_SendRsp + 0x0000000000000000 0x182 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .rodata.GATT_SendRsp + 0x0000000000000000 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.reportRefUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.extReportRefUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.validRangeUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.reconnectAddrUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.periPrivacyFlagUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.charAggFormatUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.charFormatUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.servCharCfgUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.charExtPropsUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .srodata.includeUUID + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .text.GATT_RegisterForInd + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_FindAttr + 0x0000000000000000 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_GetParameter + 0x0000000000000000 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattServApp_SetNumPrepareWrites + 0x0000000000000000 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_SetParameter + 0x0000000000000000 0x5c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_DeregisterService + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_DeregisterService + 0x0000000000000000 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattServApp_SendNotiInd + 0x0000000000000000 0xa0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_ProcessCharCfg + 0x0000000000000000 0xda G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_GetNextHandle + 0x0000000000000000 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_RegisterForReq + 0x0000000000000000 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text.l2capGetCoChannelInfo + 0x0000000000000000 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text.L2CAP_ParseConnectReq + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text.L2CAP_ParseFlowCtrlCredit + 0x0000000000000000 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text.L2CAP_ParseInfoReq + 0x0000000000000000 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text.L2CAP_PsmInfo + 0x0000000000000000 0x4a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .sbss.l2capPsm + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .sbss.l2capNumChannels + 0x0000000000000000 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .text.l2capSendFCPkt + 0x0000000000000000 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .text.l2capBuildParamUpdateRsp + 0x0000000000000000 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .text.L2CAP_ConnParamUpdateRsp + 0x0000000000000000 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .text.linkDB_Update + 0x0000000000000000 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.SM_StartEncryption + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smpParseEncInfo + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smpParseIdentityInfo + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smpParsePairingRandom + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smpParseSigningInfo + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smpParseSecurityReq + 0x0000000000000000 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.SM_CalcRandomAddr + 0x0000000000000000 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.SM_NewRandKey + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.SM_ParamInit + 0x0000000000000000 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .rodata.IOCapScMatrix + 0x0000000000000000 0x19 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_AdvPktReportEvent + 0x0000000000000000 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_ReadLocalPublicKeyCompleteEvent + 0x0000000000000000 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_GenerateDHKeyCompleteEvent + 0x0000000000000000 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_EnhancedConnectionCompleteEvent + 0x0000000000000000 0x5c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_DirectAdvertisingReportEvent + 0x0000000000000000 0xc4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_ExtendedAdvertisingReportEvent + 0x0000000000000000 0x100 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_PeriodicAdvertisingSyncEstablishedEvent + 0x0000000000000000 0x86 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_PeriodicAdvertisingSyncLostEvent + 0x0000000000000000 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_ScanTimeoutEvent + 0x0000000000000000 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_AdvertisingSetTerminatedEvent + 0x0000000000000000 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_LE_ChannelSelectionAlgorithmEvent + 0x0000000000000000 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_HardwareErrorEvent + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text.HOST_DataBufferOverflowEvent + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .text.AES_DevAESDec + 0x0000000000000000 0x180 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .text.LL_Decrypt + 0x0000000000000000 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.BLE_CheckChannel + 0x0000000000000000 0xce G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.BLE_CheckHoppingMap + 0x0000000000000000 0x17c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.ll_hw_api_tx_direct_test + 0x0000000000000000 0x108 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.BLE_PAControlInit + 0x0000000000000000 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.ip_register_task_rf + 0x0000000000000000 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.BLE_AccessAddressGenerate + 0x0000000000000000 0xe0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text.BLE_SeedAccessAddressGenerate + 0x0000000000000000 0xbc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .text.TMOS_SysRegister + 0x0000000000000000 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .text.RFEND_SetDACREF_TUNE + 0x0000000000000000 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .text.RFEND_GetDACREF_TUNE + 0x0000000000000000 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .text.RFEND_TXCtuneSet + 0x0000000000000000 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .text.RFEND_TXCtuneGet + 0x0000000000000000 0x4a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.dtmTx 0x0000000000000000 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadRemoteVersionInfoCmd + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_SetEventMaskCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ResetCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadTransmitPowerLevelCmd + 0x0000000000000000 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_SetControllerToHostFlowCtrlCmd + 0x0000000000000000 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_HostBufferSizeCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_HostNumCompletedPktCmd + 0x0000000000000000 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_SetEventMaskPage2Cmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadAuthPayloadTimeoutCmd + 0x0000000000000000 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_WriteAuthPayloadTimeoutCmd + 0x0000000000000000 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadLocalVersionInfoCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadLocalSupportedCommandsCmd + 0x0000000000000000 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadLocalSupportedFeaturesCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_ReadReadBufferSizeCmd + 0x0000000000000000 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetEventMaskCmd + 0x0000000000000000 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadBufSizeV2Cmd + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadLocalSupportedFeaturesCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetRandomAddressCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_CreateConnCancelCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadWhiteListSizeCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_RemoveWhiteListCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ConnUpdateCmd + 0x0000000000000000 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetHostChanClassificationCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadChannelMapCmd + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadRemoteUsedFeaturesCmd + 0x0000000000000000 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_EncryptCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_StartEncryptCmd + 0x0000000000000000 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadSupportedStatesCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReceiverTestCmd + 0x0000000000000000 0x80 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_TransmitterTestCmd + 0x0000000000000000 0x126 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_TestEndCmd + 0x0000000000000000 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_MB_SetTxPowerCmd + 0x0000000000000000 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_MB_TuneXT32MCmd + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_MB_SingleCarrierCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_MB_WriteRegisterCmd + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_MB_ReadRegisterCmd + 0x0000000000000000 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadSuggestedDefaultDataLength + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_WriteSuggestedDefaultDataLength + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadLocalPublicKeyCmd + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_GenerateDHKeyCmd + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadPHYCmd + 0x0000000000000000 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetAdvertisingSetRandomAddressCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadMaximumAdvertisingDataLengthCmd + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LEReadNumberofSupportedAdvertisingSetsCmd + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_RemoveAdvertisingSetCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ClearAdvertisingSetsCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetExtendedScanParametersCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetExtendedScanEnableCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ExtendedCreateConnectionCmd + 0x0000000000000000 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_ReadTransmitPowerCmd + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_LE_SetPrivacyModeCmd + 0x0000000000000000 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text.API_SetExtendedScanMaxLengthCmd + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .sdata.gDtmTxid + 0x0000000000000000 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.CreatePRBS9 + 0x0000000000000000 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.CreatePRBS15 + 0x0000000000000000 0x4a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReceiverTest + 0x0000000000000000 0x10c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.dtmRx 0x0000000000000000 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_TransmitterTest + 0x0000000000000000 0x134 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .rodata.LL_TransmitterTest + 0x0000000000000000 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_TestEnd + 0x0000000000000000 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetTxPowerLevel + 0x0000000000000000 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SingleChannel + 0x0000000000000000 0xb8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadRemoteVersionInfo + 0x0000000000000000 0x5c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_Reset + 0x0000000000000000 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadTxPowerLevel + 0x0000000000000000 0x56 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetControllerToHostFlowCtrl + 0x0000000000000000 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadAuthPayloadTimeout + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_WriteAuthPayloadTimeout + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadLocalVersionInfo + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadLocalSupportedCommands + 0x0000000000000000 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadLocalSupportedFeatures + 0x0000000000000000 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_LE_ReadBufSizeV2 + 0x0000000000000000 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_LE_ReadLocalSupportedFeatures + 0x0000000000000000 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetRandomAddress + 0x0000000000000000 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_CreateConnCancel + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadSuggestedDefaultDataLength + 0x0000000000000000 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_WriteSuggestedDefaultDataLength + 0x0000000000000000 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadSupportedStates + 0x0000000000000000 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ConnUpdate + 0x0000000000000000 0xce G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_RemoveWhiteListDevice + 0x0000000000000000 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadWlSize + 0x0000000000000000 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetHostChanClassification + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadChanMap + 0x0000000000000000 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadRemoteUsedFeatures + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_StartEncrypt + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadPHY + 0x0000000000000000 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetAdvertisingSetRandomAddress + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadMaximumAdvertisingDataLength + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadNumberofSupportedAdvertisingSets + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_RemoveAdvertisingSet + 0x0000000000000000 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ClearAdvertisingSets + 0x0000000000000000 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetExtendedScanParameters + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetExtendedScanEnable + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ExtendedCreateConnection + 0x0000000000000000 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_ReadTransmitPower + 0x0000000000000000 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text.LL_SetHostFeatureCmd + 0x0000000000000000 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .rodata.supportedCmdsTable + 0x0000000000000000 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.GAPBondMgr_GetParameter + 0x0000000000000000 0xdc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .rodata.GAPBondMgr_GetParameter + 0x0000000000000000 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.GAPBondMgr_PasscodeRsp + 0x0000000000000000 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.GGS_GetParameter + 0x0000000000000000 0x76 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.GGS_DelService + 0x0000000000000000 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.GGS_RegisterAppCBs + 0x0000000000000000 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .text.GAPRole_PeripheralLinkNum + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .text.GAPRole_UpdateLink + 0x0000000000000000 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .text.tmos_memory_get_max_block_len + 0x0000000000000000 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .text.tmos_memory_get_free_min_len + 0x0000000000000000 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .text.ATT_ConvertUUIDto16 + 0x0000000000000000 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .text.ATT_HandleValueCfm + 0x0000000000000000 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .text.ATT_ParseHandleValueCfm + 0x0000000000000000 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .text.ll_get_prime_number + 0x0000000000000000 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .rodata.PrimeNumber + 0x0000000000000000 0x17 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .text.LL_AddrCreateOwnAddress + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .text.LL_AddrGenerateResolvableAddress + 0x0000000000000000 0xac G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .rodata 0x0000000000000000 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .text.LL_AdvertiseShut + 0x0000000000000000 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .text.LL_GetNumberOfUnAckPacket + 0x0000000000000000 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .text.LL_HopAtleastTwoChannels + 0x0000000000000000 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .text.ll_hw_timer_slave_recv_timeout + 0x0000000000000000 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .text.LL_WhitelistRemove + 0x0000000000000000 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .text 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .data 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .bss 0x0000000000000000 0x0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .text.snprintf + 0x0000000000000000 0x2e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .text.putchar 0x0000000000000000 0x1c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .text.__ashrdi3 + 0x0000000000000000 0x2c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .comment 0x0000000000000000 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .riscv.attributes + 0x0000000000000000 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_ashrdi3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .text.__divdi3 + 0x0000000000000000 0x3da d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .comment 0x0000000000000000 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .eh_frame 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .riscv.attributes + 0x0000000000000000 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_divdi3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .eh_frame 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcpy-asm.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcpy-asm.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memset.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memset.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .text._vprintf_r + 0x0000000000000000 0x36 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text.__fp_lock + 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text.__fp_unlock + 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text._cleanup + 0x0000000000000000 0x10 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text.__fp_lock_all + 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text.__fp_unlock_all + 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .text._fwalk 0x0000000000000000 0x60 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_init + 0x0000000000000000 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_close + 0x0000000000000000 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_close_recursive + 0x0000000000000000 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_acquire + 0x0000000000000000 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_try_acquire + 0x0000000000000000 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_try_acquire_recursive + 0x0000000000000000 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text.__retarget_lock_release + 0x0000000000000000 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___arc4random_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___dd_hash_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___tz_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___env_recursive_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___at_quick_exit_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .sbss.__lock___atexit_recursive_mutex + 0x0000000000000000 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .text.__ssprint_r + 0x0000000000000000 0x136 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .text.__sprint_r + 0x0000000000000000 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .text.vfprintf + 0x0000000000000000 0x16 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .text.__seofread + 0x0000000000000000 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .text.__swbuf 0x0000000000000000 0x14 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .text.fflush 0x0000000000000000 0x2c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .text.__sfvwrite_r + 0x0000000000000000 0x2ea d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .comment 0x0000000000000000 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .riscv.attributes + 0x0000000000000000 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fvwrite.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memmove.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memmove.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .text.cleanup_glue + 0x0000000000000000 0x2c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .text._reclaim_reent + 0x0000000000000000 0x10c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + .text 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + .data 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + .bss 0x0000000000000000 0x0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + +Memory Configuration + +Name Origin Length Attributes +FLASH 0x0000000000001000 0x000000000001d000 xr +RAM 0x0000000020000000 0x0000000000003000 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD ./User_Drivers/debug.o +LOAD ./User_Drivers/flash.o +LOAD ./User_Drivers/gattprofile.o +LOAD ./User_Drivers/peripheral.o +LOAD ./User_Drivers/sensor_scan.o +LOAD ./User_Drivers/uart.o +LOAD ./User/main.o +LOAD ./StdPeriphDriver/CH57x_clk.o +LOAD ./StdPeriphDriver/CH57x_cmp.o +LOAD ./StdPeriphDriver/CH57x_flash.o +LOAD ./StdPeriphDriver/CH57x_gpio.o +LOAD ./StdPeriphDriver/CH57x_i2c.o +LOAD ./StdPeriphDriver/CH57x_keyscan.o +LOAD ./StdPeriphDriver/CH57x_pwm.o +LOAD ./StdPeriphDriver/CH57x_pwr.o +LOAD ./StdPeriphDriver/CH57x_spi.o +LOAD ./StdPeriphDriver/CH57x_sys.o +LOAD ./StdPeriphDriver/CH57x_timer.o +LOAD ./StdPeriphDriver/CH57x_uart.o +LOAD ./StdPeriphDriver/CH57x_usbdev.o +LOAD ./StdPeriphDriver/CH57x_usbhostBase.o +LOAD ./StdPeriphDriver/CH57x_usbhostClass.o +LOAD ./Startup/startup_CH572.o +LOAD ./HAL/MCU.o +LOAD ./HAL/RTC.o +LOAD ./HAL/SLEEP.o +LOAD G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libm_nano.a +LOAD G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libc_nano.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a +START GROUP +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libc_nano.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a +END GROUP +START GROUP +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libc_nano.a +LOAD d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a +END GROUP + +.init 0x0000000000001000 0x4 + 0x0000000000001000 _sinit = . + 0x0000000000001000 . = ALIGN (0x4) + *(SORT_NONE(.init)) + .init 0x0000000000001000 0x4 ./Startup/startup_CH572.o + 0x0000000000001000 _start + 0x0000000000001004 . = ALIGN (0x4) + 0x0000000000001004 _einit = . + +.highcode_initlalign + 0x0000000000001004 0x0 + 0x0000000000001004 . = ALIGN (0x4) + [!provide] PROVIDE (_highcode_init_lma = .) + +.highcodelalign + 0x0000000000001004 0x0 + 0x0000000000001004 . = ALIGN (0x4) + 0x0000000000001004 PROVIDE (_highcode_lma = .) + +.highcode 0x0000000020000000 0x1014 load address 0x0000000000001004 + 0x0000000020000000 . = ALIGN (0x4) + 0x0000000020000000 PROVIDE (_highcode_vma_start = .) + 0x0000000020000000 . = ALIGN (0x400) + *(.vector) + .vector 0x0000000020000000 0x90 ./Startup/startup_CH572.o + 0x0000000020000000 _vector_base + *(.highcode) + *(.highcode.*) + .highcode.SysTick_Handler + 0x0000000020000090 0x60 ./User_Drivers/debug.o + 0x0000000020000090 SysTick_Handler + .highcode.UART_IRQHandler + 0x00000000200000f0 0xb4 ./User_Drivers/uart.o + 0x00000000200000f0 UART_IRQHandler + .highcode.SetSysClock + 0x00000000200001a4 0x240 ./StdPeriphDriver/CH57x_sys.o + 0x00000000200001a4 SetSysClock + .highcode.SYS_ResetExecute + 0x00000000200003e4 0x5e ./StdPeriphDriver/CH57x_sys.o + 0x00000000200003e4 SYS_ResetExecute + .highcode.HardFault_Handler + 0x0000000020000442 0x84 ./StdPeriphDriver/CH57x_sys.o + 0x0000000020000442 HardFault_Handler + .highcode.SYS_GetClockValue + 0x00000000200004c6 0x18 ./HAL/RTC.o + .highcode.SYS_SetPendingIRQ + 0x00000000200004de 0xe ./HAL/RTC.o + .highcode.RTC_IRQHandler + 0x00000000200004ec 0x16 ./HAL/RTC.o + 0x00000000200004ec RTC_IRQHandler + .highcode.FLASH_ROM_BEG_FF + 0x0000000020000502 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x0000000020000502 FLASH_ROM_BEG_FF + .highcode.FLASH_ROM_BEG + 0x0000000020000536 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x0000000020000536 FLASH_ROM_BEG + .highcode.FLASH_ROM_END + 0x000000002000054a 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x000000002000054a FLASH_ROM_END + .highcode.FLASH_ROM_IN + 0x0000000020000558 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x0000000020000558 FLASH_ROM_IN + .highcode.FLASH_ROM_OUT + 0x0000000020000566 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x0000000020000566 FLASH_ROM_OUT + .highcode.FLASH_ROM_ADDR + 0x0000000020000574 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x0000000020000574 FLASH_ROM_ADDR + .highcode.FLASH_ROM_WAIT + 0x00000000200005bc 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000200005bc FLASH_ROM_WAIT + .highcode.FLASH_START + 0x00000000200005f4 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000200005f4 FLASH_START + .highcode.FLASH_CMD_ROM_WRITE + 0x000000002000062a 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x000000002000062a FLASH_CMD_ROM_WRITE + .highcode.FLASH_CMD_ROM_ERASE + 0x000000002000068a 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x000000002000068a FLASH_CMD_ROM_ERASE + .highcode.FLASH_CMD_ROM_VERIFY + 0x00000000200006fc 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000200006fc FLASH_CMD_ROM_VERIFY + .highcode.FLASH_CMD_ROM_PWR + 0x000000002000074c 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x000000002000074c FLASH_CMD_ROM_PWR + .highcode.FLASH_CMD_GET_ROM_INFO + 0x000000002000075e 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x000000002000075e FLASH_CMD_GET_ROM_INFO + .highcode.FLASH_CMD_GET_UNIQUE_ID + 0x00000000200007be 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000200007be FLASH_CMD_GET_UNIQUE_ID + .highcode.FLASH_CMD_ROM_SW_RESET + 0x00000000200007fc 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000200007fc FLASH_CMD_ROM_SW_RESET + .highcode.tmos_rand + 0x0000000020000816 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000020000816 tmos_rand + .highcode.tmos_memcpy + 0x000000002000085c 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000002000085c tmos_memcpy + .highcode.tmos_memset + 0x000000002000089a 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000002000089a tmos_memset + .highcode.tmos_memcmp + 0x00000000200008da 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200008da tmos_memcmp + .highcode.TMOS_SystemProcess + 0x0000000020000926 0x1c4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000020000926 TMOS_SystemProcess + .highcode.clockGetHSEValue + 0x0000000020000aea 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .highcode.BB_IRQLibHandler + 0x0000000020000b1a 0x88 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + 0x0000000020000b1a BB_IRQLibHandler + .highcode.BB_IRQLibFunction + 0x0000000020000ba2 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + 0x0000000020000ba2 BB_IRQLibFunction + .highcode.ll_rx_wait_finish + 0x0000000020000ba8 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000020000ba8 ll_rx_wait_finish + .highcode.ll_rx_start + 0x0000000020000bc6 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000020000bc6 ll_rx_start + .highcode.ble_ll_chkcrc + 0x0000000020000c38 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000020000c38 ble_ll_chkcrc + .highcode.ll_tx_wait_finish + 0x0000000020000c9c 0xf6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000020000c9c ll_tx_wait_finish + .highcode.LLE_IRQLibHandler + 0x0000000020000d92 0x128 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x0000000020000d92 LLE_IRQLibHandler + .highcode.LLE_IRQFIOFHandler + 0x0000000020000eba 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x0000000020000eba LLE_IRQFIOFHandler + .highcode.tmos_memory_free + 0x0000000020000ec0 0xc0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x0000000020000ec0 tmos_memory_free + .highcode.process_recv_data + 0x0000000020000f80 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000020000f80 process_recv_data + .highcode.ll_wait_connect_event + 0x0000000020000fbe 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000020000fbe ll_wait_connect_event + .highcode.LL_WhitelistLookup + 0x0000000020000fcc 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + 0x0000000020000fcc LL_WhitelistLookup + 0x0000000020001014 . = ALIGN (0x4) + *fill* 0x0000000020001012 0x2 + 0x0000000020001014 PROVIDE (_highcode_vma_end = .) + +.text 0x0000000000002018 0x181dc + 0x0000000000002018 . = ALIGN (0x4) + *(SORT_NONE(.handle_reset)) + .handle_reset 0x0000000000002018 0xba ./Startup/startup_CH572.o + 0x0000000000002018 handle_reset + *(.text) + .text 0x00000000000020d2 0x16 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcpy-asm.o) + 0x00000000000020d2 memcpy + .text 0x00000000000020e8 0x10 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memset.o) + 0x00000000000020e8 memset + .text 0x00000000000020f8 0x26 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memmove.o) + 0x00000000000020f8 memmove + *(.text.*) + .text.WDT_Init + 0x000000000000211e 0x1c ./User_Drivers/debug.o + 0x000000000000211e WDT_Init + .text.WDT_Feed + 0x000000000000213a 0x1a ./User_Drivers/debug.o + 0x000000000000213a WDT_Feed + .text._write 0x0000000000002154 0x26 ./User_Drivers/debug.o + 0x0000000000002154 _write + .text.Dbg_Println + 0x000000000000217a 0x76 ./User_Drivers/debug.o + 0x000000000000217a Dbg_Println + .text.EEPROM_CheckSum + 0x00000000000021f0 0x26 ./User_Drivers/flash.o + 0x00000000000021f0 EEPROM_CheckSum + .text.EEPROM_Read_PortInfo + 0x0000000000002216 0x86 ./User_Drivers/flash.o + 0x0000000000002216 EEPROM_Read_PortInfo + .text.EEPROM_Default_PortInfo + 0x000000000000229c 0x6e ./User_Drivers/flash.o + 0x000000000000229c EEPROM_Default_PortInfo + .text.EEPROM_Write_PortInfo + 0x000000000000230a 0xa0 ./User_Drivers/flash.o + 0x000000000000230a EEPROM_Write_PortInfo + .text.EEPROM_Read_PortGroupData + 0x00000000000023aa 0x92 ./User_Drivers/flash.o + 0x00000000000023aa EEPROM_Read_PortGroupData + .text.EEPROM_Default_PortGroupData + 0x000000000000243c 0x28 ./User_Drivers/flash.o + 0x000000000000243c EEPROM_Default_PortGroupData + .text.EEPROM_Write_PortGroupData + 0x0000000000002464 0xb8 ./User_Drivers/flash.o + 0x0000000000002464 EEPROM_Write_PortGroupData + .text.EEPROM_Read_RARDelayTim + 0x000000000000251c 0xb6 ./User_Drivers/flash.o + 0x000000000000251c EEPROM_Read_RARDelayTim + .text.EEPROM_Init + 0x00000000000025d2 0xbe ./User_Drivers/flash.o + 0x00000000000025d2 EEPROM_Init + .text.EEPROM_Write_RARDelayTim + 0x0000000000002690 0xaa ./User_Drivers/flash.o + 0x0000000000002690 EEPROM_Write_RARDelayTim + .text.simpleProfile_ReadAttrCB + 0x000000000000273a 0x6e ./User_Drivers/gattprofile.o + .text.simpleProfile_WriteAttrCB + 0x00000000000027a8 0xaa ./User_Drivers/gattprofile.o + .text.simpleProfile_HandleConnStatusCB + 0x0000000000002852 0x3e ./User_Drivers/gattprofile.o + .text.SimpleProfile_AddService + 0x0000000000002890 0x4c ./User_Drivers/gattprofile.o + 0x0000000000002890 SimpleProfile_AddService + .text.SimpleProfile_RegisterAppCBs + 0x00000000000028dc 0xe ./User_Drivers/gattprofile.o + 0x00000000000028dc SimpleProfile_RegisterAppCBs + .text.SimpleProfile_SetParameter + 0x00000000000028ea 0x8a ./User_Drivers/gattprofile.o + 0x00000000000028ea SimpleProfile_SetParameter + .text.simpleProfile_Notify + 0x0000000000002974 0x40 ./User_Drivers/gattprofile.o + 0x0000000000002974 simpleProfile_Notify + .text.peripheralRssiCB + 0x00000000000029b4 0x2 ./User_Drivers/peripheral.o + .text.peripheralChar4Notify + 0x00000000000029b6 0x72 ./User_Drivers/peripheral.o + .text.simpleProfileChangeCB + 0x0000000000002a28 0x76 ./User_Drivers/peripheral.o + .text.peripheralParamUpdateCB + 0x0000000000002a9e 0x2c ./User_Drivers/peripheral.o + .text.Peripheral_LinkTerminated + 0x0000000000002aca 0x80 ./User_Drivers/peripheral.o + .text.peripheralStateNotificationCB + 0x0000000000002b4a 0x16c ./User_Drivers/peripheral.o + .text.Peripheral_Init + 0x0000000000002cb6 0x17c ./User_Drivers/peripheral.o + 0x0000000000002cb6 Peripheral_Init + .text.Ble_Printfln + 0x0000000000002e32 0x4a ./User_Drivers/peripheral.o + 0x0000000000002e32 Ble_Printfln + .text.Ble_Buff_Print + 0x0000000000002e7c 0x6 ./User_Drivers/peripheral.o + 0x0000000000002e7c Ble_Buff_Print + .text.Jump_OTA + 0x0000000000002e82 0x40 ./User_Drivers/peripheral.o + 0x0000000000002e82 Jump_OTA + .text.Peripheral_ProcessEvent + 0x0000000000002ec2 0x16c ./User_Drivers/peripheral.o + 0x0000000000002ec2 Peripheral_ProcessEvent + .text.Peripheral_GetBLEState + 0x000000000000302e 0x6 ./User_Drivers/peripheral.o + 0x000000000000302e Peripheral_GetBLEState + .text.Sensor_Init + 0x0000000000003034 0xc6 ./User_Drivers/sensor_scan.o + 0x0000000000003034 Sensor_Init + .text.CRC16 0x00000000000030fa 0x3e ./User_Drivers/sensor_scan.o + 0x00000000000030fa CRC16 + .text.Get_Port_State + 0x0000000000003138 0x60 ./User_Drivers/sensor_scan.o + 0x0000000000003138 Get_Port_State + .text.DIP_ScanTask + 0x0000000000003198 0xe6 ./User_Drivers/sensor_scan.o + 0x0000000000003198 DIP_ScanTask + .text.Get_DETCH_State + 0x000000000000327e 0x2a ./User_Drivers/sensor_scan.o + 0x000000000000327e Get_DETCH_State + .text.FZL_CtrlOut + 0x00000000000032a8 0xa8 ./User_Drivers/sensor_scan.o + 0x00000000000032a8 FZL_CtrlOut + .text.DetWin_WriteData + 0x0000000000003350 0x16 ./User_Drivers/sensor_scan.o + 0x0000000000003350 DetWin_WriteData + .text.DetWin_WriteData_Bit + 0x0000000000003366 0x52 ./User_Drivers/sensor_scan.o + 0x0000000000003366 DetWin_WriteData_Bit + .text.DetWin_ReadData_Bit + 0x00000000000033b8 0x42 ./User_Drivers/sensor_scan.o + 0x00000000000033b8 DetWin_ReadData_Bit + .text.Blv_CardlessPower_Tack + 0x00000000000033fa 0x1018 ./User_Drivers/sensor_scan.o + 0x00000000000033fa Blv_CardlessPower_Tack + .text.Dev_VirtualCard_InType_Get + 0x0000000000004412 0x44 ./User_Drivers/sensor_scan.o + 0x0000000000004412 Dev_VirtualCard_InType_Get + .text.Action_Task + 0x0000000000004456 0x1d4 ./User_Drivers/sensor_scan.o + 0x0000000000004456 Action_Task + .text.NetCRC16_Data + 0x000000000000462a 0x4a ./User_Drivers/sensor_scan.o + 0x000000000000462a NetCRC16_Data + .text.NoCard_Reply_Packing_Processing + 0x0000000000004674 0x52 ./User_Drivers/sensor_scan.o + 0x0000000000004674 NoCard_Reply_Packing_Processing + .text.NoCard_Set_PortInfo_Processing + 0x00000000000046c6 0xcc ./User_Drivers/sensor_scan.o + 0x00000000000046c6 NoCard_Set_PortInfo_Processing + .text.NoCard_Read_Version_Processing + 0x0000000000004792 0x5a ./User_Drivers/sensor_scan.o + 0x0000000000004792 NoCard_Read_Version_Processing + .text.NoCard_Set_CondGpJd_Processing + 0x00000000000047ec 0xd6 ./User_Drivers/sensor_scan.o + 0x00000000000047ec NoCard_Set_CondGpJd_Processing + .text.NoCard_Set_Printf_Processing + 0x00000000000048c2 0x20 ./User_Drivers/sensor_scan.o + 0x00000000000048c2 NoCard_Set_Printf_Processing + .text.NoCard_Set_RDR_Processing + 0x00000000000048e2 0x80 ./User_Drivers/sensor_scan.o + 0x00000000000048e2 NoCard_Set_RDR_Processing + .text.NoCard_Set_RDRPara_Processing + 0x0000000000004962 0x12a ./User_Drivers/sensor_scan.o + 0x0000000000004962 NoCard_Set_RDRPara_Processing + .text.print_RDRSta_Changw + 0x0000000000004a8c 0x84 ./User_Drivers/sensor_scan.o + 0x0000000000004a8c print_RDRSta_Changw + .text.print_RDRsta_Tack + 0x0000000000004b10 0xb0 ./User_Drivers/sensor_scan.o + 0x0000000000004b10 print_RDRsta_Tack + .text.BLV_DETInfo_Recv_Processing + 0x0000000000004bc0 0x186 ./User_Drivers/sensor_scan.o + 0x0000000000004bc0 BLV_DETInfo_Recv_Processing + .text.Set_Uart_recvTimeout + 0x0000000000004d46 0x36 ./User_Drivers/uart.o + 0x0000000000004d46 Set_Uart_recvTimeout + .text.UARTx_Init + 0x0000000000004d7c 0xb2 ./User_Drivers/uart.o + 0x0000000000004d7c UARTx_Init + .text.UART_RECEIVE + 0x0000000000004e2e 0x10e ./User_Drivers/uart.o + 0x0000000000004e2e UART_RECEIVE + .text.startup.main + 0x0000000000004f3c 0x8a ./User/main.o + 0x0000000000004f3c main + .text.HSECFG_Capacitance + 0x0000000000004fc6 0x50 ./StdPeriphDriver/CH57x_clk.o + 0x0000000000004fc6 HSECFG_Capacitance + .text.RTC_InitClock + 0x0000000000005016 0xea ./StdPeriphDriver/CH57x_clk.o + 0x0000000000005016 RTC_InitClock + .text.RTC_InitTime + 0x0000000000005100 0x1f8 ./StdPeriphDriver/CH57x_clk.o + 0x0000000000005100 RTC_InitTime + .text.FLASH_ROM_READ + 0x00000000000052f8 0x1c ./StdPeriphDriver/CH57x_flash.o + 0x00000000000052f8 FLASH_ROM_READ + .text.GPIOA_ModeCfg + 0x0000000000005314 0x82 ./StdPeriphDriver/CH57x_gpio.o + 0x0000000000005314 GPIOA_ModeCfg + .text.GetSysClock + 0x0000000000005396 0x5a ./StdPeriphDriver/CH57x_sys.o + 0x0000000000005396 GetSysClock + .text.SYS_GetSysTickCnt + 0x00000000000053f0 0x8 ./StdPeriphDriver/CH57x_sys.o + 0x00000000000053f0 SYS_GetSysTickCnt + .text.WWDG_ResetCfg + 0x00000000000053f8 0x58 ./StdPeriphDriver/CH57x_sys.o + 0x00000000000053f8 WWDG_ResetCfg + .text.WWDG_ClearFlag + 0x0000000000005450 0x4a ./StdPeriphDriver/CH57x_sys.o + 0x0000000000005450 WWDG_ClearFlag + .text._sbrk 0x000000000000549a 0x28 ./StdPeriphDriver/CH57x_sys.o + 0x000000000000549a _sbrk + .text.UART_BaudRateCfg + 0x00000000000054c2 0x30 ./StdPeriphDriver/CH57x_uart.o + 0x00000000000054c2 UART_BaudRateCfg + .text.UART_ByteTrigCfg + 0x00000000000054f2 0x1a ./StdPeriphDriver/CH57x_uart.o + 0x00000000000054f2 UART_ByteTrigCfg + .text.UART_INTCfg + 0x000000000000550c 0x28 ./StdPeriphDriver/CH57x_uart.o + 0x000000000000550c UART_INTCfg + .text.UART_SendString + 0x0000000000005534 0x24 ./StdPeriphDriver/CH57x_uart.o + 0x0000000000005534 UART_SendString + .text.UART_RecvString + 0x0000000000005558 0x20 ./StdPeriphDriver/CH57x_uart.o + 0x0000000000005558 UART_RecvString + .text.UART_Remap + 0x0000000000005578 0x28 ./StdPeriphDriver/CH57x_uart.o + 0x0000000000005578 UART_Remap + .text.Lib_Read_Flash + 0x00000000000055a0 0x18 ./HAL/MCU.o + 0x00000000000055a0 Lib_Read_Flash + .text.Lib_Write_Flash + 0x00000000000055b8 0x30 ./HAL/MCU.o + 0x00000000000055b8 Lib_Write_Flash + .text.HAL_ProcessEvent + 0x00000000000055e8 0x9a ./HAL/MCU.o + 0x00000000000055e8 HAL_ProcessEvent + .text.CH57x_BLEInit + 0x0000000000005682 0x158 ./HAL/MCU.o + 0x0000000000005682 CH57x_BLEInit + .text.HAL_Init + 0x00000000000057da 0x2a ./HAL/MCU.o + 0x00000000000057da HAL_Init + .text.BLE_ClockConfig + 0x0000000000005804 0x26 ./HAL/RTC.o + 0x0000000000005804 BLE_ClockConfig + .text.HAL_TimeInit + 0x000000000000582a 0x102 ./HAL/RTC.o + 0x000000000000582a HAL_TimeInit + .text.GET_WakeUpLSIMaxTime + 0x000000000000592c 0xca ./HAL/SLEEP.o + 0x000000000000592c GET_WakeUpLSIMaxTime + .text.FLASH_EEPROM_CMD + 0x00000000000059f6 0x136 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x00000000000059f6 FLASH_EEPROM_CMD + .text.tmos_msg_enqueue + 0x0000000000005b2c 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005b2c tmos_msg_enqueue + .text.tmos_msg_deallocate + 0x0000000000005b4a 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005b4a tmos_msg_deallocate + .text.tmos_msg_allocate + 0x0000000000005b9c 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005b9c tmos_msg_allocate + .text.tmos_msg_receive + 0x0000000000005bfe 0x98 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005bfe tmos_msg_receive + .text.tmos_msg_send + 0x0000000000005c96 0x92 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005c96 tmos_msg_send + .text.tmos_msg_init + 0x0000000000005d28 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x0000000000005d28 tmos_msg_init + .text.TMOS_CB_ProcessEvent + 0x0000000000005d2e 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005d2e TMOS_CB_ProcessEvent + .text.tmos_memdup + 0x0000000000005d98 0x56 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005d98 tmos_memdup + .text.tmos_get_periodic_task_time + 0x0000000000005dee 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005dee tmos_get_periodic_task_time + .text.tmos_clear_event + 0x0000000000005e12 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005e12 tmos_clear_event + .text.tmos_update_callback_timer + 0x0000000000005e52 0xce G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005e52 tmos_update_callback_timer + .text.tmos_start_task + 0x0000000000005f20 0x140 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000005f20 tmos_start_task + .text.tmos_start_callback_task + 0x0000000000006060 0xb8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000006060 tmos_start_callback_task + .text.tmos_stop_task + 0x0000000000006118 0x92 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000006118 tmos_stop_task + .text.tmos_stop_callback_task + 0x00000000000061aa 0x7a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000000061aa tmos_stop_callback_task + .text.tmos_idle + 0x0000000000006224 0xea G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000006224 tmos_idle + .text.TMOS_TimerRegister + 0x000000000000630e 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000000000630e TMOS_TimerRegister + .text.TMOS_ClockRegister + 0x0000000000006328 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000006328 TMOS_ClockRegister + .text.TMOS_Init + 0x0000000000006330 0xc4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000000006330 TMOS_Init + .text.TMOS_ProcessEventRegister + 0x00000000000063f4 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000000063f4 TMOS_ProcessEventRegister + .text.BLE_LibInit + 0x000000000000641e 0xd6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000000000641e BLE_LibInit + .text.clockGetTickValve + 0x00000000000064f4 0x80 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .text.ll_get_sca_divisor + 0x0000000000006574 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x0000000000006574 ll_get_sca_divisor + .text.ll_get_sca_own + 0x00000000000065b4 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x00000000000065b4 ll_get_sca_own + .text.ble_ll_common_rand8 + 0x00000000000065fa 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x00000000000065fa ble_ll_common_rand8 + .text.ble_ll_common_rand16 + 0x0000000000006626 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x0000000000006626 ble_ll_common_rand16 + .text.ble_ll_common_rand32 + 0x0000000000006652 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x0000000000006652 ble_ll_common_rand32 + .text.TMOS_TimerSet + 0x0000000000006678 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x0000000000006678 TMOS_TimerSet + .text.TMOS_TimerInit + 0x00000000000066aa 0xcc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x00000000000066aa TMOS_TimerInit + .text.tmos_snv_init + 0x0000000000006776 0xa2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + 0x0000000000006776 tmos_snv_init + .text.tmos_snv_read + 0x0000000000006818 0x23c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + 0x0000000000006818 tmos_snv_read + .text.tmos_snv_notify + 0x0000000000006a54 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + 0x0000000000006a54 tmos_snv_notify + .text.tmos_snv_write + 0x0000000000006aa8 0x23e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + 0x0000000000006aa8 tmos_snv_write + .text.tmos_snv_compact + 0x0000000000006ce6 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + 0x0000000000006ce6 tmos_snv_compact + .text.disconnectNext + 0x0000000000006cea 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .text.GAP_ParamInit + 0x0000000000006d0a 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006d0a GAP_ParamInit + .text.sendTerminateEvent + 0x0000000000006d5c 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006d5c sendTerminateEvent + .text.gapRegisterPeripheral + 0x0000000000006dba 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006dba gapRegisterPeripheral + .text.gapRegisterPeripheralConn + 0x0000000000006dc0 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006dc0 gapRegisterPeripheralConn + .text.smGenerateRandBuf + 0x0000000000006dc6 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006dc6 smGenerateRandBuf + .text.gapL2capConnParamUpdateReq + 0x0000000000006e1e 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006e1e gapL2capConnParamUpdateReq + .text.gapFindADType + 0x0000000000006e4e 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006e4e gapFindADType + .text.GAP_SecParamsInit + 0x0000000000006eb2 0x8a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006eb2 GAP_SecParamsInit + .text.GAP_ParamsInit + 0x0000000000006f3c 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006f3c GAP_ParamsInit + .text.gapAddAddrAdj + 0x0000000000006f8a 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006f8a gapAddAddrAdj + .text.gapDetermineAddrType + 0x0000000000006fb4 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006fb4 gapDetermineAddrType + .text.gapFreeAuthLink + 0x0000000000006fda 0x4a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000006fda gapFreeAuthLink + .text.gapGetDevAddress + 0x0000000000007024 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007024 gapGetDevAddress + .text.gapGetDevAddressMode + 0x0000000000007048 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007048 gapGetDevAddressMode + .text.gapGetIRK + 0x0000000000007052 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007052 gapGetIRK + .text.gapGetSRK + 0x000000000000705c 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000705c gapGetSRK + .text.gapGetSignCounter + 0x0000000000007066 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007066 gapGetSignCounter + .text.gapIncSignCounter + 0x0000000000007072 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007072 gapIncSignCounter + .text.gapProcessConnEvt + 0x0000000000007094 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007094 gapProcessConnEvt + .text.gapProcessDisconnectCompleteEvt + 0x00000000000070c8 0x9e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x00000000000070c8 gapProcessDisconnectCompleteEvt + .text.gapProcessRandomAddrComplete + 0x0000000000007166 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007166 gapProcessRandomAddrComplete + .text.sendAuthEvent + 0x00000000000071d0 0x122 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x00000000000071d0 sendAuthEvent + .text.gapSendBondCompleteEvent + 0x00000000000072f2 0x70 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x00000000000072f2 gapSendBondCompleteEvent + .text.gapSendPairingReqEvent + 0x0000000000007362 0xaa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007362 gapSendPairingReqEvent + .text.gapSendDeviceInitDoneEvent + 0x000000000000740c 0x70 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000740c gapSendDeviceInitDoneEvent + .text.gapSendLinkUpdateEvent + 0x000000000000747c 0x9c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000747c gapSendLinkUpdateEvent + .text.gapSendPhyUpdateEvent + 0x0000000000007518 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007518 gapSendPhyUpdateEvent + .text.gapSendEstLinkEvent + 0x0000000000007560 0xc0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007560 gapSendEstLinkEvent + .text.GAP_Authenticate + 0x0000000000007620 0xa8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007620 GAP_Authenticate + .text.GAP_Bond + 0x00000000000076c8 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x00000000000076c8 GAP_Bond + .text.GAP_GetParamValue + 0x0000000000007720 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007720 GAP_GetParamValue + .text.GAP_PasscodeUpdate + 0x000000000000773c 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000773c GAP_PasscodeUpdate + .text.GAP_RegisterForMsgs + 0x000000000000778c 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000778c GAP_RegisterForMsgs + .text.GAP_ResolvePrivateAddr + 0x0000000000007792 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007792 GAP_ResolvePrivateAddr + .text.gapPairingCompleteCB + 0x0000000000007796 0x1c6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007796 gapPairingCompleteCB + .text.gapPasskeyNeededCB + 0x000000000000795c 0x86 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x000000000000795c gapPasskeyNeededCB + .text.gapFreeEstLink + 0x00000000000079e2 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x00000000000079e2 gapFreeEstLink + .text.gapUpdateConnSignCounter + 0x0000000000007a00 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007a00 gapUpdateConnSignCounter + .text.GAP_L2capConnParamUpdateReq + 0x0000000000007a72 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007a72 GAP_L2capConnParamUpdateReq + .text.GAP_SendSlaveSecurityRequest + 0x0000000000007a88 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007a88 GAP_SendSlaveSecurityRequest + .text.GAP_Signable + 0x0000000000007ace 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007ace GAP_Signable + .text.GAP_TerminateAuth + 0x0000000000007b1a 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007b1a GAP_TerminateAuth + .text.GAP_NumActiveConnections + 0x0000000000007b44 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007b44 GAP_NumActiveConnections + .text.GAP_TerminateLinkReq + 0x0000000000007b48 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007b48 GAP_TerminateLinkReq + .text.GAP_SetParamValue + 0x0000000000007ba2 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007ba2 GAP_SetParamValue + .text.GAP_DeviceInit + 0x0000000000007bca 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007bca GAP_DeviceInit + .text.GAP_Init + 0x0000000000007c0c 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007c0c GAP_Init + .text.GAP_ProcessEvent + 0x0000000000007c58 0x394 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000000007c58 GAP_ProcessEvent + .text.gapSetAdvParams + 0x0000000000007fec 0xa0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.gapFreeAdvertState + 0x000000000000808c 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.gapPeriProcessConnEvt + 0x00000000000080aa 0xaa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.gapWriteAdvDataStatus + 0x0000000000008154 0x84 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.GAP_MakeDiscoverable + 0x00000000000081d8 0x8c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x00000000000081d8 GAP_MakeDiscoverable + .text.GAP_EndDiscoverable + 0x0000000000008264 0x5c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x0000000000008264 GAP_EndDiscoverable + .text.gapProcessAdvertisingEvt + 0x00000000000082c0 0xae G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.GAP_SetAdvertisingAdvData + 0x000000000000836e 0xbc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x000000000000836e GAP_SetAdvertisingAdvData + .text.GAP_SetAdvertisingRspData + 0x000000000000842a 0xbc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x000000000000842a GAP_SetAdvertisingRspData + .text.GAP_GetAdvertisingAdvData + 0x00000000000084e6 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x00000000000084e6 GAP_GetAdvertisingAdvData + .text.GAP_GetAdvertisingRspData + 0x0000000000008508 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x0000000000008508 GAP_GetAdvertisingRspData + .text.GAP_PeriConnRegister + 0x0000000000008536 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x0000000000008536 GAP_PeriConnRegister + .text.GAP_PeripheralParamInit + 0x0000000000008560 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x0000000000008560 GAP_PeripheralParamInit + .text.gapSendMakeDiscEvent + 0x00000000000085a8 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x00000000000085a8 gapSendMakeDiscEvent + .text.gapPeriProcessHCICmdCompleteEvt + 0x00000000000085f0 0x144 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .text.GAP_PeriDevMgrInit + 0x0000000000008734 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + 0x0000000000008734 GAP_PeriDevMgrInit + .text.gattGetPayload + 0x0000000000008762 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008762 gattGetPayload + .text.gattNotifyEvent + 0x00000000000087b0 0x82 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x00000000000087b0 gattNotifyEvent + .text.gattSendFlowCtrlEvt + 0x0000000000008832 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008832 gattSendFlowCtrlEvt + .text.gattStartTimer + 0x000000000000885e 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x000000000000885e gattStartTimer + .text.gattStopTimer + 0x000000000000886a 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x000000000000886a gattStopTimer + .text.GATT_AppCompletedMsg + 0x0000000000008890 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008890 GATT_AppCompletedMsg + .text.GATT_ExchangeMTU + 0x00000000000088b8 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x00000000000088b8 GATT_ExchangeMTU + .text.GATT_NotifyEvent + 0x0000000000008900 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008900 GATT_NotifyEvent + .text.gattRegisterClient + 0x0000000000008940 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008940 gattRegisterClient + .text.gattRegisterServer + 0x0000000000008946 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008946 gattRegisterServer + .text.GATT_UpdateMTU + 0x000000000000894c 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x000000000000894c GATT_UpdateMTU + .text.GATT_bm_alloc + 0x000000000000898c 0xf0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x000000000000898c GATT_bm_alloc + .text.GATT_ServiceChangedInd + 0x0000000000008a7c 0x86 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008a7c GATT_ServiceChangedInd + .text.GATT_bm_free + 0x0000000000008b02 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008b02 GATT_bm_free + .text.GATT_Init + 0x0000000000008b1e 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008b1e GATT_Init + .text.GATT_ProcessEvent + 0x0000000000008b44 0x152 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000000008b44 GATT_ProcessEvent + .text.gattFindClientInfo + 0x0000000000008c96 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008c96 gattFindClientInfo + .text.gattClientNotifyTxCB + 0x0000000000008cc0 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008cc0 gattClientNotifyTxCB + .text.gattGetClientStatus + 0x0000000000008ce6 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008ce6 gattGetClientStatus + .text.gattResetClientInfo + 0x0000000000008d1c 0x80 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008d1c gattResetClientInfo + .text.gattClientHandleConnStatusCB + 0x0000000000008d9c 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008d9c gattClientHandleConnStatusCB + .text.gattClientHandleTimerCB + 0x0000000000008e2a 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008e2a gattClientHandleTimerCB + .text.gattClientProcessMsgCB + 0x0000000000008e66 0xfe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008e66 gattClientProcessMsgCB + .text.gattStoreClientInfo + 0x0000000000008f64 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008f64 gattStoreClientInfo + .text.GATT_InitClient + 0x0000000000008fd6 0xc2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x0000000000008fd6 GATT_InitClient + .text.gattProcessExchangeMTUReq + 0x0000000000009098 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattServApp_FindCharCfgItem + 0x000000000000909c 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattServerHandleTimerCB + 0x00000000000090be 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_InitCharCfg.part.0 + 0x00000000000090ee 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattProcessExecuteWriteReq + 0x0000000000009108 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATTServApp_ParamInit + 0x000000000000910c 0xb4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000910c GATTServApp_ParamInit + .text.GATTServApp_ReadCharCfg + 0x00000000000091c0 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000091c0 GATTServApp_ReadCharCfg + .text.GATTServApp_WriteCharCfg + 0x00000000000091d6 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000091d6 GATTServApp_WriteCharCfg + .text.GATTServApp_ProcessCCCWriteReq + 0x0000000000009210 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009210 GATTServApp_ProcessCCCWriteReq + .text.gattServApp_WriteAttrCB + 0x0000000000009264 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009264 gattServApp_WriteAttrCB + .text.GATTServApp_SendCCCUpdatedEvent + 0x0000000000009290 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009290 GATTServApp_SendCCCUpdatedEvent + .text.GATTServApp_SendServiceChangedInd + 0x00000000000092f0 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000092f0 GATTServApp_SendServiceChangedInd + .text.gattServApp_ClearPrepareWriteQ + 0x0000000000009324 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009324 gattServApp_ClearPrepareWriteQ + .text.gattServApp_FindPrepareWriteQ + 0x0000000000009370 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009370 gattServApp_FindPrepareWriteQ + .text.gattServApp_FindServiceCBs + 0x000000000000939a 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000939a gattServApp_FindServiceCBs + .text.gattServApp_FindAuthorizeAttrCB + 0x00000000000093b2 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000093b2 gattServApp_FindAuthorizeAttrCB + .text.gattServApp_IsWriteLong + 0x00000000000093c8 0xf4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000093c8 gattServApp_IsWriteLong + .text.gattFindService + 0x00000000000094bc 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000094bc gattFindService + .text.GATT_ServiceNumAttrs + 0x00000000000094d6 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000094d6 GATT_ServiceNumAttrs + .text.GATT_ServiceEncKeySize + 0x00000000000094ec 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000094ec GATT_ServiceEncKeySize + .text.gattResetServerInfo + 0x0000000000009502 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009502 gattResetServerInfo + .text.gattFindServerInfo + 0x000000000000951c 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000951c gattFindServerInfo + .text.gattServerHandleConnStatusCB + 0x000000000000953c 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000953c gattServerHandleConnStatusCB + .text.gattServerProcessMsgCB + 0x00000000000095ca 0x184 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000095ca gattServerProcessMsgCB + .text.gattServerNotifyTxCB + 0x000000000000974e 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_FindHandle + 0x0000000000009774 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009774 GATT_FindHandle + .text.GATTServApp_WriteAttr + 0x00000000000097ba 0xa4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x00000000000097ba GATTServApp_WriteAttr + .text.gattServApp_ProcessExecuteWriteReq + 0x000000000000985e 0x10c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000985e gattServApp_ProcessExecuteWriteReq + .text.GATTServApp_UpdateCharCfg + 0x000000000000996a 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000996a GATTServApp_UpdateCharCfg + .text.gattServApp_ProcessPrepareWriteReq + 0x0000000000009986 0xee G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009986 gattServApp_ProcessPrepareWriteReq + .text.gattServApp_ProcessWriteReq + 0x0000000000009a74 0x96 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009a74 gattServApp_ProcessWriteReq + .text.GATT_Indication + 0x0000000000009b0a 0xa4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009b0a GATT_Indication + .text.GATT_FindHandleUUID + 0x0000000000009bae 0x88 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009bae GATT_FindHandleUUID + .text.gattProcessReadByGrpTypeReq + 0x0000000000009c36 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattProcessReadByTypeReq + 0x0000000000009c82 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattProcessFindByTypeValueReq + 0x0000000000009cb0 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattProcessFindInfoReq + 0x0000000000009cde 0x16e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_Notification + 0x0000000000009e4c 0x74 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009e4c GATT_Notification + .text.GATT_VerifyWritePermissions + 0x0000000000009ec0 0x76 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009ec0 GATT_VerifyWritePermissions + .text.gattProcessWriteReq + 0x0000000000009f36 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_VerifyPrepareWritePermissions + 0x0000000000009f6a 0x6c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000009f6a GATT_VerifyPrepareWritePermissions + .text.gattProcessPrepareWriteReq + 0x0000000000009fd6 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.GATT_FindNextAttr + 0x000000000000a00a 0xa8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a00a GATT_FindNextAttr + .text.GATTServApp_ReadAttr + 0x000000000000a0b2 0x2b2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a0b2 GATTServApp_ReadAttr + .text.gattServApp_ProcessReadMultiReq + 0x000000000000a364 0x152 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a364 gattServApp_ProcessReadMultiReq + .text.gattServApp_ProcessFindByTypeValueReq + 0x000000000000a4b6 0x184 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a4b6 gattServApp_ProcessFindByTypeValueReq + .text.GATT_VerifyReadPermissions + 0x000000000000a63a 0x68 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a63a GATT_VerifyReadPermissions + .text.gattProcessReadMultiReq + 0x000000000000a6a2 0x9a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattProcessReadReq + 0x000000000000a73c 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .text.gattServApp_ProcessReadByGrpTypeReq + 0x000000000000a76c 0x1ce G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a76c gattServApp_ProcessReadByGrpTypeReq + .text.gattServApp_ProcessReadByTypeReq + 0x000000000000a93a 0x172 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000a93a gattServApp_ProcessReadByTypeReq + .text.GATT_RegisterService + 0x000000000000aaac 0xe0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000aaac GATT_RegisterService + .text.GATTServApp_RegisterService + 0x000000000000ab8c 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000ab8c GATTServApp_RegisterService + .text.GATTServApp_AddService + 0x000000000000abf6 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000abf6 GATTServApp_AddService + .text.GATTServApp_RegisterForMsg + 0x000000000000ac22 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000ac22 GATTServApp_RegisterForMsg + .text.GATTServApp_InitCharCfg + 0x000000000000ac28 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000ac28 GATTServApp_InitCharCfg + .text.gattServApp_HandleConnStatusCB + 0x000000000000ac4e 0x6e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000ac4e gattServApp_HandleConnStatusCB + .text.GATT_InitServer + 0x000000000000acbc 0xe8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000acbc GATT_InitServer + .text.GATTServApp_Init + 0x000000000000ada4 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000ada4 GATTServApp_Init + .text.GATTServApp_ProcessEvent + 0x000000000000add6 0x2e4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x000000000000add6 GATTServApp_ProcessEvent + .text.l2capHandleConnStatusCB + 0x000000000000b0ba 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b0ba l2capHandleConnStatusCB + .text.l2capFreeChannel + 0x000000000000b0bc 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b0bc l2capFreeChannel + .text.l2capHandleTimerCB + 0x000000000000b108 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b108 l2capHandleTimerCB + .text.l2capFreePendingPkt + 0x000000000000b130 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b130 l2capFreePendingPkt + .text.l2capHandleRxError + 0x000000000000b182 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b182 l2capHandleRxError + .text.l2capStartTimer + 0x000000000000b184 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b184 l2capStartTimer + .text.l2capStopTimer + 0x000000000000b19e 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b19e l2capStopTimer + .text.L2CAP_GetMTU + 0x000000000000b1b8 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b1b8 L2CAP_GetMTU + .text.L2CAP_HostNumCompletedPkts + 0x000000000000b1be 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b1be L2CAP_HostNumCompletedPkts + .text.L2CAP_RegisterApp + 0x000000000000b1c0 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b1c0 L2CAP_RegisterApp + .text.L2CAP_SetBufSize + 0x000000000000b1ea 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b1ea L2CAP_SetBufSize + .text.L2CAP_bm_alloc + 0x000000000000b202 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b202 L2CAP_bm_alloc + .text.L2CAP_Init + 0x000000000000b228 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b228 L2CAP_Init + .text.L2CAP_ProcessEvent + 0x000000000000b2a4 0xb6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x000000000000b2a4 L2CAP_ProcessEvent + .text.l2capParseCmdReject + 0x000000000000b35a 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b35a l2capParseCmdReject + .text.L2CAP_ParseParamUpdateReq + 0x000000000000b39c 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b39c L2CAP_ParseParamUpdateReq + .text.l2capParseSignalHdr + 0x000000000000b3d2 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b3d2 l2capParseSignalHdr + .text.l2capParsePacket + 0x000000000000b3e6 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b3e6 l2capParsePacket + .text.l2capProcessReq + 0x000000000000b446 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b446 l2capProcessReq + .text.l2capProcessRsp + 0x000000000000b4a0 0x9e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b4a0 l2capProcessRsp + .text.l2capProcessRxData + 0x000000000000b53e 0xda G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + 0x000000000000b53e l2capProcessRxData + .text.l2capNotifyData + 0x000000000000b618 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b618 l2capNotifyData + .text.l2capNotifySignal + 0x000000000000b676 0x8a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b676 l2capNotifySignal + .text.l2capNotifyEvent + 0x000000000000b700 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b700 l2capNotifyEvent + .text.l2capStoreFCPkt + 0x000000000000b732 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b732 l2capStoreFCPkt + .text.l2capEncapSendData + 0x000000000000b75c 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b75c l2capEncapSendData + .text.l2capSendFCPkt.part.0 + 0x000000000000b7ea 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .text.L2CAP_SendData + 0x000000000000b84c 0x80 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b84c L2CAP_SendData + .text.l2capSendCmd + 0x000000000000b8cc 0x8a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b8cc l2capSendCmd + .text.l2capSendReq + 0x000000000000b956 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b956 l2capSendReq + .text.l2capSendPkt + 0x000000000000b9bc 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + 0x000000000000b9bc l2capSendPkt + .text.l2capBuildParamUpdateReq + 0x000000000000b9ec 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .text.l2capBuildCmdReject + 0x000000000000ba18 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + 0x000000000000ba18 l2capBuildCmdReject + .text.L2CAP_CmdReject + 0x000000000000ba58 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + 0x000000000000ba58 L2CAP_CmdReject + .text.L2CAP_ConnParamUpdateReq + 0x000000000000ba6a 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + 0x000000000000ba6a L2CAP_ConnParamUpdateReq + .text.reportStatusChange + 0x000000000000ba80 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .text.linkDB_Init + 0x000000000000babe 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000babe linkDB_Init + .text.linkDB_Find + 0x000000000000bb30 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bb30 linkDB_Find + .text.linkDB_Authen + 0x000000000000bb5a 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bb5a linkDB_Authen + .text.linkDB_FindByAddr + 0x000000000000bbba 0x7e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bbba linkDB_FindByAddr + .text.linkDB_FindFirst + 0x000000000000bc38 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bc38 linkDB_FindFirst + .text.linkDB_MTU + 0x000000000000bc6e 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bc6e linkDB_MTU + .text.linkDB_NumActive + 0x000000000000bc84 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bc84 linkDB_NumActive + .text.linkDB_NumConns + 0x000000000000bcae 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bcae linkDB_NumConns + .text.linkDB_Register + 0x000000000000bcb4 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bcb4 linkDB_Register + .text.linkDB_Remove + 0x000000000000bcd4 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bcd4 linkDB_Remove + .text.linkDB_Role + 0x000000000000bd1c 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bd1c linkDB_Role + .text.linkDB_State + 0x000000000000bd32 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bd32 linkDB_State + .text.linkDB_UpdateMTU + 0x000000000000bd60 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bd60 linkDB_UpdateMTU + .text.linkDB_PerformFunc + 0x000000000000bd88 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bd88 linkDB_PerformFunc + .text.linkDB_PeripheralLinkNum + 0x000000000000bde0 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bde0 linkDB_PeripheralLinkNum + .text.linkDB_GetSMEvtID + 0x000000000000be18 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000be18 linkDB_GetSMEvtID + .text.linkDB_Add + 0x000000000000be68 0xaa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000be68 linkDB_Add + .text.linkDB_GetHandleFromSMEvtID + 0x000000000000bf12 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bf12 linkDB_GetHandleFromSMEvtID + .text.linkDB_GetPairingParam + 0x000000000000bf3e 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bf3e linkDB_GetPairingParam + .text.linkDB_NeedSendKey + 0x000000000000bf7c 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000000000bf7c linkDB_NeedSendKey + .text.smStartRspTimer + 0x000000000000bfba 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .text.smFreePairingParams + 0x000000000000bfee 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000bfee smFreePairingParams + .text.smEndPairing + 0x000000000000c058 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c058 smEndPairing + .text.smLinkCheck + 0x000000000000c0bc 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c0bc smLinkCheck + .text.smNextPairingState + 0x000000000000c0f2 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c0f2 smNextPairingState + .text.smProcessEncryptChange + 0x000000000000c130 0x8c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c130 smProcessEncryptChange + .text.smSendSMMsg + 0x000000000000c1bc 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c1bc smSendSMMsg + .text.smSendFailAndEnd + 0x000000000000c216 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c216 smSendFailAndEnd + .text.smProcessPairingReq + 0x000000000000c24c 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c24c smProcessPairingReq + .text.smSetPairingReqRsp + 0x000000000000c278 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c278 smSetPairingReqRsp + .text.sm_c1 0x000000000000c2a4 0x76 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c2a4 sm_c1 + .text.smDetermineKeySize + 0x000000000000c31a 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c31a smDetermineKeySize + .text.smpParsePairingReq + 0x000000000000c338 0xee G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c338 smpParsePairingReq + .text.smpParseIdentityAddrInfo + 0x000000000000c426 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c426 smpParseIdentityAddrInfo + .text.smpParseMasterID + 0x000000000000c458 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c458 smpParseMasterID + .text.smpParsePairingConfirm + 0x000000000000c490 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c490 smpParsePairingConfirm + .text.smpParsePairingFailed + 0x000000000000c4bc 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c4bc smpParsePairingFailed + .text.smProcessDataMsg + 0x000000000000c4d6 0xa4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c4d6 smProcessDataMsg + .text.smProcessTMOSMsg + 0x000000000000c57a 0x12e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c57a smProcessTMOSMsg + .text.SM_GenerateAuthenSig + 0x000000000000c6a8 0xd2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c6a8 SM_GenerateAuthenSig + .text.SM_PasskeyUpdate + 0x000000000000c77a 0xb2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c77a SM_PasskeyUpdate + .text.SM_ResolveRandomAddrs + 0x000000000000c82c 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c82c SM_ResolveRandomAddrs + .text.SM_StartPairing + 0x000000000000c886 0xa0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c886 SM_StartPairing + .text.SM_VerifyAuthenSig + 0x000000000000c926 0x132 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000c926 SM_VerifyAuthenSig + .text.SM_ProcessEvent + 0x000000000000ca58 0xa2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000ca58 SM_ProcessEvent + .text.SM_Init 0x000000000000cafa 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x000000000000cafa SM_Init + .text.smpBuildPairingReqRsp + 0x000000000000cb1c 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .text.smpBuildPairingRsp + 0x000000000000cbaa 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cbaa smpBuildPairingRsp + .text.smpBuildPairingConfirm + 0x000000000000cbb4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cbb4 smpBuildPairingConfirm + .text.smpBuildPairingRandom + 0x000000000000cbe4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cbe4 smpBuildPairingRandom + .text.smpBuildEncInfo + 0x000000000000cc14 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cc14 smpBuildEncInfo + .text.smpBuildMasterID + 0x000000000000cc44 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cc44 smpBuildMasterID + .text.smpBuildIdentityInfo + 0x000000000000cc80 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cc80 smpBuildIdentityInfo + .text.smpBuildIdentityAddrInfo + 0x000000000000ccb0 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000ccb0 smpBuildIdentityAddrInfo + .text.smpBuildSigningInfo + 0x000000000000cce6 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cce6 smpBuildSigningInfo + .text.smpBuildPairingReq + 0x000000000000cd16 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cd16 smpBuildPairingReq + .text.smpBuildPairingFailed + 0x000000000000cd20 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cd20 smpBuildPairingFailed + .text.smpBuildSecurityReq + 0x000000000000cd36 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cd36 smpBuildSecurityReq + .text.smGeneratePairingRsp + 0x000000000000cd4c 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cd4c smGeneratePairingRsp + .text.smGenerateConfirm + 0x000000000000cd7a 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cd7a smGenerateConfirm + .text.smGenerateRandMsg + 0x000000000000cdac 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cdac smGenerateRandMsg + .text.smPairingSendEncInfo + 0x000000000000cdde 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cdde smPairingSendEncInfo + .text.smPairingSendIdentityAddrInfo + 0x000000000000cdee 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000cdee smPairingSendIdentityAddrInfo + .text.smPairingSendIdentityInfo + 0x000000000000ce24 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000ce24 smPairingSendIdentityInfo + .text.smPairingSendMasterID + 0x000000000000ce34 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000ce34 smPairingSendMasterID + .text.smPairingSendSingingInfo + 0x000000000000ce6a 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + 0x000000000000ce6a smPairingSendSingingInfo + .text.smResponderSendNextKeyInfo + 0x000000000000ce7a 0x212 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + 0x000000000000ce7a smResponderSendNextKeyInfo + .text.smResponderProcessLTKReq + 0x000000000000d08c 0x130 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + 0x000000000000d08c smResponderProcessLTKReq + .text.smpResponderProcessIncoming + 0x000000000000d1bc 0x402 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + 0x000000000000d1bc smpResponderProcessIncoming + .text.xor_128 0x000000000000d5be 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d5be xor_128 + .text.leftshift_onebit + 0x000000000000d5e4 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d5e4 leftshift_onebit + .text.padding 0x000000000000d608 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d608 padding + .text.generate_subkey + 0x000000000000d634 0xd8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d634 generate_subkey + .text.sm_xor 0x000000000000d70c 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d70c sm_xor + .text.sm_ah 0x000000000000d72c 0x80 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d72c sm_ah + .text.sm_c1new + 0x000000000000d7ac 0x122 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d7ac sm_c1new + .text.sm_s1 0x000000000000d8ce 0x82 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d8ce sm_s1 + .text.sm_CMAC 0x000000000000d950 0x182 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x000000000000d950 sm_CMAC + .text.HOST_LE_ConnectionCompleteEvent + 0x000000000000dad2 0x5c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dad2 HOST_LE_ConnectionCompleteEvent + .text.HOST_LE_ConnectionUpdateCompleteEvent + 0x000000000000db2e 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000db2e HOST_LE_ConnectionUpdateCompleteEvent + .text.HOST_LE_ReadRemoteUsedFeaturesCompleteEvent + 0x000000000000db70 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000db70 HOST_LE_ReadRemoteUsedFeaturesCompleteEvent + .text.HOST_LE_LongTermKeyRequestEvent + 0x000000000000dbd2 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dbd2 HOST_LE_LongTermKeyRequestEvent + .text.HOST_LE_RemoteConnectionParameterRequestEvent + 0x000000000000dc2c 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dc2c HOST_LE_RemoteConnectionParameterRequestEvent + .text.HOST_RemoteConnectionParameterRequestEvent + 0x000000000000dc6e 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dc6e HOST_RemoteConnectionParameterRequestEvent + .text.HOST_LE_DataLengthChangeEvent + 0x000000000000dcb6 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dcb6 HOST_LE_DataLengthChangeEvent + .text.HOST_LE_PHYUpdateCompleteReportEvent + 0x000000000000dcf8 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dcf8 HOST_LE_PHYUpdateCompleteReportEvent + .text.HOST_LE_ScanRequestReceivedEvent + 0x000000000000dd50 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dd50 HOST_LE_ScanRequestReceivedEvent + .text.HOST_DisconnectionCompleteEvent + 0x000000000000ddb6 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000ddb6 HOST_DisconnectionCompleteEvent + .text.HOST_EncryptionChangeEvent + 0x000000000000ddfc 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000ddfc HOST_EncryptionChangeEvent + .text.HOST_ReadRemoteVersionInfoEvent + 0x000000000000de48 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000de48 HOST_ReadRemoteVersionInfoEvent + .text.HOST_CommandCompleteEvent + 0x000000000000de86 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000de86 HOST_CommandCompleteEvent + .text.HOST_CommandStatusEvent + 0x000000000000dee0 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dee0 HOST_CommandStatusEvent + .text.HOST_EncryptionKeyRefreshCompleteEvent + 0x000000000000df20 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000df20 HOST_EncryptionKeyRefreshCompleteEvent + .text.HOST_NumberOfCompletedPacketsEvent + 0x000000000000df62 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000df62 HOST_NumberOfCompletedPacketsEvent + .text.HOST_RecvDataPackets + 0x000000000000dfa2 0x206 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x000000000000dfa2 HOST_RecvDataPackets + .text.AES_DevAESEnc + 0x000000000000e1a8 0x178 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + 0x000000000000e1a8 AES_DevAESEnc + .text.LL_Encrypt + 0x000000000000e320 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + 0x000000000000e320 LL_Encrypt + .text.AES_DevPktEnc + 0x000000000000e352 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + 0x000000000000e352 AES_DevPktEnc + .text.AES_DevPktDec + 0x000000000000e3b4 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + 0x000000000000e3b4 AES_DevPktDec + .text.GetTxPower + 0x000000000000e416 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000000e416 GetTxPower + .text.SetTxPower + 0x000000000000e47c 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000000e47c SetTxPower + .text.ble_ll_set_timeout + 0x000000000000e4d6 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000000e4d6 ble_ll_set_timeout + .text.BLE_RegInit + 0x000000000000e4f8 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000000e4f8 BLE_RegInit + .text.BLE_IPCoreInit + 0x000000000000e55e 0x78 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000000e55e BLE_IPCoreInit + .text.RFEND_DevInit + 0x000000000000e5d6 0x7a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000000e5d6 RFEND_DevInit + .text.RFEND_RXFilter + 0x000000000000e650 0x8c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000000e650 RFEND_RXFilter + .text.RFEND_RXAdc + 0x000000000000e6dc 0x36 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000000e6dc RFEND_RXAdc + .text.RFEND_TXCtune + 0x000000000000e712 0xc50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000000e712 RFEND_TXCtune + .text.RFEND_TXFtune + 0x000000000000f362 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000000f362 RFEND_TXFtune + .text.API_DisconnectCmd + 0x000000000000f370 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f370 API_DisconnectCmd + .text.API_MD_DisconnectCmd + 0x000000000000f386 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f386 API_MD_DisconnectCmd + .text.API_ReadBDADDRCmd + 0x000000000000f388 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f388 API_ReadBDADDRCmd + .text.API_ReadRssiCmd + 0x000000000000f3a8 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f3a8 API_ReadRssiCmd + .text.API_LE_ReadBufSizeCmd + 0x000000000000f3d6 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f3d6 API_LE_ReadBufSizeCmd + .text.API_LE_ClearWhiteListCmd + 0x000000000000f3f6 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f3f6 API_LE_ClearWhiteListCmd + .text.API_LE_AddWhiteListCmd + 0x000000000000f414 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f414 API_LE_AddWhiteListCmd + .text.API_LE_RandCmd + 0x000000000000f432 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f432 API_LE_RandCmd + .text.API_LE_LtkReqReplyCmd + 0x000000000000f452 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f452 API_LE_LtkReqReplyCmd + .text.API_LE_LtkReqNegReplyCmd + 0x000000000000f47a 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f47a API_LE_LtkReqNegReplyCmd + .text.API_LE_RemoteConnParamReqReplyCmd + 0x000000000000f4a2 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f4a2 API_LE_RemoteConnParamReqReplyCmd + .text.API_LE_RemoteConnParamReqNegReplyCmd + 0x000000000000f4cc 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f4cc API_LE_RemoteConnParamReqNegReplyCmd + .text.API_LE_SetDataLengthCmd + 0x000000000000f4f6 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f4f6 API_LE_SetDataLengthCmd + .text.API_LE_SetDefaultPHYCmd + 0x000000000000f520 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f520 API_LE_SetDefaultPHYCmd + .text.API_LE_SetPHYCmd + 0x000000000000f540 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f540 API_LE_SetPHYCmd + .text.API_LE_SetExtendedAdvertisingParametersCmd + 0x000000000000f55e 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f55e API_LE_SetExtendedAdvertisingParametersCmd + .text.API_LE_SetExtendedAdvertisingDataCmd + 0x000000000000f5b0 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f5b0 API_LE_SetExtendedAdvertisingDataCmd + .text.API_LE_SetExtendedScanResponseDataCmd + 0x000000000000f5d0 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f5d0 API_LE_SetExtendedScanResponseDataCmd + .text.API_LE_SetExtendedAdvertisingEnableCmd + 0x000000000000f5f0 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + 0x000000000000f5f0 API_LE_SetExtendedAdvertisingEnableCmd + .text.LL_Disconnect + 0x000000000000f610 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f610 LL_Disconnect + .text.LL_MD_Disconnect + 0x000000000000f63e 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f63e LL_MD_Disconnect + .text.LL_ReadBDAddr + 0x000000000000f666 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f666 LL_ReadBDAddr + .text.LL_ReadRssi + 0x000000000000f688 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f688 LL_ReadRssi + .text.LL_LE_ReadBufSize + 0x000000000000f6ae 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f6ae LL_LE_ReadBufSize + .text.LL_RemoteConnParamReqReply + 0x000000000000f6c8 0x98 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f6c8 LL_RemoteConnParamReqReply + .text.LL_RemoteConnParamReqNegReply + 0x000000000000f760 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f760 LL_RemoteConnParamReqNegReply + .text.LL_SetDataLength + 0x000000000000f79a 0x7e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f79a LL_SetDataLength + .text.LL_AddWhiteListDevice + 0x000000000000f818 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f818 LL_AddWhiteListDevice + .text.LL_ClearWhiteList + 0x000000000000f86c 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f86c LL_ClearWhiteList + .text.LL_Rand 0x000000000000f892 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f892 LL_Rand + .text.LL_LtkReqReply + 0x000000000000f8c6 0xd8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f8c6 LL_LtkReqReply + .text.LL_LtkReqNegReply + 0x000000000000f99e 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f99e LL_LtkReqNegReply + .text.LL_SetDefaultPHY + 0x000000000000f9dc 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000f9dc LL_SetDefaultPHY + .text.LL_SetPHY + 0x000000000000fa00 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fa00 LL_SetPHY + .text.LL_SetExtendedAdvertisingParameters + 0x000000000000fa58 0x1d2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fa58 LL_SetExtendedAdvertisingParameters + .text.LL_SetExtendedAdvertisingData + 0x000000000000fc2a 0x96 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fc2a LL_SetExtendedAdvertisingData + .text.LL_SetExtendedScanResponseData + 0x000000000000fcc0 0x96 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fcc0 LL_SetExtendedScanResponseData + .text.LL_SetExtendedAdvertisingEnable + 0x000000000000fd56 0x8e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fd56 LL_SetExtendedAdvertisingEnable + .text.LL_SendDataPkt + 0x000000000000fde4 0xcc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x000000000000fde4 LL_SendDataPkt + .text.gapBondMgrInvertCharCfgItem + 0x000000000000feb0 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.mainRecordNvID_Erase + 0x000000000000fed2 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrBondTotal + 0x000000000000ff0e 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrFindEmpty + 0x000000000000ff68 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondFreeAuthEvt + 0x000000000000ffb6 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrEraseBonding + 0x000000000000ffe0 0x126 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgr_SyncWhiteList + 0x0000000000010106 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondSetupPrivFlag + 0x000000000001015e 0x26 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrReadBonds + 0x0000000000010184 0x96 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrSendServiceChange + 0x000000000001021a 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrFindAddr + 0x0000000000010224 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrAddBond + 0x000000000001027c 0x250 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondPairStateCB + 0x00000000000104cc 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrChangeState.constprop.0 + 0x00000000000104fe 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrEraseAllBondings.isra.0 + 0x0000000000010568 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrGetPublicAddr.isra.0 + 0x0000000000010598 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.gapBondMgrUpdateCharCfg + 0x00000000000105da 0xec G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .text.GAPBondMgr_ParamInit + 0x00000000000106c6 0x128 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000000106c6 GAPBondMgr_ParamInit + .text.GAPBondMgr_Erase + 0x00000000000107ee 0x10c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000000107ee GAPBondMgr_Erase + .text.GAPBondMgr_LinkTerm + 0x00000000000108fa 0xa8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000000108fa GAPBondMgr_LinkTerm + .text.GAPBondMgr_ResolveAddr + 0x00000000000109a2 0x116 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000000109a2 GAPBondMgr_ResolveAddr + .text.GAPBondMgr_SetParameter + 0x0000000000010ab8 0x286 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010ab8 GAPBondMgr_SetParameter + .text.GAPBondMgr_ServiceChangeInd + 0x0000000000010d3e 0x8a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010d3e GAPBondMgr_ServiceChangeInd + .text.GAPBondMgr_UpdateCharCfg + 0x0000000000010dc8 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010dc8 GAPBondMgr_UpdateCharCfg + .text.GAPBondMgr_PeripheralRegister + 0x0000000000010e44 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010e44 GAPBondMgr_PeripheralRegister + .text.GAPBondMgr_PeriSecurityReq + 0x0000000000010e66 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010e66 GAPBondMgr_PeriSecurityReq + .text.GAPBondMgr_LinkEst + 0x0000000000010e7a 0x150 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010e7a GAPBondMgr_LinkEst + .text.GAPBondMgr_ProcessGAPMsg + 0x0000000000010fca 0x394 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000010fca GAPBondMgr_ProcessGAPMsg + .text.GAPBondMgr_Init + 0x000000000001135e 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x000000000001135e GAPBondMgr_Init + .text.GAPBondMgr_ProcessEvent + 0x0000000000011378 0x17c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x0000000000011378 GAPBondMgr_ProcessEvent + .text.ggs_SetAttrWPermit + 0x00000000000114f4 0x6a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.ggs_ReadAttrCB + 0x000000000001155e 0x108 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.ggs_WriteAttrCB + 0x0000000000011666 0x146 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .text.GGS_ParamInit + 0x00000000000117ac 0x138 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + 0x00000000000117ac GGS_ParamInit + .text.GGS_SetParameter + 0x00000000000118e4 0x108 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + 0x00000000000118e4 GGS_SetParameter + .text.GGS_AddService + 0x00000000000119ec 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + 0x00000000000119ec GGS_AddService + .text.gapRole_PeripheralProcessGAPMsg + 0x0000000000011a18 0x1b8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011a18 gapRole_PeripheralProcessGAPMsg + .text.gapRole_PeripheralProcessTMOSMsg + 0x0000000000011bd0 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011bd0 gapRole_PeripheralProcessTMOSMsg + .text.GAPRole_PeripheralProcessEvent + 0x0000000000011c20 0xc6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011c20 GAPRole_PeripheralProcessEvent + .text.GAPRole_PeripheralConnParamUpdateReq + 0x0000000000011ce6 0x4a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011ce6 GAPRole_PeripheralConnParamUpdateReq + .text.GAPRole_PeripheralStartDevice + 0x0000000000011d30 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011d30 GAPRole_PeripheralStartDevice + .text.GAPRole_PeripheralEnable + 0x0000000000011d82 0xf6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x0000000000011d82 GAPRole_PeripheralEnable + .text.GAPRole_ParamInit + 0x0000000000011e78 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000011e78 GAPRole_ParamInit + .text.GAPRole_GetParameter + 0x0000000000011eba 0xbe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000011eba GAPRole_GetParameter + .text.GAPRole_SetParameter + 0x0000000000011f78 0x1bc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000011f78 GAPRole_SetParameter + .text.GAPRole_BroadcasterSetCB + 0x0000000000012134 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000012134 GAPRole_BroadcasterSetCB + .text.GAPRole_ReadRssiCmd + 0x000000000001213a 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000000001213a GAPRole_ReadRssiCmd + .text.GAPRole_TerminateLink + 0x000000000001213e 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000000001213e GAPRole_TerminateLink + .text.GAPRole_UpdatePHY + 0x0000000000012160 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000012160 GAPRole_UpdatePHY + .text.GAPRole_PeripheralInit + 0x0000000000012164 0x70 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000000012164 GAPRole_PeripheralInit + .text.tmos_memory_getlen + 0x00000000000121d4 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x00000000000121d4 tmos_memory_getlen + .text.tmos_memory_init + 0x00000000000121f0 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x00000000000121f0 tmos_memory_init + .text.tmos_bm_adjust_header + 0x0000000000012252 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x0000000000012252 tmos_bm_adjust_header + .text.ATT_BuildErrorRsp + 0x0000000000012282 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012282 ATT_BuildErrorRsp + .text.ATT_ParamInit + 0x0000000000012298 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012298 ATT_ParamInit + .text.ATT_ConvertUUIDto128 + 0x00000000000122a2 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x00000000000122a2 ATT_ConvertUUIDto128 + .text.ATT_CompareUUID + 0x00000000000122e0 0x78 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x00000000000122e0 ATT_CompareUUID + .text.ATT_RegisterClient + 0x0000000000012358 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012358 ATT_RegisterClient + .text.ATT_RegisterServer + 0x000000000001235e 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x000000000001235e ATT_RegisterServer + .text.ATT_ParsePacket + 0x0000000000012364 0x88 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012364 ATT_ParsePacket + .text.ATT_UpdateMTU + 0x00000000000123ec 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x00000000000123ec ATT_UpdateMTU + .text.ATT_GetMTU + 0x0000000000012428 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012428 ATT_GetMTU + .text.ATT_ParseErrorRsp + 0x0000000000012446 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012446 ATT_ParseErrorRsp + .text.attSendMsg + 0x0000000000012466 0xb4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012466 attSendMsg + .text.attSendRspMsg + 0x000000000001251a 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x000000000001251a attSendRspMsg + .text.ATT_ErrorRsp + 0x0000000000012560 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000012560 ATT_ErrorRsp + .text.ATT_BuildExchangeMTUReq + 0x0000000000012572 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + 0x0000000000012572 ATT_BuildExchangeMTUReq + .text.ATT_ParseExchangeMTURsp + 0x0000000000012580 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + 0x0000000000012580 ATT_ParseExchangeMTURsp + .text.ATT_ExchangeMTUReq + 0x0000000000012598 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + 0x0000000000012598 ATT_ExchangeMTUReq + .text.ATT_BuildExchangeMTURsp + 0x00000000000125d8 0xe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000125d8 ATT_BuildExchangeMTURsp + .text.ATT_BuildFindInfoRsp + 0x00000000000125e6 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000125e6 ATT_BuildFindInfoRsp + .text.ATT_BuildFindByTypeValueRsp + 0x0000000000012604 0xa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012604 ATT_BuildFindByTypeValueRsp + .text.ATT_BuildReadByTypeRsp + 0x000000000001260e 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001260e ATT_BuildReadByTypeRsp + .text.ATT_BuildReadRsp + 0x0000000000012622 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012622 ATT_BuildReadRsp + .text.ATT_BuildReadBlobRsp + 0x0000000000012626 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012626 ATT_BuildReadBlobRsp + .text.ATT_BuildReadMultiRsp + 0x000000000001262a 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001262a ATT_BuildReadMultiRsp + .text.ATT_BuildReadByGrpTypeRsp + 0x000000000001262e 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001262e ATT_BuildReadByGrpTypeRsp + .text.ATT_BuildPrepareWriteRsp + 0x0000000000012642 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012642 ATT_BuildPrepareWriteRsp + .text.ATT_BuildHandleValueInd + 0x0000000000012660 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012660 ATT_BuildHandleValueInd + .text.ATT_ParseExchangeMTUReq + 0x0000000000012674 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012674 ATT_ParseExchangeMTUReq + .text.ATT_ExchangeMTURsp + 0x000000000001268a 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001268a ATT_ExchangeMTURsp + .text.ATT_ParseFindInfoReq + 0x00000000000126a8 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000126a8 ATT_ParseFindInfoReq + .text.ATT_FindInfoRsp + 0x00000000000126c6 0x4e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000126c6 ATT_FindInfoRsp + .text.ATT_ParseFindByTypeValueReq + 0x0000000000012714 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012714 ATT_ParseFindByTypeValueReq + .text.ATT_FindByTypeValueRsp + 0x000000000001277a 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001277a ATT_FindByTypeValueRsp + .text.ATT_ParseReadByTypeReq + 0x00000000000127ba 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000127ba ATT_ParseReadByTypeReq + .text.ATT_ReadByTypeRsp + 0x0000000000012800 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012800 ATT_ReadByTypeRsp + .text.ATT_ParseReadReq + 0x0000000000012840 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012840 ATT_ParseReadReq + .text.ATT_ReadRsp + 0x0000000000012856 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012856 ATT_ReadRsp + .text.ATT_ParseReadBlobReq + 0x0000000000012886 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012886 ATT_ParseReadBlobReq + .text.ATT_ReadBlobRsp + 0x000000000001288a 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001288a ATT_ReadBlobRsp + .text.ATT_ParseReadMultiReq + 0x00000000000128ba 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000128ba ATT_ParseReadMultiReq + .text.ATT_ReadMultiRsp + 0x00000000000128d2 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000128d2 ATT_ReadMultiRsp + .text.ATT_ReadByGrpTypeRsp + 0x000000000001290a 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001290a ATT_ReadByGrpTypeRsp + .text.ATT_ParseWriteReq + 0x000000000001294a 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x000000000001294a ATT_ParseWriteReq + .text.ATT_WriteRsp + 0x0000000000012978 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012978 ATT_WriteRsp + .text.ATT_ParsePrepareWriteReq + 0x0000000000012984 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012984 ATT_ParsePrepareWriteReq + .text.ATT_PrepareWriteRsp + 0x00000000000129b4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000129b4 ATT_PrepareWriteRsp + .text.ATT_ParseExecuteWriteReq + 0x00000000000129e4 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000129e4 ATT_ParseExecuteWriteReq + .text.ATT_ExecuteWriteRsp + 0x00000000000129f4 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x00000000000129f4 ATT_ExecuteWriteRsp + .text.ATT_HandleValueNoti + 0x0000000000012a00 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012a00 ATT_HandleValueNoti + .text.ATT_HandleValueInd + 0x0000000000012a30 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + 0x0000000000012a30 ATT_HandleValueInd + .text.LL_ProcessEvent + 0x0000000000012a60 0x42 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + 0x0000000000012a60 LL_ProcessEvent + .text.LL_Init 0x0000000000012aa2 0xc0 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + 0x0000000000012aa2 LL_Init + .text.LL_AddrInit + 0x0000000000012b62 0x9c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + 0x0000000000012b62 LL_AddrInit + .text.llAdvertiseCreateCore + 0x0000000000012bfe 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012bfe llAdvertiseCreateCore + .text.ll_advertise_generated_pdu + 0x0000000000012c5e 0xaa G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012c5e ll_advertise_generated_pdu + .text.ll_advertise_to_connection_state + 0x0000000000012d08 0x14a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012d08 ll_advertise_to_connection_state + .text.ll_advertise_filter + 0x0000000000012e52 0x68 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012e52 ll_advertise_filter + .text.ll_advertise_event_closed + 0x0000000000012eba 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012eba ll_advertise_event_closed + .text.ll_adv_legacy_rsp_tx_process + 0x0000000000012f1a 0x92 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .text.LL_AdvGetCore + 0x0000000000012fac 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012fac LL_AdvGetCore + .text.llAdvertiseSet + 0x0000000000012fc4 0xc6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000012fc4 llAdvertiseSet + .text.LL_AdvertiseToStandby + 0x000000000001308a 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x000000000001308a LL_AdvertiseToStandby + .text.llAdvertiseTimeout + 0x00000000000130d2 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x00000000000130d2 llAdvertiseTimeout + .text.LL_AdvertiseEventRegister + 0x0000000000013110 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000013110 LL_AdvertiseEventRegister + .text.LL_AdvertiseEnalbe + 0x0000000000013116 0x5e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x0000000000013116 LL_AdvertiseEnalbe + .text.LL_ConnectEventRegister + 0x0000000000013174 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013174 LL_ConnectEventRegister + .text.ll_connect_set_windowWidening + 0x000000000001317a 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001317a ll_connect_set_windowWidening + .text.ll_connect_set_procedure_timeout + 0x000000000001319e 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001319e ll_connect_set_procedure_timeout + .text.ll_connect_set_connect_timeout + 0x00000000000131d6 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000131d6 ll_connect_set_connect_timeout + .text.ll_connect_init_dataLen + 0x000000000001320e 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001320e ll_connect_init_dataLen + .text.ll_connect_update_effective_Len + 0x000000000001326e 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001326e ll_connect_update_effective_Len + .text.ll_connect_update_dataLen + 0x00000000000132a0 0xa4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000132a0 ll_connect_update_dataLen + .text.ll_connect_phy_update_dataLen + 0x0000000000013344 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013344 ll_connect_phy_update_dataLen + .text.ll_connect_parse_datapdu_head + 0x00000000000133c0 0x22 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000133c0 ll_connect_parse_datapdu_head + .text.ll_connect_flowcontrol_init + 0x00000000000133e2 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000133e2 ll_connect_flowcontrol_init + .text.LL_ConnectFlowcontrolTx + 0x00000000000133ea 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000133ea LL_ConnectFlowcontrolTx + .text.LL_ConnectFlowcontrolRx + 0x000000000001340a 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001340a LL_ConnectFlowcontrolRx + .text.LL_ConnectTxPktnumIncrease + 0x000000000001342a 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001342a LL_ConnectTxPktnumIncrease + .text.LL_ConnectRxPktnumIncrease + 0x0000000000013454 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013454 LL_ConnectRxPktnumIncrease + .text.ll_connect_event_continue + 0x000000000001347e 0xa2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001347e ll_connect_event_continue + .text.ll_set_connect_event + 0x0000000000013520 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013520 ll_set_connect_event + .text.LL_ConnectFreeTmosPrioritID + 0x000000000001357a 0xc2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001357a LL_ConnectFreeTmosPrioritID + .text.LL_ConnectToStandby + 0x000000000001363c 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001363c LL_ConnectToStandby + .text.ll_connect_action_in_connintervaltimeout + 0x00000000000136a0 0x21c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000136a0 ll_connect_action_in_connintervaltimeout + .text.ll_connect_procedure_timeout + 0x00000000000138bc 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000138bc ll_connect_procedure_timeout + .text.ll_connect_supervision_timeout + 0x00000000000138e4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x00000000000138e4 ll_connect_supervision_timeout + .text.ll_process_after_connect_event + 0x0000000000013914 0x2c4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013914 ll_process_after_connect_event + .text.LL_ConnectShut + 0x0000000000013bd8 0xba G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000000013bd8 LL_ConnectShut + .text.LL_CoreGetCore + 0x0000000000013c92 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013c92 LL_CoreGetCore + .text.LL_CoreGetRxDataList + 0x0000000000013ca8 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013ca8 LL_CoreGetRxDataList + .text.LL_CoreGetTxDataList + 0x0000000000013cc0 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013cc0 LL_CoreGetTxDataList + .text.LL_CoreDataListInit + 0x0000000000013cf4 0x78 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013cf4 LL_CoreDataListInit + .text.LL_CoreOpen + 0x0000000000013d6c 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013d6c LL_CoreOpen + .text.LL_CoreDataListFree + 0x0000000000013dc6 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013dc6 LL_CoreDataListFree + .text.LL_CoreClose + 0x0000000000013df4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013df4 LL_CoreClose + .text.LL_CoreInit + 0x0000000000013e24 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + 0x0000000000013e24 LL_CoreInit + .text.LL_HopGetChannels + 0x0000000000013e38 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + 0x0000000000013e38 LL_HopGetChannels + .text.LL_HopInit + 0x0000000000013e84 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + 0x0000000000013e84 LL_HopInit + .text.llAdvertisingReportReport + 0x0000000000013ed8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llRemoteConnectionParamRequestReport + 0x0000000000013edc 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llDirectedAdvertisingConnectionCompleteReport + 0x0000000000013f08 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llConnectCompleteReport + 0x0000000000013f58 0x6e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llPHYUpdateCompleteReport + 0x0000000000013fc6 0x3e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llDataLengthChangeReport + 0x0000000000014004 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llRemoteConnectParamRequestReport + 0x000000000001403c 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llLTKRequestedReport + 0x0000000000014082 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llReadRemoteFeatureCompleteReport + 0x00000000000140a6 0x2e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llConnectUpdateCompleteReport + 0x00000000000140d4 0x3c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llDirectAdvertisingReportReport + 0x0000000000014110 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llCancelConnectionCompleteReport + 0x0000000000014114 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llReadLocalP256PublicKeyCompleteReport + 0x0000000000014118 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llGenerateDHKEYCompleteReport + 0x000000000001411c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.llEnhancedConnectCompleteReport + 0x0000000000014120 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.LL_ProcessTMOSReportMsg + 0x0000000000014124 0x13a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + 0x0000000000014124 LL_ProcessTMOSReportMsg + .text.LL_ReportGenerateEvent + 0x000000000001425e 0x46 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + 0x000000000001425e LL_ReportGenerateEvent + .text.llDataPackageReport + 0x00000000000142a4 0x72 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .text.ll_slave_tx_process + 0x0000000000014316 0xe4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .text.ll_slave_listern + 0x00000000000143fa 0x744 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .text.llSlaveCreateCore + 0x0000000000014b3e 0xc4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + 0x0000000000014b3e llSlaveCreateCore + .text.llSlaveSetFirstTimer + 0x0000000000014c02 0x116 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .text.llSlaveStartEvent + 0x0000000000014d18 0x114 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + 0x0000000000014d18 llSlaveStartEvent + .text.LL_SlaveEnalbe + 0x0000000000014e2c 0x38 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + 0x0000000000014e2c LL_SlaveEnalbe + .text.LL_WhitelistAdd + 0x0000000000014e64 0xa8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + 0x0000000000014e64 LL_WhitelistAdd + .text.LL_WhitelistClearAll + 0x0000000000014f0c 0x48 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + 0x0000000000014f0c LL_WhitelistClearAll + .text.LL_WhitelistInit + 0x0000000000014f54 0x12 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + 0x0000000000014f54 LL_WhitelistInit + .text.llEncRsp + 0x0000000000014f66 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llRejectInd + 0x0000000000014f6a 0x6e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llRejectIndExt + 0x0000000000014fd8 0x6e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.LL_RxLenUpdate + 0x0000000000015046 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llConnectionUpdateInd + 0x00000000000150c2 0x9a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llTerminateInd + 0x000000000001515c 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llStartEncRsp + 0x0000000000015178 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llUnknowRsp + 0x00000000000151b2 0x7a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPauseEncReq + 0x000000000001522c 0x1e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPauseEncRsp + 0x000000000001524a 0x3a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llVersionInd + 0x0000000000015284 0x84 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPHYReq + 0x0000000000015308 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPHYUpdateIND + 0x0000000000015362 0x6c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llConnectionParamReq + 0x00000000000153ce 0x128 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llFeatureReq + 0x00000000000154f6 0x66 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llChannelMapReq + 0x000000000001555c 0x62 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llLengthRsp + 0x00000000000155be 0x56 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llLengthReq + 0x0000000000015614 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llEncReq + 0x0000000000015660 0x130 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPingRsp + 0x0000000000015790 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPHYRsp + 0x0000000000015794 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llStartEncReq + 0x0000000000015798 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llFeatureRsp + 0x000000000001579c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llSlaveFeatureReq + 0x00000000000157a0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llConnectionParamRsp + 0x00000000000157a4 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.llPingReq + 0x00000000000157a8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .text.LL_SendAck + 0x00000000000157ac 0x16 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x00000000000157ac LL_SendAck + .text.LL_TerminateInd + 0x00000000000157c2 0x24 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x00000000000157c2 LL_TerminateInd + .text.LL_EncRsp + 0x00000000000157e6 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x00000000000157e6 LL_EncRsp + .text.LL_StartEncReq + 0x0000000000015836 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015836 LL_StartEncReq + .text.LL_StartEncRsp + 0x0000000000015850 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015850 LL_StartEncRsp + .text.LL_UnknowRsp + 0x000000000001586a 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x000000000001586a LL_UnknowRsp + .text.LL_FeatureRsp + 0x0000000000015886 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015886 LL_FeatureRsp + .text.LL_PauseEncRsp + 0x00000000000158d8 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x00000000000158d8 LL_PauseEncRsp + .text.LL_VersionInd + 0x00000000000158f2 0x5a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x00000000000158f2 LL_VersionInd + .text.LL_RejectInd + 0x000000000001594c 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x000000000001594c LL_RejectInd + .text.LL_ConnectionParamReq + 0x0000000000015968 0x9e G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015968 LL_ConnectionParamReq + .text.LL_ConnectionParamRsp + 0x0000000000015a06 0x96 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015a06 LL_ConnectionParamRsp + .text.LL_RejectIndExt + 0x0000000000015a9c 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015a9c LL_RejectIndExt + .text.LL_LengthReq + 0x0000000000015abc 0x6c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015abc LL_LengthReq + .text.LL_LengthRsp + 0x0000000000015b28 0x84 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015b28 LL_LengthRsp + .text.LL_PHYReq + 0x0000000000015bac 0x52 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015bac LL_PHYReq + .text.LL_PHYRsp + 0x0000000000015bfe 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000015bfe LL_PHYRsp + .text.printchar + 0x0000000000015c56 0x4a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015c56 printchar + .text.prints 0x0000000000015ca0 0xea d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015ca0 prints + .text.printInt + 0x0000000000015d8a 0xf4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015d8a printInt + .text.printLongLongInt + 0x0000000000015e7e 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015e7e printLongLongInt + .text.printDouble + 0x0000000000015e82 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015e82 printDouble + .text.print 0x0000000000015e86 0x362 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000015e86 print + .text.printf 0x00000000000161e8 0x24 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x00000000000161e8 printf + .text.sprintf 0x000000000001620c 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x000000000001620c sprintf + .text.puts 0x0000000000016234 0x48 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + 0x0000000000016234 puts + .text.__lshrdi3 + 0x000000000001627c 0x26 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + 0x000000000001627c __lshrdi3 + .text.__udivdi3 + 0x00000000000162a2 0x39a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + 0x00000000000162a2 __udivdi3 + .text.__adddf3 + 0x000000000001663c 0x706 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + 0x000000000001663c __adddf3 + .text.__divdf3 + 0x0000000000016d42 0x56e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + 0x0000000000016d42 __divdf3 + .text.__muldf3 + 0x00000000000172b0 0x508 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + 0x00000000000172b0 __muldf3 + .text.__fixunsdfsi + 0x00000000000177b8 0x56 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + 0x00000000000177b8 __fixunsdfsi + .text.__floatsidf + 0x000000000001780e 0x70 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + 0x000000000001780e __floatsidf + .text.__floatunsidf + 0x000000000001787e 0x52 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + 0x000000000001787e __floatunsidf + .text.__gesf2 0x00000000000178d0 0x96 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + 0x00000000000178d0 __gesf2 + 0x00000000000178d0 __gtsf2 + .text.__lesf2 0x0000000000017966 0x98 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + 0x0000000000017966 __ltsf2 + 0x0000000000017966 __lesf2 + .text.__fixunssfsi + 0x00000000000179fe 0x4e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + 0x00000000000179fe __fixunssfsi + .text.__floatsisf + 0x0000000000017a4c 0xc0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + 0x0000000000017a4c __floatsisf + .text.memcmp 0x0000000000017b0c 0x24 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + 0x0000000000017b0c memcmp + .text.strlen 0x0000000000017b30 0x10 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + 0x0000000000017b30 strlen + .text.vprintf 0x0000000000017b40 0x2e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + 0x0000000000017b40 viprintf + 0x0000000000017b40 vprintf + .text._vsnprintf_r + 0x0000000000017b6e 0x60 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + 0x0000000000017b6e _vsniprintf_r + 0x0000000000017b6e _vsnprintf_r + .text.vsnprintf + 0x0000000000017bce 0x10 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + 0x0000000000017bce vsniprintf + 0x0000000000017bce vsnprintf + .text.std 0x0000000000017bde 0x66 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .text._cleanup_r + 0x0000000000017c44 0xa d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017c44 _cleanup_r + .text.__sfmoreglue + 0x0000000000017c4e 0x46 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017c4e __sfmoreglue + .text.__sfp_lock_acquire + 0x0000000000017c94 0x6 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017c94 __sfp_lock_acquire + .text.__sfp_lock_release + 0x0000000000017c9a 0x6 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017c9a __sfp_lock_release + .text.__sinit_lock_acquire + 0x0000000000017ca0 0x6 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017ca0 __sinit_lock_acquire + .text.__sinit_lock_release + 0x0000000000017ca6 0x6 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017ca6 __sinit_lock_release + .text.__sinit 0x0000000000017cac 0x72 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017cac __sinit + .text.__sfp 0x0000000000017d1e 0xb0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x0000000000017d1e __sfp + .text._fwalk_reent + 0x0000000000017dce 0x68 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + 0x0000000000017dce _fwalk_reent + .text.__retarget_lock_init_recursive + 0x0000000000017e36 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x0000000000017e36 __retarget_lock_init_recursive + .text.__retarget_lock_acquire_recursive + 0x0000000000017e38 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x0000000000017e38 __retarget_lock_acquire_recursive + .text.__retarget_lock_release_recursive + 0x0000000000017e3a 0x2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x0000000000017e3a __retarget_lock_release_recursive + .text.sbrk_aligned + 0x0000000000017e3c 0x5a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .text._malloc_r + 0x0000000000017e96 0x10e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + 0x0000000000017e96 _malloc_r + .text.__ssputs_r + 0x0000000000017fa4 0xde d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + 0x0000000000017fa4 __ssputs_r + .text._svfprintf_r + 0x0000000000018082 0x258 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + 0x0000000000018082 _svfiprintf_r + 0x0000000000018082 _svfprintf_r + .text._printf_common + 0x00000000000182da 0x10a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + 0x00000000000182da _printf_common + .text._printf_i + 0x00000000000183e4 0x27c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + 0x00000000000183e4 _printf_i + .text.__sfputc_r + 0x0000000000018660 0x26 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .text.__sfputs_r + 0x0000000000018686 0x42 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + 0x0000000000018686 __sfputs_r + .text._vfprintf_r + 0x00000000000186c8 0x2ba d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + 0x00000000000186c8 _vfprintf_r + 0x00000000000186c8 _vfiprintf_r + .text._sbrk_r 0x0000000000018982 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + 0x0000000000018982 _sbrk_r + .text.__sread 0x00000000000189aa 0x2a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + 0x00000000000189aa __sread + .text.__swrite + 0x00000000000189d4 0x46 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + 0x00000000000189d4 __swrite + .text.__sseek 0x0000000000018a1a 0x2e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + 0x0000000000018a1a __sseek + .text.__sclose + 0x0000000000018a48 0x6 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + 0x0000000000018a48 __sclose + .text.__swbuf_r + 0x0000000000018a4e 0xbe d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + 0x0000000000018a4e __swbuf_r + .text._write_r + 0x0000000000018b0c 0x2c d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + 0x0000000000018b0c _write_r + .text.__swsetup_r + 0x0000000000018b38 0xf0 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + 0x0000000000018b38 __swsetup_r + .text._close_r + 0x0000000000018c28 0x26 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + 0x0000000000018c28 _close_r + .text.__sflush_r + 0x0000000000018c4e 0x132 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + 0x0000000000018c4e __sflush_r + .text._fflush_r + 0x0000000000018d80 0x8e d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + 0x0000000000018d80 _fflush_r + .text._lseek_r + 0x0000000000018e0e 0x2a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + 0x0000000000018e0e _lseek_r + .text.__swhatbuf_r + 0x0000000000018e38 0x58 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + 0x0000000000018e38 __swhatbuf_r + .text.__smakebuf_r + 0x0000000000018e90 0x96 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + 0x0000000000018e90 __smakebuf_r + .text.memchr 0x0000000000018f26 0x18 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + 0x0000000000018f26 memchr + .text.__malloc_lock + 0x0000000000018f3e 0x8 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + 0x0000000000018f3e __malloc_lock + .text.__malloc_unlock + 0x0000000000018f46 0x8 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + 0x0000000000018f46 __malloc_unlock + .text._free_r 0x0000000000018f4e 0xa2 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + 0x0000000000018f4e _free_r + .text._realloc_r + 0x0000000000018ff0 0x76 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + 0x0000000000018ff0 _realloc_r + .text._read_r 0x0000000000019066 0x2a d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + 0x0000000000019066 _read_r + .text._fstat_r + 0x0000000000019090 0x28 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + 0x0000000000019090 _fstat_r + .text._isatty_r + 0x00000000000190b8 0x26 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + 0x00000000000190b8 _isatty_r + .text._malloc_usable_size_r + 0x00000000000190de 0x14 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + 0x00000000000190de _malloc_usable_size_r + .text._close 0x00000000000190f2 0xc d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + 0x00000000000190f2 _close + .text._fstat 0x00000000000190fe 0xc d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + 0x00000000000190fe _fstat + .text._isatty 0x000000000001910a 0xc d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + 0x000000000001910a _isatty + .text._lseek 0x0000000000019116 0xc d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + 0x0000000000019116 _lseek + .text._read 0x0000000000019122 0xc d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + 0x0000000000019122 _read + *(.rodata) + *fill* 0x000000000001912e 0x2 + .rodata 0x0000000000019130 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + *(.rodata*) + .rodata.Dbg_NoTick_Println.str1.4 + 0x0000000000019140 0x2 ./User_Drivers/debug.o + *fill* 0x0000000000019142 0x2 + .rodata.Dbg_Println.str1.4 + 0x0000000000019144 0xf ./User_Drivers/debug.o + *fill* 0x0000000000019153 0x1 + .rodata.EEPROM_Read_PortInfo.str1.4 + 0x0000000000019154 0x2f ./User_Drivers/flash.o + *fill* 0x0000000000019183 0x1 + .rodata.EEPROM_Write_PortInfo.str1.4 + 0x0000000000019184 0x40 ./User_Drivers/flash.o + .rodata.EEPROM_Read_PortGroupData.str1.4 + 0x00000000000191c4 0x2c ./User_Drivers/flash.o + .rodata.EEPROM_Write_PortGroupData.str1.4 + 0x00000000000191f0 0x5c ./User_Drivers/flash.o + .rodata.EEPROM_Read_RARDelayTim.str1.4 + 0x000000000001924c 0x40 ./User_Drivers/flash.o + .rodata.EEPROM_Init.str1.4 + 0x000000000001928c 0x48 ./User_Drivers/flash.o + .rodata.EEPROM_Write_RARDelayTim.str1.4 + 0x00000000000192d4 0x5c ./User_Drivers/flash.o + .rodata.DefaultGroupInfo + 0x0000000000019330 0x87 ./User_Drivers/flash.o + 0x0000000000019330 DefaultGroupInfo + *fill* 0x00000000000193b7 0x1 + .rodata.SimpleProfile_SetParameter + 0x00000000000193b8 0x14 ./User_Drivers/gattprofile.o + .rodata.peripheralChar4Notify.str1.4 + 0x00000000000193cc 0xf ./User_Drivers/peripheral.o + *fill* 0x00000000000193db 0x1 + .rodata.simpleProfileChangeCB.str1.4 + 0x00000000000193dc 0x19 ./User_Drivers/peripheral.o + *fill* 0x00000000000193f5 0x3 + .rodata.peripheralParamUpdateCB.str1.4 + 0x00000000000193f8 0x22 ./User_Drivers/peripheral.o + *fill* 0x000000000001941a 0x2 + .rodata.peripheralStateNotificationCB.str1.4 + 0x000000000001941c 0xb7 ./User_Drivers/peripheral.o + *fill* 0x00000000000194d3 0x1 + .rodata.peripheralStateNotificationCB + 0x00000000000194d4 0x18 ./User_Drivers/peripheral.o + .rodata.Peripheral_ProcessEvent.str1.4 + 0x00000000000194ec 0x8a ./User_Drivers/peripheral.o + *fill* 0x0000000000019576 0x2 + .rodata.FZL_CtrlOut + 0x0000000000019578 0x1c ./User_Drivers/sensor_scan.o + .rodata.Blv_CardlessPower_Tack.str1.4 + 0x0000000000019594 0x245 ./User_Drivers/sensor_scan.o + *fill* 0x00000000000197d9 0x3 + .rodata.Action_Task.str1.4 + 0x00000000000197dc 0x73 ./User_Drivers/sensor_scan.o + *fill* 0x000000000001984f 0x1 + .rodata.NoCard_Set_PortInfo_Processing.str1.4 + 0x0000000000019850 0x31 ./User_Drivers/sensor_scan.o + *fill* 0x0000000000019881 0x3 + .rodata.NoCard_Set_CondGpJd_Processing.str1.4 + 0x0000000000019884 0x19 ./User_Drivers/sensor_scan.o + *fill* 0x000000000001989d 0x3 + .rodata.NoCard_Set_RDR_Processing.str1.4 + 0x00000000000198a0 0x1c ./User_Drivers/sensor_scan.o + .rodata.print_RDRsta_Tack.str1.4 + 0x00000000000198bc 0x27 ./User_Drivers/sensor_scan.o + *fill* 0x00000000000198e3 0x1 + .rodata.BLV_DETInfo_Recv_Processing.str1.4 + 0x00000000000198e4 0x9d ./User_Drivers/sensor_scan.o + 0xa9 (size before relaxing) + *fill* 0x0000000000019981 0x3 + .rodata.BLV_DETInfo_Recv_Processing + 0x0000000000019984 0x58 ./User_Drivers/sensor_scan.o + .rodata.main.str1.4 + 0x00000000000199dc 0x1e ./User/main.o + *fill* 0x00000000000199fa 0x2 + .rodata.GPIOA_ModeCfg + 0x00000000000199fc 0x14 ./StdPeriphDriver/CH57x_gpio.o + .rodata.HAL_ProcessEvent.str1.4 + 0x0000000000019a10 0x3 ./HAL/MCU.o + *fill* 0x0000000000019a13 0x1 + .rodata.CH57x_BLEInit.str1.4 + 0x0000000000019a14 0x49 ./HAL/MCU.o + *fill* 0x0000000000019a5d 0x3 + .rodata.HAL_TimeInit.str1.4 + 0x0000000000019a60 0xd ./HAL/RTC.o + *fill* 0x0000000000019a6d 0x3 + .rodata.gattGetPayload + 0x0000000000019a70 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .rodata.GATTServApp_ReadAttr + 0x0000000000019ad4 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .rodata.GATTServApp_ProcessEvent + 0x0000000000019ae4 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .rodata.serverReqTbl + 0x0000000000019b30 0x60 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + 0x0000000000019b30 serverReqTbl + .rodata.smProcessDataMsg + 0x0000000000019b90 0x2c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .rodata.IOCapMatrix + 0x0000000000019bbc 0x19 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x0000000000019bbc IOCapMatrix + *fill* 0x0000000000019bd5 0x3 + .rodata.smpResponderProcessIncoming + 0x0000000000019bd8 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .rodata.const_Rb + 0x0000000000019c00 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + 0x0000000000019c00 const_Rb + .rodata.VER_LIB + 0x0000000000019c10 0x1a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000000019c10 VER_LIB + *fill* 0x0000000000019c2a 0x2 + .rodata.GAPBondMgr_SetParameter + 0x0000000000019c2c 0x7c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .rodata.GAPBondMgr_ProcessGAPMsg + 0x0000000000019ca8 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .rodata.ggs_ReadAttrCB + 0x0000000000019cd0 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .rodata.GGS_SetParameter + 0x0000000000019ce0 0x28 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .rodata.gapRole_PeripheralProcessGAPMsg + 0x0000000000019d08 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .rodata.GAPRole_GetParameter + 0x0000000000019d24 0x54 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .rodata.GAPRole_SetParameter + 0x0000000000019d78 0x50 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .rodata.btBaseUUID + 0x0000000000019dc8 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000000019dc8 btBaseUUID + .rodata.funcArr + 0x0000000000019dd8 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + 0x0000000000019dd8 funcArr + .rodata.ll_slave_listern + 0x0000000000019e18 0xe4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .rodata.funcRxPDUArr + 0x0000000000019efc 0x64 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + 0x0000000000019efc funcRxPDUArr + .rodata.print.str1.4 + 0x0000000000019f60 0x7 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + *fill* 0x0000000000019f67 0x1 + .rodata.print 0x0000000000019f68 0x58 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .rodata.__divdf3 + 0x0000000000019fc0 0x40 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .rodata.__clz_tab + 0x000000000001a000 0x100 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + 0x000000000001a000 __clz_tab + .rodata.__sf_fake_stderr + 0x000000000001a100 0x20 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x000000000001a100 __sf_fake_stderr + .rodata.__sf_fake_stdout + 0x000000000001a120 0x20 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x000000000001a120 __sf_fake_stdout + .rodata.__sf_fake_stdin + 0x000000000001a140 0x20 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + 0x000000000001a140 __sf_fake_stdin + .rodata._svfprintf_r.str1.4 + 0x000000000001a160 0x13 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + *fill* 0x000000000001a173 0x1 + .rodata._printf_i.str1.4 + 0x000000000001a174 0x25 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + *fill* 0x000000000001a199 0x3 + .rodata._printf_i + 0x000000000001a19c 0x58 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .rodata._vfprintf_r.str1.4 + 0x000000000001a1f4 0x13 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + *(.sdata2.*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t.*) + 0x000000000001a208 . = ALIGN (0x4) + +.vector_handler + 0x000000000001a1f4 0x2 + .vector_handler + 0x000000000001a1f4 0x2 ./Startup/startup_CH572.o + 0x000000000001a1f4 CMP_IRQHandler + 0x000000000001a1f4 GPIOA_IRQHandler + 0x000000000001a1f4 NMI_Handler + 0x000000000001a1f4 SWI_Handler + 0x000000000001a1f4 BB_IRQHandler + 0x000000000001a1f4 Break_Point_Handler + 0x000000000001a1f4 Ecall_M_Mode_Handler + 0x000000000001a1f4 SPI_IRQHandler + 0x000000000001a1f4 PWMX_IRQHandler + 0x000000000001a1f4 KEYSCAN_IRQHandler + 0x000000000001a1f4 USB_IRQHandler + 0x000000000001a1f4 I2C_IRQHandler + 0x000000000001a1f4 LLE_IRQHandler + 0x000000000001a1f4 TMR_IRQHandler + 0x000000000001a1f4 WDOG_BAT_IRQHandler + 0x000000000001a1f4 Ecall_U_Mode_Handler + +.highcode_fast 0x000000000001a1f6 0xe42 + .highcode_fast + 0x000000000001a1f6 0x30a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000000001a210 TMOS_CB_PeriodicProcessEvent + 0x000000000001a2a2 tmos_strlen + 0x000000000001a2d0 tmos_revmemcpy + 0x000000000001a306 tmos_isbufset + 0x000000000001a346 tmos_start_periodic_callback_task + 0x000000000001a444 tmos_set_event + 0x000000000001a48a tmos_update_periodic_callback_timer + .highcode_fast + 0x000000000001a500 0x1ec G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x000000000001a500 BLE_SetPHYTxMode + 0x000000000001a56a BLE_SetPHYRxMode + 0x000000000001a64e ble_ll_hw_api_shut + 0x000000000001a694 phy_status_clear + .highcode_fast + 0x000000000001a6ec 0xc6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x000000000001a6ec tmos_memory_allocate + .highcode_fast + 0x000000000001a7b2 0x588 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x000000000001a7b2 ll_connect_send_data + 0x000000000001a8a6 ll_connect_recv_data + 0x000000000001a922 llProcessConnectEvent + .highcode_fast + 0x000000000001ad3a 0x2fe G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + 0x000000000001ad3a LL_HopGetChannel + 0x000000000001add4 LL_HopGetChannel2 + +.highcode_lp 0x000000000001b038 0x584 + .highcode_lp 0x000000000001b038 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000000001b038 TMOS_ProcessRegister + .highcode_lp 0x000000000001b040 0x4c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + 0x000000000001b040 BB_DevInit + .highcode_lp 0x000000000001b08c 0xac G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x000000000001b08c LLE_DevSetMode + 0x000000000001b0d6 LLE_DevInit + .highcode_lp 0x000000000001b138 0x2a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x000000000001b138 RFEND_WaitTune + .highcode_lp 0x000000000001b162 0x45a G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + 0x000000000001b162 ll_advertise_tx + 0x000000000001b23a llAdvertiseStart + 0x000000000001b3d0 ll_advertise_status_closed + +.rela.dyn 0x000000000001b5bc 0x0 + .rela.text._sbrk + 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.sdata.curbrk.0 + 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.init 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.vector 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.handle_reset + 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.text._svfprintf_r + 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + .rela.text._vfprintf_r + 0x000000000001b5bc 0x0 ./User_Drivers/debug.o + +.fini 0x000000000001b5bc 0x0 + *(SORT_NONE(.fini)) + 0x000000000001b5bc . = ALIGN (0x4) + [!provide] PROVIDE (_etext = .) + [!provide] PROVIDE (_eitcm = .) + +.preinit_array 0x000000000001b5bc 0x0 + [!provide] PROVIDE (__preinit_array_start = .) + *(.preinit_array) + [!provide] PROVIDE (__preinit_array_end = .) + +.init_array 0x000000000001b5bc 0x0 + [!provide] PROVIDE (__init_array_start = .) + *(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)) + *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .ctors) + [!provide] PROVIDE (__init_array_end = .) + +.fini_array 0x000000000001b5bc 0x0 + [!provide] PROVIDE (__fini_array_start = .) + *(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)) + *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o) .dtors) + [!provide] PROVIDE (__fini_array_end = .) + +.ctors + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT_BY_NAME(.ctors.*)) + *(.ctors) + +.dtors + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT_BY_NAME(.dtors.*)) + *(.dtors) + +.dlalign 0x000000000001b5bc 0x0 + 0x000000000001b5bc . = ALIGN (0x4) + 0x000000000001b5bc PROVIDE (_data_lma = .) + +.data 0x0000000020001018 0x25c load address 0x000000000001b5bc + 0x0000000020001018 . = ALIGN (0x4) + 0x0000000020001018 PROVIDE (_data_vma = .) + *(.gnu.linkonce.r.*) + *(.data .data.*) + .data.simpleProfileCBs + 0x0000000020001018 0xc ./User_Drivers/gattprofile.o + 0x0000000020001018 simpleProfileCBs + .data.simpleProfileAttrTbl + 0x0000000020001024 0xb0 ./User_Drivers/gattprofile.o + .data.simpleProfileChar5UserDesp + 0x00000000200010d4 0x12 ./User_Drivers/gattprofile.o + *fill* 0x00000000200010e6 0x2 + .data.simpleProfileChar4UserDesp + 0x00000000200010e8 0x12 ./User_Drivers/gattprofile.o + *fill* 0x00000000200010fa 0x2 + .data.simpleProfileChar1UserDesp + 0x00000000200010fc 0x12 ./User_Drivers/gattprofile.o + *fill* 0x000000002000110e 0x2 + .data.Peripheral_PeripheralCBs + 0x0000000020001110 0xc ./User_Drivers/peripheral.o + .data.attDeviceName + 0x000000002000111c 0x15 ./User_Drivers/peripheral.o + *fill* 0x0000000020001131 0x3 + .data.scanRspData + 0x0000000020001134 0x17 ./User_Drivers/peripheral.o + *fill* 0x000000002000114b 0x1 + .data.gapServiceCBs + 0x000000002000114c 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + 0x000000002000114c gapServiceCBs + .data.impure_data + 0x0000000020001158 0x60 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + *(.gnu.linkonce.d.*) + 0x00000000200011b8 . = ALIGN (0x8) + 0x00000000200019b8 PROVIDE (__global_pointer$ = (. + 0x800)) + *(.sdata .sdata.*) + .sdata.simpleProfileChar5Props + 0x00000000200011b8 0x1 ./User_Drivers/gattprofile.o + .sdata.simpleProfileChar4Props + 0x00000000200011b9 0x1 ./User_Drivers/gattprofile.o + .sdata.simpleProfileChar1Props + 0x00000000200011ba 0x1 ./User_Drivers/gattprofile.o + *fill* 0x00000000200011bb 0x1 + .sdata.Peripheral_SimpleProfileCBs + 0x00000000200011bc 0x4 ./User_Drivers/peripheral.o + .sdata.peripheralMTU + 0x00000000200011c0 0x2 ./User_Drivers/peripheral.o + *fill* 0x00000000200011c2 0x2 + .sdata.advertData + 0x00000000200011c4 0x7 ./User_Drivers/peripheral.o + .sdata.Peripheral_TaskID + 0x00000000200011cb 0x1 ./User_Drivers/peripheral.o + .sdata.curbrk.0 + 0x00000000200011cc 0x4 ./StdPeriphDriver/CH57x_sys.o + .sdata.holdrand.0 + 0x00000000200011d0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .sdata.nextHandle + 0x00000000200011d4 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sdata.GATTServApp_TaskID + 0x00000000200011d6 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sdata.appTaskID + 0x00000000200011d7 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sdata.reqTaskId + 0x00000000200011d8 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sdata.serviceChangedCharProps + 0x00000000200011d9 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + *fill* 0x00000000200011da 0x2 + .sdata.gattService + 0x00000000200011dc 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sdata.gapBond_Erase + 0x00000000200011e4 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000200011e4 gapBond_Erase + .sdata.gapBond_Valid + 0x00000000200011e5 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000200011e5 gapBond_Valid + .sdata.gapBond_Auto + 0x00000000200011e6 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000200011e6 gapBond_Auto + .sdata.gapBond_KeySize + 0x00000000200011e7 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sdata.gapBond_AutoFailReason + 0x00000000200011e8 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sdata.centAddrRes + 0x00000000200011e9 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sdata.centAddrResCharProps + 0x00000000200011ea 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sdata.periConnParamCharProps + 0x00000000200011eb 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sdata.appearanceCharProps + 0x00000000200011ec 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sdata.deviceNameCharProps + 0x00000000200011ed 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + *fill* 0x00000000200011ee 0x2 + .sdata._impure_ptr + 0x00000000200011f0 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + 0x00000000200011f0 _impure_ptr + *(.gnu.linkonce.s.*) + 0x00000000200011f8 . = ALIGN (0x8) + *fill* 0x00000000200011f4 0x4 + *(.srodata.cst16) + *(.srodata.cst8) + .srodata.cst8 0x00000000200011f8 0x20 ./HAL/SLEEP.o + *(.srodata.cst4) + *(.srodata.cst2) + *(.srodata .srodata.*) + .srodata.simpleProfileService + 0x0000000020001218 0x8 ./User_Drivers/gattprofile.o + .srodata.simpleProfilechar5UUID + 0x0000000020001220 0x2 ./User_Drivers/gattprofile.o + 0x0000000020001220 simpleProfilechar5UUID + *fill* 0x0000000020001222 0x2 + .srodata.simpleProfilechar4UUID + 0x0000000020001224 0x2 ./User_Drivers/gattprofile.o + 0x0000000020001224 simpleProfilechar4UUID + *fill* 0x0000000020001226 0x2 + .srodata.simpleProfilechar1UUID + 0x0000000020001228 0x2 ./User_Drivers/gattprofile.o + 0x0000000020001228 simpleProfilechar1UUID + *fill* 0x000000002000122a 0x2 + .srodata.simpleProfileServUUID + 0x000000002000122c 0x2 ./User_Drivers/gattprofile.o + 0x000000002000122c simpleProfileServUUID + *fill* 0x000000002000122e 0x2 + .srodata.serviceChangedUUID + 0x0000000020001230 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001230 serviceChangedUUID + *fill* 0x0000000020001232 0x2 + .srodata.centAddrResUUID + 0x0000000020001234 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001234 centAddrResUUID + *fill* 0x0000000020001236 0x2 + .srodata.periConnParamUUID + 0x0000000020001238 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001238 periConnParamUUID + *fill* 0x000000002000123a 0x2 + .srodata.appearanceUUID + 0x000000002000123c 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x000000002000123c appearanceUUID + *fill* 0x000000002000123e 0x2 + .srodata.deviceNameUUID + 0x0000000020001240 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001240 deviceNameUUID + *fill* 0x0000000020001242 0x2 + .srodata.clientCharCfgUUID + 0x0000000020001244 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001244 clientCharCfgUUID + *fill* 0x0000000020001246 0x2 + .srodata.charUserDescUUID + 0x0000000020001248 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001248 charUserDescUUID + *fill* 0x000000002000124a 0x2 + .srodata.characterUUID + 0x000000002000124c 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x000000002000124c characterUUID + *fill* 0x000000002000124e 0x2 + .srodata.secondaryServiceUUID + 0x0000000020001250 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001250 secondaryServiceUUID + *fill* 0x0000000020001252 0x2 + .srodata.primaryServiceUUID + 0x0000000020001254 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001254 primaryServiceUUID + *fill* 0x0000000020001256 0x2 + .srodata.gattServiceUUID + 0x0000000020001258 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x0000000020001258 gattServiceUUID + *fill* 0x000000002000125a 0x2 + .srodata.gapServiceUUID + 0x000000002000125c 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + 0x000000002000125c gapServiceUUID + *fill* 0x000000002000125e 0x2 + .srodata.CSWTCH.135 + 0x0000000020001260 0x7 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + *fill* 0x0000000020001267 0x1 + .srodata.gapService + 0x0000000020001268 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .srodata._global_impure_ptr + 0x0000000020001270 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + 0x0000000020001270 _global_impure_ptr + 0x0000000020001274 . = ALIGN (0x4) + 0x0000000020001274 PROVIDE (_edata = .) + +.bss 0x0000000020001278 0x18f0 load address 0x000000000001b818 + 0x0000000020001278 . = ALIGN (0x4) + 0x0000000020001278 PROVIDE (_sbss = .) + *(.sbss*) + .sbss.NUM_s.0 0x0000000020001278 0x2 ./User_Drivers/debug.o + .sbss.NUM.1 0x000000002000127a 0x1 ./User_Drivers/debug.o + *fill* 0x000000002000127b 0x1 + .sbss.Dbg_Switch + 0x000000002000127c 0x4 ./User_Drivers/debug.o + 0x000000002000127c Dbg_Switch + .sbss.SysTick_Diff + 0x0000000020001280 0x4 ./User_Drivers/debug.o + 0x0000000020001280 SysTick_Diff + .sbss.SysTick_Last + 0x0000000020001284 0x4 ./User_Drivers/debug.o + 0x0000000020001284 SysTick_Last + .sbss.SysTick_Now + 0x0000000020001288 0x4 ./User_Drivers/debug.o + 0x0000000020001288 SysTick_Now + .sbss.SysTick_1s + 0x000000002000128c 0x4 ./User_Drivers/debug.o + 0x000000002000128c SysTick_1s + .sbss.SysTick_1ms + 0x0000000020001290 0x4 ./User_Drivers/debug.o + 0x0000000020001290 SysTick_1ms + .sbss.SysTick_100us + 0x0000000020001294 0x4 ./User_Drivers/debug.o + 0x0000000020001294 SysTick_100us + .sbss.p_image_flash + 0x0000000020001298 0x4 ./User_Drivers/flash.o + 0x0000000020001298 p_image_flash + .sbss.simpleProfileChar5 + 0x000000002000129c 0x5 ./User_Drivers/gattprofile.o + *fill* 0x00000000200012a1 0x3 + .sbss.simpleProfileChar4Config + 0x00000000200012a4 0x4 ./User_Drivers/gattprofile.o + .sbss.simpleProfileChar4 + 0x00000000200012a8 0x1 ./User_Drivers/gattprofile.o + *fill* 0x00000000200012a9 0x3 + .sbss.simpleProfile_AppCBs + 0x00000000200012ac 0x4 ./User_Drivers/gattprofile.o + .sbss.Broadcaster_BroadcasterCBs + 0x00000000200012b0 0x8 ./User_Drivers/peripheral.o + .sbss.peripheralConnList + 0x00000000200012b8 0x8 ./User_Drivers/peripheral.o + .sbss.W13_currentBleState + 0x00000000200012c0 0x4 ./User_Drivers/peripheral.o + .sbss.BLE_OTA_flag + 0x00000000200012c4 0x1 ./User_Drivers/peripheral.o + 0x00000000200012c4 BLE_OTA_flag + *fill* 0x00000000200012c5 0x3 + .sbss.print_rdrsta_tisk.0 + 0x00000000200012c8 0x4 ./User_Drivers/sensor_scan.o + .sbss.scan_tisk.1 + 0x00000000200012cc 0x4 ./User_Drivers/sensor_scan.o + .sbss.update_20ms.2 + 0x00000000200012d0 0x4 ./User_Drivers/sensor_scan.o + .sbss.portstate + 0x00000000200012d4 0x1 ./User_Drivers/sensor_scan.o + 0x00000000200012d4 portstate + *fill* 0x00000000200012d5 0x1 + .sbss.g_DealLen + 0x00000000200012d6 0x2 ./User_Drivers/uart.o + 0x00000000200012d6 g_DealLen + .sbss.Freq_LSI + 0x00000000200012d8 0x4 ./StdPeriphDriver/CH57x_clk.o + 0x00000000200012d8 Freq_LSI + .sbss.g_LLE_IRQLibHandlerLocation + 0x00000000200012dc 0x4 ./HAL/MCU.o + 0x00000000200012dc g_LLE_IRQLibHandlerLocation + .sbss.halTaskID + 0x00000000200012e0 0x1 ./HAL/MCU.o + 0x00000000200012e0 halTaskID + *fill* 0x00000000200012e1 0x3 + .sbss.lsiFrq 0x00000000200012e4 0x4 ./HAL/RTC.o + 0x00000000200012e4 lsiFrq + .sbss.RTCTigFlag + 0x00000000200012e8 0x4 ./HAL/RTC.o + 0x00000000200012e8 RTCTigFlag + .sbss.LSIWakeup_MaxTime + 0x00000000200012ec 0x2 ./HAL/SLEEP.o + 0x00000000200012ec LSIWakeup_MaxTime + *fill* 0x00000000200012ee 0x2 + .sbss.msg_qHead + 0x00000000200012f0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + 0x00000000200012f0 msg_qHead + .sbss.taskHead + 0x00000000200012f4 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200012f4 taskHead + .sbss.pfnProcessCBs + 0x00000000200012f8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200012f8 pfnProcessCBs + .sbss.pfnTimerCBs + 0x00000000200012fc 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200012fc pfnTimerCBs + .sbss.fnGetClockCBs + 0x0000000020001300 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000020001300 fnGetClockCBs + .sbss.tasksArr + 0x0000000020001304 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000020001304 tasksArr + .sbss.EventsArr + 0x0000000020001308 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x0000000020001308 EventsArr + .sbss.cbTimersHead + 0x000000002000130c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x000000002000130c cbTimersHead + .sbss.pEstLink + 0x0000000020001310 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000020001310 pEstLink + .sbss.pGapAdvertState + 0x0000000020001314 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000020001314 pGapAdvertState + .sbss.slaveUpdateReq + 0x0000000020001318 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .sbss.gapCurrentRandomAddr + 0x0000000020001320 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + *fill* 0x0000000020001326 0x2 + .sbss.pfnPeripheralConnCBs + 0x0000000020001328 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .sbss.pfnPeripheralCBs + 0x000000002000132c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .sbss.terminateAllTaskID + 0x0000000020001330 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .sbss.terminateReason + 0x0000000020001331 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + *fill* 0x0000000020001332 0x2 + .sbss.gapPeripheralConnCBs + 0x0000000020001334 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .sbss.pGapScanRspData + 0x0000000020001338 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .sbss.pGapAdData + 0x000000002000133c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .sbss.gapAdvTaskID + 0x0000000020001340 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .sbss.gapAdvAppTaskID + 0x0000000020001341 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + *fill* 0x0000000020001342 0x2 + .sbss.pfnServerProcessMsgCB + 0x0000000020001344 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000020001344 pfnServerProcessMsgCB + .sbss.pfnClientProcessMsgCB + 0x0000000020001348 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + 0x0000000020001348 pfnClientProcessMsgCB + .sbss.clientInfoTbl + 0x000000002000134c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + 0x000000002000134c clientInfoTbl + .sbss.pAttrValue + 0x0000000020001350 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.attrLen 0x0000000020001354 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + *fill* 0x0000000020001356 0x2 + .sbss.indCharCfg + 0x0000000020001358 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.serverInfoTbl + 0x000000002000135c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.prepareWritesTbl + 0x0000000020001360 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.pServiceList + 0x0000000020001364 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.serviceCBsList + 0x0000000020001368 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .sbss.gattAddService + 0x000000002000136c 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + *fill* 0x000000002000136d 0x3 + .sbss.pL2capData + 0x0000000020001370 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001370 pL2capData + .sbss.l2capMtuSize + 0x0000000020001374 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001374 l2capMtuSize + .sbss.l2capId 0x0000000020001376 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001376 l2capId + .sbss.l2capNumRecvDataPkts + 0x0000000020001377 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001377 l2capNumRecvDataPkts + .sbss.l2capNumDataPkts + 0x0000000020001378 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001378 l2capNumDataPkts + .sbss.l2capTaskID + 0x0000000020001379 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x0000000020001379 l2capTaskID + *fill* 0x000000002000137a 0x2 + .sbss.linkDB 0x000000002000137c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x000000002000137c linkDB + .sbss.pSmGenKey + 0x0000000020001380 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + 0x0000000020001380 pSmGenKey + .sbss.gBleHostPara + 0x0000000020001384 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + 0x0000000020001384 gBleHostPara + .sbss.gptrAESReg + 0x000000002000138c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + 0x000000002000138c gptrAESReg + .sbss.gptrBBReg + 0x0000000020001390 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + 0x0000000020001390 gptrBBReg + .sbss.rfStatusCBs + 0x0000000020001394 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .sbss.gRfTaskId + 0x0000000020001398 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + *fill* 0x0000000020001399 0x3 + .sbss.gPaControl + 0x000000002000139c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .sbss.pfnHandle + 0x00000000200013a0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x00000000200013a0 pfnHandle + .sbss.tmosSign + 0x00000000200013a4 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x00000000200013a4 tmosSign + *fill* 0x00000000200013a5 0x3 + .sbss.gptrLLEReg + 0x00000000200013a8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + 0x00000000200013a8 gptrLLEReg + .sbss.gTuneFilter2M + 0x00000000200013ac 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x00000000200013ac gTuneFilter2M + .sbss.gTuneFilter + 0x00000000200013ad 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x00000000200013ad gTuneFilter + .sbss.ftuneFlag + 0x00000000200013ae 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nGA2480 0x00000000200013b0 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nCO2480 0x00000000200013b1 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nGA2440 0x00000000200013b2 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nCO2440 0x00000000200013b3 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nGA2401 0x00000000200013b4 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .sbss.nCO2401 0x00000000200013b5 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + *fill* 0x00000000200013b6 0x2 + .sbss.gptrRFENDReg + 0x00000000200013b8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + 0x00000000200013b8 gptrRFENDReg + .sbss.fragment.0 + 0x00000000200013bc 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + *fill* 0x00000000200013bd 0x1 + .sbss.service.0 + 0x00000000200013be 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.pAttr.1 0x00000000200013c0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Invalid + 0x00000000200013c4 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + 0x00000000200013c4 gapBond_Invalid + *fill* 0x00000000200013c5 0x3 + .sbss.pAuthEvt + 0x00000000200013c8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.bondIdx 0x00000000200013cc 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBondMax + 0x00000000200013cd 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.eraseAllBonds + 0x00000000200013ce 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.autoSyncWhiteList + 0x00000000200013cf 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.bonds 0x00000000200013d0 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.pGapPeriBondCB + 0x00000000200013d4 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gattCCFlag + 0x00000000200013d8 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_AutoFail + 0x00000000200013d9 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + *fill* 0x00000000200013da 0x2 + .sbss.gapBond_Peri_Passcode + 0x00000000200013dc 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Peri_KeyDistList + 0x00000000200013e0 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Peri_AuthReq + 0x00000000200013e1 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Peri_OOBDataFlag + 0x00000000200013e2 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Peri_IOCap + 0x00000000200013e3 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBond_Peri_PairingMode + 0x00000000200013e4 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.gapBondMgr_TaskID + 0x00000000200013e5 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .sbss.ggsAddService + 0x00000000200013e6 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + *fill* 0x00000000200013e7 0x1 + .sbss.periConnParameters + 0x00000000200013e8 0x8 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sbss.appearance + 0x00000000200013f0 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sbss.deviceNameLength + 0x00000000200013f2 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + *fill* 0x00000000200013f3 0x1 + .sbss.ggs_AppCBs + 0x00000000200013f4 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .sbss.pGapRolesPeri_AppCGs + 0x00000000200013f8 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + 0x00000000200013f8 pGapRolesPeri_AppCGs + .sbss.pGapRoles_AppCGs + 0x00000000200013fc 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x00000000200013fc pGapRoles_AppCGs + .sbss.gapRole_bdAddr + 0x0000000020001400 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001400 gapRole_bdAddr + *fill* 0x0000000020001406 0x2 + .sbss.gapRole_signCounter + 0x0000000020001408 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001408 gapRole_signCounter + .sbss.gapRole_MaxConnInterval + 0x000000002000140c 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000140c gapRole_MaxConnInterval + .sbss.gapRole_MinConnInterval + 0x000000002000140e 0x2 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000140e gapRole_MinConnInterval + .sbss.gapRole_AdvFilterPolicy + 0x0000000020001410 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001410 gapRole_AdvFilterPolicy + .sbss.gapRole_AdvChanMap + 0x0000000020001411 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001411 gapRole_AdvChanMap + *fill* 0x0000000020001412 0x2 + .sbss.gapRole_AdvDirectAddr + 0x0000000020001414 0x6 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001414 gapRole_AdvDirectAddr + .sbss.gapRole_AdvDirectType + 0x000000002000141a 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141a gapRole_AdvDirectType + .sbss.gapRole_AdvEventType + 0x000000002000141b 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141b gapRole_AdvEventType + .sbss.gapRole_PHYRx + 0x000000002000141c 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141c gapRole_PHYRx + .sbss.gapRole_PHYTx + 0x000000002000141d 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141d gapRole_PHYTx + .sbss.gapRole_AdvEnabled + 0x000000002000141e 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141e gapRole_AdvEnabled + .sbss.gapRole_profileRole + 0x000000002000141f 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x000000002000141f gapRole_profileRole + .sbss.gapRole_state + 0x0000000020001420 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001420 gapRole_state + .sbss.gapRole_TaskID + 0x0000000020001424 0x1 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020001424 gapRole_TaskID + *fill* 0x0000000020001425 0x3 + .sbss.MemCtlEnd + 0x0000000020001428 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x0000000020001428 MemCtlEnd + .sbss.MemCtlPartition + 0x000000002000142c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x000000002000142c MemCtlPartition + .sbss.MemCtlStart + 0x0000000020001430 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + 0x0000000020001430 MemCtlStart + .sbss.attClientNotifyTxCB + 0x0000000020001434 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000020001434 attClientNotifyTxCB + .sbss.attServerNotifyTxCB + 0x0000000020001438 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + 0x0000000020001438 attServerNotifyTxCB + .sbss.pfnAdvertiseEventCBs + 0x000000002000143c 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .sbss.pfnConnectEventCBs + 0x0000000020001440 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000020001440 pfnConnectEventCBs + .sbss.llRecvDataDisable + 0x0000000020001444 0x4 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + 0x0000000020001444 llRecvDataDisable + .sbss.__lock___malloc_recursive_mutex + 0x0000000020001448 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x0000000020001448 __lock___malloc_recursive_mutex + *fill* 0x0000000020001449 0x3 + .sbss.__lock___sfp_recursive_mutex + 0x000000002000144c 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x000000002000144c __lock___sfp_recursive_mutex + *fill* 0x000000002000144d 0x3 + .sbss.__lock___sinit_recursive_mutex + 0x0000000020001450 0x1 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + 0x0000000020001450 __lock___sinit_recursive_mutex + *fill* 0x0000000020001451 0x3 + .sbss.__malloc_sbrk_start + 0x0000000020001454 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + 0x0000000020001454 __malloc_sbrk_start + .sbss.__malloc_free_list + 0x0000000020001458 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + 0x0000000020001458 __malloc_free_list + .sbss.errno 0x000000002000145c 0x4 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + 0x000000002000145c errno + *(.gnu.linkonce.sb.*) + *(.bss*) + .bss.Dbg_Buffer + 0x0000000020001460 0x64 ./User_Drivers/debug.o + 0x0000000020001460 Dbg_Buffer + .bss.PortInfo 0x00000000200014c4 0x37 ./User_Drivers/flash.o + 0x00000000200014c4 PortInfo + *fill* 0x00000000200014fb 0x1 + .bss.g_rar_info + 0x00000000200014fc 0x10 ./User_Drivers/flash.o + 0x00000000200014fc g_rar_info + .bss.g_portGp 0x000000002000150c 0x8b ./User_Drivers/flash.o + 0x000000002000150c g_portGp + *fill* 0x0000000020001597 0x1 + .bss.simpleProfileChar3 + 0x0000000020001598 0xa ./User_Drivers/gattprofile.o + *fill* 0x00000000200015a2 0x2 + .bss.simpleProfileChar2 + 0x00000000200015a4 0xa ./User_Drivers/gattprofile.o + *fill* 0x00000000200015ae 0x2 + .bss.simpleProfileChar1 + 0x00000000200015b0 0x50 ./User_Drivers/gattprofile.o + .bss.block_buf + 0x0000000020001600 0x10 ./User_Drivers/peripheral.o + 0x0000000020001600 block_buf + .bss.print_BLE + 0x0000000020001610 0x3c ./User_Drivers/peripheral.o + 0x0000000020001610 print_BLE + .bss.Peripheral_BondMgrCBs + 0x000000002000164c 0xc ./User_Drivers/peripheral.o + .bss.portBuff 0x0000000020001658 0x2d0 ./User_Drivers/sensor_scan.o + 0x0000000020001658 portBuff + .bss.condata 0x0000000020001928 0xf ./User_Drivers/sensor_scan.o + 0x0000000020001928 condata + *fill* 0x0000000020001937 0x1 + .bss.sensor_info + 0x0000000020001938 0x18 ./User_Drivers/sensor_scan.o + 0x0000000020001938 sensor_info + .bss.VCard_Info + 0x0000000020001950 0xa5 ./User_Drivers/sensor_scan.o + 0x0000000020001950 VCard_Info + *fill* 0x00000000200019f5 0x3 + .bss.g_Dealbuf + 0x00000000200019f8 0x50 ./User_Drivers/uart.o + 0x00000000200019f8 g_Dealbuf + .bss.g_uart 0x0000000020001a48 0x5f ./User_Drivers/uart.o + 0x0000000020001a48 g_uart + *fill* 0x0000000020001aa7 0x1 + .bss.MEM_BUF 0x0000000020001aa8 0xe00 ./User/main.o + 0x0000000020001aa8 MEM_BUF + .bss.gTmosPara + 0x00000000200028a8 0x20 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200028a8 gTmosPara + .bss.ble 0x00000000200028c8 0x34 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + 0x00000000200028c8 ble + .bss.bleClock_t + 0x00000000200028fc 0x14 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + 0x00000000200028fc bleClock_t + .bss.gapParameters + 0x0000000020002910 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000020002910 gapParameters + .bss.gapParams + 0x0000000020002928 0x1c G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + 0x0000000020002928 gapParams + .bss.gapPeripheralCBs + 0x0000000020002944 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .bss.gattAttrTbl + 0x0000000020002950 0x40 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .bss.gattServiceCBs + 0x0000000020002990 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .bss.rsp 0x000000002000299c 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .bss.l2capFixedChannels + 0x00000000200029b4 0x30 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x00000000200029b4 l2capFixedChannels + .bss.l2capChannels + 0x00000000200029e4 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + 0x00000000200029e4 l2capChannels + .bss.linkCBs 0x00000000200029f4 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + 0x00000000200029f4 linkCBs + .bss.gBleIPPara + 0x0000000020002a0c 0x18 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + 0x0000000020002a0c gBleIPPara + .bss.gDtm_t 0x0000000020002a24 0xc G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + 0x0000000020002a24 gDtm_t + .bss.gapBond_Peri_OOBData + 0x0000000020002a30 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .bss.gapAttrTbl + 0x0000000020002a40 0x90 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .bss.gapRole_OldSRK + 0x0000000020002ad0 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020002ad0 gapRole_OldSRK + .bss.gapRole_OldIRK + 0x0000000020002ae0 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020002ae0 gapRole_OldIRK + .bss.gapRole_SRK + 0x0000000020002af0 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020002af0 gapRole_SRK + .bss.gapRole_IRK + 0x0000000020002b00 0x10 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + 0x0000000020002b00 gapRole_IRK + .bss.gBleLlPara + 0x0000000020002b10 0x58 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + 0x0000000020002b10 gBleLlPara + *(.gnu.linkonce.b.*) + *(COMMON*) + 0x0000000020002b68 . = ALIGN (0x4) + 0x0000000020002b68 PROVIDE (_ebss = .) + 0x0000000020002b68 PROVIDE (_end = _ebss) + [!provide] PROVIDE (end = .) + +.stack 0x0000000020003000 0x0 + 0x0000000020003000 . = ALIGN (0x4) + 0x0000000020003000 PROVIDE (_eusrstack = .) +OUTPUT(BLV_RF_W13_V04.elf elf32-littleriscv) + +.debug_info 0x0000000000000000 0xaffb + .debug_info 0x0000000000000000 0x60d ./User_Drivers/debug.o + .debug_info 0x000000000000060d 0xff6 ./User_Drivers/flash.o + .debug_info 0x0000000000001603 0xc09 ./User_Drivers/gattprofile.o + .debug_info 0x000000000000220c 0x251a ./User_Drivers/peripheral.o + .debug_info 0x0000000000004726 0x20d2 ./User_Drivers/sensor_scan.o + .debug_info 0x00000000000067f8 0x962 ./User_Drivers/uart.o + .debug_info 0x000000000000715a 0x483 ./User/main.o + .debug_info 0x00000000000075dd 0xb10 ./StdPeriphDriver/CH57x_clk.o + .debug_info 0x00000000000080ed 0x439 ./StdPeriphDriver/CH57x_flash.o + .debug_info 0x0000000000008526 0x218 ./StdPeriphDriver/CH57x_gpio.o + .debug_info 0x000000000000873e 0xcde ./StdPeriphDriver/CH57x_sys.o + .debug_info 0x000000000000941c 0x33f ./StdPeriphDriver/CH57x_uart.o + .debug_info 0x000000000000975b 0x23 ./Startup/startup_CH572.o + .debug_info 0x000000000000977e 0xe64 ./HAL/MCU.o + .debug_info 0x000000000000a5e2 0x840 ./HAL/RTC.o + .debug_info 0x000000000000ae22 0x1d9 ./HAL/SLEEP.o + +.debug_abbrev 0x0000000000000000 0x2939 + .debug_abbrev 0x0000000000000000 0x26d ./User_Drivers/debug.o + .debug_abbrev 0x000000000000026d 0x330 ./User_Drivers/flash.o + .debug_abbrev 0x000000000000059d 0x31b ./User_Drivers/gattprofile.o + .debug_abbrev 0x00000000000008b8 0x47e ./User_Drivers/peripheral.o + .debug_abbrev 0x0000000000000d36 0x467 ./User_Drivers/sensor_scan.o + .debug_abbrev 0x000000000000119d 0x297 ./User_Drivers/uart.o + .debug_abbrev 0x0000000000001434 0x15f ./User/main.o + .debug_abbrev 0x0000000000001593 0x2dd ./StdPeriphDriver/CH57x_clk.o + .debug_abbrev 0x0000000000001870 0x206 ./StdPeriphDriver/CH57x_flash.o + .debug_abbrev 0x0000000000001a76 0xe5 ./StdPeriphDriver/CH57x_gpio.o + .debug_abbrev 0x0000000000001b5b 0x44f ./StdPeriphDriver/CH57x_sys.o + .debug_abbrev 0x0000000000001faa 0x135 ./StdPeriphDriver/CH57x_uart.o + .debug_abbrev 0x00000000000020df 0x12 ./Startup/startup_CH572.o + .debug_abbrev 0x00000000000020f1 0x464 ./HAL/MCU.o + .debug_abbrev 0x0000000000002555 0x319 ./HAL/RTC.o + .debug_abbrev 0x000000000000286e 0xcb ./HAL/SLEEP.o + +.debug_loclists + 0x0000000000000000 0x3eee + .debug_loclists + 0x0000000000000000 0x214 ./User_Drivers/debug.o + .debug_loclists + 0x0000000000000214 0x81d ./User_Drivers/flash.o + .debug_loclists + 0x0000000000000a31 0x915 ./User_Drivers/gattprofile.o + .debug_loclists + 0x0000000000001346 0x605 ./User_Drivers/peripheral.o + .debug_loclists + 0x000000000000194b 0x1218 ./User_Drivers/sensor_scan.o + .debug_loclists + 0x0000000000002b63 0x105 ./User_Drivers/uart.o + .debug_loclists + 0x0000000000002c68 0x853 ./StdPeriphDriver/CH57x_clk.o + .debug_loclists + 0x00000000000034bb 0x224 ./StdPeriphDriver/CH57x_flash.o + .debug_loclists + 0x00000000000036df 0x65 ./StdPeriphDriver/CH57x_gpio.o + .debug_loclists + 0x0000000000003744 0x30e ./StdPeriphDriver/CH57x_sys.o + .debug_loclists + 0x0000000000003a52 0x1be ./StdPeriphDriver/CH57x_uart.o + .debug_loclists + 0x0000000000003c10 0x1ed ./HAL/MCU.o + .debug_loclists + 0x0000000000003dfd 0x9e ./HAL/RTC.o + .debug_loclists + 0x0000000000003e9b 0x53 ./HAL/SLEEP.o + +.debug_aranges 0x0000000000000000 0x580 + .debug_aranges + 0x0000000000000000 0x50 ./User_Drivers/debug.o + .debug_aranges + 0x0000000000000050 0x78 ./User_Drivers/flash.o + .debug_aranges + 0x00000000000000c8 0x58 ./User_Drivers/gattprofile.o + .debug_aranges + 0x0000000000000120 0x78 ./User_Drivers/peripheral.o + .debug_aranges + 0x0000000000000198 0xd0 ./User_Drivers/sensor_scan.o + .debug_aranges + 0x0000000000000268 0x38 ./User_Drivers/uart.o + .debug_aranges + 0x00000000000002a0 0x20 ./User/main.o + .debug_aranges + 0x00000000000002c0 0x80 ./StdPeriphDriver/CH57x_clk.o + .debug_aranges + 0x0000000000000340 0x40 ./StdPeriphDriver/CH57x_flash.o + .debug_aranges + 0x0000000000000380 0x38 ./StdPeriphDriver/CH57x_gpio.o + .debug_aranges + 0x00000000000003b8 0x90 ./StdPeriphDriver/CH57x_sys.o + .debug_aranges + 0x0000000000000448 0x50 ./StdPeriphDriver/CH57x_uart.o + .debug_aranges + 0x0000000000000498 0x30 ./Startup/startup_CH572.o + .debug_aranges + 0x00000000000004c8 0x40 ./HAL/MCU.o + .debug_aranges + 0x0000000000000508 0x48 ./HAL/RTC.o + .debug_aranges + 0x0000000000000550 0x30 ./HAL/SLEEP.o + +.debug_rnglists + 0x0000000000000000 0x95d + .debug_rnglists + 0x0000000000000000 0x5f ./User_Drivers/debug.o + .debug_rnglists + 0x000000000000005f 0x95 ./User_Drivers/flash.o + .debug_rnglists + 0x00000000000000f4 0x105 ./User_Drivers/gattprofile.o + .debug_rnglists + 0x00000000000001f9 0xeb ./User_Drivers/peripheral.o + .debug_rnglists + 0x00000000000002e4 0x24b ./User_Drivers/sensor_scan.o + .debug_rnglists + 0x000000000000052f 0x44 ./User_Drivers/uart.o + .debug_rnglists + 0x0000000000000573 0x16 ./User/main.o + .debug_rnglists + 0x0000000000000589 0xa8 ./StdPeriphDriver/CH57x_clk.o + .debug_rnglists + 0x0000000000000631 0x3a ./StdPeriphDriver/CH57x_flash.o + .debug_rnglists + 0x000000000000066b 0x31 ./StdPeriphDriver/CH57x_gpio.o + .debug_rnglists + 0x000000000000069c 0x12c ./StdPeriphDriver/CH57x_sys.o + .debug_rnglists + 0x00000000000007c8 0x4c ./StdPeriphDriver/CH57x_uart.o + .debug_rnglists + 0x0000000000000814 0x20 ./Startup/startup_CH572.o + .debug_rnglists + 0x0000000000000834 0x5f ./HAL/MCU.o + .debug_rnglists + 0x0000000000000893 0xa2 ./HAL/RTC.o + .debug_rnglists + 0x0000000000000935 0x28 ./HAL/SLEEP.o + +.debug_line 0x0000000000000000 0xadf3 + .debug_line 0x0000000000000000 0x574 ./User_Drivers/debug.o + .debug_line 0x0000000000000574 0xdbf ./User_Drivers/flash.o + .debug_line 0x0000000000001333 0x707 ./User_Drivers/gattprofile.o + .debug_line 0x0000000000001a3a 0xd4c ./User_Drivers/peripheral.o + .debug_line 0x0000000000002786 0x3e9b ./User_Drivers/sensor_scan.o + .debug_line 0x0000000000006621 0x599 ./User_Drivers/uart.o + .debug_line 0x0000000000006bba 0x178 ./User/main.o + .debug_line 0x0000000000006d32 0x177b ./StdPeriphDriver/CH57x_clk.o + .debug_line 0x00000000000084ad 0x4ca ./StdPeriphDriver/CH57x_flash.o + .debug_line 0x0000000000008977 0x2c2 ./StdPeriphDriver/CH57x_gpio.o + .debug_line 0x0000000000008c39 0x1014 ./StdPeriphDriver/CH57x_sys.o + .debug_line 0x0000000000009c4d 0x3a5 ./StdPeriphDriver/CH57x_uart.o + .debug_line 0x0000000000009ff2 0x156 ./Startup/startup_CH572.o + .debug_line 0x000000000000a148 0x685 ./HAL/MCU.o + .debug_line 0x000000000000a7cd 0x518 ./HAL/RTC.o + .debug_line 0x000000000000ace5 0x10e ./HAL/SLEEP.o + +.debug_str 0x0000000000000000 0x3101 + .debug_str 0x0000000000000000 0x341 ./User_Drivers/debug.o + 0x3b2 (size before relaxing) + .debug_str 0x0000000000000341 0x340 ./User_Drivers/flash.o + 0x591 (size before relaxing) + .debug_str 0x0000000000000681 0x5b1 ./User_Drivers/gattprofile.o + 0x79c (size before relaxing) + .debug_str 0x0000000000000c32 0xe01 ./User_Drivers/peripheral.o + 0x1234 (size before relaxing) + .debug_str 0x0000000000001a33 0x6cc ./User_Drivers/sensor_scan.o + 0xb80 (size before relaxing) + .debug_str 0x00000000000020ff 0x45a ./User_Drivers/uart.o + 0x77b (size before relaxing) + .debug_str 0x0000000000002559 0x254 ./User/main.o + 0x54f (size before relaxing) + .debug_str 0x00000000000027ad 0x2ce ./StdPeriphDriver/CH57x_clk.o + 0x563 (size before relaxing) + .debug_str 0x0000000000002a7b 0x8b ./StdPeriphDriver/CH57x_flash.o + 0x2f7 (size before relaxing) + .debug_str 0x0000000000002b06 0x9d ./StdPeriphDriver/CH57x_gpio.o + 0x304 (size before relaxing) + .debug_str 0x0000000000002ba3 0x12f ./StdPeriphDriver/CH57x_sys.o + 0x617 (size before relaxing) + .debug_str 0x0000000000002cd2 0x20 ./StdPeriphDriver/CH57x_uart.o + 0x41f (size before relaxing) + .debug_str 0x0000000000002cf2 0x6f ./Startup/startup_CH572.o + .debug_str 0x0000000000002d61 0x2b6 ./HAL/MCU.o + 0x85e (size before relaxing) + .debug_str 0x0000000000003017 0x82 ./HAL/RTC.o + 0x59b (size before relaxing) + .debug_str 0x0000000000003099 0x68 ./HAL/SLEEP.o + 0x259 (size before relaxing) + +.debug_line_str + 0x0000000000000000 0x638 + .debug_line_str + 0x0000000000000000 0x35b ./User_Drivers/debug.o + 0x3ba (size before relaxing) + .debug_line_str + 0x000000000000035b 0x41 ./User_Drivers/flash.o + 0x340 (size before relaxing) + .debug_line_str + 0x000000000000039c 0x87 ./User_Drivers/gattprofile.o + 0x25d (size before relaxing) + .debug_line_str + 0x0000000000000423 0x2a ./User_Drivers/peripheral.o + 0x434 (size before relaxing) + .debug_line_str + 0x000000000000044d 0x38 ./User_Drivers/sensor_scan.o + 0x3f3 (size before relaxing) + .debug_line_str + 0x0000000000000485 0x17 ./User_Drivers/uart.o + 0x3be (size before relaxing) + .debug_line_str + 0x000000000000049c 0x82 ./User/main.o + 0x38d (size before relaxing) + .debug_line_str + 0x000000000000051e 0x41 ./StdPeriphDriver/CH57x_clk.o + 0x281 (size before relaxing) + .debug_line_str + 0x000000000000055f 0x21 ./StdPeriphDriver/CH57x_flash.o + 0x269 (size before relaxing) + .debug_line_str + 0x0000000000000580 0x20 ./StdPeriphDriver/CH57x_gpio.o + 0x26a (size before relaxing) + .debug_line_str + 0x00000000000005a0 0x1f ./StdPeriphDriver/CH57x_sys.o + 0x2f1 (size before relaxing) + .debug_line_str + 0x00000000000005bf 0x20 ./StdPeriphDriver/CH57x_uart.o + 0x276 (size before relaxing) + .debug_line_str + 0x00000000000005df 0x1b ./Startup/startup_CH572.o + 0x73 (size before relaxing) + .debug_line_str + 0x00000000000005fa 0x22 ./HAL/MCU.o + 0x389 (size before relaxing) + .debug_line_str + 0x000000000000061c 0xd ./HAL/RTC.o + 0x344 (size before relaxing) + .debug_line_str + 0x0000000000000629 0xf ./HAL/SLEEP.o + 0x23a (size before relaxing) + +.comment 0x0000000000000000 0x64 + .comment 0x0000000000000000 0x31 ./User_Drivers/debug.o + 0x32 (size before relaxing) + .comment 0x0000000000000031 0x32 ./User_Drivers/flash.o + .comment 0x0000000000000031 0x32 ./User_Drivers/gattprofile.o + .comment 0x0000000000000031 0x32 ./User_Drivers/peripheral.o + .comment 0x0000000000000031 0x32 ./User_Drivers/sensor_scan.o + .comment 0x0000000000000031 0x32 ./User_Drivers/uart.o + .comment 0x0000000000000031 0x32 ./User/main.o + .comment 0x0000000000000031 0x32 ./StdPeriphDriver/CH57x_clk.o + .comment 0x0000000000000031 0x32 ./StdPeriphDriver/CH57x_flash.o + .comment 0x0000000000000031 0x32 ./StdPeriphDriver/CH57x_gpio.o + .comment 0x0000000000000031 0x32 ./StdPeriphDriver/CH57x_sys.o + .comment 0x0000000000000031 0x32 ./StdPeriphDriver/CH57x_uart.o + .comment 0x0000000000000031 0x32 ./HAL/MCU.o + .comment 0x0000000000000031 0x32 ./HAL/RTC.o + .comment 0x0000000000000031 0x32 ./HAL/SLEEP.o + .comment 0x0000000000000031 0x33 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\libISP572.a(ISP572.o) + 0x34 (size before relaxing) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .comment 0x0000000000000064 0x32 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + .comment 0x0000000000000064 0x32 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + +.riscv.attributes + 0x0000000000000000 0x51 + .riscv.attributes + 0x0000000000000000 0x51 ./User_Drivers/debug.o + .riscv.attributes + 0x0000000000000051 0x51 ./User_Drivers/flash.o + .riscv.attributes + 0x00000000000000a2 0x51 ./User_Drivers/gattprofile.o + .riscv.attributes + 0x00000000000000f3 0x51 ./User_Drivers/peripheral.o + .riscv.attributes + 0x0000000000000144 0x51 ./User_Drivers/sensor_scan.o + .riscv.attributes + 0x0000000000000195 0x51 ./User_Drivers/uart.o + .riscv.attributes + 0x00000000000001e6 0x51 ./User/main.o + .riscv.attributes + 0x0000000000000237 0x51 ./StdPeriphDriver/CH57x_clk.o + .riscv.attributes + 0x0000000000000288 0x51 ./StdPeriphDriver/CH57x_flash.o + .riscv.attributes + 0x00000000000002d9 0x51 ./StdPeriphDriver/CH57x_gpio.o + .riscv.attributes + 0x000000000000032a 0x51 ./StdPeriphDriver/CH57x_sys.o + .riscv.attributes + 0x000000000000037b 0x51 ./StdPeriphDriver/CH57x_uart.o + .riscv.attributes + 0x00000000000003cc 0x4f ./Startup/startup_CH572.o + .riscv.attributes + 0x000000000000041b 0x51 ./HAL/MCU.o + .riscv.attributes + 0x000000000000046c 0x51 ./HAL/RTC.o + .riscv.attributes + 0x00000000000004bd 0x51 ./HAL/SLEEP.o + .riscv.attributes + 0x000000000000050e 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(message.o) + .riscv.attributes + 0x000000000000055f 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos.o) + .riscv.attributes + 0x00000000000005b0 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_hw.o) + .riscv.attributes + 0x0000000000000601 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(tmos_snv.o) + .riscv.attributes + 0x0000000000000652 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap.o) + .riscv.attributes + 0x00000000000006a3 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gap_peripheral.o) + .riscv.attributes + 0x00000000000006f4 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt.o) + .riscv.attributes + 0x0000000000000745 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gatt_uuid.o) + .riscv.attributes + 0x0000000000000796 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattclientapp.o) + .riscv.attributes + 0x00000000000007e7 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gattservapp.o) + .riscv.attributes + 0x0000000000000838 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap.o) + .riscv.attributes + 0x0000000000000889 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_input.o) + .riscv.attributes + 0x00000000000008da 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_output.o) + .riscv.attributes + 0x000000000000092b 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(l2cap_sdu.o) + .riscv.attributes + 0x000000000000097c 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(linkdb.o) + .riscv.attributes + 0x00000000000009cd 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm.o) + .riscv.attributes + 0x0000000000000a1e 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_pdu.o) + .riscv.attributes + 0x0000000000000a6f 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_responding.o) + .riscv.attributes + 0x0000000000000ac0 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(sm_toolbox.o) + .riscv.attributes + 0x0000000000000b11 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(host_input.o) + .riscv.attributes + 0x0000000000000b62 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(aes.o) + .riscv.attributes + 0x0000000000000bb3 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(bb.o) + .riscv.attributes + 0x0000000000000c04 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ip.o) + .riscv.attributes + 0x0000000000000c55 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(lle.o) + .riscv.attributes + 0x0000000000000ca6 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(rfend.o) + .riscv.attributes + 0x0000000000000cf7 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(api_c.o) + .riscv.attributes + 0x0000000000000d48 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ctl_input.o) + .riscv.attributes + 0x0000000000000d99 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapbondmgr.o) + .riscv.attributes + 0x0000000000000dea 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(gapgattserver.o) + .riscv.attributes + 0x0000000000000e3b 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(peripheral.o) + .riscv.attributes + 0x0000000000000e8c 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(role.o) + .riscv.attributes + 0x0000000000000edd 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(memory.o) + .riscv.attributes + 0x0000000000000f2e 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att.o) + .riscv.attributes + 0x0000000000000f7f 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_client.o) + .riscv.attributes + 0x0000000000000fd0 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(att_server.o) + .riscv.attributes + 0x0000000000001021 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll.o) + .riscv.attributes + 0x0000000000001072 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_address.o) + .riscv.attributes + 0x00000000000010c3 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_advertise.o) + .riscv.attributes + 0x0000000000001114 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_connect.o) + .riscv.attributes + 0x0000000000001165 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_core.o) + .riscv.attributes + 0x00000000000011b6 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_hop.o) + .riscv.attributes + 0x0000000000001207 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_report.o) + .riscv.attributes + 0x0000000000001258 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_slave.o) + .riscv.attributes + 0x00000000000012a9 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_whitelist.o) + .riscv.attributes + 0x00000000000012fa 0x51 G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB\libCH572BLE_PERI.a(ll_pdu.o) + .riscv.attributes + 0x000000000000134b 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libprintf.a(wchprintf.o) + .riscv.attributes + 0x000000000000139c 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_lshrdi3.o) + .riscv.attributes + 0x00000000000013ed 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_udivdi3.o) + .riscv.attributes + 0x000000000000143e 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(adddf3.o) + .riscv.attributes + 0x000000000000148f 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(divdf3.o) + .riscv.attributes + 0x00000000000014e0 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(muldf3.o) + .riscv.attributes + 0x0000000000001531 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunsdfsi.o) + .riscv.attributes + 0x0000000000001582 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsidf.o) + .riscv.attributes + 0x00000000000015d3 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatunsidf.o) + .riscv.attributes + 0x0000000000001624 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(gesf2.o) + .riscv.attributes + 0x0000000000001675 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(lesf2.o) + .riscv.attributes + 0x00000000000016c6 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(fixunssfsi.o) + .riscv.attributes + 0x0000000000001717 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(floatsisf.o) + .riscv.attributes + 0x0000000000001768 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libgcc.a(_clz.o) + .riscv.attributes + 0x00000000000017b9 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcmp.o) + .riscv.attributes + 0x000000000000180a 0x4f d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memcpy-asm.o) + .riscv.attributes + 0x0000000000001859 0x4f d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memset.o) + .riscv.attributes + 0x00000000000018a8 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-strlen.o) + .riscv.attributes + 0x00000000000018f9 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vprintf.o) + .riscv.attributes + 0x000000000000194a 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-vsnprintf.o) + .riscv.attributes + 0x000000000000199b 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-findfp.o) + .riscv.attributes + 0x00000000000019ec 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fwalk.o) + .riscv.attributes + 0x0000000000001a3d 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-impure.o) + .riscv.attributes + 0x0000000000001a8e 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lock.o) + .riscv.attributes + 0x0000000000001adf 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-mallocr.o) + .riscv.attributes + 0x0000000000001b30 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-svfprintf.o) + .riscv.attributes + 0x0000000000001b81 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf_i.o) + .riscv.attributes + 0x0000000000001bd2 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-vfprintf.o) + .riscv.attributes + 0x0000000000001c23 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-sbrkr.o) + .riscv.attributes + 0x0000000000001c74 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-stdio.o) + .riscv.attributes + 0x0000000000001cc5 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wbuf.o) + .riscv.attributes + 0x0000000000001d16 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-writer.o) + .riscv.attributes + 0x0000000000001d67 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-wsetup.o) + .riscv.attributes + 0x0000000000001db8 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-closer.o) + .riscv.attributes + 0x0000000000001e09 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fflush.o) + .riscv.attributes + 0x0000000000001e5a 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-lseekr.o) + .riscv.attributes + 0x0000000000001eab 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-makebuf.o) + .riscv.attributes + 0x0000000000001efc 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memchr.o) + .riscv.attributes + 0x0000000000001f4d 0x4f d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-memmove.o) + .riscv.attributes + 0x0000000000001f9c 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-mlock.o) + .riscv.attributes + 0x0000000000001fed 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-freer.o) + .riscv.attributes + 0x000000000000203e 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-reallocr.o) + .riscv.attributes + 0x000000000000208f 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-readr.o) + .riscv.attributes + 0x00000000000020e0 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-reent.o) + .riscv.attributes + 0x0000000000002131 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-fstatr.o) + .riscv.attributes + 0x0000000000002182 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-isattyr.o) + .riscv.attributes + 0x00000000000021d3 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libg_nano.a(lib_a-nano-msizer.o) + .riscv.attributes + 0x0000000000002224 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(close.o) + .riscv.attributes + 0x0000000000002275 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(fstat.o) + .riscv.attributes + 0x00000000000022c6 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(isatty.o) + .riscv.attributes + 0x0000000000002317 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(lseek.o) + .riscv.attributes + 0x0000000000002368 0x51 d:/app/mounriver_studio/toolchain/risc-v embedded gcc12/bin/../lib/gcc/riscv-none-elf/12.2.0/../../../../riscv-none-elf/lib/rv32imc_zba_zbb_zbc_zbs_xw/ilp32\libnosys.a(read.o) + +.debug_frame 0x0000000000000000 0xee0 + .debug_frame 0x0000000000000000 0xd8 ./User_Drivers/debug.o + .debug_frame 0x00000000000000d8 0x184 ./User_Drivers/flash.o + .debug_frame 0x000000000000025c 0x150 ./User_Drivers/gattprofile.o + .debug_frame 0x00000000000003ac 0x19c ./User_Drivers/peripheral.o + .debug_frame 0x0000000000000548 0x300 ./User_Drivers/sensor_scan.o + .debug_frame 0x0000000000000848 0x94 ./User_Drivers/uart.o + .debug_frame 0x00000000000008dc 0x28 ./User/main.o + .debug_frame 0x0000000000000904 0x168 ./StdPeriphDriver/CH57x_clk.o + .debug_frame 0x0000000000000a6c 0x94 ./StdPeriphDriver/CH57x_flash.o + .debug_frame 0x0000000000000b00 0x50 ./StdPeriphDriver/CH57x_gpio.o + .debug_frame 0x0000000000000b50 0x144 ./StdPeriphDriver/CH57x_sys.o + .debug_frame 0x0000000000000c94 0x9c ./StdPeriphDriver/CH57x_uart.o + .debug_frame 0x0000000000000d30 0xb8 ./HAL/MCU.o + .debug_frame 0x0000000000000de8 0xa0 ./HAL/RTC.o + .debug_frame 0x0000000000000e88 0x58 ./HAL/SLEEP.o diff --git a/BLV_RF_W13_V04_20260114/obj/HAL/MCU.d b/BLV_RF_W13_V04_20260114/obj/HAL/MCU.d new file mode 100644 index 0000000..4311332 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/HAL/MCU.d @@ -0,0 +1,47 @@ +HAL/MCU.o: ../HAL/MCU.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h: diff --git a/BLV_RF_W13_V04_20260114/obj/HAL/MCU.o b/BLV_RF_W13_V04_20260114/obj/HAL/MCU.o new file mode 100644 index 0000000000000000000000000000000000000000..e9f429f60ca80d50aee3e475367238ac2b634667 GIT binary patch literal 36868 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/HAL/RTC.d b/BLV_RF_W13_V04_20260114/obj/HAL/RTC.d new file mode 100644 index 0000000..6726cb8 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/HAL/RTC.d @@ -0,0 +1,47 @@ +HAL/RTC.o: ../HAL/RTC.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h: diff --git a/BLV_RF_W13_V04_20260114/obj/HAL/RTC.o b/BLV_RF_W13_V04_20260114/obj/HAL/RTC.o new file mode 100644 index 0000000000000000000000000000000000000000..d91da9fd53a24057eb7720b37cf402b953f5954c GIT binary patch literal 25880 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 L&+AMk@(lbp_$WKf literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.d new file mode 100644 index 0000000..3fc83b0 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_flash.o: ../StdPeriphDriver/CH57x_flash.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_flash.o new file mode 100644 index 0000000000000000000000000000000000000000..6e18067a6f2ab3291148580497c1c347548c7856 GIT binary patch literal 19848 zcmcIs33yy(x&F^=NgCRuP1;WBHl36|T}a5*)wZ;0CT$_m(sYHuFi9p0WFs>vr4&f9 zQn=!+SOgaYM7=(GT@cZVBC<(Q5tWMzF4v7K?g)s5>%#rs|NH)P&K#=M=i&Z5=bZO_ z|M&mSzn?QR4cDaFS{=txHaY4gD z<@&}$FRPo1Dj#|Is53eFg#PMTkALFeq8l0xo|l^3db)}|c`KEEZd|G4hNH(`efh|t zTfZMobxk{7eDvk8x~a8Jy)bn~D)gvz-L>H@trf>FFYB82j5>1scv;1Bht!ejhn%A^ z_1b3+KXW*`q3h;n)sg3l%9j`CF-y z)EYN3>NBA1eUhnrHq3roa9!*_4?o2+=>a-q6O-^}ruP7QX zerZ|J_>tp>iq||^R<6|1>1u67Y$RGWek^h%HvYd=RSun%nt{_PI0aM4i9rgR)8hCFx`v!$uwsKlQIlg%D`xDXYbaC%R%~#@m%Vw$ z<;aeh>`<}E2^AZ5Y9!h}l(%^^BmTQa;uSSi&eR|>zp~B6b(NRmK3}jxbRhXX!jZME zFr54qgfyLI6-AEFCDiDY&{XE8nzO@^LrcTIhxY??noWm_HBLt4Gszu=7zK;I$0Aii zNZo=Hl5^WT$!NOjmf2GYBAKSWYtko~sR_8AN_mcRzO&SEE{L8I|3jEqM`$mdFLde@ zM?D|~DC$T^sfm{UmC8;6Ie3gtp_}^3UNODG`3HYY+2ti>JV}{cX%Ug@rpyyoQDcA` z^E|qNiFt@)4iv;Z)JWNXC*}>om<8=?qV_p;)Ha+<(<)KT9Jqz)4a7SkQLk9Us&z6X!;LevAv zx$Px#O$VHV$~)&9djY+pnC(WtN#Kws=YbJ-rO^kW6lkOH~BE z1ad;RtOO2YlEfjr%Y>K*7`l%0l1z3Y$9S$c9_4IOq4?FLgyyT#(lw=Fnm^%bDm-ar z>6=Pdly0h^WmKk0=S6^`QH4t^iu`#F8$#5;qNboyyu?^bYMnD@So6GC^^D2Rl-Sz% zz8Mb1nXu8h%DIL>DFbMyETBlUXy7K6I`Bf9MM}HYo4>abmzP% zeC185z5>;m9L!Z}N>uVHU{b2GpkgJ}Gd7uUwrW%9mc?!pX?hiK)L^>pgn0|mO_1VT z&k*&?yh-RNYVB#0DoVq1XU^R|eX>(dRXbI>nReZo)UVXgSrKPVX(@%^9!EoFOXbWE zplYj3f6bv=7Ta+_JLj5O$v{C!)H-(LP%Kf3X!C+1J*G|N-4Rv^TDnoiyNa1-m@Urv z9^B=^$OoMB@8HR3Oldc#dT;nc6iKU*N+R`Ec5YeU0gKYY=SA1#XVB+l6Ghz~AByH^(XHmW~sf!uzlCnoP0$ zwosj~Omu&^;WW=0-LL$#m`YZ`aN;&ycm{I%%y>`Z~gxm8L8(vVF z9cmQ~H%${t^7JwIpFb@ntDR$Jvq#Z?2B^pAhA6p{3ecZqt`TzH`qjfNe1A#e)LAt=#AEWF=}=3tw&23MOos3?lZ~J{LKuC0;Earf{|zd}|7Rm5CP(hxu-WJQikO zk*!T-c#iQEg*(l)L>w`0SF|*Ijn#e4jh5Q-*6%50a_3UH^F%k4t($dF*{BI#X`{`O zMwiO<_0ipEWws1?OjB)zV^ZTr5#~y)#$fC~J>57Qjr+-MrxPwhRp}@g0s55m`VlZ4 z6?7h;fs?Vq6yRQUg+eYp#uessBowYh1$g{q6f2|;A_(1wY!Un=rP;IPYHvBs_FuH% zZgd~ha{oEvg!h?yo2e?jZDy)lx5@vwZkN7Mbu---sGFJav`QRaN(S-dpJ1@5DOI3g z;BN7TL*@zf9WTYG^sdCCuI0IK5^kq?we8pmw#RLbJ7sN`M_om>5w2xAJw_jmmZ$To zJ)arPuj}p}Ra>@iI(J+B(jBU`ZC(4ubSkxF>*jOP>(6OXTT|_+ZRymxYI`m_x_Knu zKRncYMLxTJU^tgex9@CG1H(hT34GS#qA0gDwXQ|AjtzCeof)9pf zFw@z;x_@A#v4L>c;Ba?#VD(_OJ2P|z@!Vi$V4$Wulh4!)^bhvuS0|Q}Iy799%k0V4 zjAnEB;n6H9{kcp{ZY0~ant~F|jCS>{9^KQ}&_CFf-q)F-qmvHcTzc>2iJIO-&E{O9 zCYSGC-8(c!wW;YD%;s{L-fRuMXZPm&R#VM-xPdijHL)J)nwnhJbP<*BF*WmXs#(|Y z;Nb93qNZjfGnyG(-PhmS*F}x0>CFz=k~Kq_!R+dKl}?ZL=ep8+(%GR*=Rh{yKYAID z$ClCIe7e1VUzRKw_WGqX?j!3dj0lYlB)G-9srj~iL0_9udHvAXnMD0JHb8-CM0rBE zv%(BC4<5#HaHKz*9_-I5w=x@OdTl><(|Oxd=}j$a`?{^$(&uhYpPkx`Ne7pyVd3mc zucLn3lT~e|hl5jdc&MkpSG88-8lo%N0B9d%9VhPsBOb@la49mAcMsM^{y+VkC8vZMVY zeJ!I@i_tR>Xm7e_Ad~B>?fQSb(Hjza>yC5UH?^zol^vOpk&eOPu_4olbS^*E-9Oxs zA08f{G3y`dz>KQdlgJKsX1lv-$@X@2)i)S*PtDNqP_`yJ(9_XB)HN{Ho$VORboKQQ zW#8zqxhrySNTUNIhH9(AQ7dF!v>BKswWqdErMt5|8Jgbd{1qeF90XeJG%*R8Db(J& zmEflKEi|17s157auS_i1yCu_gX##uH)=ll}Yjz}3wj(J&(cidy=|b7L_}in`DA88} z`<;oQ*L`uefF3XY)I2HCdVT1I@H-;s9&kc;J=FYo^H-XmYBpcH1iy4MUw!xrQ`xf) z(3|Kip9a`GseI%0A<7y-xJhc=77{TB_9&;7V5B^1_Q8gcy7VAUT{!I<92^^{2k6Z3 zrIRmRe97Um_wt632HYc<%nPxI5%t1r{(R~SKcz3#_{HCfVg8!UQeqKR<}!dco)`Az ziQ{`8OgP_sYh&ug+zgVB(^s{UI6ugz*lcOfsR8bdqjzUm!t}YOus{BFUfA9fm-pJk z`Cb|3)7<)=n9m912e~)*x%{GlzxE`2Wgs6PAvtlp7E7hSf*f<76Z?aFqs^A`_&S*r z`>~Av5#MIBrTngw@Qy%!XMlH~gkKWK5AvZv{>k{>fPXx|uMO~n0e)kE-yGoXH{#Mi zw+He+b`t*CK>p_f{9zw=A%UPloqKBmkxyJc;@-5_MF4ocFI>MT=Y{t>vESQ8 zIp5o#n0wC;=3dM>PF!u(SK{%C-gxv#bC?+Nhx0(`PNA=p1Rz-t10 zWq_X@;M)WI;sE!?m)}PpcI(gYGZB~b^US|~&>#NsDO^7@%}(p)O|BMK2MFif{*9~ai63{zH?9s7_u3mbzy5o5imUfgezC9o z2Z`T72dB9D7y)nm;_6=FOML$Oi7)VR%*7!ee}Z_Mk3UWPIv@Wb@sIiVv&5hG@!t~n zR!v;}k@$1I{J#*toDNQL6`{8GT1r0wpF-UH+X$n@RVDGmzVfr&zJj4tRT1~kuSLZF z%@?nM_$e+gS1XBo>oKmHiP!t`&m!*4_fmBp@z40~zni$1O4P-~{qwz-xYzy?HALM1 zJRc)|l`q~^0sleb3HJsi>aD~-;_`C!4&vT?Em7|#-sa|)s5^;&#^vSe!^Hjf{{(UW z`uI#B|9;}$`YKV65P!%Q?`y>OySzj_MSR@HpCSHrmzS%b68HDVFNrU6^W*9d#JyB( z)S5O(Qj=-%R{=AKyXzV?KT%aj$>lDofl;5j8;En|~3r zS4?mXadjo-Z}ipYTH?b#egpBZ(ZMOMZX&$jm;Wx}Az%KTgg@@f|1j|jeEFXw{0m?H zXNgz%@*g0)&Bq@j{Iu(jt0&z&)TmT_o4EIsEmc1x-YT_4{?Cc8^6_62U+d#95cm40 zM7=^h;pUg9*NFSq2mLluus$Xd-{$jI68FZVM9n1bpWjL1<39gF;$DiWGl+Z7ub5gw z`~lYxQ>%!3^FOB66Tjb=e-?4CKVoVN@oRngJBfQKqAny(O_UT-UBtch5>frc{m;)~ z;@!lEQ!;3T$` zFSs2s+>tI4yWR#zbdu{Okf{^6#Hg3Z^%AUJqSZ^ddWqLy>m%_RBwmx%QMK0QCWL8C znG4;e0j1m8x7oWl;BMe>?`SjGu%R+k7`ap!m*!?ura9#nMPyP@l2lwM5Nb)HDUmW4 z5^+-!(Gqf+OS5SYF%&=rQ0?Ys)2il_xj;qZcC^{HH=rn0%hWDqE~qR*kZKy7G8a-C z5s*TlCZJ|e+qX%tHlnvE7Xc~0+y){sgr|!wY2r3FA(Q$-y15Z13LtlpL1;u7QmqMh zBZ>&91MWr?MTs`qLNc-@G>rk*$+T)mo2e*Wa38uzMbV+;WU+xoGXY4%&FI37Fyl)M z71?3d!49($sCm+Kj$vlojy8@flRXhU3HQ2j$a!*#)5cng1%ThBkc zz3vC(fXn^exKOvh=oS7Nh`p@*K{`>wZdCJ-f%GO$`@?E}@BlZmtQOI=9GefNRdh_j zKeiQYJ$QdAf5gbD2l!FOx6sAym$^#fb|AmN%X(}@zE1=a&>J;j8b z$LK@}yRLK0K-%*NKh7BKa^%Ac+U|Un^(64u7%v2Vf-&BM9C;Z-+npy_$Mezo2IF&p zzsdLl;BPU;JGt`|;{o9RVvNr-&eMz!0DqhD^}yd@jJ|Td%NU8u<@3K{Y^l-K4FT(RO>v+d@{=^vX zhE>NsTrGMj>9#(2r*>XpPXhi|JzOn%Ej<6r`f}huGhPM%Up!nbdMi8_WJ+6s|Hk+- z;MW-M1E&9wt|nY%{;?h7YSC|lC&Zo)0b{aI`Uw2^uqn7&^n2l13ZcGeqj0H2k%@?IqPpB zTs7Il)uO*0o++%~1}t+G?^8|%>kk3r12d(^faQ+_z6m^y^=|`DXZ&N}IOAu5XE6Rf zF#dfyrB{KmuqaK45S9<%Q-No*o&=V;TI=&nq%zJN_Dlwz%NXyQ7S94suwLcE)xgiv ziBba{&OG)k1x_+v?ZfMUCC-o!j{-}aj{;Y5*-rq^XZ%^<(-?mqSTlYYxSBDxW@iCo zY@^OX#@HgAMU1hXIg1&az3X(w7%E3FwhX6+bu3+ru|yr2pP2484yLJ7%YL)h3C1*X z&R`wGY%zw=#zFIJ98{hDOoAdSg<=*r0@t&S??xIZ-&=8Zo5c3_Eb_E^E#V{QCT089LPfF=HYz)R^w z>5IV27(eR6j{`4f{X0Hv_Eo9>bI>LJZ-6EKi@*~9Prwo%d#S}SV2O|KC@hWxOZ*ts z&sjkMD3t@t+Q)l>-4lTAo?zCI>|#dW22qRWgT#|%MpnRDJm|_KCLkqXEuPO4PGVpw0c-Ib zBb=N9RViRC9=tLpE1)U`ti|&a!pTZHQThoTT09ueBmz?c*5dg+VF#0)5?&XQGYm9X zi;k(2Je74|EgtNdNh}CTz*;<0pwDI$Vnzx2iD@jV<0(?bzm(X zY!gXLOiI97JlJECnCz5*wRoDL&u1N2i|1_Ur?C#K#j_PUCOaiyEuQnCSF;YR#nS~H z3yTu47EeF)g{%W>@r**p0-^-0#d9U}#jFEs@f?JX4TBP}77zCDWDV=UT0A#HuVo!r zi|2jN&tM%`i|0R}V-unTti^*pKZ%Wj60jBz-k+0L=#+r9cpik_$U3kV5BC3L6YIcQ zJl}+l&4v=N7SA)#v3XDe*5dgY^ku9AYw_TDkzCF?uollBp|4;aSc~Vc&{wh!ti=%dw(c-AEGqC^Q;iwE!U$u+D4Yw^s7ekSX{T0EyiU&}hM7EcrO zb*uwx@vMU0%sQ|ZPYU{a)`7Kn@S9|^g>_&pp7Wq%Go}Qr#dALNR@Q;FcsikPU>#VC zrw95MSO?bP!5_amZLH&WndCVh)}p@|`njwFYw_F&eGBWrT0C!uen0ELT0HL|>}+El z-?JyTdsvHpH}svX18ebo4*D+Efwg!Zgua_~U@e}uollZpkKf`uoe%#mrr)E z4y?uV1LzmB4y?uVbLbbb4y?uVE9hy~fwg#^hkh~Zz*;=7K+muati=-wlitZXuoh1V z^e)zcwRp;)ce4(x#WNLpmUUn)9(>QA>|q^Pi>C^DFYCZsJd2_Cu@0=o(*(Vrbzm(X z{Aq9U64rsWc-BL|lyzV&p0lA3unw%na~||T)`7Kn@Vh{Ah;?8so;37f)`7Knvd~9Z z2iD@b6#8YX18ebI27Q!uU@e}@q32i!*5bJadY*M)EgpQHO^&e+ti|(I=zCZP*5bJt z`sJ(xYw_TBgyde6uolnnpud@QU@ac} zId<|O>%dw(e}?`R)`7Knq7l-sV;xwFrwsZb)`7KnW}1{avgBYw=tK{XMJ$Yw;X}{$AFBwRqkJ{WjKtwRqkM{e7$hYw_F; z{dU%YwRk=Z{SMZFwRrA^ekbd|T0Hkbe?RNMT09Ryzl(KXEuJq!e}HvhEuKn}oG-B+ z2aYkGMVG3n97z^44IZu*eJ?yxPb_cet?U`6OVtNGTrE1L{*rgH4%~DTV@%&A zAMkL~yBVw6+!cfQOebCQqkQeND4*S%SGD+4FIC%_%c_Da#YHi@J=X^PZKa|MN zEL-$AjD$LTraMwV8E^k{QzR}E3Z?;ey9qN6( z5kI=x;M6@9LZ&~jA&$R(%hF$r`D@fee+NgU%wMI{X7c&b{?4&H-R+-EGs)=CAyd|T zx8W}v5;9MGw1t|~Bv*Su45Vs0is?9+ubw=?`(hp0Wbcc$LQ7Dsm5k-J^gnbUJckbG zI8LDhQ{NvCYvy4(Y_joMN$|(pLh%lghIr@$8?T43Ki(7~$g|1D!*cTbrV+W$n&@hM zxChFwr32|{y6=3t;=UzxAP?>MC>{QIw-GsuG@ER^50T)H_lmDyN+l2R9-#yAZ2AR} z6(}gl<~=~%AFrG~Up`F&>NipH5bqmw*fIna{>VROE9J}knGeHv8chm(p0dft_z?;I z`##&KR2@wo+_zlvaNpx}*fIpwrU_nOg4?_o3H#$!E>r43(hzTo=K4?e@dam8f(41|Pwvf-? zj(bx|;p<(r1AB^XM<;1CoFg{Gy%bL#Sw^C4_v)**DyGh;qdMXdxLWRo`GB=z_ZAdf ZzKBk?QUq>=L^3;?K^+mJ?FL4br1cd?Ch!M%g=ROJALj-?U(NFj^Fo23F38M ze7Wq-AD7PAcc$+A%Vj5yyX%}Pe{Du|0VTsFRxTH)<6<%L5Q_u$0j?C;?wQw6%W!$*%R*k*c&{KrV_E9a_(CBWm1h>=OSk8YLOj2Am&LLkgZ5~LAnFW*)7utA{Y}c#%kf2x2%Gu zZk4F0*k0kG1fJ_j+gh=$VoOEO0&31DJY`#J4dx|_Y2dxa_S({lT5rz+X{$91^7$K# z8v|5PI&1y)fofyEzisic0D`3(1ag&KCuB7t=1^AUrB+I6XjxVpADXwI!n1Pe%6&D} zMiogFs#CNaD`hWKr(mBe6KH{YHBYrKCA)Px&lqh!A=kbrRVOZt0~Yjt)j065#f$^* zZTbxn+_C5)qrweI_*?A4-8DJ$AN(1^LY$fHimDm$0LtR{T>0}sbtx&;x$V5&GmbZ z7CE7C4(;*yi|a1dIm?T6!|(BFB{M50C$aitIk_#J6RqD-RF?=1lzozaNoS|ea=Blf zrq6S`Zkf-UB7EM(ebhZ%%u)MXeSS|08T_7rOte6c4+Xe~mSX53_IuLO`yOq1jul1G z7N4~CQ@H5NUU!^XscwIc-&0bYhZJwIVz9-X?<5VI9;w;+^i24ye3nv_FP|LGBu0br ziC9kb?d#by*tBs-OeS)Z6QaAXXK!CJ)1OGkCM9X#nH*0RVyTX?aWR!qHSs9v+|$0J zw^MqeyR)N-y;Fr~UtcuRm~OX?vWZkSGaf9eo1e($3dK_Qo_)cNEn9+3k%mY^V=$bK zjU-!>smbOD;dq)FNVTRDqp{3U;`wwel?so>3bAl1nNAj3gPTdsWW)K`;Y2u>$QQD? z1S!dUES#TA#9JvT(O51%(V9El97(3*(PJYq+D2#t&PS(@1jFOO@ZNkdoG*;Fj%TK* zH{r2#BA<_qC&H;jX1p-bNcBU;)P^36V4~(k?N1ho;f)6ES^oLvzcHx zJQ>Ty(ybH8@rgK{RCqjL)eL81=|pRjn4;lrjzkMQwmpLw-Dq$2NN?hBB4rPF&z@*k zDjO>#GvlI5bt0A;D8vd0o;f)!n73#YDVsJ@N`_W;PChufGci`wT7NR1=o}sAM9%5m zK(j07bM~ZS=|oj;yJ&u7eM}s$vF6B-YyxL9cyuy>ChbgEQ8EF-bY^`!gzx`naW*)zcFcI)u|Z0^v&WGtSD-g3+S$Z*H54Vxl6hx>Bb zgEW)FyF2!2xTAL{+TRu3-_#r(YHXn;9@*H~)YLMZ9XTi(8rBaKM*9-EfCMSo}*{O_dIGQg^jV80hg={uOgO|(<=aTt&_;4_h z9!ZRj(iJ}*k2gi6dN`cPW)k5u-TpxG z_7CkI=ot`2lU78cqlvNDRH_gy(5lThOb8n1QCeDrL(bdJ5ChieOT#g1xyIh z-O;f%xO%!T7C#ikZLYs(pd&mK?9{VD@nEuf^Tsvm=7-k?d>*_*#UqT{jJYMVJ{R1d z5AVm@`zWF8o-n!ydaHc$Mi`lFjHa=RV|Of_o=PJ;y{5BW=go~eWa0?Rfh%(oF&*sJRJv)wXFMCyS+0| zx7Q2TU+s$9>xJVDt~md$0+HixeuK;3=Hgv0zRSgNnRDU%{hF%whFsiUAM77>#qIUL z@kv*_;NTV{;GthRFdue#e_lMl@9wwfm*Ztt1I+C zjf+<_5eO=VUqv<$c0RAR5Fd8LTM3Ujcst?S9K4gT?JpB}mNi)MGO?HNE(aeZ+~VN3 z5VqGxnfNGi=lwKJ+}U_y zqJ91W5h6b6@UJEQKMo!tjy1t0Ahr_!5pA09ApEq0-$eND9QFH&Kj`4M692G+j}Y(G z>FE3q5RQUzv}4UzYw=enfQ0& z&im2p#1A?AZxMgVszd9+iXn?v%prclO6V21w|>Op)uN`zUny{}wa>Rw)Dd@He`|{T zlbXYu&k!5br1oIVQud087g!y!S`d*GPnosXP zX%$D!`SgBrtccT@6@B(K^fm^?s%g>C+d^9twg`4WTL2nqx0$w0v~8qq18vQ;HAz2M z1ePXghB1Pw5m+L~6pQo zAJ8~4RUJ(bL-*)_w&;Kk(LtU7j!2H9O4Ot>$@74&k~FC-O)7VjN+(Z{eDZ8@RQcpd zf~$NH)irtE&{e*O$`?`jBC3DQdMH%BX7sOXM+>^s)hQ3X1B3eP(Fg_61_f19%{Y=t zXOLBQv`BBKJWxNHRX>{1KBbV&bjkx&MJI;j+z!cE9+LAtB&T9XE{&mH_Mj1-oMdJ! z+vxfY4!=)1e}@8p&mUU(JEm$1E1UnsRg<@IGeh}z#Kr0cfVWqzZzLQ(%qG0ght-4e z81OXf$AOPB#=Z_gRq9n+UgC8hXAxNIWzcV99a!tQH`LwEI%dyayHC{} ztfT)`#~I_EuM~u6Hzs`6M@Ewi^91X7<{RH)dby9{!@7Hf=J~Tz~5tx_d(-N z8UGjRe&5FRN-rz1>&^#$nmux@KEt@04hANZ3ZAhVF9Uv-c2rE-G+qm=#wr5*XSAcT zkv8Kw2}P>|w*#y3=>@*Ro<86|XT0Bm4*;uk@dICFPZh8_uZ4v5`2y?nmHk)ahW_jE z1lHpjB&_Fd6+EhMzVA_;~!_-KnG)#v7CzpV>uUNjN9m7j5F>8o?v_vFm4i5_R?k? zlu!%;A7Xq9aEkFqfzynU!YE~2phIYmjZLNB2EBrHU{iTM1-+7WU{iVSg^od`0&FVJ zIl`fNQ286oR36-hLf1)Ies7t|^C)yI7AnA|@?gn^Fi}*1P36J#gyusP0@zd@EbGt$ zs6qgn%JV$o5EdO3U{iU1NI0|zst~}Y^1MhmghfFG*i@c>Bpj-NDg>~pJg*QAVIfli zHkIc!!l3|EA%IQgd5dre3ylh}sXX|Xn9x!w3t&@uDxu?opaN_v&m!o{SqCBJU2qeVy6OZDo+RW4C}zA^6VyT;DVrn z`*~=!jZLM;p|4>b*i@cF&~X7#0XCJV0R6+P1DncoJ9J$1RDez8xf6PrbzoC@?t_kt zk_xb?Ja|Tg*0T<5D$nPkH?j_FD$gU(n^*@nmFFAKaiLQIHkIc)(3@EYHkAk8%%K+6 zflcMX_hV=S>%gY+`~W&`9#nu$<@pKpO{@c(%JWaqH?t0GDi5Ahp)ITfo67Sa(6_P< zY%0&2(6_M;Y%0(HLcf7^U{iTYOGw8$v^#KRNPmDRp(M zHFmHE%d4)}#`Q|alxshx&Dg^pSnF=K zalO(-L;h&G5F4RmA;-rFjS7kBf@r}1dx(aSd|ou<5~)}N)CT_I!~Zkj{|-2i%fkAu zAx9nlF9*Ap6|z1U-OV`uNryxBhbZ;V@$-V}hx!pA8&4(k1>I}q%f&L|iDE668J}&$ zPY^me4Tpx1=`ZBO@h>k4`o9imkH+YqU#J%Up*&V78|rFG1MZzrP_~piLLu&c{e_=DUybK|?-_ zgU)xHurps95nQ9X=zJe1!I|$>%7^nqzH$`+sau(N+&>e!RyL;vQf81i1GP1hkPK1~baUjbCnu^$oF7@;Xjj9=aq&~CMgq1~5h({%`npHijG0IKNNOT?Y|MngheAPxBzs2K9SO`EPm zP|Wu^e^a(&zoM8kpQy9f!6FqyzA8%Q%-2Ero_m*Z#_s{nd>^BH3ro3wHI97CR6g}; zBz&~!yfoIjpe=0mF5jFAAr89Qg>RF~m#6QHh)$+*!PlvLI&_hI>TxM0^c|&*e9rSI ztQF!}(lO3h|A=8+@V5)<_9Q`B-lTlLqX`|+CJK&@Zi`-8bU&m7LDH|$hJ01D&7sXP b3}PAG=oW2%%w;k0%ifQea& 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.d new file mode 100644 index 0000000..8b9dddd --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_keyscan.o: ../StdPeriphDriver/CH57x_keyscan.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_keyscan.o new file mode 100644 index 0000000000000000000000000000000000000000..95c3799595c40ec145ea03b1588787bd682be42d GIT binary patch literal 11272 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 V?^F!(aV}lmC(yrDK@hP3{y$w@spbFx literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.d new file mode 100644 index 0000000..a5cd7b8 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_pwm.o: ../StdPeriphDriver/CH57x_pwm.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwm.o new file mode 100644 index 0000000000000000000000000000000000000000..5dd3400389b410a74ee1ff8ff5b60b755e98fc2d GIT binary patch literal 22364 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.d new file mode 100644 index 0000000..e7527e9 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_pwr.o: ../StdPeriphDriver/CH57x_pwr.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_pwr.o new file mode 100644 index 0000000000000000000000000000000000000000..4a46f17995cc3d92b6d42fd9ed32a0a11c6b0345 GIT binary patch literal 63932 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.d new file mode 100644 index 0000000..fd63dba --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_spi.o: ../StdPeriphDriver/CH57x_spi.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_spi.o new file mode 100644 index 0000000000000000000000000000000000000000..e0b2be2c2309a83e948c9b73ffffcf13e657be5c GIT binary patch literal 34352 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.d b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.d new file mode 100644 index 0000000..f56ae76 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.d @@ -0,0 +1,37 @@ +StdPeriphDriver/CH57x_sys.o: ../StdPeriphDriver/CH57x_sys.c \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: diff --git a/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.o b/BLV_RF_W13_V04_20260114/obj/StdPeriphDriver/CH57x_sys.o new file mode 100644 index 0000000000000000000000000000000000000000..83e05d5adbd83c1a547eb5d9b15d0d72043ad494 GIT binary patch literal 56280 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

Iz9`4$; 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/User/subdir.mk b/BLV_RF_W13_V04_20260114/obj/User/subdir.mk new file mode 100644 index 0000000..2e23327 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/User/subdir.mk @@ -0,0 +1,21 @@ +################################################################################ +# MRS Version: 1.9.2 +# ԶɵļҪ༭ +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../User/main.c + +OBJS += \ +./User/main.o + +C_DEPS += \ +./User/main.d + + +# Each subdirectory must supply rules for building sources it contributes +User/%.o: ../User/%.c + @ @ riscv-none-elf-gcc -march=rv32imc_zba_zbb_zbc_zbs_xw -mabi=ilp32 -mcmodel=medany -msmall-data-limit=8 -mno-save-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common --param=highcode-gen-section-name=1 -g -DDEBUG=0 -DBLE_BUFF_MAX_LEN=128 -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\Startup" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\Ld" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User\include" -I"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<" + @ @ + diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.d b/BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.d new file mode 100644 index 0000000..b00b6fe --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.d @@ -0,0 +1,63 @@ +User_Drivers/debug.o: ../User_Drivers/debug.c \ + ../User_Drivers/../User/include/includes.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h +../User_Drivers/../User/include/includes.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h: diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.o b/BLV_RF_W13_V04_20260114/obj/User_Drivers/debug.o new file mode 100644 index 0000000000000000000000000000000000000000..61e42d9f8afcd344cc15218a13860483248c54cc GIT binary patch literal 28160 zcmcJ133yf2x%S#QnMgP>BsE$;lv@%n5@yAqD3F z74=qWtx&5~TP^l#we~8`w$}UC+ge*||K3`!wZpwy>(JKL|9jW>t-V(^QS^Vj>tUb$ zzVCY1w}!p;+WYKm&V@^x8Xd<`COPUIgQH69MG3gq zKU%TpqGiV)uWD~=?0Di1wQFan@xj{HGGF><<;Cx+tjL~}!o+84Uwtq`EjWAeFHqYT z??_RVIbWTV{6fV~YF=9Sa@{W*e^nWOM|C)%gwj3pvP!*C$W5Z&Bqb>`Du1pmi0-1% znLWQVym59-=a~z`YIa-@N9V|DKzyRLD(My0>3_M(?k`Bt`A3FWqfw zxj*@(+MB4x>-Qw-aV!k~OznNb)a~U2+BA>4_(?5pZ;&>}(Nb!AS;c8#UB4a&YVG+~ ztv|eEV&ut+-5=LV_wfgI@2gLKdgWtiW9en4#imVr^>IdfO>0+PZ1OxW)s2~TU|;Sy z8r5;*RL9JHD$;PM_PU0I6~?v1$qgyhtwL⁣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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.d b/BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.d new file mode 100644 index 0000000..72bde9c --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.d @@ -0,0 +1,63 @@ +User_Drivers/flash.o: ../User_Drivers/flash.c \ + ../User_Drivers/../User/include/includes.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h +../User_Drivers/../User/include/includes.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h: diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.o b/BLV_RF_W13_V04_20260114/obj/User_Drivers/flash.o new file mode 100644 index 0000000000000000000000000000000000000000..7a9f7fb2d4cfc5d28b41aa79a6f2c8a59694d6bf GIT binary patch literal 61284 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 K4wHBk-TwkYKJMuN literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.d b/BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.d new file mode 100644 index 0000000..f079aaf --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.d @@ -0,0 +1,63 @@ +User_Drivers/sensor_scan.o: ../User_Drivers/sensor_scan.c \ + ../User_Drivers/../User/include/includes.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h \ + G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h +../User_Drivers/../User/include/includes.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_common.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH572SFR.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\RVMSIS/core_riscv.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_clk.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_cmp.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_keyscan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_gpio.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_i2c.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_flash.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwr.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_pwm.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_sys.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_timer.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_spi.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbdev.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/CH57x_usbhost.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver\inc/ISP572.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB/CH572BLEPeri_LIB.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/HAL.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/CONFIG.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/RTC.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\HAL\include/SLEEP.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/gattprofile.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/peripheral.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/debug.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/uart.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/sensor_scan.h: +G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\User_Drivers\inc/flash.h: diff --git a/BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.o b/BLV_RF_W13_V04_20260114/obj/User_Drivers/sensor_scan.o new file mode 100644 index 0000000000000000000000000000000000000000..8cf0ef37608c38c31c8134e501de61586b56a0bf GIT binary patch literal 195340 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 literal 0 HcmV?d00001 diff --git a/BLV_RF_W13_V04_20260114/obj/makefile b/BLV_RF_W13_V04_20260114/obj/makefile new file mode 100644 index 0000000..07ed5ed --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/makefile @@ -0,0 +1,75 @@ +################################################################################ +# MRS Version: 1.9.2 +# ԶɵļҪ༭ +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include User_Drivers/subdir.mk +-include User/subdir.mk +-include StdPeriphDriver/subdir.mk +-include Startup/subdir.mk +-include HAL/subdir.mk +-include subdir.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(ASM_UPPER_DEPS)),) +-include $(ASM_UPPER_DEPS) +endif +ifneq ($(strip $(ASM_DEPS)),) +-include $(ASM_DEPS) +endif +ifneq ($(strip $(S_DEPS)),) +-include $(S_DEPS) +endif +ifneq ($(strip $(S_UPPER_DEPS)),) +-include $(S_UPPER_DEPS) +endif +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +-include ../makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables +SECONDARY_FLASH += \ +BLV_RF_W13_V04.hex \ + +SECONDARY_LIST += \ +BLV_RF_W13_V04.lst \ + +SECONDARY_SIZE += \ +BLV_RF_W13_V04.siz \ + + +# Ŀ +all: BLV_RF_W13_V04.elf secondary-outputs + +# ߵ +BLV_RF_W13_V04.elf: $(OBJS) $(USER_OBJS) + @ @ riscv-none-elf-gcc -march=rv32imc_zba_zbb_zbc_zbs_xw -mabi=ilp32 -mcmodel=medany -msmall-data-limit=8 -mno-save-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common --param=highcode-gen-section-name=1 -g -T "G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\Ld\Link.ld" -nostartfiles -Xlinker --gc-sections -L"../" -L"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\LIB" -L"G:\WorkSpace_YYW2\CH572D\Project\MCUProject\BLV_RF_W13_V04_20260114\StdPeriphDriver" -Xlinker --print-memory-usage -Wl,-Map,"BLV_RF_W13_V04.map" --specs=nano.specs --specs=nosys.specs -o "BLV_RF_W13_V04.elf" $(OBJS) $(USER_OBJS) $(LIBS) -lprintf + @ @ +BLV_RF_W13_V04.hex: BLV_RF_W13_V04.elf + @ riscv-none-elf-objcopy -O ihex "BLV_RF_W13_V04.elf" "BLV_RF_W13_V04.hex" + @ @ +BLV_RF_W13_V04.lst: BLV_RF_W13_V04.elf + @ riscv-none-elf-objdump --source --all-headers --demangle --line-numbers --wide -M xw "BLV_RF_W13_V04.elf" > "BLV_RF_W13_V04.lst" + @ @ +BLV_RF_W13_V04.siz: BLV_RF_W13_V04.elf + @ riscv-none-elf-size --format=berkeley "BLV_RF_W13_V04.elf" + @ @ +# Ŀ +clean: + -$(RM) $(ASM_UPPER_DEPS)$(OBJS)$(SECONDARY_FLASH)$(SECONDARY_LIST)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_DEPS)$(S_UPPER_DEPS)$(C_DEPS) BLV_RF_W13_V04.elf + -@ +secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) + +.PHONY: all clean dependents + +-include ../makefile.targets diff --git a/BLV_RF_W13_V04_20260114/obj/objects.mk b/BLV_RF_W13_V04_20260114/obj/objects.mk new file mode 100644 index 0000000..90eb540 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/objects.mk @@ -0,0 +1,9 @@ +################################################################################ +# MRS Version: 1.9.2 +# ԶɵļҪ༭ +################################################################################ + +USER_OBJS := + +LIBS := -lISP572 -lm -lCH572BLE_PERI + diff --git a/BLV_RF_W13_V04_20260114/obj/sources.mk b/BLV_RF_W13_V04_20260114/obj/sources.mk new file mode 100644 index 0000000..3369854 --- /dev/null +++ b/BLV_RF_W13_V04_20260114/obj/sources.mk @@ -0,0 +1,31 @@ +################################################################################ +# MRS Version: 1.9.2 +# ԶɵļҪ༭ +################################################################################ + +ELF_SRCS := +OBJ_SRCS := +S_SRCS := +ASM_UPPER_SRCS := +ASM_SRCS := +C_SRCS := +S_UPPER_SRCS := +O_SRCS := +ASM_UPPER_DEPS := +OBJS := +SECONDARY_FLASH := +SECONDARY_LIST := +SECONDARY_SIZE := +ASM_DEPS := +S_DEPS := +S_UPPER_DEPS := +C_DEPS := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +HAL \ +Startup \ +StdPeriphDriver \ +User \ +User_Drivers \ + diff --git a/BLV_RF_W13_V04_20260114/功能文件.md b/BLV_RF_W13_V04_20260114/功能文件.md new file mode 100644 index 0000000..30859ce --- /dev/null +++ b/BLV_RF_W13_V04_20260114/功能文件.md @@ -0,0 +1,27 @@ +## 20250114: + +代码功能: + + + +门磁事件 + +1、当门磁由关到开时,触发门磁开启事件 + +2、门磁关闭时,不会触发门磁关事件,只有在门磁开启后,在指定时间内没有再次触发门磁开事件,才会触发门磁关闭事件 + +3、门磁开事件触发后,如果在指定时间内没有再次触发门磁开事件,则在时间结束后,触发门磁关闭事件 + +4、如果在指定时间内再次触发门磁开事件,则重新开始计时。 + + + + + +卫浴雷达事件 + +1、当浴室雷达检测到有物体进入时,触发浴室雷达开启事件 + +3、浴室雷达开启事件触发后,如果卫浴间雷达一直检测到有人,一直处于触发状态,不会触发关闭事件 + +4、当浴室雷达检测到物体离开时,在指定时间内没有再次触发浴室雷达开启事件,则在时间结束后,触发浴室雷达关闭事件 \ No newline at end of file