From a6f9f52555cd185553c0b7547e3881144397036c Mon Sep 17 00:00:00 2001 From: yxming66 <2389287465@qq.com> Date: Thu, 27 Nov 2025 20:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .mxproject | 32 +- CMakeLists.txt | 11 +- Core/Inc/dma.h | 52 + Core/Inc/main.h | 14 + Core/Inc/stm32f1xx_hal_conf.h | 2 +- Core/Inc/stm32f1xx_it.h | 3 + Core/Src/dma.c | 61 + Core/Src/gpio.c | 25 +- Core/Src/main.c | 596 +-- Core/Src/spi.c | 73 +- Core/Src/stm32f1xx_it.c | 48 +- MDK-ARM/MR16.uvguix.yxm23 | 310 +- MDK-ARM/MR16.uvoptx | 285 +- MDK-ARM/MR16.uvprojx | 159 +- MDK-ARM/MR16/MR16.axf | Bin 694776 -> 600860 bytes MDK-ARM/MR16/MR16.build_log.htm | 15 +- MDK-ARM/MR16/MR16.hex | 1756 +++----- MDK-ARM/MR16/MR16.htm | 3278 ++++----------- MDK-ARM/MR16/MR16.lnp | 17 +- MDK-ARM/MR16/MR16.map | 3661 +++++++---------- MDK-ARM/MR16/MR16_MR16.dep | 576 ++- MDK-ARM/MR16/crc16.o | Bin 25180 -> 25208 bytes MDK-ARM/MR16/crc8.o | Bin 15936 -> 15964 bytes MDK-ARM/MR16/dma.crf | Bin 0 -> 568111 bytes MDK-ARM/MR16/dma.d | 32 + MDK-ARM/MR16/dma.o | Bin 0 -> 626992 bytes MDK-ARM/MR16/gpio.crf | Bin 568506 -> 569277 bytes MDK-ARM/MR16/gpio.o | Bin 627168 -> 627664 bytes MDK-ARM/MR16/gpio_1.crf | Bin 570069 -> 570562 bytes MDK-ARM/MR16/gpio_1.o | Bin 639704 -> 640124 bytes MDK-ARM/MR16/lcd.crf | Bin 0 -> 581168 bytes MDK-ARM/MR16/lcd.d | 36 + MDK-ARM/MR16/lcd.o | Bin 0 -> 679900 bytes MDK-ARM/MR16/lcd_init.crf | Bin 0 -> 570908 bytes MDK-ARM/MR16/lcd_init.d | 35 + MDK-ARM/MR16/lcd_init.o | Bin 0 -> 643152 bytes MDK-ARM/MR16/main.crf | Bin 617367 -> 615550 bytes MDK-ARM/MR16/main.d | 15 +- MDK-ARM/MR16/main.o | Bin 679708 -> 661640 bytes MDK-ARM/MR16/spi.crf | Bin 569405 -> 570667 bytes MDK-ARM/MR16/spi.o | Bin 632008 -> 633180 bytes MDK-ARM/MR16/spi_1.crf | Bin 572590 -> 573083 bytes MDK-ARM/MR16/spi_1.o | Bin 657240 -> 657656 bytes MDK-ARM/MR16/startup_stm32f103xb.o | Bin 5952 -> 5812 bytes MDK-ARM/MR16/stm32f1xx_hal.crf | Bin 568044 -> 568047 bytes MDK-ARM/MR16/stm32f1xx_hal.o | Bin 658220 -> 658280 bytes MDK-ARM/MR16/stm32f1xx_hal_cortex.crf | Bin 567505 -> 567508 bytes MDK-ARM/MR16/stm32f1xx_hal_cortex.o | Bin 648476 -> 648532 bytes MDK-ARM/MR16/stm32f1xx_hal_dma.crf | Bin 574501 -> 574504 bytes MDK-ARM/MR16/stm32f1xx_hal_dma.o | Bin 646184 -> 646244 bytes MDK-ARM/MR16/stm32f1xx_hal_exti.crf | Bin 569669 -> 569672 bytes MDK-ARM/MR16/stm32f1xx_hal_exti.o | Bin 638048 -> 638104 bytes MDK-ARM/MR16/stm32f1xx_hal_flash.crf | Bin 571388 -> 571391 bytes MDK-ARM/MR16/stm32f1xx_hal_flash.o | Bin 645704 -> 645760 bytes MDK-ARM/MR16/stm32f1xx_hal_flash_ex.crf | Bin 572642 -> 572645 bytes MDK-ARM/MR16/stm32f1xx_hal_flash_ex.o | Bin 645220 -> 645276 bytes MDK-ARM/MR16/stm32f1xx_hal_gpio.crf | Bin 570440 -> 570443 bytes MDK-ARM/MR16/stm32f1xx_hal_gpio.o | Bin 637572 -> 637628 bytes MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.crf | Bin 566705 -> 566708 bytes MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.o | Bin 627644 -> 627704 bytes MDK-ARM/MR16/stm32f1xx_hal_msp.crf | Bin 567727 -> 568220 bytes MDK-ARM/MR16/stm32f1xx_hal_msp.o | Bin 626096 -> 626516 bytes MDK-ARM/MR16/stm32f1xx_hal_pwr.crf | Bin 569509 -> 569512 bytes MDK-ARM/MR16/stm32f1xx_hal_pwr.o | Bin 648604 -> 648664 bytes MDK-ARM/MR16/stm32f1xx_hal_rcc.crf | Bin 578852 -> 578855 bytes MDK-ARM/MR16/stm32f1xx_hal_rcc.o | Bin 648216 -> 648276 bytes MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.crf | Bin 569321 -> 569324 bytes MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.o | Bin 629724 -> 629780 bytes MDK-ARM/MR16/stm32f1xx_hal_spi.crf | Bin 592375 -> 592378 bytes MDK-ARM/MR16/stm32f1xx_hal_spi.o | Bin 712164 -> 712224 bytes MDK-ARM/MR16/stm32f1xx_hal_tim.crf | Bin 631547 -> 631550 bytes MDK-ARM/MR16/stm32f1xx_hal_tim.o | Bin 822180 -> 822240 bytes MDK-ARM/MR16/stm32f1xx_hal_tim_ex.crf | Bin 593063 -> 593066 bytes MDK-ARM/MR16/stm32f1xx_hal_tim_ex.o | Bin 698092 -> 698148 bytes MDK-ARM/MR16/stm32f1xx_hal_uart.crf | Bin 594492 -> 594495 bytes MDK-ARM/MR16/stm32f1xx_hal_uart.o | Bin 723352 -> 723408 bytes MDK-ARM/MR16/stm32f1xx_it.crf | Bin 568040 -> 568754 bytes MDK-ARM/MR16/stm32f1xx_it.o | Bin 638952 -> 643656 bytes MDK-ARM/MR16/sx1281.crf | Bin 616146 -> 620881 bytes MDK-ARM/MR16/sx1281.d | 20 +- MDK-ARM/MR16/sx1281.o | Bin 723940 -> 689868 bytes MDK-ARM/MR16/sx1281_driver.crf | Bin 0 -> 620320 bytes MDK-ARM/MR16/sx1281_driver.d | 43 + MDK-ARM/MR16/sx1281_driver.o | Bin 0 -> 732964 bytes MDK-ARM/MR16/sx1281_driver_gpio.crf | Bin 0 -> 576098 bytes MDK-ARM/MR16/sx1281_driver_gpio.d | 39 + MDK-ARM/MR16/sx1281_driver_gpio.o | Bin 0 -> 646388 bytes MDK-ARM/MR16/sx1281_driver_hal.crf | Bin 0 -> 617081 bytes MDK-ARM/MR16/sx1281_driver_hal.d | 44 + MDK-ARM/MR16/sx1281_driver_hal.o | Bin 0 -> 683596 bytes MDK-ARM/MR16/sx1281_driver_spi.crf | Bin 0 -> 570911 bytes MDK-ARM/MR16/sx1281_driver_spi.d | 35 + MDK-ARM/MR16/sx1281_driver_spi.o | Bin 0 -> 637412 bytes MDK-ARM/MR16/sx1281_driver_uart.crf | Bin 0 -> 569706 bytes MDK-ARM/MR16/sx1281_driver_uart.d | 35 + MDK-ARM/MR16/sx1281_driver_uart.o | Bin 0 -> 628968 bytes MDK-ARM/MR16/sx1281_header.crf | Bin 0 -> 575201 bytes MDK-ARM/MR16/sx1281_header.d | 39 + MDK-ARM/MR16/sx1281_header.o | Bin 0 -> 636752 bytes MDK-ARM/MR16/system_stm32f1xx.crf | Bin 566848 -> 566851 bytes MDK-ARM/MR16/system_stm32f1xx.o | Bin 626672 -> 626728 bytes MDK-ARM/MR16/tim.crf | Bin 568780 -> 569273 bytes MDK-ARM/MR16/tim.o | Bin 632164 -> 632584 bytes MDK-ARM/MR16/uart.crf | Bin 0 -> 571560 bytes MDK-ARM/MR16/uart.d | 35 + MDK-ARM/MR16/uart.o | Bin 0 -> 650884 bytes MDK-ARM/MR16/usart.crf | Bin 569082 -> 569575 bytes MDK-ARM/MR16/usart.o | Bin 632128 -> 632548 bytes MDK-ARM/MR16/user_math.o | Bin 36936 -> 36968 bytes MDK-ARM/startup_stm32f103xb.lst | 94 +- MR16.ioc | 128 +- User/bsp/uart.c | 157 + User/bsp/uart.h | 69 + User/device/lcd.c | 557 +++ User/device/lcd.h | 59 + User/device/lcd_init.c | 229 ++ User/device/lcd_init.h | 77 + User/device/lcdfont.h | 555 +++ User/device/pic.h | 209 + sx1281-driver-c/.c | 9 + sx1281-driver-c/example.c | 519 --- sx1281-driver-c/hw-spi.c | 133 - sx1281-driver-c/hw-uart.c | 69 - sx1281-driver-c/hw-uart.h | 11 - sx1281-driver-c/hw.h | 26 - sx1281-driver-c/nucleo-l476rg.h | 44 - sx1281-driver-c/radio.h | 2 + sx1281-driver-c/sx1281.c | 1565 +++---- sx1281-driver-c/sx1281.h | 1408 +------ sx1281-driver-c/{boards.h => sx1281_boards.h} | 18 +- sx1281-driver-c/sx1281_driver.c | 1110 +++++ sx1281-driver-c/sx1281_driver.h | 1360 ++++++ .../{hw-gpio.c => sx1281_driver_gpio.c} | 4 +- .../{hw-gpio.h => sx1281_driver_gpio.h} | 0 .../{sx1281-hal.c => sx1281_driver_hal.c} | 5 +- .../{sx1281-hal.h => sx1281_driver_hal.h} | 2 + sx1281-driver-c/sx1281_driver_spi.c | 38 + .../{hw-spi.h => sx1281_driver_spi.h} | 0 sx1281-driver-c/sx1281_driver_uart.c | 4 + sx1281-driver-c/sx1281_driver_uart.h | 4 + sx1281-driver-c/{hw.c => sx1281_header.c} | 6 +- sx1281-driver-c/sx1281_header.h | 21 + 142 files changed, 9678 insertions(+), 10196 deletions(-) create mode 100644 Core/Inc/dma.h create mode 100644 Core/Src/dma.c create mode 100644 MDK-ARM/MR16/dma.crf create mode 100644 MDK-ARM/MR16/dma.d create mode 100644 MDK-ARM/MR16/dma.o create mode 100644 MDK-ARM/MR16/lcd.crf create mode 100644 MDK-ARM/MR16/lcd.d create mode 100644 MDK-ARM/MR16/lcd.o create mode 100644 MDK-ARM/MR16/lcd_init.crf create mode 100644 MDK-ARM/MR16/lcd_init.d create mode 100644 MDK-ARM/MR16/lcd_init.o create mode 100644 MDK-ARM/MR16/sx1281_driver.crf create mode 100644 MDK-ARM/MR16/sx1281_driver.d create mode 100644 MDK-ARM/MR16/sx1281_driver.o create mode 100644 MDK-ARM/MR16/sx1281_driver_gpio.crf create mode 100644 MDK-ARM/MR16/sx1281_driver_gpio.d create mode 100644 MDK-ARM/MR16/sx1281_driver_gpio.o create mode 100644 MDK-ARM/MR16/sx1281_driver_hal.crf create mode 100644 MDK-ARM/MR16/sx1281_driver_hal.d create mode 100644 MDK-ARM/MR16/sx1281_driver_hal.o create mode 100644 MDK-ARM/MR16/sx1281_driver_spi.crf create mode 100644 MDK-ARM/MR16/sx1281_driver_spi.d create mode 100644 MDK-ARM/MR16/sx1281_driver_spi.o create mode 100644 MDK-ARM/MR16/sx1281_driver_uart.crf create mode 100644 MDK-ARM/MR16/sx1281_driver_uart.d create mode 100644 MDK-ARM/MR16/sx1281_driver_uart.o create mode 100644 MDK-ARM/MR16/sx1281_header.crf create mode 100644 MDK-ARM/MR16/sx1281_header.d create mode 100644 MDK-ARM/MR16/sx1281_header.o create mode 100644 MDK-ARM/MR16/uart.crf create mode 100644 MDK-ARM/MR16/uart.d create mode 100644 MDK-ARM/MR16/uart.o create mode 100644 User/bsp/uart.c create mode 100644 User/bsp/uart.h create mode 100644 User/device/lcd.c create mode 100644 User/device/lcd.h create mode 100644 User/device/lcd_init.c create mode 100644 User/device/lcd_init.h create mode 100644 User/device/lcdfont.h create mode 100644 User/device/pic.h create mode 100644 sx1281-driver-c/.c delete mode 100644 sx1281-driver-c/example.c delete mode 100644 sx1281-driver-c/hw-spi.c delete mode 100644 sx1281-driver-c/hw-uart.c delete mode 100644 sx1281-driver-c/hw-uart.h delete mode 100644 sx1281-driver-c/hw.h delete mode 100644 sx1281-driver-c/nucleo-l476rg.h rename sx1281-driver-c/{boards.h => sx1281_boards.h} (60%) create mode 100644 sx1281-driver-c/sx1281_driver.c create mode 100644 sx1281-driver-c/sx1281_driver.h rename sx1281-driver-c/{hw-gpio.c => sx1281_driver_gpio.c} (99%) rename sx1281-driver-c/{hw-gpio.h => sx1281_driver_gpio.h} (100%) rename sx1281-driver-c/{sx1281-hal.c => sx1281_driver_hal.c} (99%) rename sx1281-driver-c/{sx1281-hal.h => sx1281_driver_hal.h} (99%) create mode 100644 sx1281-driver-c/sx1281_driver_spi.c rename sx1281-driver-c/{hw-spi.h => sx1281_driver_spi.h} (100%) create mode 100644 sx1281-driver-c/sx1281_driver_uart.c create mode 100644 sx1281-driver-c/sx1281_driver_uart.h rename sx1281-driver-c/{hw.c => sx1281_header.c} (82%) create mode 100644 sx1281-driver-c/sx1281_header.h diff --git a/.mxproject b/.mxproject index d70bd20..69934be 100644 --- a/.mxproject +++ b/.mxproject @@ -2,7 +2,7 @@ LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; [PreviousUsedKeilFiles] -SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\spi.c;..\Core\Src\tim.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; +SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\spi.c;..\Core\Src\tim.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; @@ -13,25 +13,27 @@ CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=7 +HeaderFileListSize=8 HeaderFiles#0=..\Core\Inc\gpio.h -HeaderFiles#1=..\Core\Inc\spi.h -HeaderFiles#2=..\Core\Inc\tim.h -HeaderFiles#3=..\Core\Inc\usart.h -HeaderFiles#4=..\Core\Inc\stm32f1xx_it.h -HeaderFiles#5=..\Core\Inc\stm32f1xx_hal_conf.h -HeaderFiles#6=..\Core\Inc\main.h +HeaderFiles#1=..\Core\Inc\dma.h +HeaderFiles#2=..\Core\Inc\spi.h +HeaderFiles#3=..\Core\Inc\tim.h +HeaderFiles#4=..\Core\Inc\usart.h +HeaderFiles#5=..\Core\Inc\stm32f1xx_it.h +HeaderFiles#6=..\Core\Inc\stm32f1xx_hal_conf.h +HeaderFiles#7=..\Core\Inc\main.h HeaderFolderListSize=1 HeaderPath#0=..\Core\Inc HeaderFiles=; -SourceFileListSize=7 +SourceFileListSize=8 SourceFiles#0=..\Core\Src\gpio.c -SourceFiles#1=..\Core\Src\spi.c -SourceFiles#2=..\Core\Src\tim.c -SourceFiles#3=..\Core\Src\usart.c -SourceFiles#4=..\Core\Src\stm32f1xx_it.c -SourceFiles#5=..\Core\Src\stm32f1xx_hal_msp.c -SourceFiles#6=..\Core\Src\main.c +SourceFiles#1=..\Core\Src\dma.c +SourceFiles#2=..\Core\Src\spi.c +SourceFiles#3=..\Core\Src\tim.c +SourceFiles#4=..\Core\Src\usart.c +SourceFiles#5=..\Core\Src\stm32f1xx_it.c +SourceFiles#6=..\Core\Src\stm32f1xx_hal_msp.c +SourceFiles#7=..\Core\Src\main.c SourceFolderListSize=1 SourcePath#0=..\Core\Src SourceFiles=; diff --git a/CMakeLists.txt b/CMakeLists.txt index fdee6e4..54aa4b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,12 +45,13 @@ target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add sources to executable target_sources(${CMAKE_PROJECT_NAME} PRIVATE # Add user sources here - sx1281-driver-c/hw-gpio.c - sx1281-driver-c/hw-spi.c - sx1281-driver-c/hw-uart.c - sx1281-driver-c/hw.c + sx1281-driver-c/sx1281_driver_gpio.c + sx1281-driver-c/sx1281_driver_spi.c + sx1281-driver-c/sx1281_driver_uart.c + sx1281-driver-c/sx1281_header.c sx1281-driver-c/radio.h - sx1281-driver-c/sx1281-hal.c + sx1281-driver-c/sx1281_driver.c + sx1281-driver-c/sx1281_driver_hal.c sx1281-driver-c/sx1281.c sx1281-driver-c/sx1281.h # User/bsp sources diff --git a/Core/Inc/dma.h b/Core/Inc/dma.h new file mode 100644 index 0000000..493d98e --- /dev/null +++ b/Core/Inc/dma.h @@ -0,0 +1,52 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.h + * @brief This file contains all the function prototypes for + * the dma.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __DMA_H__ +#define __DMA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* DMA memory to memory transfer handles -------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_DMA_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DMA_H__ */ + diff --git a/Core/Inc/main.h b/Core/Inc/main.h index a85962a..edec3a2 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -57,8 +57,20 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define SPI1_NSS_Pin GPIO_PIN_4 +#define SPI1_NSS_GPIO_Port GPIOA #define RADIO_RST_Pin GPIO_PIN_0 #define RADIO_RST_GPIO_Port GPIOB +#define LCD_CS_Pin GPIO_PIN_12 +#define LCD_CS_GPIO_Port GPIOB +#define LCD_CLK_Pin GPIO_PIN_13 +#define LCD_CLK_GPIO_Port GPIOB +#define LCD_RES_Pin GPIO_PIN_14 +#define LCD_RES_GPIO_Port GPIOB +#define LCD_MOSI_Pin GPIO_PIN_15 +#define LCD_MOSI_GPIO_Port GPIOB +#define LCD_RS_Pin GPIO_PIN_8 +#define LCD_RS_GPIO_Port GPIOA #define WS2812_Pin GPIO_PIN_11 #define WS2812_GPIO_Port GPIOA #define KEY_Pin GPIO_PIN_12 @@ -79,6 +91,8 @@ void Error_Handler(void); #define RADIO_DIO1_EXTI_IRQn EXTI9_5_IRQn #define RADIO_BUSY_Pin GPIO_PIN_8 #define RADIO_BUSY_GPIO_Port GPIOB +#define LCD_BLK_Pin GPIO_PIN_9 +#define LCD_BLK_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/Core/Inc/stm32f1xx_hal_conf.h b/Core/Inc/stm32f1xx_hal_conf.h index 5e8159b..ad20e33 100644 --- a/Core/Inc/stm32f1xx_hal_conf.h +++ b/Core/Inc/stm32f1xx_hal_conf.h @@ -42,7 +42,7 @@ /*#define HAL_CORTEX_MODULE_ENABLED */ /*#define HAL_CRC_MODULE_ENABLED */ /*#define HAL_DAC_MODULE_ENABLED */ -/*#define HAL_DMA_MODULE_ENABLED */ +#define HAL_DMA_MODULE_ENABLED /*#define HAL_ETH_MODULE_ENABLED */ /*#define HAL_FLASH_MODULE_ENABLED */ #define HAL_GPIO_MODULE_ENABLED diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 6762be3..2591ffc 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -55,6 +55,9 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void DMA1_Channel2_IRQHandler(void); +void DMA1_Channel3_IRQHandler(void); +void DMA1_Channel5_IRQHandler(void); void EXTI9_5_IRQHandler(void); void EXTI15_10_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/dma.c b/Core/Src/dma.c new file mode 100644 index 0000000..97a2301 --- /dev/null +++ b/Core/Src/dma.c @@ -0,0 +1,61 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.c + * @brief This file provides code for the configuration + * of all the requested memory to memory DMA transfers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "dma.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure DMA */ +/*----------------------------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Enable DMA controller clock + */ +void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); + /* DMA1_Channel3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); + /* DMA1_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ + diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 76b173f..dbf3f63 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -50,15 +50,16 @@ void MX_GPIO_Init(void) __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, SPI1_NSS_Pin|LCD_RS_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, RADIO_RST_Pin|RADIO_RXEN_Pin|RADIO_TXEN_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOB, RADIO_RST_Pin|LCD_CS_Pin|LCD_RES_Pin|RADIO_RXEN_Pin + |RADIO_TXEN_Pin|LCD_BLK_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PA4 */ - GPIO_InitStruct.Pin = GPIO_PIN_4; + /*Configure GPIO pins : SPI1_NSS_Pin LCD_RS_Pin */ + GPIO_InitStruct.Pin = SPI1_NSS_Pin|LCD_RS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -69,6 +70,20 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(RADIO_RST_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : LCD_CS_Pin */ + GPIO_InitStruct.Pin = LCD_CS_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(LCD_CS_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pins : LCD_RES_Pin LCD_BLK_Pin */ + GPIO_InitStruct.Pin = LCD_RES_Pin|LCD_BLK_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /*Configure GPIO pin : KEY_Pin */ GPIO_InitStruct.Pin = KEY_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; diff --git a/Core/Src/main.c b/Core/Src/main.c index 26e6a03..b321c8a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -18,6 +18,7 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" +#include "dma.h" #include "spi.h" #include "tim.h" #include "usart.h" @@ -27,10 +28,9 @@ /* USER CODE BEGIN Includes */ #include #include "stdio.h" -#include "hw.h" -#include "radio.h" #include "sx1281.h" - +#include "device/lcd.h" +#include "device/lcd_init.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -62,176 +62,8 @@ void SystemClock_Config(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -int fputc(int ch,FILE *f) -{ -//采用轮询方式发送1字节数据,超时时间设置为无限等待 -HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,HAL_MAX_DELAY); -return ch; -} -/*! - * \brief Used to display firmware version UART flow - */ -#define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170919A" ) - -/*! - * Select mode of operation for the Ping Ping application - */ -// #define MODE_BLE /* Bluetooth Low Energy */ -#define MODE_LORA /* Long Range */ -// #define MODE_GFSK /* Gaussian Frequency Shift Keying */ -// #define MODE_FLRC /* Fast Long Range Codec */ - - -#define RF_BL_ADV_CHANNEL_38 2426000000 // Hz - -/*! - * \brief Defines the nominal frequency - */ -#define RF_FREQUENCY RF_BL_ADV_CHANNEL_38 // Hz - -/*! - * \brief Defines the output power in dBm - * - * \remark The range of the output power is [-18..+13] dBm - */ -#define TX_OUTPUT_POWER 13 - -/*! - * \brief Defines the buffer size, i.e. the payload size - */ -#define BUFFER_SIZE 5 - -/*! - * \brief Number of tick size steps for tx timeout - */ -#define TX_TIMEOUT_VALUE 10000 // ms - -/*! - * \brief Number of tick size steps for rx timeout - */ -#define RX_TIMEOUT_VALUE 1000 // ms - -/*! - * \brief Size of ticks (used for Tx and Rx timeout) - */ -#define RX_TIMEOUT_TICK_SIZE RADIO_TICK_SIZE_1000_US - -/*! - * \brief Defines the size of the token defining message type in the payload - */ -#define PINGPONGSIZE 4 - - -/*! - * \brief Defines the states of the application - */ -typedef enum -{ - APP_LOWPOWER, - APP_RX, - APP_RX_TIMEOUT, - APP_RX_ERROR, - APP_TX, - APP_TX_TIMEOUT, -}AppStates_t; - - -/*! - * \brief Function to be executed on Radio Tx Done event - */ -void OnTxDone( void ); - -/*! - * \brief Function to be executed on Radio Rx Done event - */ -void OnRxDone( void ); - -/*! - * \brief Function executed on Radio Tx Timeout event - */ -void OnTxTimeout( void ); - -/*! - * \brief Function executed on Radio Rx Timeout event - */ -void OnRxTimeout( void ); - -/*! - * \brief Function executed on Radio Rx Error event - */ -void OnRxError( IrqErrorCode_t ); - - -/*! - * \brief Define the possible message type for this application - */ -const uint8_t PingMsg[] = "PING"; -const uint8_t PongMsg[] = "PONG"; - -/*! - * \brief All the callbacks are stored in a structure - */ -RadioCallbacks_t Callbacks = -{ - &OnTxDone, // txDone - &OnRxDone, // rxDone - NULL, // syncWordDone - NULL, // headerDone - &OnTxTimeout, // txTimeout - &OnRxTimeout, // rxTimeout - &OnRxError, // rxError - NULL, // cadDone -}; - -/*! - * \brief The size of the buffer - */ -uint8_t BufferSize = BUFFER_SIZE; - -/*! - * \brief The buffer - */ -int8_t Buffer[BUFFER_SIZE]; - -/*! - * \brief Mask of IRQs to listen to in rx mode - */ -uint16_t RxIrqMask = IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT; - -/*! - * \brief Mask of IRQs to listen to in tx mode - */ -uint16_t TxIrqMask = IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT; - -/*! - * \brief The State of the application - */ -AppStates_t AppState = APP_LOWPOWER; - -#if defined( MODE_BLE ) -/*! - * \brief In case of BLE, the payload must contain the header - */ -typedef union -{ - struct BleAdvHeaderField_s - { - uint8_t pduType: 4; - uint8_t rfu1:2; - uint8_t txAddr:1; - uint8_t rxAddr:1; - uint8_t length:6; - uint8_t rfu2:2; - } Fields; - uint8_t Serial[ 2 ]; -}BleAdvHeaders_t; -BleAdvHeaders_t ble_header_adv; -#endif // MODE_BLE - -PacketParams_t packetParams; - -PacketStatus_t packetStatus; - +SX1281_t radio; +float t; /* USER CODE END 0 */ /** @@ -263,175 +95,19 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); + MX_DMA_Init(); MX_SPI1_Init(); MX_SPI2_Init(); MX_TIM1_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ - printf("CLK: SYS=%ld APB1=%ld APB2=%ld\r\n", - HAL_RCC_GetSysClockFreq(), - HAL_RCC_GetPCLK1Freq(), - HAL_RCC_GetPCLK2Freq()); - - bool isMaster = true; - ModulationParams_t modulationParams; - - HwInit( ); - HAL_Delay( 500 ); // let DC/DC power ramp up - - Radio.Init( &Callbacks ); -// Radio.SetRegulatorMode( USE_DCDC ); // Can also be set in LDO mode but consume more power - memset( &Buffer, 0x00, BufferSize ); - - /* 1. 确保芯片已复位且 BUSY=0 */ -SX1281HalReset(); // 已在 HwInit() 里调过,这里再调一次更保险 -while (HAL_GPIO_ReadPin(RADIO_BUSY_PORT, RADIO_BUSY_PIN) != GPIO_PIN_RESET) - ; // 等 BUSY 低 - -/* 2. 单包 SPI 双向测试 */ -uint8_t tx[3] = {0x48, 0x00, 0x00}; // 读 Reg00 -uint8_t rx[3] = {0}; -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_RESET); -HAL_SPI_TransmitReceive(&hspi1, tx, rx, 3, 100); -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_SET); - -printf("tx: %02X %02X %02X\n", tx[0], tx[1], tx[2]); -printf("rx: %02X %02X %02X\n", rx[0], rx[1], rx[2]); - - uint8_t id=1; -Radio.ReadRegisters(0x00, &id, 1); // 读 Chip Mode 寄存器 -printf("Reg00=%d (expect 0x40 or 0xFF)\r\n", id); - - - printf( "\n\n\r SX1281 Ping Pong Demo Application. %s\n\n\r", FIRMWARE_VERSION ); - printf( "\n\n\r Radio firmware version 0x%x\n\n\r", Radio.GetFirmwareVersion( ) ); - -#if defined( MODE_BLE ) - - printf( "\nPing Pong running in BLE mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_BLE; - modulationParams.Params.Ble.BitrateBandwidth = GFS_BLE_BR_1_000_BW_1_2; - modulationParams.Params.Ble.ModulationIndex = GFS_BLE_MOD_IND_0_50; - modulationParams.Params.Ble.ModulationShaping = RADIO_MOD_SHAPING_BT_0_5; - - packetParams.PacketType = PACKET_TYPE_BLE; - packetParams.Params.Ble.BlePacketType = BLE_EYELONG_1_0; - packetParams.Params.Ble.ConnectionState = BLE_ADVERTISER; - packetParams.Params.Ble.CrcField = BLE_CRC_3B; - packetParams.Params.Ble.Whitening = RADIO_WHITENING_ON; - -#elif defined( MODE_GFSK ) - - printf( "\nPing Pong running in GFSK mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_GFSK; - modulationParams.Params.Gfsk.BitrateBandwidth = GFS_BLE_BR_0_125_BW_0_3; - modulationParams.Params.Gfsk.ModulationIndex = GFS_BLE_MOD_IND_1_00; - modulationParams.Params.Gfsk.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - - packetParams.PacketType = PACKET_TYPE_GFSK; - packetParams.Params.Gfsk.PreambleLength = PREAMBLE_LENGTH_32_BITS; - packetParams.Params.Gfsk.SyncWordLength = GFS_SYNCWORD_LENGTH_5_BYTE; - packetParams.Params.Gfsk.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; - packetParams.Params.Gfsk.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; - packetParams.Params.Gfsk.PayloadLength = BUFFER_SIZE; - packetParams.Params.Gfsk.CrcLength = RADIO_CRC_3_BYTES; - packetParams.Params.Gfsk.Whitening = RADIO_WHITENING_ON; - -#elif defined( MODE_LORA ) - - printf( "\nPing Pong running in LORA mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_LORA; - modulationParams.Params.LoRa.SpreadingFactor = LORA_SF12; - modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; - modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_7; - - packetParams.PacketType = PACKET_TYPE_LORA; - packetParams.Params.LoRa.PreambleLength = 12; - packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; - packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; - packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; - packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; - -#elif defined( MODE_FLRC ) - - printf( "\nPing Pong running in FLRC mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_FLRC; - modulationParams.Params.Flrc.BitrateBandwidth = FLRC_BR_0_260_BW_0_3; - modulationParams.Params.Flrc.CodingRate = FLRC_CR_1_2; - modulationParams.Params.Flrc.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - - packetParams.PacketType = PACKET_TYPE_FLRC; - packetParams.Params.Flrc.PreambleLength = PREAMBLE_LENGTH_32_BITS; - packetParams.Params.Flrc.SyncWordLength = FLRC_SYNCWORD_LENGTH_4_BYTE; - packetParams.Params.Flrc.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; - packetParams.Params.Flrc.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; - packetParams.Params.Flrc.PayloadLength = BUFFER_SIZE; - packetParams.Params.Flrc.CrcLength = RADIO_CRC_3_BYTES; - packetParams.Params.Flrc.Whitening = RADIO_WHITENING_OFF; - -#else -#error "Please select the mode of operation for the Ping Ping demo" -#endif - - Radio.SetStandby( STDBY_RC ); - Radio.SetPacketType( modulationParams.PacketType ); - Radio.SetModulationParams( &modulationParams ); - Radio.SetPacketParams( &packetParams ); - Radio.SetRfFrequency( RF_FREQUENCY ); - Radio.SetBufferBaseAddresses( 0x00, 0x00 ); - Radio.SetTxParams( TX_OUTPUT_POWER, RADIO_RAMP_02_US ); - - Radio.SetStandby( STDBY_RC ); - switch(modulationParams.Params.LoRa.SpreadingFactor){ - case LORA_SF5: - case LORA_SF6: - Radio.WriteRegister(0x0925,0x1E); - break; - case LORA_SF7: - case LORA_SF8: - Radio.WriteRegister(0x0925,0x37); - break; - case LORA_SF9: - case LORA_SF10: - case LORA_SF11: - case LORA_SF12: - Radio.WriteRegister(0x0925,0x32); - break; - } -// SX1281SetPollingMode( ); - SX1281SetInterruptMode(); - #if defined( MODE_BLE ) - // only used in GENERIC and BLE mode - Radio.SetSyncWord( 1, ( uint8_t[] ){ 0xDD, 0xA0, 0x96, 0x69, 0xDD } ); - Radio.WriteRegister(0x9c7, 0x55 ); - Radio.WriteRegister(0x9c8, 0x55 ); - Radio.WriteRegister(0x9c9, 0x55 ); - //Radio.WriteRegister( 0x9c5, 0x33 ); - Radio.SetBleAdvertizerAccessAddress( ); - Radio.SetWhiteningSeed( 0x33 ); - ble_header_adv.Fields.length = PINGPONGSIZE + 2; - ble_header_adv.Fields.pduType = 2; - #endif // MODE_BLE - - //可以修改成ws2812做发射/接收指示灯 - // GpioWrite( LED_TX_PORT, LED_TX_PIN, 0 ); - // GpioWrite( LED_RX_PORT, LED_RX_PIN, 0 ); - - - AppState = APP_LOWPOWER; - - - Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); - -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); - - uint8_t status; -Radio.ReadRegisters(0x01, &status, 1); // 读取状态寄存器 -printf("Status=%d\n", status); +// SX1281_Init(&radio,MODE_LORA); +// SX1281_SetRXSuccessive(); +// SX1281_SetTX(); + LCD_Init(); +// HAL_Delay(1000); + LCD_Fill(0,0,LCD_W,LCD_H,WHITE); /* USER CODE END 2 */ /* Infinite loop */ @@ -441,196 +117,11 @@ printf("Status=%d\n", status); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ -// static uint8_t once = 1; -//if (once) { -// once = 0; -// uint8_t ping[] = "PING"; -// Radio.SetDioIrqParams(TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE); -// Radio.SendPayload(ping, 4, (TickTime_t){RADIO_TICK_SIZE_1000_US, 100}); -// printf("Force TX -> should RX myself\r\n"); -//} - - SX1281ProcessIrqs( ); - HAL_Delay(100); - - uint16_t irq = Radio.GetIrqStatus(); -if (irq) printf("IRQ=0x%04X\r\n", irq); - - uint8_t tx[3] = {0x48, 0x00, 0x00}; // 读 Reg00 -uint8_t rx[3] = {0}; -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_RESET); -HAL_SPI_TransmitReceive(&hspi1, tx, rx, 3, 100); -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_SET); -printf("tx: %02X %02X %02X\n", tx[0], tx[1], tx[2]); -printf("rx: %02X %02X %02X\n", rx[0], rx[1], rx[2]); - - -// switch( AppState ) -// { -// case APP_RX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_RX_PORT, LED_RX_PIN, GpioRead( LED_RX_PORT, LED_RX_PIN ) ^ 1 ); -// Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); -// #if defined( MODE_BLE ) -// // Remove the 2st bytes that are BLE header from Buffer -// memcpy( Buffer, Buffer+2, PINGPONGSIZE ); -// #endif // MODE_BLE -// if( isMaster == true ) -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PongMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Pong\r\n" ); -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// // A master already exists then become a slave -// printf( "...Ping - switch to Slave\r\n" ); -// isMaster = false; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but neither a PING or a PONG message -// { // Set device as master ans start again -// isMaster = true; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// #else -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// #endif -// } -// } -// } -// else -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Ping\r\n" ); -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but not a PING as expected -// { -// printf( "...Unexpected packet - switch to master\r\n" ); -// isMaster = true; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// } -// } -// break; - -// case APP_TX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_TX_PORT, LED_TX_PIN, GpioRead( LED_TX_PORT, LED_TX_PIN ) ^ 1 ); -// if( isMaster == true ) -// { -// printf( "Ping...\r\n" ); -// } -// else -// { -// printf( "Pong...\r\n" ); -// } -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_RX_TIMEOUT: -// AppState = APP_LOWPOWER; -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_RX_ERROR: -// AppState = APP_LOWPOWER; -// // We have received a Packet with a CRC error, send reply as if packet was correct -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// // Send the next PONG frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_TX_TIMEOUT: -// AppState = APP_LOWPOWER; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_LOWPOWER: -// break; - -// default: -// // Set low power -// break; -// } - +// SX1281_Running(); +// LCD_ShowFloatNum1(10,99,t,4,RED,WHITE,32); + t+=0.11; + } /* USER CODE END 3 */ } @@ -676,61 +167,6 @@ void SystemClock_Config(void) /* USER CODE BEGIN 4 */ -void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) -{ - HAL_Delay(10); -} -void OnTxDone( void ) -{ - AppState = APP_TX; - printf( "<>>>>>>>>OnTxDone\n\r" ); - Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); -} - -void OnRxDone( void ) -{ - AppState = APP_RX; - //printf( "<>>>>>>>>OnRxDone\n\r" ); - BufferSize = 0; - Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); - Buffer[BufferSize+1] = 0; - //printf("size = %d ,%s",BufferSize,Buffer); - printf("OnRxDone\r\n"); - printf("%d",Buffer); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -} - -void OnTxTimeout( void ) -{ - AppState = APP_TX_TIMEOUT; - printf( "<>>>>>>>>TXE\n\r" ); - Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); - -} - -void OnRxTimeout( void ) -{ - AppState = APP_RX_TIMEOUT; - printf( "<>>>>>>>>OnRxTimeout\n\r" ); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); - -} - -void OnRxError( IrqErrorCode_t errorCode ) -{ - AppState = APP_RX_ERROR; - printf( "RXE<>>>>>>>>\n\r" ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - -} - -void OnCadDone( bool channelActivityDetected ) -{ - printf( "<>>>>>>>>OnCadDone\n\r" ); -} /* USER CODE END 4 */ /** diff --git a/Core/Src/spi.c b/Core/Src/spi.c index 20f36a7..1c931c4 100644 --- a/Core/Src/spi.c +++ b/Core/Src/spi.c @@ -26,6 +26,9 @@ SPI_HandleTypeDef hspi1; SPI_HandleTypeDef hspi2; +DMA_HandleTypeDef hdma_spi1_tx; +DMA_HandleTypeDef hdma_spi1_rx; +DMA_HandleTypeDef hdma_spi2_tx; /* SPI1 init function */ void MX_SPI1_Init(void) @@ -45,7 +48,7 @@ void MX_SPI1_Init(void) hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; - hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; @@ -77,7 +80,7 @@ void MX_SPI2_Init(void) hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; - hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; @@ -120,6 +123,39 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + /* SPI1 DMA Init */ + /* SPI1_TX Init */ + hdma_spi1_tx.Instance = DMA1_Channel3; + hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi1_tx.Init.Mode = DMA_NORMAL; + hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmatx,hdma_spi1_tx); + + /* SPI1_RX Init */ + hdma_spi1_rx.Instance = DMA1_Channel2; + hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi1_rx.Init.Mode = DMA_NORMAL; + hdma_spi1_rx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmarx,hdma_spi1_rx); + /* USER CODE BEGIN SPI1_MspInit 1 */ /* USER CODE END SPI1_MspInit 1 */ @@ -134,20 +170,30 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) __HAL_RCC_GPIOB_CLK_ENABLE(); /**SPI2 GPIO Configuration - PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK - PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ - GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_15; + GPIO_InitStruct.Pin = LCD_CLK_Pin|LCD_MOSI_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - GPIO_InitStruct.Pin = GPIO_PIN_14; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /* SPI2 DMA Init */ + /* SPI2_TX Init */ + hdma_spi2_tx.Instance = DMA1_Channel5; + hdma_spi2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_spi2_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi2_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi2_tx.Init.Mode = DMA_NORMAL; + hdma_spi2_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi2_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmatx,hdma_spi2_tx); /* USER CODE BEGIN SPI2_MspInit 1 */ @@ -173,6 +219,9 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); + /* SPI1 DMA DeInit */ + HAL_DMA_DeInit(spiHandle->hdmatx); + HAL_DMA_DeInit(spiHandle->hdmarx); /* USER CODE BEGIN SPI1_MspDeInit 1 */ /* USER CODE END SPI1_MspDeInit 1 */ @@ -186,13 +235,13 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) __HAL_RCC_SPI2_CLK_DISABLE(); /**SPI2 GPIO Configuration - PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK - PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15); + HAL_GPIO_DeInit(GPIOB, LCD_CLK_Pin|LCD_MOSI_Pin); + /* SPI2 DMA DeInit */ + HAL_DMA_DeInit(spiHandle->hdmatx); /* USER CODE BEGIN SPI2_MspDeInit 1 */ /* USER CODE END SPI2_MspDeInit 1 */ diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index 348d9b5..fd24f48 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -55,7 +55,9 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ - +extern DMA_HandleTypeDef hdma_spi1_tx; +extern DMA_HandleTypeDef hdma_spi1_rx; +extern DMA_HandleTypeDef hdma_spi2_tx; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -198,6 +200,48 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f1xx.s). */ /******************************************************************************/ +/** + * @brief This function handles DMA1 channel2 global interrupt. + */ +void DMA1_Channel2_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ + + /* USER CODE END DMA1_Channel2_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi1_rx); + /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ + + /* USER CODE END DMA1_Channel2_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel3 global interrupt. + */ +void DMA1_Channel3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ + + /* USER CODE END DMA1_Channel3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi1_tx); + /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ + + /* USER CODE END DMA1_Channel3_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel5 global interrupt. + */ +void DMA1_Channel5_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ + + /* USER CODE END DMA1_Channel5_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi2_tx); + /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ + + /* USER CODE END DMA1_Channel5_IRQn 1 */ +} + /** * @brief This function handles EXTI line[9:5] interrupts. */ @@ -224,7 +268,7 @@ void EXTI15_10_IRQHandler(void) /* USER CODE END EXTI15_10_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(KEY_Pin); /* USER CODE BEGIN EXTI15_10_IRQn 1 */ - HAL_GPIO_EXTI_Falling_Callback(KEY_Pin); + /* USER CODE END EXTI15_10_IRQn 1 */ } diff --git a/MDK-ARM/MR16.uvguix.yxm23 b/MDK-ARM/MR16.uvguix.yxm23 index c55db71..0cb75ef 100644 --- a/MDK-ARM/MR16.uvguix.yxm23 +++ b/MDK-ARM/MR16.uvguix.yxm23 @@ -15,17 +15,17 @@ 38003 Registers - 124 100 + 124 79 346 Code Coverage - 877 100 + 877 160 204 Performance Analyzer - 1037 155 155 100 + 1037 @@ -101,17 +101,17 @@ -1 - 158 - 141 - 1186 - 999 + 174 + 540 + 1585 + 969 0 - 894 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000001000000010000002C443A5C435542454D585C4D5231365C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000C5D4F200FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF3F443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000BECEA100FFFFFFFF26443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C726164696F2E680000000007726164696F2E6800000000F0A0A100FFFFFFFF26443A5C435542454D585C4D5231365C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000BCA8E100FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6770696F2E6300000000066770696F2E63000000009CC1B600FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000F7B88600FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000D9ADC200FFFFFFFF28443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C68772D6770696F2E63000000000968772D6770696F2E6300000000A5C2D700FFFFFFFF2F443A5C435542454D585C4D5231365C447269766572735C434D5349535C496E636C7564655C636F72655F636D332E68000000000A636F72655F636D332E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E0100000C0100009A04000036030000 + 1627 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001400000006000000010000001E443A5C435542454D585C4D5231365C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF20443A5C435542454D585C4D5231365C557365725C6465766963655C6C63642E6300000000056C63642E6300000000FFDC7800FFFFFFFF20443A5C435542454D585C4D5231365C557365725C6465766963655C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF27443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238312E6300000000087378313238312E6300000000F0A0A100FFFFFFFF1E443A5C435542454D585C4D5231365C557365725C6273705C756172742E680000000006756172742E6800000000BCA8E100FFFFFFFF24443A5C435542454D585C4D5231365C557365725C6465766963655C6C6364666F6E742E6800000000096C6364666F6E742E68000000009CC1B600FFFFFFFF25443A5C435542454D585C4D5231365C557365725C6465766963655C6C63645F696E69742E68000000000A6C63645F696E69742E6800000000F7B88600FFFFFFFF25443A5C435542454D585C4D5231365C557365725C6465766963655C6C63645F696E69742E63000000000A6C63645F696E69742E6300000000D9ADC200FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F2E68000000001473746D3332663178785F68616C5F6770696F2E6800000000A5C2D700FFFFFFFF46443A5C435542454D585C4D5231365C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000B3A6BE00FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000EAD6A300FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6770696F2E6800000000066770696F2E6800000000F6FA7D00FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000B5E99D00FFFFFFFF2C443A5C435542454D585C4D5231365C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E73000000005FC3CF00FFFFFFFF32443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F68616C2E6300000000137378313238315F6472697665725F68616C2E6300000000C1838300FFFFFFFF32443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F7370692E6300000000137378313238315F6472697665725F7370692E6300000000CACAD500FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000C5D4F200FFFFFFFF2E443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6865616465722E63000000000F7378313238315F6865616465722E6300000000FFDC7800FFFFFFFF2E443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665722E63000000000F7378313238315F6472697665722E6300000000BECEA100FFFFFFFF33443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F6770696F2E6300000000147378313238315F6472697665725F6770696F2E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000FD0200001C0100002906000018030000 @@ -134,7 +134,7 @@ 16 - 6E0100000C010000850500009E010000 + 91030000E2000000A807000074010000 @@ -150,7 +150,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -170,7 +170,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -450,7 +450,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -470,7 +470,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -490,11 +490,11 @@ 0 16 - 0000000091020000050400000F030000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -530,11 +530,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -1160,7 +1160,7 @@ 38007 38007 - 0 + 1 0 0 0 @@ -1170,11 +1170,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -1190,11 +1190,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1250,11 +1250,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1270,11 +1270,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1730,7 +1730,7 @@ 0 16 - 000000000F0300000504000022030000 + 00000000E102000005040000F4020000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000E1000000F0040000E5000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000006E0100000C010000850500009E010000D90000004F000000F0040000E10000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00400000C01000085050000F00200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000079020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000950000000C0100006A01000036030000000000004F000000D5000000790200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001F020000F00400002302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000095000000E002000085050000860300000000000023020000F0040000C902000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000230200007C020000C902000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000079020000050400007D020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000950000003A0300009A040000CC030000000000007D020000050400000F0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000E1000000F0040000E5000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000091030000E2000000A807000074010000D90000004F000000F0040000E10000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D3060000E2000000A8070000C60200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D90000004B020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000B8020000E20000008D030000DE020000000000004F000000D50000004B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001F020000F00400002302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000B8020000B6020000A80700005C0300000000000023020000F0040000C902000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000230200007C020000C902000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004B020000050400004F020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000B8020000E2020000BD06000074030000000000004F02000005040000E10200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 3039 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 968 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D52313696000000000000000100044D523136000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D52313696000000000000000100044D523136000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1871,11 +1871,11 @@ 0 16 - E6020000E50000000504000065020000 + AD040000E5000000AB06000057030000 16 - 94030000A5010000B304000025030000 + CE060000C9010000180800003B040000 @@ -1891,7 +1891,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -1911,7 +1911,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -1931,7 +1931,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -1951,7 +1951,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -1971,7 +1971,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -1991,7 +1991,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2031,7 +2031,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2051,7 +2051,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -2071,7 +2071,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -2091,7 +2091,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2111,7 +2111,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2131,7 +2131,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2151,7 +2151,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2171,7 +2171,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2191,7 +2191,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2211,7 +2211,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2251,7 +2251,7 @@ 0 16 - 0000000069020000050400000F030000 + 000000005B030000AB06000001040000 16 @@ -2291,7 +2291,7 @@ 0 16 - D90000006300000005040000E1000000 + D900000063000000AB060000E1000000 16 @@ -2311,7 +2311,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2371,7 +2371,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2391,7 +2391,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2411,7 +2411,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2431,7 +2431,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2451,7 +2451,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2891,7 +2891,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2951,7 +2951,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2971,7 +2971,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -3031,7 +3031,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -3471,7 +3471,7 @@ 0 16 - 000000000F0300000504000022030000 + 0000000001040000AB06000014040000 16 @@ -3531,7 +3531,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -3540,14 +3540,14 @@ 3415 - 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFFE2020000E5000000E60200006502000001000000020000100400000001000000B4FEFFFFD501000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E65004000000100000094030000A5010000B304000025030000E6020000E5000000050400006502000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000E100000005040000E5000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000870100000F010000B3040000A1010000D90000004F00000005040000E10000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C90400000F0100009E050000F30200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000065020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000AE0000000F0100008301000025030000000000004F000000D5000000650200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000065020000050400006902000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF550300005B030000590300000104000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000033020000F004000037020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000AE000000F70200009E050000890300000000000037020000F0040000C90200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFFA9040000E5000000AD040000570300000100000002000010040000000100000081FBFFFF4801000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E650040000001000000CE060000C9010000180800003B040000AD040000E5000000AB0600005703000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000E1000000AB060000E5000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000460200003301000018080000C5010000D90000004F000000AB060000E10000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000088050000330100005D060000170300001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000057030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000006D01000033010000420200003B040000000000004F000000D5000000570300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000057030000AB0600005B03000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF550300005B030000590300000104000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000033020000F004000037020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000006D0100001B0300005D060000AD0300000000000037020000F0040000C90200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 3039 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3563,7 +3563,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,57 +3603,111 @@ 0 100 - 1 - - startup_stm32f103xb.s - 0 - 125 - 132 - 0 - - 0 - + 6 ../Core/Src/main.c - 4 - 416 - 424 + 9 + 92 + 110 1 0 - ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c + ..\User\device\lcd.c + 23 + 3 + 16 + 1 + + 0 + + + ..\User\device\lcd.h + 11 + 1 + 9 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281.c 0 - 374 - 382 + 479 + 497 1 0 - ..\sx1281-driver-c\radio.h + ..\User\bsp\uart.h + 1 + 1 + 4 + 1 + + 0 + + + ..\User\device\lcdfont.h 0 - 236 - 242 + 394 + 412 1 0 - ../Core/Src/stm32f1xx_it.c - 24 - 193 - 225 + ..\User\device\lcd_init.h + 11 + 59 + 66 + 1 + + 0 + + + ..\User\device\lcd_init.c + 26 + 75 + 93 + 1 + + 0 + + + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h + 0 + 90 + 96 + 1 + + 0 + + + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h + 0 + 664 + 665 1 0 ../Core/Src/gpio.c - 30 - 39 - 59 + 0 + 1 + 1 + 1 + + 0 + + + ../Core/Inc/gpio.h + 0 + 1 + 1 1 0 @@ -3661,35 +3715,71 @@ ../Core/Inc/main.h 15 - 51 + 59 64 1 0 + + startup_stm32f103xb.s + 0 + 126 + 132 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_hal.c + 0 + 98 + 106 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_spi.c + 0 + 1 + 1 + 1 + + 0 + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c 0 - 536 - 546 + 432 + 440 1 0 - ..\sx1281-driver-c\hw-gpio.c - 73 - 79 - 95 - 1 - - 0 - - - ../Drivers/CMSIS/Include/core_cm3.h + ..\sx1281-driver-c\sx1281_header.c 0 - 203 - 216 + 1 + 9 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver.c + 0 + 83 + 91 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_gpio.c + 0 + 253 + 261 1 0 diff --git a/MDK-ARM/MR16.uvoptx b/MDK-ARM/MR16.uvoptx index 76c9c9a..0ef7808 100644 --- a/MDK-ARM/MR16.uvoptx +++ b/MDK-ARM/MR16.uvoptx @@ -125,7 +125,7 @@ 0 DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=604,287,862,875,0) 0 @@ -165,6 +165,11 @@ 1 Buffer + + 3 + 1 + radio + 0 @@ -268,6 +273,18 @@ 0 0 0 + ../Core/Src/dma.c + dma.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 ../Core/Src/spi.c spi.c 0 @@ -275,7 +292,7 @@ 2 - 5 + 6 1 0 0 @@ -287,7 +304,7 @@ 2 - 6 + 7 1 0 0 @@ -299,7 +316,7 @@ 2 - 7 + 8 1 0 0 @@ -311,7 +328,7 @@ 2 - 8 + 9 1 0 0 @@ -331,7 +348,7 @@ 0 3 - 9 + 10 1 0 0 @@ -343,7 +360,7 @@ 3 - 10 + 11 1 0 0 @@ -355,7 +372,7 @@ 3 - 11 + 12 1 0 0 @@ -367,7 +384,7 @@ 3 - 12 + 13 1 0 0 @@ -379,7 +396,7 @@ 3 - 13 + 14 1 0 0 @@ -391,7 +408,7 @@ 3 - 14 + 15 1 0 0 @@ -403,7 +420,7 @@ 3 - 15 + 16 1 0 0 @@ -415,7 +432,7 @@ 3 - 16 + 17 1 0 0 @@ -427,7 +444,7 @@ 3 - 17 + 18 1 0 0 @@ -439,7 +456,7 @@ 3 - 18 + 19 1 0 0 @@ -451,7 +468,7 @@ 3 - 19 + 20 1 0 0 @@ -463,7 +480,7 @@ 3 - 20 + 21 1 0 0 @@ -475,7 +492,7 @@ 3 - 21 + 22 1 0 0 @@ -487,7 +504,7 @@ 3 - 22 + 23 1 0 0 @@ -499,7 +516,7 @@ 3 - 23 + 24 1 0 0 @@ -519,9 +536,9 @@ 0 4 - 24 + 25 1 - 0 + 1 0 0 ../Core/Src/system_stm32f1xx.c @@ -539,7 +556,7 @@ 0 5 - 25 + 26 5 0 0 @@ -551,7 +568,7 @@ 5 - 26 + 27 1 0 0 @@ -563,7 +580,7 @@ 5 - 27 + 28 5 0 0 @@ -573,18 +590,6 @@ 0 0 - - 5 - 28 - 1 - 0 - 0 - 0 - ..\sx1281-driver-c\sx1281-hal.c - sx1281-hal.c - 0 - 0 - 5 29 @@ -592,116 +597,116 @@ 0 0 0 - ..\sx1281-driver-c\sx1281-hal.h - sx1281-hal.h + ..\sx1281-driver-c\sx1281_boards.h + sx1281_boards.h 0 0 5 30 - 5 + 1 0 0 0 - ..\sx1281-driver-c\boards.h - boards.h + ..\sx1281-driver-c\sx1281_driver.c + sx1281_driver.c 0 0 5 31 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw.c - hw.c + ..\sx1281-driver-c\sx1281_driver.h + sx1281_driver.h 0 0 5 32 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw.h - hw.h + ..\sx1281-driver-c\sx1281_driver_gpio.c + sx1281_driver_gpio.c 0 0 5 33 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-gpio.c - hw-gpio.c + ..\sx1281-driver-c\sx1281_driver_gpio.h + sx1281_driver_gpio.h 0 0 5 34 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-gpio.h - hw-gpio.h + ..\sx1281-driver-c\sx1281_driver_hal.c + sx1281_driver_hal.c 0 0 5 35 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-spi.c - hw-spi.c + ..\sx1281-driver-c\sx1281_driver_hal.h + sx1281_driver_hal.h 0 0 5 36 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-spi.h - hw-spi.h + ..\sx1281-driver-c\sx1281_driver_spi.c + sx1281_driver_spi.c 0 0 5 37 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-uart.c - hw-uart.c + ..\sx1281-driver-c\sx1281_driver_spi.h + sx1281_driver_spi.h 0 0 5 38 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-uart.h - hw-uart.h + ..\sx1281-driver-c\sx1281_driver_uart.c + sx1281_driver_uart.c 0 0 @@ -712,8 +717,32 @@ 0 0 0 - ..\sx1281-driver-c\nucleo-l476rg.h - nucleo-l476rg.h + ..\sx1281-driver-c\sx1281_driver_uart.h + sx1281_driver_uart.h + 0 + 0 + + + 5 + 40 + 1 + 0 + 0 + 0 + ..\sx1281-driver-c\sx1281_header.c + sx1281_header.c + 0 + 0 + + + 5 + 41 + 5 + 0 + 0 + 0 + ..\sx1281-driver-c\sx1281_header.h + sx1281_header.h 0 0 @@ -727,7 +756,7 @@ 0 6 - 40 + 42 5 0 0 @@ -739,7 +768,7 @@ 6 - 41 + 43 1 0 0 @@ -751,7 +780,7 @@ 6 - 42 + 44 5 0 0 @@ -763,7 +792,7 @@ 6 - 43 + 45 1 0 0 @@ -775,7 +804,7 @@ 6 - 44 + 46 5 0 0 @@ -785,14 +814,110 @@ 0 0 + + 6 + 47 + 1 + 0 + 0 + 0 + ..\User\bsp\uart.c + uart.c + 0 + 0 + + + 6 + 48 + 5 + 0 + 0 + 0 + ..\User\bsp\uart.h + uart.h + 0 + 0 + User/device - 0 + 1 0 0 0 + + 7 + 49 + 1 + 0 + 0 + 0 + ..\User\device\lcd.c + lcd.c + 0 + 0 + + + 7 + 50 + 5 + 0 + 0 + 0 + ..\User\device\lcd.h + lcd.h + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + ..\User\device\lcd_init.c + lcd_init.c + 0 + 0 + + + 7 + 52 + 5 + 0 + 0 + 0 + ..\User\device\lcd_init.h + lcd_init.h + 0 + 0 + + + 7 + 53 + 5 + 0 + 0 + 0 + ..\User\device\lcdfont.h + lcdfont.h + 0 + 0 + + + 7 + 54 + 5 + 0 + 0 + 0 + ..\User\device\pic.h + pic.h + 0 + 0 + @@ -803,7 +928,7 @@ 0 8 - 45 + 55 1 0 0 @@ -815,7 +940,7 @@ 8 - 46 + 56 5 0 0 @@ -827,7 +952,7 @@ 8 - 47 + 57 1 0 0 @@ -839,7 +964,7 @@ 8 - 48 + 58 5 0 0 @@ -851,7 +976,7 @@ 8 - 49 + 59 1 0 0 @@ -863,7 +988,7 @@ 8 - 50 + 60 5 0 0 diff --git a/MDK-ARM/MR16.uvprojx b/MDK-ARM/MR16.uvprojx index 63cf453..a24d0c3 100644 --- a/MDK-ARM/MR16.uvprojx +++ b/MDK-ARM/MR16.uvprojx @@ -189,7 +189,7 @@ 0 0 8 - 0 + 1 0 0 0 @@ -403,6 +403,62 @@ 1 ../Core/Src/gpio.c + + dma.c + 1 + ../Core/Src/dma.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + spi.c 1 @@ -539,64 +595,69 @@ ..\sx1281-driver-c\sx1281.h - sx1281-hal.c + sx1281_boards.h + 5 + ..\sx1281-driver-c\sx1281_boards.h + + + sx1281_driver.c 1 - ..\sx1281-driver-c\sx1281-hal.c + ..\sx1281-driver-c\sx1281_driver.c - sx1281-hal.h + sx1281_driver.h 5 - ..\sx1281-driver-c\sx1281-hal.h + ..\sx1281-driver-c\sx1281_driver.h - boards.h - 5 - ..\sx1281-driver-c\boards.h - - - hw.c + sx1281_driver_gpio.c 1 - ..\sx1281-driver-c\hw.c + ..\sx1281-driver-c\sx1281_driver_gpio.c - hw.h + sx1281_driver_gpio.h 5 - ..\sx1281-driver-c\hw.h + ..\sx1281-driver-c\sx1281_driver_gpio.h - hw-gpio.c + sx1281_driver_hal.c 1 - ..\sx1281-driver-c\hw-gpio.c + ..\sx1281-driver-c\sx1281_driver_hal.c - hw-gpio.h + sx1281_driver_hal.h 5 - ..\sx1281-driver-c\hw-gpio.h + ..\sx1281-driver-c\sx1281_driver_hal.h - hw-spi.c + sx1281_driver_spi.c 1 - ..\sx1281-driver-c\hw-spi.c + ..\sx1281-driver-c\sx1281_driver_spi.c - hw-spi.h + sx1281_driver_spi.h 5 - ..\sx1281-driver-c\hw-spi.h + ..\sx1281-driver-c\sx1281_driver_spi.h - hw-uart.c + sx1281_driver_uart.c 1 - ..\sx1281-driver-c\hw-uart.c + ..\sx1281-driver-c\sx1281_driver_uart.c - hw-uart.h + sx1281_driver_uart.h 5 - ..\sx1281-driver-c\hw-uart.h + ..\sx1281-driver-c\sx1281_driver_uart.h - nucleo-l476rg.h + sx1281_header.c + 1 + ..\sx1281-driver-c\sx1281_header.c + + + sx1281_header.h 5 - ..\sx1281-driver-c\nucleo-l476rg.h + ..\sx1281-driver-c\sx1281_header.h @@ -628,10 +689,52 @@ 5 ..\User\bsp\spi.h + + uart.c + 1 + ..\User\bsp\uart.c + + + uart.h + 5 + ..\User\bsp\uart.h + User/device + + + lcd.c + 1 + ..\User\device\lcd.c + + + lcd.h + 5 + ..\User\device\lcd.h + + + lcd_init.c + 1 + ..\User\device\lcd_init.c + + + lcd_init.h + 5 + ..\User\device\lcd_init.h + + + lcdfont.h + 5 + ..\User\device\lcdfont.h + + + pic.h + 5 + ..\User\device\pic.h + + User/component diff --git a/MDK-ARM/MR16/MR16.axf b/MDK-ARM/MR16/MR16.axf index 1d1eb21a2a3fdfada88dabf5b6dfdd9b7cddabf4..d5dd0431a66f0c76ae4d26f459347832ce043e20 100644 GIT binary patch delta 40309 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

7j1yJ_v5H(VZ#X312Gc7Re&8p@kZs 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 diff --git a/MDK-ARM/MR16/MR16.build_log.htm b/MDK-ARM/MR16/MR16.build_log.htm index cd9c763..e7ac90c 100644 --- a/MDK-ARM/MR16/MR16.build_log.htm +++ b/MDK-ARM/MR16/MR16.build_log.htm @@ -22,23 +22,14 @@ Dialog DLL: TCM.DLL V1.48.0.0

Project:

D:\CUBEMX\MR16\MDK-ARM\MR16.uvprojx -Project File Date: 11/22/2025 +Project File Date: 11/27/2025

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\cangming\ARM\ARMCC\Bin' Build target 'MR16' Note: source file '..\User\bsp\gpio.c' - object file renamed from 'MR16\gpio.o' to 'MR16\gpio_1.o'. Note: source file '..\User\bsp\spi.c' - object file renamed from 'MR16\spi.o' to 'MR16\spi_1.o'. -compiling main.c... -../Core/Src/main.c(277): warning: #177-D: variable "isMaster" was declared but never referenced - bool isMaster = true; -../Core/Src/main.c(696): warning: #167-D: argument of type "int8_t *" is incompatible with parameter of type "uint8_t *" - Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); -../Core/Src/main.c: 2 warnings, 0 errors -linking... -Program Size: Code=19016 RO-data=636 RW-data=92 ZI-data=10652 -FromELF: creating hex file... -"MR16\MR16.axf" - 0 Error(s), 2 Warning(s). +"MR16\MR16.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

@@ -62,7 +53,7 @@ Package Vendor: Keil * Component: ARM::CMSIS:CORE:5.4.0 Include file: CMSIS\Core\Include\tz_context.h -Build Time Elapsed: 00:00:03 +Build Time Elapsed: 00:00:00 diff --git a/MDK-ARM/MR16/MR16.hex b/MDK-ARM/MR16/MR16.hex index 26ae657..91dac69 100644 --- a/MDK-ARM/MR16/MR16.hex +++ b/MDK-ARM/MR16/MR16.hex @@ -1,1237 +1,525 @@ :020000040800F2 -:10000000F8290020AD010008732B000861280008C2 -:10001000712B0008B1100008F34100080000000037 -:10002000000000000000000000000000A52F0008F4 -:10003000DD10000800000000DD2C0008ED3D000888 -:10004000C7010008C7010008C7010008C701000870 -:10005000C7010008C7010008C7010008C701000860 -:10006000C7010008C7010008C7010008C701000850 -:10007000C7010008C7010008C7010008C701000840 -:10008000C7010008C7010008C7010008C701000830 -:10009000C7010008C7010008C7010008F5100008E3 -:1000A000C7010008C7010008C7010008C701000810 -:1000B000C7010008C7010008C7010008C701000800 -:1000C000C7010008C7010008C7010008C7010008F0 -:1000D000C7010008C7010008C7010008C7010008E0 -:1000E000DF100008C7010008C701000800F002F88F -:1000F00000F04DF80AA090E8000C82448344AAF175 -:100100000107DA4501D100F042F8AFF2090EBAE872 -:100110000F0013F0010F18BFFB1A43F0010318473B -:10012000844B0000A44B0000103A24BF78C878C16B -:10013000FAD8520724BF30C830C144BF04680C60ED -:10014000704700000023002400250026103A28BF35 -:1001500078C1FBD8520728BF30C148BF0B60704739 -:10016000642900F09F80782900F0D880732900F07E -:10017000E082002070471FB59DE8030000F04AFDB3 -:1001800000F03CFB1FBD10B500F0A1FB10BD00F05E -:1001900004FC1146FFF7EFFF04F050F800F008FDF3 -:1001A00003B4FFF7F0FF03BC00F0A6FE0948804748 -:1001B00009480047FEE7FEE7FEE7FEE7FEE7FEE749 -:1001C000FEE7FEE7FEE7FEE704480549054A064B61 -:1001D00070470000513E0008ED000008F8230020A1 -:1001E000F8290020F8250020F82500200FB4044944 -:1001F00010B503AA029800F0A1FA10BC5DF814FB38 -:10020000F022002070B5044685690068C10601D55A -:10021000302600E02026C00707D070BDD4E90121B8 -:1002200030469047206A401C20626D1EF6D570BD96 -:1002300070B5044685690078C00707D170BDD4E960 -:10024000012120209047206A401C20626D1EF6D5B7 -:1002500070BD70B50C460546012A05D02878800689 -:1002600000D5EA69002302E0012305E05B1C93420C -:1002700002D2E05C0028F9D1A869E618C01AA8618A -:10028000286A184428622846FFF7BCFF04E0D5E935 -:10029000012114F8010B9047B442F8D32846FFF728 -:1002A000C7FF70BD2DE9F04106460024106875298E -:1002B000314616A510D0AFF30080002802DA404284 -:1002C00013A507E031688A0701D512A502E04907A6 -:1002D00004D511A5012401E0AFF3008000210A221A -:1002E00006F1240709E0B0FBF2FCB0FBF2F302FBDD -:1002F0001C00303078541846491C0028F3D123469E -:100300002A463046BDE8F04100F0A8B900000000E0 -:100310002D0000002B0000002000000070B50446F6 -:100320000D4621461068AFF300802188090502D5EB -:100330000F4A7A4402E00E4A7A440E32002104F158 -:10034000240305E000F00F060009965D5E54491C89 -:100350000028F7D120780023000704D5702D02D0A3 -:1003600009B1022311322046BDE8704000F076B991 -:10037000264900002DE9F05F894604464FF0000A47 -:10038000DFF874B1FB44C0F820A02046E16888473C -:10039000002874D0252806D0D4E901219047206A8E -:1003A000401C2062F1E700265F462046E16888474E -:1003B0002028054607DB312D05D2781910F8200CCE -:1003C00008B10643F1E7B00701D526F00406C4F8EA -:1003D0001CA00027C4F818A02A2D09D0284603F035 -:1003E00019FF38B304EB8708303DC8F8185019E0FE -:1003F00059F8041B204604EB87029161E1688847A5 -:10040000012F054618D1E069002820DA26F02006E1 -:100410001DE0D8F8180000EB800005EB40003038F4 -:10042000C8F818002046E1688847054603F0F2FE48 -:100430000028EED1012F0AD02E2D08D12046E168E8 -:1004400088477F1C0546022F46F02006C4DBA069C2 -:10045000002803DA404246F00106A061F00701D00F -:1004600026F010066C2D0BD0682D09D04C2D39D0FC -:100470006A2D35D0742D35D07A2D33D016E038E082 -:10048000E1682F4620468847B842054609D16C2FBF -:1004900026D04FF48060E168064320468847054631 -:1004A00004E06C2F1AD04FF4807006430DB3A5F111 -:1004B0004100192802D8203546F400664A462946EC -:1004C000204626604E46FFF74BFE80B101280BD038 -:1004D000F61D26F0070000F1080956E74020E4E782 -:1004E0008020D8E70020D6E706F104094DE728462A -:1004F00052E7206ABDE8F09FFC48000010B5431C9D -:1005000002E010F8011B71B18107FAD14FF00132FE -:1005100002C88C1A8C4314EAC211F9D0C01A0A0618 -:1005200003D0C01E10BDC01A10BD0A0401D0801E29 -:1005300010BD0902FCD0401E10BD032A40F23080DD -:1005400010F0030C00F0158011F8013BBCF1020F14 -:10055000624498BF11F801CB00F8013B38BF11F895 -:10056000013BA2F1040298BF00F801CB38BF00F8AC -:10057000013B11F0030300F0F380083AC0F008805B -:1005800051F8043B083A51F804CBA0E80810F5E70D -:10059000121D5CBF51F8043B40F8043BAFF30080F0 -:1005A000D20724BF11F8013B11F801CB48BF11F865 -:1005B000012B24BF00F8013B00F801CB48BF00F835 -:1005C000012B70474FF000020429C0F0128010F098 -:1005D000030C00F01B80CCF1040CBCF1020F18BF1F -:1005E00000F8012BA8BF20F8022BA1EB0C0100F0B2 -:1005F0000DB85FEAC17C24BF00F8012B00F8012B85 -:1006000048BF00F8012B70474FF0000200B51346B9 -:1006100094469646203922BFA0E80C50A0E80C5022 -:10062000B1F12001BFF4F7AF090728BFA0E80C50D3 -:1006300048BF0CC05DF804EB890028BF40F8042BCC -:1006400008BF704748BF20F8022B11F0804F18BF39 -:1006500000F8012B70477047704770472DE9F0474D -:100660000D4699469246044600F124080168880622 -:1006700004D5E06921F01001216000E00120A842CA -:1006800001DD471B00E00027A1697A1902EB090090 -:10069000081AA0612078C00602D42046FFF7B2FDF8 -:1006A000002608E0D4E901211AF806009047206AE4 -:1006B000401C761C20624E45F4DB2078C0060AD52B -:1006C0002046FFF79FFD06E0D4E901213020904746 -:1006D000206A401C2062381EA7F10107F4DC07E005 -:1006E000D4E9012118F805009047206A401C2062D7 -:1006F000281EA5F10105F3DC2046FFF799FD2078BF -:10070000000602D50220BDE8F0870120FBE710B506 -:10071000436913B1AFF3008001E0FFF79AFD0120B8 -:1007200010BD127800F124010A7000224A700122E3 -:10073000EDE711684FF0FF32E9E70000074B70B5B5 -:100740000D467B4400F043F80446284600F052F87A -:1007500010B14FF0FF3070BD204670BDDF3A000091 -:1007600010B5203AC0F00B80B1E81850203AA0E84C -:100770001850B1E81850A0E81850BFF4F5AF5FEA80 -:10078000027C24BFB1E81850A0E8185044BF18C933 -:1007900018C0BDE810405FEA827C24BF51F8043BDA -:1007A00040F8043B08BF7047D20728BF31F8023B2E -:1007B00048BF11F8012B28BF20F8023B48BF00F8C2 -:1007C000012B704701694A1C02610878704700B527 -:1007D0008FB0CDE901310021059105497944CDE97A -:1007E000031011466846FFF7C5FD0FB000BD0000BD -:1007F000E5FFFFFF007B00F08000704710B5424826 -:100800005421FFF701FF41485421FFF7FDFE404806 -:100810005421FFF7F9FE3F493B483C4A3F4B0860F3 -:100820003D490A603A491960531C0365481C10652C -:10083000012008653B48344A39A1784400F01CF98E -:1008400020B9384878440A3800F0BBF937482F4AB5 -:1008500035A1784400F010F920B9344878440A38BA -:1008600000F0AFF932482A4A2FA1784400F004F989 -:1008700020B92F4878440A3800F0A3F940232248D1 -:10088000DC000021224600F0D4F820B1254878444D -:10089000543800F096F91D4822464023002100F00C -:1008A000C8F820B121487844543800F08AF9184833 -:1008B00022461023002100F0BCF8002806D01C4876 -:1008C0007844BDE81040563800F07BB910BD1048A0 -:1008D00070B5006D20F001040B4800F043F90B489F -:1008E00000F040F90A4800F03DF909E0206D20F0E1 -:1008F0000105204600F036F9204600F073F82C463A -:10090000002CF3D170BD00009C220020F0220020BA -:1009100044230020500000205400002058000020F4 -:1009200072000000574400007700000043440000BC -:100930002F4400000EB5CDE90001FFF7DFFD029066 -:1009400069460120ABBE0EBD08B569460090022085 -:10095000ABBE08BD1FB58DE8070069460520ABBEDC -:1009600004B010BD1FB58DE80F0069460620ABBE70 -:10097000F6E708B5694600900920ABBE08BD1CB576 -:10098000CDE9000169460A20ABBE1CBD704708B521 -:10099000694600900C20ABBE08BD754600F018F902 -:1009A000AE4605006946534620F00700854618B05C -:1009B00020B5FFF709FCBDE820404FF000064FF0DE -:1009C00000074FF000084FF0000B21F00701AC4684 -:1009D000ACE8C009ACE8C009ACE8C009ACE8C009A3 -:1009E0008D46704770B50446051F00F0F7F80068A3 -:1009F000002C14BF446870BD002C18BFAC423CBF33 -:100A000020466468F8D301680A18AA4218BF4560F6 -:100A100003D12A6805461144016028684119A142A2 -:100A20001CBF6C6070BD6168696021680844286003 -:100A300070BD70B5C468A50713D0650211D4B2F5B6 -:100A4000807F09D0B2F5007F06D0B2F5806F08D163 -:100A5000012300F1240106E05D1E6FF07F46B542E0 -:100A600001D3012070BD0161C361416024F4706154 -:100A70001143C160002070BD2DE9F0410C460746CE -:100A80001646104600F06EF82078611C61280AD0E6 -:100A9000722802D077283CD102E00125002405E02D -:100AA0000225042402E0082448F2020511F8010B93 -:100AB0002B2806D0622809D011F8010C74280AD01E -:100AC0000BE045F0030544F00204EFE745F00405B0 -:100AD00044F00104EAE744F0100438462146FFF7E9 -:100AE00029FF411C15D00021316171604FF4007164 -:100AF000F560F1617061200704D5304602220021C3 -:100B000000F0E6F8306D40F0010030653046BDE899 -:100B1000F0810020FBE72DE9F0410D460646104C20 -:100B2000206DC10704D0410804D020F00104F7E78C -:100B300022460EE0542000F09CF807000ED0206DF5 -:100B400047F001010843542120653846FFF75CFD5A -:100B50003A4629463046BDE8F0418DE70020D6E709 -:100B60009C2200202DE9F04704464FF000094FF089 -:100B7000FF37C568D4E90486A80707D0204600F0EF -:100B800057F93046FFF7E0FE002802DA3846BDE8A4 -:100B9000F087280502D54046FFF724FF4C21204668 -:100BA000FFF732FD206D20F0010020654846EEE79A -:100BB00010B50446AFF300802046BDE81040FFF7B3 -:100BC000EFBA10B500F07EF9BDE8104000F074B93E -:100BD0000048704798230020704700000048704785 -:100BE000A0230020704770477047704738B504460F -:100BF0000A4600206946AFF30080002808BF38BDD0 -:100C000002460099204600F084F9012038BD0120F9 -:100C100000F0D3B9F8B5AFF30080054600200C46CC -:100C2000102000BF0646A819A0420DD932466946D9 -:100C30000020AFF30080070008BF00F0BEF9009865 -:100C4000A04218BF0546C419FFF7C8FF0560074654 -:100C5000F01D20F007004619284600F053F9B44271 -:100C600008BFF8BDA21B31463868BDE8F84000F067 -:100C700050B970B50646FFF7B1FF056806F10B00E5 -:100C800020F00704B4429CBF002070BD2B466A6868 -:100C9000BAB11068A04210D304F1080188423CBFE9 -:100CA0005068586007D35168101941601168091BDA -:100CB000016058601460101D70BD13465268002A10 -:100CC000E7D121462846FFF791FF0028DED170BD0D -:100CD0002DE9F041044616460D464769007B800722 -:100CE0002ED03846FFF745FE50BB3EB3012E02D052 -:100CF000022E25D104E0204600F025F905441DE030 -:100D00003846FFF744FEE168002841F01001E16039 -:100D100005DA204600F058F80120BDE8F081C9034B -:100D20000BD56268E16A914200D81146A26911446C -:100D30002269891A814200DD08460544002D01DA46 -:100D40000220EAE7E16A6068E268814206D2910324 -:100D5000E06203D522F4003141F01002A6690027B9 -:100D6000AE4213DCE16A814201D90B4600E0034642 -:100D700003EB060C2369ACEB030CAC4506DD8142AA -:100D800001D98C4600E084469C4505D1A7602760C8 -:100D900042F02000A5620DE0AD1BE669AE1B81426A -:100DA000A66000D90846C01A281A20605819606049 -:100DB00022F0200003490840E060002084F84870D9 -:100DC000ABE70000BFCFD7FFC16821F4001141F0AD -:100DD0008001C16000218160016070472DE9F0470A -:100DE000814614460E464FF0FF383248D5685769A1 -:100DF000054209D03846A169FFF7C1FD002811DB83 -:100E00002C48C0430540E5602B46324649463846EB -:100E1000FFF7A0FDA16920F00042B21A114400289A -:100E2000A16103D02046FFF7CFFF4046BDE8F08721 -:100E300070B504460569C06A6168884200D80846F2 -:100E4000E16821F42011E160C90312D5A84208D05D -:100E50002246411B2846FFF7C1FF10B14FF0FF307B -:100E600070BD0020E562C4E90150E06820F48030E4 -:100E7000E060002070BD10B50446C06820F020007E -:100E8000E060A16AA06988420DD02046FFF7D0FF3C -:100E9000E06820F4405040F01000E060A06AA061DB -:100EA0002069E062606044F24001E0688843E060ED -:100EB00010BD000010000200002801D000F01CB896 -:100EC0007047000010B5014602A000F05DF8012057 -:100ED00010BD000053494752545245443A205265D0 -:100EE0006469726563743A2063616E2774206F7061 -:100EF000656E3A200000000001491820ABBEFEE7F5 -:100F00002600020000210160C0E901107047102096 -:100F10007047034640688C46002818BF88423CBF93 -:100F200003464068F8D318681844884207D00CF18B -:100F3000030020F00700001D411A521A0146081D47 -:100F40000A60FFF74FBD10B50146C268900703D095 -:100F5000900607D5886A0AE000F03EF8012101609A -:100F6000881E10BD8B69486818440B69C01A91F837 -:100F700048301BB191F84910401A10BD1103FCD53F -:100F80000028FADD401E10BD70B505460C460A204B -:100F900000E06D1C00F018F835B128780028F8D171 -:100FA00002E0641C00F010F814B120780028F8D199 -:100FB000BDE870400A2000F007B810B500F010F846 -:100FC000BDE81040FFF778BF08B569468DF800000E -:100FD0000320ABBE08BD00000048704798230020E6 -:100FE00010B5012805D0002103A0FFF7CDFF012097 -:100FF00010BD09A1F8E7000053494752544D454D33 -:101000003A204F7574206F662068656170206D65A9 -:101010006D6F7279000000003A2048656170206DA4 -:10102000656D6F727920636F72727570746564009C -:1010300008B100207047014870470000740000208C -:1010400032B1054B03EB401040F8212000207047DF -:101050006FF00100704700007C22002010B54FF0B7 -:10106000FF3430B9FFF7E4FF18B123B101F07AF88B -:1010700004E0204610BD142300F040FE0028F9D003 -:10108000012010BD38B54FF0FF34049D30B9FFF793 -:10109000CFFF18B125B100F0DDFF05E0204638BDD7 -:1010A0001424009400F0DDFE0028F8D0012038BDA3 -:1010B000FEE730B590F840500124AC40C56B6C6041 -:1010C000046863604368102B036803D0996000686C -:1010D000C26030BD9A600068C16030BD704710B515 -:1010E0004FF48054204600F0B3F82046BDE810408D -:1010F00000F0AAB810B5202000F0AAF8402000F0B7 -:10110000A7F8BDE81040802000F0A2B872B6FEE754 -:10111000014600200A0A00D008204FF2F0021142D6 -:1011200001D040F004004CF6CC42114201D040F016 -:1011300002004AF6AA22114201D040F00100704795 -:10114000704700F081B9000070B515460C4608469E -:10115000FFF7DEFF002B0FD0084941F82030204672 -:1011600001F088FB04460022294600F01BFA2046C5 -:10117000BDE8704000F008BA70BD0000FC210020FE -:10118000D2B200F066B970B5044690F82000002590 -:1011900001280CD0012084F8200094F82160002060 -:1011A000012E06D084F820000225284670BD0220BA -:1011B00070BD022684F82160A0632068066826F0CE -:1011C000010606602046FFF774FFE06A00282068E9 -:1011D000016802D041F00E0106E021F00401016037 -:1011E0002068016841F00A0101602068016841F04F -:1011F00001010160D9E7000070B5044600F02EF946 -:101200000546601C02D004480078044400F026F92A -:10121000401BA042FAD370BD2C0000202DE9F04104 -:101220000024084F0646012505FA04F0304203D099 -:1012300057F8240000B18047641CE4B2102CF3D3AB -:10124000BDE8F0813C2200200A20FFF7D5BF000056 -:10125000044910B50A68024202D00860FFF7DEFFB9 -:1012600010BD0000140401402DE9F84FDFF8B891DB -:101270000024A9F1040B23460F2709F1040AABF15E -:10128000040EC9E00125A5402A40AA427DD1674E3F -:10129000D1F804C0ACEB0608B44532D014DCBCF184 -:1012A000030F3AD009DCBCF1000F2AD0BCF1010FCA -:1012B0001CD0BCF1020F31D11DE0BCF1110F17D0D1 -:1012C000BCF1120F2AD119E0B8F5881F19D006DC3D -:1012D000B8F5803F15D0B8F5801F1FD111E0B8F5E3 -:1012E000001F0ED0B8F5041F18D10AE0CB6815E036 -:1012F000CB681B1D12E0CB6808330FE0CB680C33C2 -:101300000CE08B682BB1012B4FF0080303D0456133 -:1013100004E0042302E0056100E00023FF2A01D875 -:10132000064601E000F104064FEA840501D9A5F163 -:101330002005D6F8008007FA05FC28EA0C0803FA15 -:1013400005F548EA0508C6F800804D68ED0062D54D -:10135000374DAE6946F00106AE61AD6924F0030673 -:1013600005F001050095334D06EB050CDCF808503F -:10137000A607360F07FA06F825EA0805DFF8B88051 -:10138000404503D14FF0000817E044E0DFF8AC809F -:10139000404502D14FF001080FE0DFF8A48040453E -:1013A00002D14FF0020808E0DFF89880404502D1F2 -:1013B0004FF0030801E04FF0040808FA06F848EA85 -:1013C0000508CCF808804D68D9F80060ED024D465C -:1013D00001D5164300E096432E604D68DAF80060B0 -:1013E000AD02554601D5164300E096432E604D6888 -:1013F000DBF80060AD035D4601D5164300E096437F -:101400002E604D68DEF80060ED03754601D5164389 -:1014100000E096432E60641C0D682A46E5407FF488 -:1014200031AFBDE8F88F0000080401400000111042 -:10143000001002400000014000080140000C014083 -:1014400000100140001401408068084000D00120D5 -:1014500070470AB1016170470904FBE701488068E1 -:10146000704700002C00002070B5040004D094F8F0 -:101470004100002510B106E0012070BD84F8405005 -:10148000204601F049F9242084F841002068C16811 -:1014900021F40051C160204602F016FE2068016967 -:1014A00021F4904101612068416921F022014161EC -:1014B0002068416941F0080141612068C16841F438 -:1014C0000051C1606564202084F8410084F8420026 -:1014D0006563002070BD00000248816802781144F5 -:1014E000816070472C000020074810B5016841F06A -:1014F00010010160032000F075F80F2000F006F8DD -:1015000000F024F8002010BD0020024070B50D4D01 -:1015100004464FF47A712878B1FBF0F00A49096863 -:10152000B1FBF0F000F0EAFE48B9102C07D200221F -:101530002146501E00F036F800206C6070BD01207E -:1015400070BD00002C000020380000200C4808B5B9 -:10155000816941F001018161816901F0010100911E -:10156000C16941F08051C161C06900F080500090B4 -:101570000448416821F0E06141F00071416008BD1C -:101580000010024000000140002809DB00F01F02AB -:10159000012191404009800000F1E020C0F80011D5 -:1015A00070470000F0B40E4B1B680C46C3F30223D7 -:1015B000C3F10705042D00D90425191D072901D2FF -:1015C000002300E0DB1E012606FA05F1491E21403A -:1015D00099409E40761E16403143F0BC02F00ABE90 -:1015E0000CED00E0064900F0070208684FF6FF0323 -:1015F000184040EA0220034A104308607047000088 -:101600000CED00E00000FA052DE9F0470F4605005B -:1016100061D0434E306800F00700B84209D230680C -:1016200020F0070038433060306800F00700B8420F -:1016300051D128683B4C810712D5400703D560681B -:1016400040F4E06060602878000703D5606840F4EB -:10165000605060606068A96820F0F0000843606036 -:101660002878C00728D06868012810D0216802288F -:1016700010D0890700292EDA616821F003010143A7 -:101680006160FFF7EBFE804641F288390DE021688A -:101690008903EFE78901EDE7FFF7E0FEA0EB080122 -:1016A000494502D90320BDE8F0876068696800F009 -:1016B0000C00B0EB810FEFD1306800F00700B842AA -:1016C0000BD9306820F0070038433060306800F0F4 -:1016D0000700B84201D00120E5E72878400705D58A -:1016E0006068E96820F4E0600843606028780007DB -:1016F00006D56068296920F4605040EAC100606046 -:1017000000F038F86168084AC1F30311515CC84021 -:101710000649086006480068FFF7F8FE0020C2E7A7 -:1017200000200240001002405A4B00083800002000 -:10173000300000200448054900684968044AC1F3A4 -:101740000221515CC8407047380000200010024060 -:101750006A4B00080448054900684968044AC1F317 -:10176000C221515CC8407047380000200010024080 -:101770006A4B00080F4A516801F00C00042803D09E -:10178000082803D00C4870470C4870470C48C1F338 -:101790008343C903C05C0AD55168094AC1F340417B -:1017A000921E515C054A5043B0FBF1F07047054969 -:1017B000484370470010024000127A000024F400F1 -:1017C0004A4B000800093D002DE9F84F040070D095 -:1017D0002078C04DC00749D06868C0F38100012857 -:1017E00007D06868C0F38100022809D16868C00387 -:1017F00006D52868800339D560680028E7D035E031 -:101800006068B0F5803F0BD010B1B0F5A02F11D0BB -:10181000286820F480302860286820F4802002E0C6 -:10182000286840F480302860606890B1FFF716FEA9 -:1018300006460AE0286840F480202860F0E700BFF0 -:10184000FFF70CFE801B642873D828688003F7D547 -:101850000CE0FFF703FE064605E000BFFFF7FEFDC4 -:10186000801B6428F0D828688003F7D420789A4E2B -:1018700080074FF001094FF0000839D5686810F073 -:101880000C0F07D06868C0F38100022809D168688E -:10189000C00306D42868800714D52069012808D120 -:1018A00010E02069B0B1C6F80090FFF7D7FD0746F9 -:1018B00005E00AE1FFF7D2FDC01B0228C4D8286862 -:1018C0008007F7D52868616920F0F80040EAC10078 -:1018D00028600DE0C6F80080FFF7C0FD074604E071 -:1018E000FFF7BCFDC01B022823D828688007F7D467 -:1018F000207800072CD57948A169D9B1C0F80090AB -:10190000FFF7ACFD074604E0FFF7A8FDC01B022867 -:101910000FD8686A8007F7D571484FF4FA5100680C -:10192000B0FBF1F0009000BF0098411E0091FAD288 -:101930000EE080E0C0F80080FFF790FD074604E06D -:10194000FFF78CFDC01B022875D8686A8007F7D4A2 -:101950002078400760D5E8690027C00008D4E8690E -:1019600040F08050E861E869012700F08050009065 -:101970005C480168C90513D40168834641F480714D -:101980000160FFF76BFD824606E000BFFFF766FDD2 -:10199000A0EB0A0064284ED8DBF80000C005F5D59E -:1019A000E06801280AD008B1052813D0286A20F081 -:1019B00001002862286A20F0040002E0286A40F052 -:1019C00001002862E06841F2883B98B1FFF746FDCC -:1019D00082460BE0286A40F004002862EEE700BF70 -:1019E000FFF73CFDA0EB0A0159455AD8286A800749 -:1019F000F6D50CE0FFF732FD824605E0FFF72EFD3D -:101A0000A0EB0A0159454CD8286A8007F6D41FB1CB -:101A1000E86920F08050E861E06988B36968C1F343 -:101A20008101022944D00228C6F8608004D0FFF763 -:101A300015FD044638E034E0FFF710FD074604E0EA -:101A4000FFF70CFDC01B02282BD828688001F7D4B3 -:101A5000206AB0F5803F05D16868A16820F40030A5 -:101A600008436860D4E908010843696821F47411E7 -:101A700008436860C6F86090FFF7F0FC044606E093 -:101A800025E000BFFFF7EAFC001B022809D8286800 -:101A90008001F7D51BE000BFFFF7E0FC001B022828 -:101AA00002D90320BDE8F88F28688001F4D40EE045 -:101AB0000128F7D06868226A00F48031914204D18D -:101AC000616A00F47010884201D00120EAE700202A -:101AD000E8E7000000100240000042428004424259 -:101AE000380000200070004070B5044601F0F4F9A1 -:101AF000022811D0204601F0EFF9084D05EB401007 -:101B00008069002808D0204601F0E6F905EB401076 -:101B10008069BDE87040004770BD00007C22002055 -:101B200070B5040009D0606A002540B12561656187 -:101B3000A56294F8510040B10CE0012070BD6068CE -:101B4000B0F5827FF4D0E561F2E784F8505020468A -:101B500000F040F8022084F851002068016821F06C -:101B600040010160A088218900F4827001F40441E1 -:101B70000843A18901F400610843217C01F00201BE -:101B80000843217D01F001010843218B01F400711C -:101B90000843217F01F03801084394F8201001F038 -:101BA00080010843218D01F4005108432168086039 -:101BB000A069042101EA1040216848602068C169D9 -:101BC00021F40061C1616565012084F851000020A5 -:101BD00070BD000030B585B00024009401940294DB -:101BE0000394254D0368254802210322AB421AD1F4 -:101BF000836943F480538361836903F480530493BE -:101C0000836943F00403836180691D4D00F0040083 -:101C10000490A020CDE90001039269462846FFF711 -:101C200023FB40201EE0174DAB4222D1C36943F491 -:101C30008043C361C36903F480430493836943F021 -:101C4000080383618069104D00F0080004904FF490 -:101C50003040CDE90001039269462846FFF704FBB6 -:101C60004FF48040CDE90004694628460294FFF70E -:101C7000FBFA05B030BD000000300140001002400A -:101C80000008014000380040000C014070B50446D7 -:101C900001F022F9022811D0204601F01DF9084D6B -:101CA00005EB40104068002808D0204601F014F9E8 -:101CB00005EB40104068BDE87040004770BD000073 -:101CC0007C22002070B5044601F006F9022811D0EC -:101CD000204601F001F9084D05EB4010006900288D -:101CE00008D0204601F0F8F805EB40100069BDE887 -:101CF0007040004770BD00007C2200202DE9F84FA5 -:101D0000984616468A460446FFF7A8FB814694F893 -:101D1000510001281ED1BAF1000F73D0002E71D0EE -:101D200094F85000012815D0012784F85070032042 -:101D300084F8510000256565C4F830A0A686E686C3 -:101D4000A563A587E58765642564A068B0F5004FA5 -:101D500003D00CE00220BDE8F88F2068016821F074 -:101D6000400101602068016841F480410160206801 -:101D70000168490603D4016841F040010160E06850 -:101D8000B0F5006F606803D048B3012E27D047E05C -:101D900008B1012E1FD1206B21680088C86006E0C1 -:101DA00020688168890709D5216B0988C160206B8B -:101DB000801C2063E08E401EE0860CE0FFF74EFBA7 -:101DC000A0EB0901414503D3B8F1FF3F03D035E053 -:101DD000B8F1000F32D0E08E0028E1D123E0206B73 -:101DE00021680078087306E02068816889070AD5B1 -:101DF000216B09780173206B401C2063E08E401E2C -:101E0000E0860DE02BE0FFF729FBA0EB090141453F -:101E100003D3B8F1FF3F03D010E0B8F1000F0DD0AD -:101E2000E08E0028E0D14A464146204601F039F8CC -:101E300008B120206065A06830B109E084F85170D5 -:101E400084F85050032086E72068C16880680090BD -:101E500084F8517004F8505F60680028F3D00120C6 -:101E600079E72DE9FF4F81B01D46934604464FF0B8 -:101E700001090E9EFFF7F2FA074694F851006168D7 -:101E8000012806D0B1F5827F3CD1A168C9BB0428E6 -:101E900038D10298002871D0BBF1000FFBD0002D83 -:101EA000F9D094F8500001282CD04FF0010A84F8A2 -:101EB00050A094F85100042802D0052084F8510065 -:101EC0004FF00008C4F85480C4F838B0E587A587FF -:101ED00002992163E586A586C4F84080C4F8448051 -:101EE00020680168490603D4016841F0400101609F -:101EF000E068B0F5006F606808D0F0B3012D49D0FC -:101F000081E0FFE7022005B0BDE8F08F08B1012DA8 -:101F100039D1206B21680088C860206B801C206349 -:101F2000E08E401EE0862EE02068816889070FD58C -:101F3000E18E69B1B9F1010F0AD1216B0988C16045 -:101F4000206B801C2063E08E401EE0864FF000096D -:101F500020688168C9070CD0E18F51B1C068A16BBE -:101F60000880A06B801CA063E08F401EE0874FF0CC -:101F70000109FFF773FAC01B01E00BE067E0B04214 -:101F800001D3701C50D1E08E0028CDD1E08F002805 -:101F9000CAD13EE0206B216800780873206B401C9A -:101FA0002063E08E401EE0862DE02068816889076E -:101FB0000FD5E18E69B1B9F1010F0AD1216B097812 -:101FC0000173206B401C2063E08E401EE0864FF0C2 -:101FD000000920688168C9070CD0E18F51B1C06841 -:101FE000A16B0870A06B401CA063E08F401EE087CF -:101FF0004FF00109FFF732FAC01BB04202D3701C48 -:1020000001D011E086B1E08E0028CED1E08F00280B -:10201000CBD13A463146204600F043FF50B1202054 -:10202000606584F8508012E084F851A084F85080F4 -:10203000032068E7A06818B92068C168806800902C -:1020400084F851A084F85080606D0028F1D0012000 -:1020500059E7000070B5044690F851006568012802 -:1020600006D0B5F5827F3AD1A568A5BB042836D144 -:1020700091B38AB383B394F8500001282FD0012084 -:1020800084F8500094F85100042802D0052084F808 -:102090005100002565652163A386E386A263A387BB -:1020A000E3872564656494F85100042819D0E16C35 -:1020B0002748C8622748E16C8862E16C26480863BB -:1020C000E06C4563E38F2168A26B0C31E06CFFF795 -:1020D0005AF800BB0AE002E0FFE7012070BD0220D1 -:1020E00070BDE16C1D48C8621D48E4E72068416886 -:1020F00041F001014160A06CC562A06C8562A06CDA -:102100000563A06C4563E38E2268216B0C32A06CE2 -:10211000FFF739F830B1606D40F01000606584F869 -:102120005050DAE720680168490603D4016841F09D -:102130004001016084F850502068416841F020015E -:1021400041602068416841F002014160002070BD9B -:10215000152D0008ED2D0008DF2C0008012D0008CA -:102160001F2D000870B5044690F8510001281CD1BD -:10217000C9B1C2B194F85000012816D0012084F8EA -:102180005000032084F85100002565652163A28674 -:10219000E286A56365642564A587E587A068B0F538 -:1021A000004F04D00DE0012070BD022070BD2068FA -:1021B000016821F0400101602068016841F480411C -:1021C0000160A16C1748C862A16C17488862A16CB5 -:1021D00016480863A06C4563E38E2268216B0C32BD -:1021E000A06CFEF7D0FF30B1606D40F0100060656C -:1021F00084F85050D7E720680168490603D4016885 -:1022000041F04001016084F850502068416841F07D -:10221000200141602068416841F0020141600020D6 -:1022200070BD00000B2D0008892D0008DF2C000870 -:1022300010B500F051FE022808D0054901EB40100E -:102240000068002802D0BDE81040004710BD000023 -:102250007C22002070B5044600F03EFE022811D01A -:10226000204600F039FE084D05EB4010C0680028FC -:1022700008D0204600F030FE05EB4010C068BDE8F5 -:102280007040004770BD00007C22002070B50446FD -:1022900000F022FE022811D0204600F01DFE084D5D -:1022A00005EB40108068002808D0204600F014FE9E -:1022B00005EB40108068BDE87040004770BD00002D -:1022C0007C22002070B5044600F006FE022811D0E2 -:1022D000204600F001FE084D05EB40104069002843 -:1022E00008D0204600F0F8FD05EB40104069BDE83D -:1022F0007040004770BD00007C22002010B5401ED9 -:10230000B0F1807F01D3012010BD4FF0E024606167 -:102310000F21601701F06EFF0020A06107202061EF -:10232000002010BD10B590F83C20012A22D00122D7 -:1023300080F83C20CA688C6822F4407222434C68C2 -:1023400022F4806222430C6822F4006222430C696A -:1023500022F4805222434C6922F400522243C9697C -:10236000002322F480420A4301684A6480F83C302A -:10237000002010BD022010BD70B590F83C20012A4D -:1023800026D0012480F83C40022280F83D200368DA -:102390005A689D6822F070060A6832435A600D4BF5 -:1023A00002689A4208D0B2F1804F05D00A4B9A4297 -:1023B00002D00A4B9A4204D1496825F080031943A0 -:1023C000916080F83D40002180F83C10084670BDC7 -:1023D000022070BD002C01400004004000080040B5 -:1023E00010B5040003D094F83D0010B107E00120BF -:1023F00010BD002084F83C00204600F01FF80220A9 -:1024000084F83D00211D206801F024FD012084F89E -:10241000460084F83E0084F83F0084F8400084F8C9 -:10242000410084F8420084F8430084F8440084F8B2 -:10243000450084F83D00002010BD000008B500688C -:102440000649884208D10648816941F400618161EA -:10245000806900F40060009008BD0000002C01407D -:102460000010024070B5044690F83C000025012899 -:1024700017D0012684F83C60022084F83D002068D3 -:10248000826822F0770222F47F4282600868502836 -:1024900038D00DDC20284FD005DC90B3102811D1A6 -:1024A0004AE0022070BD302846D040280AD13BE0E7 -:1024B00060282FD070280DD0B0F5805F03D0B0F524 -:1024C000005F12D0012584F83D60002084F83C00B4 -:1024D000284670BDCB68D1E90121206801F0F6FCE7 -:1024E0002068816841F0770109E0CB68D1E90121DA -:1024F000206801F0EBFC2068816841F48041816034 -:10250000E1E719E0CA684968206801F093FD5021AD -:10251000206806E0CA684968206801F09CFD6021D7 -:10252000206801F0DDFCCEE7CA684968206801F048 -:1025300081FD40212068F4E7226801461046F0E75B -:1025400000B585B0002100910191029103910068CE -:102550000B49884212D10B48816941F00401816125 -:102560008069694600F0040004904FF40060009018 -:102570000220019003900448FEF776FE05B000BDEE -:10258000002C0140001002400008014070B50446D4 -:1025900090F83C0000260D4601280FD0012084F859 -:1025A0003C006AB1042A1DD0082A2FD00C2A3FD043 -:1025B0000126002084F83C00304670BD022070BD2A -:1025C000206801F095FC2068816941F00801816173 -:1025D0002068816921F004018161206881692A698C -:1025E000114311E0206801F0ABFC2068816941F4DF -:1025F000006181612068816921F4806181612068C6 -:1026000081692A6941EA02218161D2E7206801F0EB -:10261000C3FC2068C16941F00801C1612068C1693B -:1026200021F00401C1612068C1692A69114311E0E8 -:10263000206801F0DDFC2068C16941F40061C161DE -:102640002068C16921F48061C1612068C1692A697B -:1026500041EA0221C161ACE710B5040003D094F84F -:102660003D0010B107E0012010BD002084F83C00BF -:10267000204600F01EF8022084F83D00211D20684D -:1026800001F0E8FB012084F8460084F83E0084F85D -:102690003F0084F8400084F8410084F8420084F848 -:1026A000430084F8440084F8450084F83D0000208D -:1026B00010BD704770B5040004D094F841000025A7 -:1026C00010B106E0012070BD84F84050204600F0B3 -:1026D00023F8242084F841002068C16821F40051C7 -:1026E000C160204601F0F0FC2068016921F49041AE -:1026F00001612068416921F02A0141612068C168B7 -:1027000041F40051C1606564202084F8410084F8E0 -:1027100042006563002070BD30B585B00024009490 -:10272000019402940394224D036822490322224813 -:10273000AB4216D18B6943F480438B618B6903F400 -:10274000804304938B6943F004038B61896903928E -:1027500001F0040104914115009112210191694693 -:1027600021E0164DAB4220D1CB6943F40033CB615D -:10277000CB6903F4003304938B6943F004038B614A -:102780008969039201F0040104910421009102215E -:10279000019169460546FEF767FD0820CDE9000472 -:1027A000694628460294FEF75FFD05B030BD000083 -:1027B0000038014000100240000801400044004081 -:1027C0002DE9F843044690F84100984616460D4618 -:1027D000202802D00220BDE8F88385B17EB1002018 -:1027E0006064212084F84100FEF738FEA68481460B -:1027F000E684A0682027B0F5805F02D003E00120C6 -:10280000E9E7206910B12E4600250EE000260CE015 -:102810008021204601F0B4FCA8B9C6B116F8010B1E -:1028200021684860E08C401EE084E08C4B464FF00D -:102830000002CDF800800028EAD14FF04001204688 -:1028400001F09EFC40B184F841700320C3E735F8E5 -:10285000020BC0F30800E3E784F841700020BAE7F8 -:10286000FEE710B5FEF740FEFEF76AFCBDE810403B -:1028700001F0AABA00B5FEF74BFC012801D80620EA -:1028800000BD032801D8072000BD052801D8082075 -:1028900000BD072801D8092000BD092801D80A2059 -:1028A00000BD0F2801D8172000BD282000BD000062 -:1028B0002DE9F04186B00026384800960196029630 -:1028C0000396816941F020018161816901F0200155 -:1028D0000491816941F004018161816901F0040181 -:1028E0000491816941F00801816180692C4F00F0F9 -:1028F00008000490002210213846FEF7AAFDDFF8F8 -:10290000A480002219214046FEF7A3FD01241020D7 -:10291000CDE90004022569463846CDE90245FEF7B7 -:10292000A3FC0094694640460194CDE90245FEF7B8 -:102930009BFC200300901C48CDE9010669463846FF -:10294000FEF792FC18208DE8310069464046039559 -:10295000FEF78AFCE02000901448CDE901056946A5 -:102960004046FEF781FC2002CDE90006694602954B -:102970004046FEF779FC002205211720FEF712FEE3 -:102980001720FEF701FE002211462820FEF70AFE5E -:102990002820FEF7F9FD06B0BDE8F08100100240E6 -:1029A00000080140000C014000002110000011103F -:1029B000104810B50E4901604FF48271416000214A -:1029C0008160C1604FF400720161C0E905121822F4 -:1029D000C0E90721416281620A21C162FFF7A0F8C4 -:1029E000002803D0BDE81040FEF790BB10BD0000EA -:1029F00000300140740000200F4810B50D490160FF -:102A00004FF48271416000218160C1604FF4007217 -:102A10000161C0E90512C1610162416281620A215E -:102A2000C162FFF77DF8002803D0BDE81040FEF733 -:102A30006DBB10BD00380040CC00002010B596B032 -:102A400000240F9410941194129413941C2108A83C -:102A50001494FDF7D9FD20216846FDF7D5FD2748E0 -:102A60002549C0E900144FF6FF71C0E90241046135 -:102A700044618461FFF7B4FC08B1FEF747FB4FF4F3 -:102A800080500F900FA91D48FFF7ECFC08B1FEF72E -:102A90003DFB1A48FFF7E0FD08B1FEF737FB139442 -:102AA00013A916481494FFF767FC08B1FEF72EFB34 -:102AB0006020CDE908040A940C940D940C2208A916 -:102AC0000E480E94FFF762FD08B1FEF71FFB00945D -:102AD0004FF40050CDE904400294019403946946F8 -:102AE00006480794FFF71EFC08B1FEF70FFB0348EA -:102AF000FFF726FD16B010BD002C01402401002078 -:102B00000C4810B50A4901604FF4E13141600021E1 -:102B100081600822C160C0E904128161C161FEF7D1 -:102B2000A3FC002803D0BDE81040FEF7EFBA10BDAB -:102B3000003801406C0100200C4810B50A490160C2 -:102B40004FF4E1314160002181600C22C160C0E995 -:102B500004128161C161FFF7ADFD002803D0BDE81B -:102B60001040FEF7D3BA10BD00440040B40100206D -:102B7000FEE7FEE770B50C4C0120002560700B48A5 -:102B8000257005222146036E881D98472178A01DD7 -:102B90000844457006A0FDF729FBA11DBDE8704063 -:102BA00006A0FDF723BB000000000020784B0008C2 -:102BB0004F6E5278446F6E650D0A00002564000068 -:102BC000064910B50320487005A0FDF70FFB084823 -:102BD00008490069C96DBDE81040084700000020A1 -:102BE0005258453C3E3E3E3E3E3E3E3E0A0D0000B3 -:102BF000344B0008784B0008064910B50220487095 -:102C000005A0FDF7F3FA0A480A49C068C96DBDE896 -:102C100010400847000000203C3E3E3E3E3E3E3E07 -:102C20003E4F6E527854696D656F75740A0D0000E1 -:102C3000344B0008784B000870B50A4D04206870CA -:102C400009A0FDF7D3FA0D4CA9880023666D1A463A -:102C50000846B0470A48636E05214268BDE87040E7 -:102C600008A01847000000203C3E3E3E3E3E3E3E4F -:102C70003E4F6E5478446F6E650A0D00784B000825 -:102C8000344B0008313233343500000070B50A4D42 -:102C90000520687009A0FDF7A9FA0C4CA98800234B -:102CA000666D1A460846B0470948636E052182687A -:102CB000BDE8704007A01847000000203C3E3E3EA3 -:102CC0003E3E3E3E3E5458450A0D0000784B0008FB -:102CD000344B00083132333435000000704710B5F2 -:102CE000406A01684A6822F003024A60416D41F07F -:102CF00010014165012180F85110FEF7F5FE10BD6D -:102D000010B5406AFEF7DEFF10BD10B5406AFFF750 -:102D1000A1FA10BD10B5406AFFF7D4FA10BD70B526 -:102D20000546446AFEF79AFB02462868006880065A -:102D300026D42068416821F020014160A06818B9BC -:102D40006068B0F5827F16D02068416821F00101EB -:102D500041606421204600F076F808B120206065CB -:102D60000020E087012084F85100606D40B12046CA -:102D7000FEF7BAFE70BD2068416821F00301E7E765 -:102D80002046FEF783FF70BD38B50546446AFEF75E -:102D900065FB024628680068800623D420684168E5 -:102DA00021F0200141602068416821F0020141606A -:102DB0006421204600F075F818B1606D40F02000E5 -:102DC0006065A068002118B92068C268806800901A -:102DD000E186012084F85100606D18B12046FEF7AD -:102DE00083FE38BD2046FFF723FA38BD70B505468F -:102DF000446AFEF733FB02462868006880061ED44A -:102E00002068416821F0200141606421204600F0E3 -:102E100048F818B1606D40F0200060652068416896 -:102E200021F0030141600020E086E087012084F862 -:102E30005100606D18B12046FEF756FE70BD204669 -:102E4000FFF724FA70BDF8B5044640684FF482736A -:102E5000984217D1A0684FF48065B0F5004F01D0BB -:102E6000A8420FD12068066826F040060660606818 -:102E7000984207D1A068A84204D100920B460022D4 -:102E8000012103E000920B4600228021204600F041 -:102E90002DF8002804D0606D40F02000606503200C -:102EA000F8BDF8B515460E460B46009204460122C1 -:102EB000022100F01BF840B9334600228021204651 -:102EC000009500F013F8002804D0606D40F0200059 -:102ED00060650320F8BD000000680349884201D105 -:102EE0000020704702207047003001402DE9F84370 -:102EF0001E46914688460446089DFEF7AFFA401BE1 -:102F0000351AFEF7ABFA074625480068C0F3CB3008 -:102F1000684338E0701C37D0FEF7A0FAC01BA84207 -:102F200003D215B1009860B32CE02068416821F00D -:102F3000E00141606068B0F5827F0BD1A068B0F518 -:102F4000004F02D0B0F5806F04D12068016821F0F5 -:102F500040010160A06AB0F5005F09D120680168F6 -:102F600021F4005101602068016841F400510160C2 -:102F7000012084F85100002084F850000320BDE8AF -:102F8000F8830025401E00902068816838EA01001F -:102F900004D000214945BDD10020F0E70121F9E727 -:102FA000380000207047C0F340114901C0F30012FF -:102FB00041EA0211C0F3C00241EAC201C0F380023B -:102FC00041EA8201C0F3400241EA420108B500F043 -:102FD000010001438DF8001001226946892000F0AC -:102FE00017FB08BD08B5010A8DF800108DF8010027 -:102FF00002226946972000F00BFB08BD10B54FF484 -:10300000AA7000F079FA044640F2531000F074FA06 -:1030100044EA002010BD000070B5204A002001469F -:103020005278032A39DA002A37D0012A35D140F6FE -:10303000541000F061FA044640F6551000F05CFAB6 -:10304000054640F6561000F057FA210441EA0521E2 -:103050000143C1F3130400F035F801F042FC0246CD -:103060000B4600200E4901F0B7FA00220D4B01F08B -:1030700063FC05460E462046B4F5002F01D3A4F5A7 -:10308000801001F02EFC084A084B01F055FC2A463E -:103090003346BDE8704001F09FBA70BD3C0000208F -:1030A0000000994000408F40CDCCCCCCCCCCF83F38 -:1030B00008B502226946152000F0E8F9BDF80000C5 -:1030C00040BA08BD0949002089780A290BD018297F -:1030D00007D0262903D0342900D105487047054878 -:1030E0007047054870470548704700003C000020C5 -:1030F00075190300EA320600D4650C00A8CB18004D -:1031000001480078704700003C0000201CB50446D0 -:10311000052269461D2000F0B9F9804840782070EA -:10312000032865D00FDCC0B1012815D19DF800003F -:10313000404200EBD070401060709DF80100802884 -:1031400019D280081DE004287DD00F2804D100206A -:103150002060A0800F2020701CBD9DF80000404220 -:1031600000EBD070401060709DF80100404200EB11 -:10317000D070401005E0A0F58070C11700EB917091 -:103180008010A0709DF802008109E07861F30000D2 -:10319000E0709DF80210490961F34100E0709DF86C -:1031A0000210090961F38200E0709DF80210C9085D -:1031B00061F3C300E0709DF80210890861F3041008 -:1031C000E0709DF80210490861F34510E0709DF829 -:1031D000021061F38610E0709DF803004109207928 -:1031E00061F3000020719DF8031061F341008DE050 -:1031F0009DF80000404200EBD070401060709DF8D8 -:103200000100404200EBD0704010A0709DF8020019 -:103210008109E07861F30000E0709DF8021049092F -:1032200061F34100E0709DF80210090961F382002A -:10323000E0709DF80210C90861F3C300E0709DF8CA -:103240000210890800E025E061F30410E0709DF8A9 -:103250000210490861F34510E0709DF8021061F317 -:103260008610E0709DF803008109207961F3010068 -:1032700020719DF80310490961F3820020719DF8C7 -:103280000310090961F3C30020719DF8031061F375 -:1032900004103BE09DF80000404200EBD07040106D -:1032A00060709DF80100404200EBD0704010A070AB -:1032B0009DF802008109E07861F30000E0709DF85C -:1032C0000210490961F34100E0709DF802100909FC -:1032D00061F38200E0709DF80210C90861F3C30039 -:1032E000E0709DF80210890861F30410E0709DF809 -:1032F0000210490861F34510E0709DF8021061F377 -:103300008610E0709DF8030000F0010020719DF828 -:10331000040000F0070060711CBD00003C000020AC -:1033200001484078704700003C000020F8B50C468A -:10333000064615466946204600F01EF82278AA4245 -:1033400001D90120F8BD31469DF8000000F068F871 -:103350000020F8BD08B500208DF800000122694664 -:103360001F2000F093F89DF80000404200EBD07061 -:1033700040F3470008BD0000F8B50D4604460222A0 -:103380006946172000F082F80C4E707801280AD1A7 -:1033900040F6031000F0B0F8C00904D040F6011068 -:1033A00000F0AAF805E0707804289DF8000000D12C -:1033B000801C20709DF801002870F8BD3C000020A2 -:1033C00008B500208DF8000001226946C02000F0F9 -:1033D0005DF89DF8000008BD70B5074D4FF4807191 -:1033E0002846FDF7AEFE044680212846FDF7A9FEDB -:1033F00044EA4000C0B270BD000C014010B5044664 -:1034000000F0BAF82046BDE8104000F001B8000016 -:103410000022036880210148FDF796BE000C0140A0 -:103420002DE9F0410E46014615481446D51C1B22D5 -:1034300002704170002181700B4603E0C2185B1CD2 -:10344000D1709BB2A342F9D300F0B0F80D4F002227 -:1034500010213846FDF794FE2A460B49084800F033 -:10346000A3FC09492246C91C3046FDF766F8012233 -:1034700010213846FDF784FEBDE8F04100F096B813 -:10348000FC01002000080140FB1100202DE9F04163 -:103490000E460146901C85B2144814460170002166 -:1034A00041700B4603E0C2185B1C91709BB2A342B3 -:1034B000F9D300F07BF80E4F002210213846FDF7BB -:1034C0005FFE2A460B49094800F06EFC0949224676 -:1034D000891C3046FDF731F8012210213846FDF7EE -:1034E0004FFEBDE8F04100F061B80000FC01002093 -:1034F00000080140FB11002008B50122694600F0D8 -:1035000003F89DF8000008BD2DE9F0410E46111D9D -:10351000164B8DB219211970010A5970987000214B -:103520001446D970084603E01A18401C117180B285 -:10353000A042F9D300F03AF80D4F0022102138468E -:10354000FDF71EFE2A460B49084800F02DFC0949EC -:103550002246091D3046FCF7F0FF012210213846B3 -:10356000FDF70EFEBDE8F04100F020B8FC010020A0 -:1035700000080140FB11002010B51420FDF73CFEAF -:10358000094C002201212046FDF7FAFD3220FDF70B -:1035900033FE012211462046FDF7F2FDBDE8104042 -:1035A0001420FDF729BE0000000C014070B5054D48 -:1035B0004FF4807421462846FDF746FF0128F9D0D4 -:1035C00070BD0000000C014070B50F481A23941C18 -:1035D00000F8013B002300F8013BFCF7AEFFFFF7CA -:1035E000E5FF0A4D002210212846FDF7C9FD2146BE -:1035F000054800F0CDFB012210212846FDF7C0FD53 -:10360000BDE87040FFF7D2BFFC0100200008014078 -:103610002DE9F0410546501C1446884686B2FFF756 -:10362000C5FF0F4F002210213846FDF7A9FD0D48B8 -:103630002246414600F8015BFCF77FFF314609480E -:1036400000F0A6FB012210213846FDF799FD842DDC -:1036500003D0BDE8F041FFF7A9BFBDE8F08100004D -:1036600000080140FC01002013B5012201A900F06F -:1036700001F81CBD70B50346D01C84B20F48182554 -:1036800000F8015B1D0A00F8015B00F8013BFCF744 -:1036900054FFFFF78BFF0A4D002210212846FDF74B -:1036A0006FFD2146054800F073FB012210212846DA -:1036B000FDF766FDBDE87040FFF778BFFC01002014 -:1036C000000801400249C86001F10800FFF796BEFA -:1036D0003C0000200348C17811B1012101717047FD -:1036E00000F002B83C00002070B5514C2078002852 -:1036F00072D0E07830B1207900286DD072B6002009 -:10370000207162B66678FFF7D3FC05464FF6FF706E -:10371000FFF768FC2EB1012E40D0032E01D0042EFD -:103720005AD1207804286FD0052855D1A80714D580 -:10373000680605D5E06880B1816971B1022006E0B4 -:103740002807E06805D540B1816931B1012088477B -:1037500003E010B1406800B18047680704D5E06815 -:1037600010B1806800B18047280705D5E06818B11E -:10377000816909B1012044E0680458D5E068002857 -:1037800055D0406905E0680451D5E06800284ED066 -:10379000006900284BD0BDE870400047207804281D -:1037A00032D005280DD0062841D1E804E4D5A8047C -:1037B000E06833D500283AD0C169002937D001200C -:1037C00032E0A8070DD56806E06806D548B18169E2 -:1037D00039B10220884704E029E010B1406800B107 -:1037E0008047E80604D5E06810B1C06800B18047A2 -:1037F000A806C1D5E0680028BED081690029BBD0E9 -:1038000000208847B8E7FFE7E807BCD0E068002859 -:10381000B9D000680028B6D08047B4E7002806D0A9 -:10382000C169002903D00020BDE87040084770BD81 -:103830003C00002010B5144600F080F92046BDE899 -:10384000104000F067BA01B5012269469E20FFF7DB -:10385000DFFE08BD08B52138010A8DF800108DF88B -:103860000100022269469820FFF7D2FE08BD10B57C -:103870000446010E40F6CF10FFF7F6FEC4F30741F1 -:103880004FF41D60FFF7F0FEC4F3072140F6D1109E -:10389000FFF7EAFEE1B2BDE8104040F6D210FFF7B4 -:1038A000E3BE00000148FFF7E2BF0000D6BE898EEC -:1038B00008B502228DF800008DF8011069468F20AE -:1038C000FFF7A6FE08BD000010B500221146C52076 -:1038D000FFF79EFE01490620087010BD3C00002045 -:1038E00001B5012269468820FFF792FE01490620B2 -:1038F000087008BD3C00002008B5010A8DF80010D2 -:103900008DF801000548407808B1032805D102224E -:10391000694640F6C610FFF7ADFE08BD3C0000202A -:1039200008B5010A8DF800108DF8010005484078AF -:1039300008B1032805D10222694640F6C810FFF7F6 -:1039400099FE08BD3C0000201CB5040A8DF800401B -:103950008DF80100080A8DF80200100A8DF80400A5 -:103960008DF80520180A8DF806008DF803108DF8E3 -:103970000730082269468D20FFF74AFE1CBD000073 -:1039800010B500221146C120FFF742FE0149032075 -:10399000087010BD3C00002001490020C87070472D -:1039A0003C00002001B5012269469B20FFF730FE54 -:1039B00008BD000038B5234D044600786978884278 -:1039C00001D000F0ADF8207803281DD003DC38B119 -:1039D000012822D10CE0042825D00F281DD12AE08F -:1039E00060788DF80000A0788DF80100E07812E092 -:1039F00020798DF8000060798DF80100A0798DF8AC -:103A000002006079A87008E0E0798DF80000207A63 -:103A10008DF80100607A8DF80200032269468B2040 -:103A2000FFF7F6FD38BDA07A8DF80000E07A8DF83A -:103A30000100207BEFE700208DF800008DF80100E9 -:103A4000E9E700003C0000201CB53449044600783A -:103A50004978884201D000F063F8217800200329DA -:103A600035D003DC39B101292BD118E0042942D02B -:103A70000F2926D14CE060788DF80000A0788DF8F1 -:103A80000100E0788DF8020020798DF8030060795C -:103A90008DF80400A0798DF80500E0790FE0217A17 -:103AA0008DF80010617A8DF80110A17A8DF802105E -:103AB000E17A8DF80310217B8DF804102BE08DF84E -:103AC0000600072269468C20FFF7A2FD1CBD607B23 -:103AD0008DF80000A07B8DF80100E07B8DF80200DE -:103AE000207C8DF80300607C8DF80400A07C8DF8AC -:103AF0000500E07CE3E7217D8DF80010617D8DF805 -:103B00000110A17D8DF80210E17D8DF8031000E019 -:103B100000908DF804008DF80500D0E73C000020EF -:103B200001B505499DF800000122487069468A20C8 -:103B3000FFF76EFD08BD00003C0000200A4601466C -:103B40000020FFF741BD000001490120C870704707 -:103B50003C00002070B5074D002400BF05EB840039 -:103B6000817835F82400FFF77FFD641C24B2002C17 -:103B7000F4D070BD724B000801B501226946962051 -:103B8000FFF746FD08BD000008B500F0C1FE0022A9 -:103B9000094B00F021FD00F077FE010C8DF80010BC -:103BA000010A8DF801108DF8020003226946862073 -:103BB000FFF72EFD08BD0000A8CB684008B58DF8C2 -:103BC0000000000C010A8DF801108DF802004FF67C -:103BD000FF70FFF707FA032269468220FFF718FDFE -:103BE00001490520087008BD3C0000201CB58DF877 -:103BF0000000080A8DF801008DF80210100A8DF8F7 -:103C000003008DF80420052269469420FFF700FD8B -:103C10000149052008701CBD3C000020002211460F -:103C2000D520FFF7F5BC0000C107090FC0F3400223 -:103C300041EA8201C0F3800208B541EA4201C0F3C3 -:103C4000C00001438DF800100449002001220870D3 -:103C500069468420FFF7DCFC08BD00003C00002022 -:103C600001B5012269468020FFF7D2FC9DF80010C3 -:103C7000034811B10221017008BD0121FBE70000DA -:103C80003C0000200346194810B5427832B140F696 -:103C9000CF10032A13D0042A22D11EE00522012BC3 -:103CA00004D0022B05D0032B1AD105E040F6CE102C -:103CB00018E040F6D31015E040F6D81012E00422C8 -:103CC000012B0FD0022B02D0032B09D102E040F6CA -:103CD000D41007E040F6D91004E00422012B01D0F3 -:103CE000012010BDFFF7C6FC002010BD3C000020E5 -:103CF00070B5044640F6CD152846FFF7FDFB00F0F1 -:103D0000F00104F00F0001432846BDE87040FFF7C2 -:103D1000ABBC000008B58DF80000000C010A8DF85E -:103D200001108DF802004FF6FF70FFF75BF90322D8 -:103D300069468320FFF76CFC01490420087008BD28 -:103D40003C00002000221146D220FFF761BC002277 -:103D50001146D120FFF75CBC08B512308DF8000089 -:103D60008DF80110022269468E20FFF751FC08BD34 -:103D70000649497819B1032901D0042904D1014623 -:103D800040F6C510FFF770BC704700003C000020F3 -:103D9000044A0123537013780A4601460020FDF7B8 -:103DA0005DB900004C00002038B5064B01245C7062 -:103DB0001B78009313460A4601460020FDF762F97E -:103DC00038BD00004C00002010B5064A022100203A -:103DD000FDF736F90021BDE81040034A0846FDF71B -:103DE0002FB90000CD450008C1450008FDF774BBA0 -:103DF00010B590B028216846FCF706FC14210AA8EB -:103E0000FCF702FC01210804CDE9001042000292F7 -:103E100002240491CDE907404FF4E0100990684670 -:103E2000FDF7D2FC08B172B6FEE70F20CDE90A0417 -:103E300000204FF48061CDE90C010E9002210AA808 -:103E4000FDF7E2FB002801D072B6FEE710B010BD0E -:103E500070470000F0B50268194B1A4C1A4D4FF02C -:103E60008047984205D0B84203D0A04201D0A84272 -:103E700003D122F070064A683243984205D0B84216 -:103E800003D0A04201D0A84203D122F44074CA68F2 -:103E900022434C6922F08002224302608A68C26297 -:103EA0000A688262984201D1096901630121416176 -:103EB0000169C90703D0016921F001010161F0BD69 -:103EC000002C0140000400400008004010B5846848 -:103ED00042EA032224F47F440A432243826010BD55 -:103EE000826822F070020A4342F007018160704745 -:103EF00030B5036A026A22F00102026242688469F4 -:103F000024F073050C682C4323F002058B682B43C7 -:103F10000A4DA8420BD123F00805CB6822F4407269 -:103F20002B434D6923F0040315438A692A434260F9 -:103F3000846149684163036230BD0000002C014088 -:103F400030B5026A036A23F0100303624368846990 -:103F50000D6824F4E64444EA05248D6822F020022A -:103F600042EA05120B4DA8420ED1CD6822F0800224 -:103F700042EA05124D6923F4406343EA85038D69E3 -:103F800022F0400243EA850343608461496881630B -:103F9000026230BD002C014030B5036A026A22F48F -:103FA000807202624268C46923F4007324F07305CE -:103FB0000C682C438D6843EA05230C4DA8420ED1B2 -:103FC000CD6823F4006343EA05234D6922F440528F -:103FD00042EA05128D6923F4806342EA05124260C9 -:103FE000C4614968C163036230BD0000002C014018 -:103FF00030B5046A026A22F4805202624268C369E0 -:104000000D6823F4E64343EA05238D6824F4005445 -:1040100044EA0534064DA84204D14D6922F4804299 -:1040200042EA85124260C36149680164046230BD9E -:10403000002C014010B5036A046A24F001040462F4 -:10404000846924F0F00444EA021423F00A020A43CB -:104050008461026210BD10B5036A046A24F0100482 -:104060000462846923F0A00324F4704444EA023219 -:1040700043EA01118261016210BD01680C3151E80F -:10408000002F22F4907241E80023002BF5D1016843 -:10409000143151E8002F22F0010241E80023002BE7 -:1040A000F5D1016B012909D101680C3151E8002FCC -:1040B00022F0100241E80023002BF5D1202180F8E6 -:1040C000421000210163704770B504460068016921 -:1040D000E26821F44051114301612169A06808435D -:1040E000616908432168CA6841F20C639A4302433C -:1040F000CA6020684169A26921F44071114341619D -:104100001E492068884202D1FDF724FB01E0FDF73B -:1041100011FB00EBC00101EB00126068642180001C -:10412000B2FBF0F3B3FBF1F36FF018067343B2FB8D -:10413000F0F5B2FBF0F605EB8305322303EB051532 -:10414000B5FBF1F5B6FBF1F605F0F00505EB06154C -:10415000B2FBF0F6B2FBF0F0B0FBF1F06FF018023A -:10416000504306EB800003EB0010B0FBF1F0216838 -:1041700000F00F002844886070BD00000038014046 -:104180002DE9F843984617460D460446089E24E05C -:10419000701C22D0FDF762F9A0EB0800B0421AD8DB -:1041A000CEB12068C168490717D5802D15D0402DA4 -:1041B00013D00168C94309070FD40168002540687E -:1041C00000902046FFF759FF0820606484F84050B3 -:1041D0000120BDE8F8830320FBE72068006835EA8A -:1041E000000004D00020B842D2D00020F1E7012026 -:1041F000F9E7FEE70907090E002804DB00F1E020DB -:1042000080F80014704700F00F0000F1E02080F803 -:10421000141D704730380A2801D201207047002051 -:104220007047000013B54FF0FF3301226946024882 -:10423000FEF7C6FA00981CBDB40100208CB0FDF753 -:1042400053F9FFF7D5FDFEF733FBFEF7B1FBFEF7A1 -:10425000D3FBFEF7F3FBFEF753FCFEF76DFCFDF717 -:1042600079FA0546FDF766FA0446FDF783FA01463A -:104270002B4622467FA0FBF7B9FFFEF7F2FA4FF478 -:10428000FA70FCF7B9FF844C844821688847834F53 -:104290000C3FB81D3978FCF795F9FFF76DF9804EA2 -:1042A0004FF4807529463046FDF7CEF80028F9D145 -:1042B0007CA000250068DFF8F081CDE908052A46DA -:1042C000102146464046FDF7C4F84FF06409032329 -:1042D00009AA08A97548CDF80090FDF7C2FD012292 -:1042E00010213046FDF7B5F89DF822309DF82120C9 -:1042F0009DF820106EA0FBF779FF9DF826309DF801 -:1043000025209DF824106FA0FBF770FF01268DF883 -:104310002860E36932460AA9002098479DF82810D2 -:104320006DA0FBF763FF75A17BA0FBF75FFF206B20 -:104330008047014685A0FBF759FF8EA0FBF756FF8B -:10434000C0208DF808000A208DF8090007208DF89C -:104350000A0091488DF804600C21067001724572C4 -:10436000052181722021C17240210173A16B0020BF -:104370008847E16B9DF804008847216C01A88847B5 -:10438000616C85488847A16C844888470021E26CAD -:10439000084690470021226D0D209047A16B002018 -:1043A00088479DF8080010F00F0F11D10111491F27 -:1043B00040F6251008290BD2DFE801F004040707B6 -:1043C000595959591E21A26901E0A2693721904724 -:1043D000FFF7E2FA7D7079880023666D1A46084679 -:1043E000B0476F48E16D006888470122E36907A97B -:1043F000104698479DF81C106AA0FBF7F7FE46464A -:104400004FEA0907FFF770F96420FCF7F5FED4F8CE -:10441000A8008047010002D065A0FBF7E7FE21A0BD -:1044200000220068CDE9050510213046FDF711F89E -:10443000032306AA05A91D480097FDF712FD0122D6 -:1044400010213046FDF705F89DF816309DF815202F -:104450009DF8141016A0FBF7C9FE9DF81A309DF8C0 -:1044600019209DF8181017A0FBF7C0FECAE73221EB -:10447000A269ACE7434C4B3A205359533D256C6439 -:1044800020415042313D256C6420415042323D254F -:104490006C640D0A00000000784B00080C0000203E -:1044A000000C01404800000000080140740000209A -:1044B00074783A2025303258202530325820253063 -:1044C00032580A0072783A2025303258202530328E -:1044D0005820253032580A0052656730303D256437 -:1044E0002020286578706563742030783430206F20 -:1044F000722030784646290D0A0000004669726D28 -:10450000776172652056657273696F6E3A20313734 -:1045100030393139410000000A0A0D2020202020C6 -:104520005358313238312050696E6720506F6E67B2 -:104530002044656D6F204170706C69636174696FB0 -:104540006E2E2025730A0A0D000000000A0A0D20B5 -:1045500020202020526164696F206669726D776146 -:1045600072652076657273696F6E20307825780ADF -:104570000A0D00000A50696E6720506F6E67207246 -:10458000756E6E696E6720696E204C4F5241206DCA -:104590006F64650A0D0000005C00002080D29990D5 -:1045A000344B00085374617475733D25640A000030 -:1045B0004952513D3078253034580D0A0000000032 -:1045C00001490020487070474C000020014900203C -:1045D000487070474C0000202DE9C04130B4DFF82E -:1045E000A0C23CEA111418BF3CEA131400F0EC809E -:1045F00081EA03051CEA111444EAD57418BF1CEAC9 -:10460000131500F0C780A4EB05044FF0004545EA00 -:10461000C12145EAC32341EA505143EA525304F110 -:104620007F74994204F500344FEAC0204FEAC22259 -:1046300008BF904200F09C804FEA13650FF24016CD -:10464000765D4FEA134506FB05F7C7F1807706FB59 -:1046500007F74FEAD737A7FB03687642C8F58038DB -:10466000A7FB06CE38BFA8F1010807FB08E64FF00C -:10467000000EA6FB028CE6FB03CEDCF1000CCEF1B3 -:10468000004E38BFAEF1010EA6FB0C584FF00007EC -:104690004FF00005E6FB0E87A1FB08C6A0FB07CE86 -:1046A00016EB0E0645F10005E1FB076515F1E04E3E -:1046B0007EBFA4F580345FEA46066D4116F180079F -:1046C00045F100054FEA17274FEA066647EA0567F6 -:1046D000A6F1DE46B6F1805F4FEA15251FD93846B0 -:1046E00024F0010C05EBC471BCF1FE6F01EB0C1161 -:1046F00002D8F0BCBDE8008124425CBF01F5801EF9 -:104700009EEAC47F02D4F0BCBDE80081244238D4C4 -:10471000F0BCA1F1C041BDE8004100F005BA4FEA8C -:10472000D22242EA43524FEAD323A7FB02864FEA42 -:10473000D02040EA415007FB03661EEA0E0F4FEA05 -:10474000D12105FB026658BFA6EB0056B6EB00561A -:104750004FEA520E4EEAC37E18EB0E0E56EB530E86 -:10476000BDD518EB02085E417F1C55F10005B6E788 -:104770004FF480154FF000074FF000064FF000088F -:10478000ADE7F0BC4FF0000001F1C04101F0004185 -:10479000BDE8008111EA0C1F0CEA131500D00CE0F3 -:1047A00013EA0C1F00F025804FF00000F0BC81EAF6 -:1047B000030101F00041BDE80081F0BCBDE800410B -:1047C00081EA030100F0B0B9F0BCBDE8004170B56A -:1047D00000F05CF9097EFC3E00F007B881EA0301B5 -:1047E0004FF0000001F00041704781EA030100F042 -:1047F0009BB9F0BCBDE800414FF000002149704773 -:10480000FFFDFBF9F7F5F4F2F0EEEDEBE9E8E6E495 -:10481000E3E1E0DEDDDBDAD8D7D5D4D3D1D0CFCD1C -:10482000CCCBCAC8C7C6C5C4C2C1C0BFBEBDBCBB55 -:10483000BAB9B8B7B6B5B4B3B2B1B0AFAEADACAB50 -:10484000AAA9A8A8A7A6A5A4A3A3A2A1A09F9F9E2A -:104850009D9C9C9B9A9999989797969595949393DC -:10486000929191908F8F8E8E8D8C8C8B8B8A898973 -:1048700088888787868585848483838282818180F6 -:104880000000FF070000F87F4FEA1153A3F5806393 -:10489000D3F11E03A8BFD3F1200C08DB4FF0004278 -:1048A00042EAC12252EA505232FA03F070470942FA -:1048B0000BD4102BC4BF0020704703F5787CBCF1EB -:1048C000FF3F05D04FF0FF3070474FF000007047BA -:1048D00070B500F0DBF800BF4992248000207047DB -:1048E000F0E710F0004248BF4042B0FA80F310FAFF -:1048F00003F10AD0C3F11D0303F580634FEA415071 -:1049000002EB035202EBD12170474FF000007047D9 -:10491000B0FA80F310FA03F10AD0C3F11D0303F5D6 -:1049200080634FEA41504FEA035202EBD1217047B6 -:104930004FF0000070470000DFF848C170B51CEA76 -:10494000111E1EBF1CEA13159EEA0C0F95EA0C0FF0 -:1049500000F06F8081EA030423EA4C134EEAD47E10 -:1049600021EA4C1141F4801143F48013AE44A1FBC1 -:10497000024CA0FB0365AEF17F7E361955EB0C05AA -:10498000A1FB034C4CF10003A0FB021C16EB0C0630 -:10499000654153F10003094218BF46F0010613F4C4 -:1049A000007F0BD14FEA03314FEA0530340341EA6F -:1049B000155140EA16506FF003020AE04FEAC32196 -:1049C0004FEAC520F40241EA555140EA56506FF0D3 -:1049D000020202EB2E4201EB025585EACE710AD0AB -:1049E0005FEA440C18BF24F0004450F1000041F18C -:1049F000000120EAD47040F2FE7C624500D270BD16 -:104A0000A84214BF4FF080444FF04044002E08BF2E -:104A10000024BEF1806FA8BFA1F1C041BDE8704085 -:104A200080F282804FF0000001F1C04101F00041AE -:104A300070479EEA0C0F0CEA131518BF95EA0C0F8D -:104A400006D04FF0000081EA030E0EF0004170BD69 -:104A500000F01CF88900013E00F007B800F009B82A -:104A60004FEA430C5FEA5C5C08D081EA030100F086 -:104A70005BB84FEA410C5FEA5C5CF6D14FF0000096 -:104A8000014970470000FF070000F87F0EF1020E99 -:104A90002EF0030E5EF8046B364205D4012A43EB78 -:104AA000030515F5001F12D8012841EB010C1CF578 -:104AB000001F0CD80ED14FEAD17C15F5001F0CEB6E -:104AC0004C0C0CF1020C08BF4CEBD37C04E04FF013 -:104AD000080C01E04FEAD37C0CEB4C0526FA05F6F6 -:104AE00006F00706B6F1040C06D20EEB860CBDE804 -:104AF00070404CF0010C6047DFE80CF0090B02023B -:104B00004FF000414FF00000A1F5002170BD1946A3 -:104B10001046012851EB010418BFD4F5001484BFDE -:104B2000002001F0004170BD0808A0F500114FEA17 -:104B3000310170470200FFFF02001027020010271A -:104B40000200FFFF0200E80301020203040506075A -:104B500008090A0B0C0D0E0F1010000000000000D9 -:104B6000000001020304060708090000000001021A -:104B70000304000000000000C53600087935000875 -:104B8000C1330008113600088D340008753600085E -:104B90006936000809350008F9340008C9350008ED -:104BA00021340008D9330008FD2F0008793B0008A4 -:104BB000613C0008213B0008B5390008493A00086B -:104BC000893B0008B1380008593D00084939000800 -:104BD000853C0008BD3B00082D330008353800082F -:104BE000493B000899390008553B0008013100088D -:104BF000293C000881390008153D0008ED3B0008FC -:104C0000C93800084F3D0008453D00082133000821 -:104C1000E1380008793300080D31000855330008E9 -:104C2000B1300008E52F0008A72F00081D3C000840 -:104C30005538000847380008A53900083D3B0008F2 -:104C4000F13C0008213900086F380008A538000839 -:104C5000F9380008713D000819300008303132334E -:104C600034353637383941424344454640305800A0 -:104C700030313233343536373839616263646566D2 -:104C8000403078000400000800000000000000022E -:104C900000010000103A7474003A7474003A74749D -:104CA00000000000C44C0008000000205C00000070 -:104CB00028010008204D00085C0000209C2900000D -:104CC000440100080500024001400000000000000F -:104CD000392C0008752B00080000000000000000BF -:104CE0008D2C0008F92B0008C12B000800000000E3 -:104CF00001000000100000000000000000127A0017 -:104D00000000000000000000D53600080000000090 -:104D10000000000000000000000000000000000093 +:10000000A8060020050100084F1C0008391600084A +:100010004D1C0008A90400089D1F000800000000F6 +:10002000000000000000000000000000531C000859 +:10003000D104000800000000511C0008551C0008F5 +:100040001F0100081F0100081F0100081F01000810 +:100050001F0100081F0100081F0100081F01000800 +:100060001F0100081F0100081F0100081F010008F0 +:10007000AD040008B90400081F010008C504000809 +:100080001F0100081F0100081F0100081F010008D0 +:100090001F0100081F0100081F010008DB04000801 +:1000A0001F0100081F0100081F0100081F010008B0 +:1000B0001F0100081F0100081F0100081F010008A0 +:1000C0001F0100081F0100081F0100081F01000890 +:1000D0001F0100081F0100081F0100081F01000880 +:1000E000D30400081F0100081F010008DFF810D02A +:1000F00000F0C8F900480047DD1F0008AFF300809A +:10010000A80600200648804706480047FEE7FEE7AD +:10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7 +:10012000B91C0008ED000008202A04DB203A21FA5F +:1001300002F00021704721FA02F3D040C2F1200200 +:100140009140084319467047D2B201E000F8012BF4 +:10015000491EFBD270470022F6E710B513460A4647 +:1001600004461946FFF7F0FF204610BD2DE9FE4F6B +:10017000804681EA0300C00F0C46009021F0004148 +:1001800023F00045B8EB0200A94105D240462146C4 +:1001900090461C460B46024623F00040104347D0D1 +:1001A000270DC7F30A00C3F30A510290401A0190C9 +:1001B00040286BDAC3F3130040F4801B009892468A +:1001C00020B10023D2EB030A63EB0B0B01985946D5 +:1001D000C0F14002504600F09FF806460D465046DA +:1001E0005946019A00F0A7F810EB0800614100247D +:1001F00087EA115284EAE7731A4340D0009A62B347 +:10020000019A012A4FEA075215DC001B61EB02013B +:100210004FF0004202EA0752CDE90042001C41F5CE +:10022000801132462B4600F0DEF803B0BDE8F08FB7 +:1002300040462146F9E7001B61EB0201001C41F535 +:10024000801300185B412018A2F5001747EB03014B +:1002500040EAD570B6196D4111E06D084FEA3606D7 +:1002600045EAC0754FEA0752001B61EB0201001C12 +:1002700041F5801149084FEA3000001951413246DA +:100280002B4603B0BDE8F04F00F09EB80098012265 +:1002900040000023D0EB020263EBE073009821469C +:1002A0004FEAE074B8EB000061EB0401E9E783F08A +:1002B00000435BE781F0004158E700F0004230F076 +:1002C00000400AD0C10D01F56071C0F3160042EA8A +:1002D0000151C20840071143704700200146704792 +:1002E00001F0004330B421F0004150EA010206D091 +:1002F0000A0DA2F56072C1F31301002A02DC30BCC2 +:1003000000207047440F44EAC104C100E01830BC2B +:1003100000EBC25000F021B8202A04DB203A00FA9A +:1003200002F1002070479140C2F1200320FA03F34C +:10033000194390407047202A06DBCB17203A41FA38 +:1003400002F043EAE07306E041FA02F3D040C2F162 +:10035000200291400843194670470029A8BF704702 +:10036000401C490008BF20F00100704710B4B0FAEB +:1003700080FC00FA0CF050EA010404BF10BC704786 +:1003800049B1CCF1200421FA04F411FA0CF118BFA0 +:10039000012121430843A3EB0C01CB1D4FEA00616F +:1003A0004FEA102042BF002010BC704700EBC35042 +:1003B00010440029A4BF10BC7047401C490008BF6E +:1003C00020F0010010BC704710B5141E73F100043A +:1003D00008DA401C41F1000192185B411A4301D137 +:1003E00020F0010010BD2DE9F04D92469B4611B161 +:1003F000B1FA81F202E0B0FA80F220329046FFF7C3 +:100400008BFF04460F4640EA0A0041EA0B015346BF +:100410005A46084313D0114653EA010019D0C8F1D7 +:1004200040025046FFF780FE05460E4650465946AC +:100430004246FFF771FF084305D0012004E0204643 +:100440003946BDE8F08D0020054346EAE0762C43AE +:1004500037430A986305E40AA0EB08000022FD0A6E +:1004600044EA47540A3002D500200146E9E7010575 +:1004700010196941DDE9084500196941BDE8F04DF1 +:10048000A2E70000064C074D06E0E06840F00103DB +:1004900094E8070098471034AC42F6D3FFF72AFEE1 +:1004A0006C2000088C200008FEE70000014800F0E6 +:1004B00023B8000008010020014800F01DB800002A +:1004C000C4000020014800F017B800004C010020D3 +:1004D00070474FF4805000F00FB910B5202000F0A5 +:1004E0000BF9402000F008F9BDE81040802000F032 +:1004F00003B972B6FEE700002DE9F05FC16B0C682E +:1005000001680B68D0F840C0042202FA0CF2494D91 +:10051000DFF824A1494E4A4FDFF828B1DFF828E17F +:1005200022422CD05A072AD50A68920603D40A68B8 +:1005300022F004020A600168A94201D1042219E0F4 +:10054000514501D1402215E0B14202D14FF4806201 +:1005500010E0B94202D14FF480420BE0594502D17C +:100560004FF4802206E0714502D14FF4800201E091 +:100570004FF080622F4908394A60C16A3BE04FF072 +:10058000020808FA0CF818EA040F4FF000094FF0BF +:10059000010235D05FEA837832D50B689B0605D41B +:1005A0000B6823F00A030B6080F821200168A94240 +:1005B00001D1022219E0514501D1202215E0B142BA +:1005C00002D14FF4007210E0B94202D14FF4005250 +:1005D0000BE0594502D14FF4003206E0714502D1DB +:1005E0004FF4001201E04FF00072124908394A60DE +:1005F00080F82090816A00291AD0BDE8F05F084792 +:10060000082505FA0CF5254212D01B0710D50B68FA +:1006100023F00E030B6090F84010C36B02FA01F157 +:100620005960826380F8212080F82090016BE2E716 +:10063000BDE8F09F080002401C000240300002406C +:1006400044000240580002406C00024030B528B31C +:1006500008C8134914221944B1FBF2F18900C1639F +:1006600010498163022141771A6843F6F0718A4389 +:10067000D0E900142143D0E902452C432143046909 +:1006800021434469214384692143114319600021B6 +:100690004163012242770177084630BD012030BD19 +:1006A000F8FFFDBF0000024070B5044600F026F9D7 +:1006B0000546601C02D004480078044400F01EF98E +:1006C000401BA042FAD370BD040000202DE9F04188 +:1006D0000024084F0646012505FA04F0304203D0F5 +:1006E00057F8240000B18047641CE4B2102CF3D307 +:1006F000BDE8F08168020020044910B50A68024292 +:1007000002D00860FFF7E2FF10BD000014040140B2 +:100710002DE9F84FDFF8B8910024A9F1040B234626 +:100720000F2709F1040AABF1040EC9E00125A54029 +:100730002A40AA427DD1674ED1F804C0ACEB06082E +:10074000B44532D014DCBCF1030F3AD009DCBCF163 +:10075000000F2AD0BCF1010F1CD0BCF1020F31D127 +:100760001DE0BCF1110F17D0BCF1120F2AD119E016 +:10077000B8F5881F19D006DCB8F5803F15D0B8F55C +:10078000801F1FD111E0B8F5001F0ED0B8F5041F6F +:1007900018D10AE0CB6815E0CB681B1D12E0CB68CE +:1007A00008330FE0CB680C330CE08B682BB1012BC6 +:1007B0004FF0080303D0456104E0042302E0056123 +:1007C00000E00023FF2A01D8064601E000F10406FC +:1007D0004FEA840501D9A5F12005D6F8008007FA73 +:1007E00005FC28EA0C0803FA05F548EA0508C6F8EE +:1007F00000804D68ED0062D5374DAE6946F00106C8 +:10080000AE61AD6924F0030605F001050095334D96 +:1008100006EB050CDCF80850A607360F07FA06F8B9 +:1008200025EA0805DFF8B880404503D14FF00008FD +:1008300017E044E0DFF8AC80404502D14FF00108FA +:100840000FE0DFF8A480404502D14FF0020808E035 +:10085000DFF89880404502D14FF0030801E04FF0E7 +:10086000040808FA06F848EA0508CCF808804D683C +:10087000D9F80060ED024D4601D5164300E09643DD +:100880002E604D68DAF80060AD02554601D516437A +:1008900000E096432E604D68DBF80060AD035D46D6 +:1008A00001D5164300E096432E604D68DEF80060E7 +:1008B000ED03754601D5164300E096432E60641C97 +:1008C0000D682A46E5407FF431AFBDE8F88F00009F +:1008D0000804014000001110001002400000014017 +:1008E00000080140000C01400010014000140140CC +:1008F0000AB1016170470904FBE700000148806804 +:10090000704700000400002070B5040004D094F883 +:100910004100002510B106E0012070BD84F8405070 +:10092000204600F035FE242084F841002068C1688C +:1009300021F40051C160204601F0D4FA2068016919 +:1009400021F4904101612068416921F02201416157 +:100950002068416941F0080141612068C16841F4A3 +:100960000051C1606564202084F8410084F8420091 +:100970006563002070BD0000024881680278114460 +:100980008160704704000020074810B5016841F0FD +:1009900010010160032000F075F80F2000F006F848 +:1009A00000F024F8002010BD0020024070B50D4D6D +:1009B00004464FF47A712878B1FBF0F00A490968CF +:1009C000B1FBF0F000F0D6FB48B9102C07D20022A2 +:1009D0002146501E00F036F800206C6070BD0120EA +:1009E00070BD000004000020100000200C4808B575 +:1009F000816941F001018161816901F0010100918A +:100A0000C16941F08051C161C06900F0805000901F +:100A10000448416821F0E06141F00071416008BD87 +:100A20000010024000000140002809DB00F01F0216 +:100A3000012191404009800000F1E020C0F8001140 +:100A400070470000F0B40E4B1B680C46C3F3022342 +:100A5000C3F10705042D00D90425191D072901D26A +:100A6000002300E0DB1E012606FA05F1491E2140A5 +:100A700099409E40761E16403143F0BC01F08FBA7B +:100A80000CED00E0064900F0070208684FF6FF038E +:100A9000184040EA0220034A1043086070470000F3 +:100AA0000CED00E00000FA052DE9F0470F460500C7 +:100AB00061D0434E306800F00700B84209D2306878 +:100AC00020F0070038433060306800F00700B8427B +:100AD00051D128683B4C810712D5400703D5606887 +:100AE00040F4E06060602878000703D5606840F457 +:100AF000605060606068A96820F0F00008436060A2 +:100B00002878C00728D06868012810D021680228FA +:100B100010D0890700292EDA616821F00301014312 +:100B20006160FFF7EBFE804641F288390DE02168F5 +:100B30008903EFE78901EDE7FFF7E0FEA0EB08018D +:100B4000494502D90320BDE8F0876068696800F074 +:100B50000C00B0EB810FEFD1306800F00700B84215 +:100B60000BD9306820F0070038433060306800F05F +:100B70000700B84201D00120E5E72878400705D5F5 +:100B80006068E96820F4E060084360602878000746 +:100B900006D56068296920F4605040EAC1006060B1 +:100BA00000F038F86168084AC1F30311515CC8408D +:100BB0000649086006480068FFF7F8FE0020C2E713 +:100BC00000200240001002405220000810000020C7 +:100BD000080000200448054900684968044AC1F338 +:100BE0000221515CC84070471000002000100240F4 +:100BF000622000080448054900684968044AC1F3B6 +:100C0000C221515CC8407047100000200010024013 +:100C1000622000080F4A516801F00C00042803D03C +:100C2000082803D00C4870470C4870470C48C1F3A3 +:100C30008343C903C05C0AD55168094AC1F34041E6 +:100C4000921E515C054A5043B0FBF1F070470549D4 +:100C5000484370470010024000127A000024F4005C +:100C60004220000800093D002DE9F84F040070D033 +:100C70002078C04DC00749D06868C0F381000128C2 +:100C800007D06868C0F38100022809D16868C003F2 +:100C900006D52868800339D560680028E7D035E09C +:100CA0006068B0F5803F0BD010B1B0F5A02F11D027 +:100CB000286820F480302860286820F4802002E032 +:100CC000286840F480302860606890B1FFF716FE15 +:100CD00006460AE0286840F480202860F0E700BF5C +:100CE000FFF70CFE801B642873D828688003F7D5B3 +:100CF0000CE0FFF703FE064605E000BFFFF7FEFD30 +:100D0000801B6428F0D828688003F7D420789A4E96 +:100D100080074FF001094FF0000839D5686810F0DE +:100D20000C0F07D06868C0F38100022809D16868F9 +:100D3000C00306D42868800714D52069012808D18B +:100D400010E02069B0B1C6F80090FFF7D7FD074664 +:100D500005E00AE1FFF7D2FDC01B0228C4D82868CD +:100D60008007F7D52868616920F0F80040EAC100E3 +:100D700028600DE0C6F80080FFF7C0FD074604E0DC +:100D8000FFF7BCFDC01B022823D828688007F7D4D2 +:100D9000207800072CD57948A169D9B1C0F8009016 +:100DA000FFF7ACFD074604E0FFF7A8FDC01B0228D3 +:100DB0000FD8686A8007F7D571484FF4FA51006878 +:100DC000B0FBF1F0009000BF0098411E0091FAD2F4 +:100DD0000EE080E0C0F80080FFF790FD074604E0D9 +:100DE000FFF78CFDC01B022875D8686A8007F7D40E +:100DF0002078400760D5E8690027C00008D4E8697A +:100E000040F08050E861E869012700F080500090D0 +:100E10005C480168C90513D40168834641F48071B8 +:100E20000160FFF76BFD824606E000BFFFF766FD3D +:100E3000A0EB0A0064284ED8DBF80000C005F5D509 +:100E4000E06801280AD008B1052813D0286A20F0EC +:100E500001002862286A20F0040002E0286A40F0BD +:100E600001002862E06841F2883B98B1FFF746FD37 +:100E700082460BE0286A40F004002862EEE700BFDB +:100E8000FFF73CFDA0EB0A0159455AD8286A8007B4 +:100E9000F6D50CE0FFF732FD824605E0FFF72EFDA8 +:100EA000A0EB0A0159454CD8286A8007F6D41FB137 +:100EB000E86920F08050E861E06988B36968C1F3AF +:100EC0008101022944D00228C6F8608004D0FFF7CF +:100ED00015FD044638E034E0FFF710FD074604E056 +:100EE000FFF70CFDC01B02282BD828688001F7D41F +:100EF000206AB0F5803F05D16868A16820F4003011 +:100F000008436860D4E908010843696821F4741152 +:100F100008436860C6F86090FFF7F0FC044606E0FE +:100F200025E000BFFFF7EAFC001B022809D828686B +:100F30008001F7D51BE000BFFFF7E0FC001B022893 +:100F400002D90320BDE8F88F28688001F4D40EE0B0 +:100F50000128F7D06868226A00F48031914204D1F8 +:100F6000616A00F47010884201D00120EAE7002095 +:100F7000E8E70000001002400000424280044242C4 +:100F8000100000200070004070B5040009D0606AB5 +:100F9000002540B125616561A56294F8510040B11A +:100FA0000CE0012070BD6068B0F5827FF4D0E5618F +:100FB000F2E784F85050204600F040F8022084F810 +:100FC00051002068016821F040010160A08821895A +:100FD00000F4827001F404410843A18901F4006126 +:100FE0000843217C01F002010843217D01F0010149 +:100FF0000843218B01F400710843217F01F038017F +:10100000084394F8201001F080010843218D01F479 +:101010000051084321680860A069042101EA1040DA +:10102000216848602068C16921F40061C16165657B +:10103000012084F85100002070BD00002DE9F0412E +:1010400086B0002400940194029403940646424D15 +:10105000036842480221032210274FF08008AB4268 +:1010600047D1836943F480538361836903F48053D8 +:101070000493836943F0040383618069384D00F071 +:1010800004000490A020CDE900010392694628469F +:10109000FFF73EFB4020CDE9000469462846029454 +:1010A000FFF736FB304D2F48C5E90007C5E9024878 +:1010B0002C616C61AC6147462846EC61FFF7C6FACB +:1010C00008B1FFF716FAB5646E62274D254844351E +:1010D0001438C5E90004C5E902472C616C61AC61B4 +:1010E0002846EC61FFF7B2FA08B1FFF702FAF5649F +:1010F0002EE01E4DAB422CD1C36943F48043C36143 +:10110000C36903F480430493836943F00803836154 +:101110008069039200F0080004904FF42040CDE96C +:10112000000169461248FFF7F3FA0F4D0D48883564 +:1011300028302860C5E90174C5E903846C61AC619D +:101140002846EC61FFF782FA08B1FFF7D2F9B564DF +:101150006E6206B0BDE8F081003001400010024030 +:101160000008014030000240C40000200038004068 +:10117000000C014010B5401EB0F1807F01D301206A +:1011800010BD4FF0E02460610F21601700F007FFF1 +:101190000020A06107202061002010BD10B590F84C +:1011A0003C20012A22D0012280F83C20CA688C68A9 +:1011B00022F4407222434C6822F4806222430C687D +:1011C00022F4006222430C6922F4805222434C69CB +:1011D00022F400522243C969002322F480420A43C8 +:1011E00001684A6480F83C30002010BD022010BD28 +:1011F00070B590F83C20012A26D0012480F83C40AC +:10120000022280F83D2003685A689D6822F070062B +:101210000A6832435A600D4B02689A4208D0B2F114 +:10122000804F05D00A4B9A4202D00A4B9A4204D111 +:10123000496825F080031943916080F83D40002102 +:1012400080F83C10084670BD022070BD002C0140A3 +:10125000000400400008004010B5040003D094F8DA +:101260003D0010B107E0012010BD002084F83C00D3 +:10127000204600F01FF8022084F83D00211D206860 +:1012800000F01CFD012084F8460084F83E0084F83C +:101290003F0084F8400084F8410084F8420084F85C +:1012A000430084F8440084F8450084F83D000020A1 +:1012B00010BD000008B500680649884208D10648FC +:1012C000816941F400618161806900F400600090EF +:1012D00008BD0000002C01400010024070B504461B +:1012E00090F83C000025012817D0012684F83C60C6 +:1012F000022084F83D002068826822F0770222F400 +:101300007F4282600868502838D00DDC20284FD0FA +:1013100005DC90B3102811D14AE0022070BD3028BE +:1013200046D040280AD13BE060282FD070280DD04D +:10133000B0F5805F03D0B0F5005F12D0012584F8CE +:101340003D60002084F83C00284670BDCB68D1E9A0 +:101350000121206800F0EEFC2068816841F07701EF +:1013600009E0CB68D1E90121206800F0E3FC2068A6 +:10137000816841F480418160E1E719E0CA68496809 +:10138000206800F08BFD5021206806E0CA6849689B +:10139000206800F094FD6021206800F0D5FCCEE7C5 +:1013A000CA684968206800F079FD40212068F4E7A8 +:1013B000226801461046F0E700B585B00021009193 +:1013C00001910291039100680B49884212D10B48A8 +:1013D000816941F0040181618069694600F004007F +:1013E00004904FF4006000900220019003900448A4 +:1013F000FFF78EF905B000BD002C0140001002403F +:101400000008014070B5044690F83C0000260D46E7 +:1014100001280FD0012084F83C006AB1042A1DD0B5 +:10142000082A2FD00C2A3FD00126002084F83C0047 +:10143000304670BD022070BD206800F08DFC206831 +:10144000816941F0080181612068816921F004010E +:101450008161206881692A69114311E0206800F0E8 +:10146000A3FC2068816941F4006181612068816981 +:1014700021F480618161206881692A6941EA022141 +:101480008161D2E7206800F0BBFC2068C16941F0AF +:101490000801C1612068C16921F00401C1612068AF +:1014A000C1692A69114311E0206800F0D5FC206869 +:1014B000C16941F40061C1612068C16921F48061A2 +:1014C000C1612068C1692A6941EA0221C161ACE7B2 +:1014D00010B5040003D094F83D0010B107E00120DE +:1014E00010BD002084F83C00204600F01EF80220C9 +:1014F00084F83D00211D206800F0E0FB012084F805 +:10150000460084F83E0084F83F0084F8400084F8E8 +:10151000410084F8420084F8430084F8440084F8D1 +:10152000450084F83D00002010BD704770B50400F0 +:1015300004D094F84100002510B106E0012070BDF0 +:1015400084F84050204600F023F8242084F841001D +:101550002068C16821F40051C160204600F0C2FC3F +:101560002068016921F4904101612068416921F0FE +:101570002A0141612068C16841F40051C16065647D +:10158000202084F8410084F842006563002070BD8B +:1015900030B585B000240094019402940394224D48 +:1015A0000368224903222248AB4216D18B6943F4D7 +:1015B00080438B618B6903F4804304938B6943F010 +:1015C00004038B618969039201F0040104914115C0 +:1015D000009112210191694621E0164DAB4220D1C4 +:1015E000CB6943F40033CB61CB6903F4003304933C +:1015F0008B6943F004038B618969039201F0040154 +:101600000491042100910221019169460546FFF7EA +:101610007FF80820CDE90004694628460294FFF7C8 +:1016200077F805B030BD00000038014000100240DE +:101630000008014000440040FEE72DE9F041074664 +:101640001C4615460E462A2000F01AF92837B8B273 +:1016500000F00CF92835A8B200F008F92B2000F0B2 +:101660000FF93536B0B200F001F93534A0B200F010 +:10167000FDF8BDE8F0412C2000F002B92DE9F0475B +:1016800080461F46581E83B21646501E82B20C4634 +:101690004046DDF82090FFF7D0FF0AE0454604E021 +:1016A000484600F0E3F86D1CADB2B542F8D3641CB7 +:1016B000A4B2BC42F2D3BDE8F087000070B56A4D19 +:1016C0004FF48044002221462846FFF711F9642098 +:1016D000FEF7EAFF012221462846FFF709F96420B8 +:1016E000FEF7E2FF002261112846FFF701F96420AE +:1016F000FEF7DAFF112000F0C3F87820FEF7D4FFE0 +:10170000362000F0BDF8702000F0D0F83A2000F04C +:10171000B7F8052000F0CAF8B22000F0B1F80C20AC +:1017200000F0C4F80C2000F0C1F8002000F0BEF872 +:10173000332000F0BBF8332000F0B8F8B72000F0F9 +:101740009FF8352000F0B2F8BB2000F099F819207E +:1017500000F0ACF8C02000F093F82C2000F0A6F8C0 +:10176000C22000F08DF8012000F0A0F8C32000F0A6 +:1017700087F8122000F09AF8C42000F081F82020A9 +:1017800000F094F8C62000F07BF80F2000F08EF8EF +:10179000D02000F075F8A42000F088F8A12000F017 +:1017A00085F8E02000F06CF8D02000F07FF80420ED +:1017B00000F07CF80D2000F079F8112000F076F8A8 +:1017C000132000F073F82B2000F070F83F2000F099 +:1017D0006DF8542000F06AF84C2000F067F81820EB +:1017E00000F064F80D2000F061F80B2000F05EF8C6 +:1017F0001F2000F05BF8232000F058F8E12000F0F3 +:101800003FF8D02000F052F8042000F04FF80C20F0 +:1018100000F04CF8112000F049F8132000F046F8D1 +:101820002C2000F043F83F2000F040F8442000F066 +:101830003DF8512000F03AF82F2000F037F81F2033 +:1018400000F034F81F2000F031F8202000F02EF8CE +:10185000232000F02BF8212000F012F8BDE87040A2 +:10186000292000F00DB80000000C014010B504461E +:10187000000A00F01BF8E0B2BDE8104000F016B816 +:1018800070B5094D06464FF4807400222146284663 +:10189000FFF72EF8304600F009F821462846BDE84B +:1018A00070400122FFF724B8000801402DE9F047FD +:1018B000164E05464FF48059002249463046FFF740 +:1018C00017F800244FF400487714002239463046B8 +:1018D000FFF70EF8280601D5012200E0002241465C +:1018E0003046FFF705F8012239463046FFF700F889 +:1018F0006806641C050EE4B2082CE6D3494630465F +:10190000BDE8F0470122FEF7F3BF0000000C0140E4 +:10191000114808B5416941F0010141614069002267 +:1019200000F00100009011460C20FFF78BF80C200E +:10193000FFF77AF8002211460D20FFF783F80D20FB +:10194000FFF772F8002211460F20FFF77BF8BDE881 +:1019500008400F20FFF768B8001002402DE9F0435F +:1019600085B0002643480096019602960396816949 +:1019700041F020018161816901F0200104918169B8 +:1019800041F004018161816901F0040104918169E0 +:1019900041F0080181618069DFF8DC8000F0080017 +:1019A0004FF488740490002221464046FEF7A0FFC1 +:1019B000DFF8C890002245F219214846FEF798FF4B +:1019C0000094022501240395CDE90146694640466D +:1019D000FEF79EFE0094694648460194CDE9024513 +:1019E000FEF796FE03202703CDE90260CDE90074DF +:1019F00069464846FEF78CFE4FF4844003958DE817 +:101A0000510069464846FEF783FE1D480097CDE920 +:101A1000010669464046FEF77BFE18208DE831003E +:101A2000694648460395FEF773FEE020009015488E +:101A3000CDE9010569464846FEF76AFE2002CDE978 +:101A40000006694602954846FEF762FE002205211F +:101A50001720FEF7F7FF1720FEF7E6FF00221146DA +:101A60002820FEF7EFFF2820FEF7DEFF05B0BDE8D7 +:101A7000F08300000010024000080140000C01400B +:101A80000000211000001110104810B50E4901602F +:101A90004FF48271416000218160C1604FF4007297 +:101AA0000161C0E905121022C0E90721416281628B +:101AB0000A21C162FFF768FA002803D0BDE8104090 +:101AC000FEF717BD10BD00000030014014000020DB +:101AD000104810B50E4901604FF482714160002139 +:101AE0008160C1604FF400720161C0E905120822F3 +:101AF000C0E90721416281620A21C162FFF744FA0D +:101B0000002803D0BDE81040FEF7F3BC10BD000074 +:101B1000003800406C00002010B596B000240F94EF +:101B200010941194129413941C2108A81494FEF795 +:101B300012FB20216846FEF70EFB27482549C0E925 +:101B400000144FF6FF71C0E90241046144618461F1 +:101B5000FFF782FB08B1FEF7CCFC4FF480500F90EA +:101B60000FA91D48FFF7BAFB08B1FEF7C2FC1A48DF +:101B7000FFF7AEFC08B1FEF7BCFC139413A916489E +:101B80001494FFF735FB08B1FEF7B3FC6020CDE9F4 +:101B900008040A940C940D940C2208A90E480E9483 +:101BA000FFF730FC08B1FEF7A4FC00944FF400509E +:101BB000CDE90440029401940394694606480794D1 +:101BC000FFF7ECFA08B1FEF794FC0348FFF7F4FBCB +:101BD00016B010BD002C0140900100200C4810B53B +:101BE0000A4901604FF4E13141600021816008221F +:101BF000C160C0E904128161C161FEF785FE002861 +:101C000003D0BDE81040FEF774BC10BD00380140A1 +:101C1000D80100200C4810B50A4901604FF4E131A9 +:101C20004160002181600C22C160C0E90412816121 +:101C3000C161FFF77BFC002803D0BDE81040FEF730 +:101C400058BC10BD0044004020020020FEE7FEE723 +:101C500070477047FEF790BE10B590B028216846D7 +:101C6000FEF779FA14210AA8FEF775FA0121080493 +:101C7000CDE900104200029202240491CDE9074010 +:101C80004FF4E01009906846FEF7EEFF08B172B617 +:101C9000FEE70F20CDE90A0400204FF48061CDE972 +:101CA0000C010E9002210AA8FEF7FEFE002801D0CA +:101CB00072B6FEE710B010BD70470000F0B50268C4 +:101CC000194B1A4C1A4D4FF08047984205D0B84234 +:101CD00003D0A04201D0A84203D122F070064A6886 +:101CE0003243984205D0B84203D0A04201D0A84266 +:101CF00003D122F44074CA6822434C6922F0800266 +:101D0000224302608A68C2620A688262984201D1F4 +:101D100009690163012141610169C90703D00169B2 +:101D200021F001010161F0BD002C014000040040E0 +:101D30000008004010B5846842EA032224F47F447E +:101D40000A432243826010BD826822F070020A4377 +:101D500042F007018160704730B5036A026A22F0E1 +:101D6000010202624268846924F073050C682C4306 +:101D700023F002058B682B430A4DA8420BD123F0B8 +:101D80000805CB6822F440722B434D6923F004030D +:101D900015438A692A43426084614968416303624A +:101DA00030BD0000002C014030B5026A036A23F008 +:101DB00010030362436884690D6824F4E64444EA2E +:101DC00005248D6822F0200242EA05120B4DA8423C +:101DD0000ED1CD6822F0800242EA05124D6923F44B +:101DE000406343EA85038D6922F0400243EA85039C +:101DF0004360846149688163026230BD002C014008 +:101E000030B5036A026A22F4807202624268C469D1 +:101E100023F4007324F073050C682C438D6843EAA7 +:101E200005230C4DA8420ED1CD6823F4006343EA8C +:101E300005234D6922F4405242EA05128D6923F4CC +:101E4000806342EA05124260C4614968C16303626B +:101E500030BD0000002C014030B5046A026A22F453 +:101E6000805202624268C3690D6823F4E64343EA84 +:101E700005238D6824F4005444EA0534064DA84235 +:101E800004D14D6922F4804242EA85124260C36166 +:101E900049680164046230BD002C014010B5036A3A +:101EA000046A24F001040462846924F0F00444EA22 +:101EB000021423F00A020A438461026210BD10B5C5 +:101EC000036A046A24F010040462846923F0A00306 +:101ED00024F4704444EA023243EA0111826101624F +:101EE00010BD000070B5044600680169E26821F485 +:101EF0004051114301612169A068084361690843A9 +:101F00002168CA6841F20C639A430243CA602068A0 +:101F10004169A26921F44071114341611E49206861 +:101F2000884202D1FEF766FE01E0FEF753FE00EBA9 +:101F3000C00101EB0012606864218000B2FBF0F385 +:101F4000B3FBF1F36FF018067343B2FBF0F5B2FB8D +:101F5000F0F605EB8305322303EB0515B5FBF1F530 +:101F6000B6FBF1F605F0F00505EB0615B2FBF0F651 +:101F7000B2FBF0F0B0FBF1F06FF01802504306EB4B +:101F8000800003EB0010B0FBF1F0216800F00F00BF +:101F90002844886070BD000000380140FEE7090752 +:101FA000090E002804DB00F1E02080F800147047DF +:101FB00000F00F0000F1E02080F8141D704702E0EF +:101FC00008C8121F08C1002AFAD1704770470020C4 +:101FD00001E001C1121F002AFBD1704708B5FEF7CE +:101FE000D3FCFFF739FEFFF7B9FCFFF791FCFFF7D1 +:101FF0004BFDFFF76DFDFFF78FFDFFF7EFFDFFF7DF +:1020000009FEFFF75BFB4FF6FF700021009087236E +:10201000F0220846FFF732FB064C074D074E2068BA +:10202000FEF74BF92A463346FEF7A0F8FEF758F9BB +:102030002060F5E700000020295C8FC2F528BC3F36 +:10204000010202030405060708090A0B0C0D0E0F16 +:102050001010000000000000000001020304060749 +:102060000809000000000102030400008C200008A1 +:102070000000002014000000BE1F0008A02000087F +:102080001400002094060000CE1F0008000000008D +:1020900001000000100000000000000000127A00A3 :04000005080000ED02 :00000001FF diff --git a/MDK-ARM/MR16/MR16.htm b/MDK-ARM/MR16/MR16.htm index 5fa4a78..4ebac1d 100644 --- a/MDK-ARM/MR16/MR16.htm +++ b/MDK-ARM/MR16/MR16.htm @@ -3,2514 +3,936 @@ Static Call Graph - [MR16\MR16.axf]

Static Call Graph for image MR16\MR16.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Sat Nov 22 15:40:00 2025 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Nov 27 20:41:53 2025

-

Maximum Stack Usage = 240 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

-__rt_entry_main ⇒ main ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -

-

-Functions with no stack information -

- +main ⇒ MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init

Mutually Recursive functions -

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    -
  • BusFault_Handler   ⇒   BusFault_Handler
    -
  • HardFault_Handler   ⇒   HardFault_Handler
    -
  • MemManage_Handler   ⇒   MemManage_Handler
    -
  • NMI_Handler   ⇒   NMI_Handler
    -
  • UsageFault_Handler   ⇒   UsageFault_Handler
    -
  • UART_EndRxTransfer   ⇒   UART_EndRxTransfer
    +
  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • NMI_Handler   ⇒   NMI_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler

    Function Pointers

      -
    • ADC1_2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • BusFault_Handler from stm32f1xx_it.o(i.BusFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • CAN1_RX1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • CAN1_SCE_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel5_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel6_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel7_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DebugMon_Handler from stm32f1xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI15_10_IRQHandler from stm32f1xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI9_5_IRQHandler from stm32f1xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) -
    • FLASH_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • HardFault_Handler from stm32f1xx_it.o(i.HardFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • I2C1_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C1_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C2_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C2_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • MemManage_Handler from stm32f1xx_it.o(i.MemManage_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • NMI_Handler from stm32f1xx_it.o(i.NMI_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • OnRxDone from main.o(i.OnRxDone) referenced from main.o(.data) -
    • OnRxError from main.o(i.OnRxError) referenced from main.o(.data) -
    • OnRxTimeout from main.o(i.OnRxTimeout) referenced from main.o(.data) -
    • OnTxDone from main.o(i.OnTxDone) referenced from main.o(.data) -
    • OnTxTimeout from main.o(i.OnTxTimeout) referenced from main.o(.data) -
    • PVD_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • PendSV_Handler from stm32f1xx_it.o(i.PendSV_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • RCC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • RTC_Alarm_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • RTC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • Reset_Handler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI_DMAError from stm32f1xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAError from stm32f1xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMAHalfReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAHalfTransmitCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMAHalfTransmitReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMATransmitCplt from stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMATransmitReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SVC_Handler from stm32f1xx_it.o(i.SVC_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • SX1281Calibrate from sx1281.o(i.SX1281Calibrate) referenced from sx1281-hal.o(.constdata) -
    • SX1281ClearIrqStatus from sx1281.o(i.SX1281ClearIrqStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetFirmwareVersion from sx1281.o(i.SX1281GetFirmwareVersion) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetFrequencyError from sx1281.o(i.SX1281GetFrequencyError) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetIrqStatus from sx1281.o(i.SX1281GetIrqStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetOpMode from sx1281.o(i.SX1281GetOpMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPacketStatus from sx1281.o(i.SX1281GetPacketStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPacketType from sx1281.o(i.SX1281GetPacketType) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPayload from sx1281.o(i.SX1281GetPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetRssiInst from sx1281.o(i.SX1281GetRssiInst) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetRxBufferStatus from sx1281.o(i.SX1281GetRxBufferStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetStatus from sx1281.o(i.SX1281GetStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalGetDioStatus from sx1281-hal.o(i.SX1281HalGetDioStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadBuffer from sx1281-hal.o(i.SX1281HalReadBuffer) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadCommand from sx1281-hal.o(i.SX1281HalReadCommand) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadRegister from sx1281-hal.o(i.SX1281HalReadRegister) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadRegisters from sx1281-hal.o(i.SX1281HalReadRegisters) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReset from sx1281-hal.o(i.SX1281HalReset) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteBuffer from sx1281-hal.o(i.SX1281HalWriteBuffer) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteCommand from sx1281-hal.o(i.SX1281HalWriteCommand) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteRegister from sx1281-hal.o(i.SX1281HalWriteRegister) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteRegisters from sx1281-hal.o(i.SX1281HalWriteRegisters) referenced from sx1281-hal.o(.constdata) -
    • SX1281Init from sx1281.o(i.SX1281Init) referenced from sx1281-hal.o(.constdata) -
    • SX1281OnDioIrq from sx1281.o(i.SX1281OnDioIrq) referenced from sx1281.o(.data) -
    • SX1281SendPayload from sx1281.o(i.SX1281SendPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetAutoFS from sx1281.o(i.SX1281SetAutoFS) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetAutoTx from sx1281.o(i.SX1281SetAutoTx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBleAccessAddress from sx1281.o(i.SX1281SetBleAccessAddress) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBleAdvertizerAccessAddress from sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBufferBaseAddresses from sx1281.o(i.SX1281SetBufferBaseAddresses) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCad from sx1281.o(i.SX1281SetCad) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCadParams from sx1281.o(i.SX1281SetCadParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCrcPolynomial from sx1281.o(i.SX1281SetCrcPolynomial) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCrcSeed from sx1281.o(i.SX1281SetCrcSeed) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetDioIrqParams from sx1281.o(i.SX1281SetDioIrqParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetFs from sx1281.o(i.SX1281SetFs) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetInterruptMode from sx1281.o(i.SX1281SetInterruptMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetLongPreamble from sx1281.o(i.SX1281SetLongPreamble) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetModulationParams from sx1281.o(i.SX1281SetModulationParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPacketParams from sx1281.o(i.SX1281SetPacketParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPacketType from sx1281.o(i.SX1281SetPacketType) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPayload from sx1281.o(i.SX1281SetPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPollingMode from sx1281.o(i.SX1281SetPollingMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRegistersDefault from sx1281.o(i.SX1281SetRegistersDefault) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRegulatorMode from sx1281.o(i.SX1281SetRegulatorMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRfFrequency from sx1281.o(i.SX1281SetRfFrequency) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRx from sx1281.o(i.SX1281SetRx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRxDutyCycle from sx1281.o(i.SX1281SetRxDutyCycle) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSaveContext from sx1281.o(i.SX1281SetSaveContext) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSleep from sx1281.o(i.SX1281SetSleep) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetStandby from sx1281.o(i.SX1281SetStandby) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSyncWord from sx1281.o(i.SX1281SetSyncWord) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSyncWordErrorTolerance from sx1281.o(i.SX1281SetSyncWordErrorTolerance) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTx from sx1281.o(i.SX1281SetTx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxContinuousPreamble from sx1281.o(i.SX1281SetTxContinuousPreamble) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxContinuousWave from sx1281.o(i.SX1281SetTxContinuousWave) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxParams from sx1281.o(i.SX1281SetTxParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetWhiteningSeed from sx1281.o(i.SX1281SetWhiteningSeed) referenced from sx1281-hal.o(.constdata) -
    • SysTick_Handler from stm32f1xx_it.o(i.SysTick_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • SystemInit from system_stm32f1xx.o(i.SystemInit) referenced from startup_stm32f103xb.o(.text) -
    • TAMPER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_BRK_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_CC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_TRG_COM_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_UP_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USBWakeUp_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • UsageFault_Handler from stm32f1xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • WWDG_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • __main from __main.o(!!!main) referenced from startup_stm32f103xb.o(.text) -
    • _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text) -
    • fputc from main.o(i.fputc) referenced from _printf_char_file.o(.text) -
    • tx_cplt_cb from hw-spi.o(i.tx_cplt_cb) referenced from hw-spi.o(i.SpiInit) -
    • txrx_cplt_cb from hw-spi.o(i.txrx_cplt_cb) referenced from hw-spi.o(i.SpiInit) +
    • ADC1_2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • BusFault_Handler from stm32f1xx_it.o(i.BusFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • CAN1_RX1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • CAN1_SCE_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel2_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel3_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel5_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel6_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel7_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DebugMon_Handler from stm32f1xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI15_10_IRQHandler from stm32f1xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI9_5_IRQHandler from stm32f1xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • FLASH_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • HardFault_Handler from stm32f1xx_it.o(i.HardFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • I2C1_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C1_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C2_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C2_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • MemManage_Handler from stm32f1xx_it.o(i.MemManage_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • NMI_Handler from stm32f1xx_it.o(i.NMI_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • PVD_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • PendSV_Handler from stm32f1xx_it.o(i.PendSV_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • RCC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • RTC_Alarm_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • RTC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • Reset_Handler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SPI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SPI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SVC_Handler from stm32f1xx_it.o(i.SVC_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • SysTick_Handler from stm32f1xx_it.o(i.SysTick_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • SystemInit from system_stm32f1xx.o(i.SystemInit) referenced from startup_stm32f103xb.o(.text) +
    • TAMPER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_BRK_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_CC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_TRG_COM_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_UP_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USBWakeUp_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • UsageFault_Handler from stm32f1xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • WWDG_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f103xb.o(.text) +
    • main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

    Global Symbols

    -

    __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) -

    [Calls]

    • >>   __rt_entry -
    • >>   __scatterload -
    - -

    __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter)) -

    [Called By]

    • >>   __main -
    - -

    __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) -

    [Calls]

    • >>   __rt_entry -
    - -

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) - -

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) - -

    __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED) -

    [Calls]

    • >>   __scatterload_copy -
    -
    [Called By]
    • >>   __scatterload_copy -
    - -

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) - -

    _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009)) -

    [Stack]

    • Max Depth = 72 + Unknown Stack Size -
    • Call Chain = _printf_d ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_dec -
    - -

    _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000)) -

    [Called By]

    • >>   __printf -
    - -

    _printf_x (Thumb, 0 bytes, Stack size unknown bytes, _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C)) -

    [Stack]

    • Max Depth = 64 + Unknown Stack Size -
    • Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_hex -
    - -

    _printf_s (Thumb, 0 bytes, Stack size unknown bytes, _printf_s.o(.ARM.Collect$$_printf_percent$$00000014)) -

    [Stack]

    • Max Depth = 40 + Unknown Stack Size -
    • Call Chain = _printf_s ⇒ _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_string -
    - -

    _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) - -

    __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000)) -

    [Called By]

    • >>   __rt_entry_li -
    - -

    __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) - -

    __rt_lib_init_heap_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000005)) -

    [Stack]

    • Max Depth = 64 + Unknown Stack Size -
    • Call Chain = __rt_lib_init_heap_2 ⇒ _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   _init_alloc -
    - -

    __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) - -

    __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) - -

    __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) - -

    __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) - -

    __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) - -

    __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) - -

    __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) - -

    __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) - -

    __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) - -

    __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) - -

    __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) - -

    __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) - -

    __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) - -

    __rt_lib_init_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000024)) -

    [Stack]

    • Max Depth = 136 + Unknown Stack Size -
    • Call Chain = __rt_lib_init_stdio_2 ⇒ _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _initio -
    - -

    __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) - -

    __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) - -

    __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) - -

    __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) - -

    __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) - -

    __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) - -

    __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) - -

    __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000)) -

    [Called By]

    • >>   __rt_exit_ls -
    - -

    __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) - -

    __rt_lib_shutdown_fini_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) - -

    __rt_lib_shutdown_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000005)) -

    [Stack]

    • Max Depth = 120 + Unknown Stack Size -
    • Call Chain = __rt_lib_shutdown_stdio_2 ⇒ _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _terminateio -
    - -

    __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)) - -

    __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011)) - -

    __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012)) - -

    __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) - -

    __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)) - -

    __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)) - -

    __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) -

    [Called By]

    • >>   __main -
    • >>   __scatterload_rt2 -
    - -

    __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) - -

    __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap -
    -
    [Calls]
    • >>   __user_setup_stackheap -
    - -

    __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A)) -

    [Calls]

    • >>   __rt_lib_init -
    - -

    __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) - -

    __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) -

    [Stack]

    • Max Depth = 240 + Unknown Stack Size -
    • Call Chain = __rt_entry_main ⇒ main ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   main -
    • >>   exit -
    - -

    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) - -

    __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000)) -

    [Called By]

    • >>   exit -
    - -

    __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003)) -

    [Calls]

    • >>   __rt_lib_shutdown -
    - -

    __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) - -

    __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004)) -

    [Calls]

    • >>   _sys_exit -
    - -

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    _maybe_terminate_alloc (Thumb, 0 bytes, Stack size 0 bytes, maybetermalloc1.o(.emb_text), UNUSED) - -

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -

    [Calls]

    • >>   ADC1_2_IRQHandler -
    -
    [Called By]
    • >>   ADC1_2_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USBWakeUp_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USB_HP_CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USB_LP_CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    __user_initial_stackheap (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f103xb.o(.text)) -

    [Called By]

    • >>   __user_setup_stackheap -
    - -

    __2printf (Thumb, 20 bytes, Stack size 24 bytes, noretval__2printf.o(.text)) -

    [Stack]

    • Max Depth = 144 + Unknown Stack Size -
    • Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   _printf_char_file -
    -
    [Called By]
    • >>   main -
    • >>   OnTxTimeout -
    • >>   OnTxDone -
    • >>   OnRxTimeout -
    • >>   OnRxError -
    • >>   OnRxDone -
    - -

    _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_int_common -
    • >>   _printf_str -
    - -

    _printf_post_padding (Thumb, 34 bytes, Stack size 16 bytes, _printf_pad.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_post_padding -
    -
    [Called By]
    • >>   _printf_int_common -
    • >>   _printf_str -
    - -

    _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_post_padding -
    • >>   _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_cs_common -
    - -

    _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_common -
    -
    [Called By]
    • >>   _printf_d -
    - -

    _printf_int_hex (Thumb, 84 bytes, Stack size 16 bytes, _printf_hex_int.o(.text)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_common -
    -
    [Called By]
    • >>   _printf_x -
    - -

    _printf_longlong_hex (Thumb, 0 bytes, Stack size 16 bytes, _printf_hex_int.o(.text), UNUSED) - -

    __printf (Thumb, 388 bytes, Stack size 40 bytes, __printf_flags_ss_wp.o(.text)) -

    [Stack]

    • Max Depth = 40 + Unknown Stack Size -
    • Call Chain = __printf -
    -
    [Calls]
    • >>   _printf_percent -
    • >>   _is_digit -
    -
    [Called By]
    • >>   _printf_char_common -
    - -

    strlen (Thumb, 62 bytes, Stack size 8 bytes, strlen.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = strlen -
    -
    [Called By]
    • >>   _sys_open -
    - -

    __aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text)) -

    [Called By]

    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memcpy4 -
    - -

    _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED) - -

    __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text)) -

    [Called By]

    • >>   main -
    - -

    __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED) -

    [Calls]

    • >>   _memset_w -
    - -

    _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text), UNUSED) - -

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = __aeabi_memclr4 -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    • >>   SystemClock_Config -
    • >>   _fclose_internal -
    • >>   fopen -
    • >>   _initio -
    - -

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) - -

    __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) - -

    _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) -

    [Called By]

    • >>   __rt_memclr -
    - -

    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    __rt_heap_expand (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_post_padding -
    • >>   _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_int_hex -
    • >>   _printf_int_dec -
    - -

    _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_str -
    -
    [Called By]
    • >>   _printf_string -
    • >>   _printf_char -
    - -

    _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text), UNUSED) -

    [Calls]

    • >>   _printf_cs_common -
    - -

    _printf_string (Thumb, 8 bytes, Stack size 0 bytes, _printf_char.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_cs_common -
    -
    [Called By]
    • >>   _printf_s -
    - -

    _printf_char_file (Thumb, 32 bytes, Stack size 16 bytes, _printf_char_file.o(.text)) -

    [Stack]

    • Max Depth = 120 + Unknown Stack Size -
    • Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   ferror -
    • >>   _printf_char_common -
    -
    [Called By]
    • >>   __2printf -
    - -

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) -

    [Called By]

    • >>   __rt_memcpy -
    - -

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) - -

    __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) - -

    _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED) - -

    _printf_char_common (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text)) -

    [Stack]

    • Max Depth = 104 + Unknown Stack Size -
    • Call Chain = _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __printf -
    -
    [Called By]
    • >>   _printf_char_file -
    - -

    ferror (Thumb, 8 bytes, Stack size 0 bytes, ferror.o(.text)) -

    [Called By]

    • >>   _printf_char_file -
    - -

    _initio (Thumb, 210 bytes, Stack size 8 bytes, initio.o(.text)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   __rt_SIGRTRED -
    • >>   freopen -
    • >>   setvbuf -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   __rt_lib_init_stdio_2 -
    - -

    _terminateio (Thumb, 56 bytes, Stack size 16 bytes, initio.o(.text)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _fclose_internal -
    • >>   free -
    -
    [Called By]
    • >>   __rt_lib_shutdown_stdio_2 -
    - -

    _sys_open (Thumb, 20 bytes, Stack size 16 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = _sys_open ⇒ strlen -
    -
    [Calls]
    • >>   strlen -
    -
    [Called By]
    • >>   freopen -
    - -

    _sys_close (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_close -
    -
    [Called By]
    • >>   _fclose_internal -
    - -

    _sys_write (Thumb, 16 bytes, Stack size 24 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = _sys_write -
    -
    [Called By]
    • >>   _writebuf -
    - -

    _sys_read (Thumb, 14 bytes, Stack size 24 bytes, sys_io.o(.text), UNUSED) - -

    _sys_istty (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_istty -
    -
    [Called By]
    • >>   _fseek -
    - -

    _sys_seek (Thumb, 14 bytes, Stack size 16 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _sys_seek -
    -
    [Called By]
    • >>   _writebuf -
    - -

    _sys_ensure (Thumb, 2 bytes, Stack size 0 bytes, sys_io.o(.text), UNUSED) - -

    _sys_flen (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_flen -
    -
    [Called By]
    • >>   _fseek -
    - -

    __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = __user_setup_stackheap -
    -
    [Calls]
    • >>   __user_initial_stackheap -
    • >>   __user_perproc_libspace -
    -
    [Called By]
    • >>   __rt_entry_sh -
    - -

    free (Thumb, 78 bytes, Stack size 16 bytes, h1_free.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = free -
    -
    [Calls]
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   _fclose_internal -
    • >>   _terminateio -
    • >>   __Heap_ProvideMemory -
    - -

    setvbuf (Thumb, 70 bytes, Stack size 16 bytes, setvbuf.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = setvbuf -
    -
    [Called By]
    • >>   _initio -
    - -

    freopen (Thumb, 158 bytes, Stack size 24 bytes, fopen.o(.text)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _fclose_internal -
    • >>   _sys_open -
    • >>   _fseek -
    -
    [Called By]
    • >>   fopen -
    • >>   _initio -
    - -

    fopen (Thumb, 74 bytes, Stack size 24 bytes, fopen.o(.text), UNUSED) -

    [Calls]

    • >>   freopen -
    • >>   __aeabi_memclr4 -
    • >>   malloc -
    - -

    _fclose_internal (Thumb, 76 bytes, Stack size 32 bytes, fclose.o(.text)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   free -
    • >>   _sys_close -
    • >>   __aeabi_memclr4 -
    • >>   _fflush -
    -
    [Called By]
    • >>   freopen -
    • >>   _terminateio -
    - -

    fclose (Thumb, 0 bytes, Stack size 32 bytes, fclose.o(.text), UNUSED) - -

    exit (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = exit -
    -
    [Calls]
    • >>   __rt_exit -
    -
    [Called By]
    • >>   __rt_entry_main -
    - -

    __rt_SIGRTRED (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_outer.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = __rt_SIGRTRED ⇒ __rt_SIGRTRED_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTRED_inner -
    • >>   __sig_exit -
    -
    [Called By]
    • >>   _initio -
    - -

    __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) - -

    __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text)) -

    [Called By]

    • >>   __user_setup_stackheap -
    - -

    __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) - -

    __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) - -

    __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) - -

    __semihosting_library_function (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED) - -

    __rt_heap_descriptor (Thumb, 8 bytes, Stack size 0 bytes, rt_heap_descriptor_intlibspace.o(.text)) -

    [Called By]

    • >>   free -
    • >>   malloc -
    • >>   _init_alloc -
    - -

    __use_no_heap (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) - -

    __heap$guard (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) - -

    _terminate_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) - -

    _init_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) - -

    __Heap_Full (Thumb, 34 bytes, Stack size 16 bytes, init_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __Heap_ProvideMemory -
    -
    [Called By]
    • >>   malloc -
    - -

    __Heap_Broken (Thumb, 6 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __rt_SIGRTMEM -
    - -

    _init_alloc (Thumb, 94 bytes, Stack size 24 bytes, init_alloc.o(.text)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTMEM -
    • >>   __Heap_ProvideMemory -
    • >>   __Heap_Initialize -
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   __rt_lib_init_heap_2 -
    - -

    malloc (Thumb, 94 bytes, Stack size 16 bytes, h1_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __Heap_Full -
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   fopen -
    - -

    _fseek (Thumb, 242 bytes, Stack size 24 bytes, fseek.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = _fseek ⇒ _sys_flen -
    -
    [Calls]
    • >>   _sys_flen -
    • >>   _sys_istty -
    • >>   _ftell_internal -
    • >>   _seterr -
    -
    [Called By]
    • >>   freopen -
    - -

    fseek (Thumb, 0 bytes, Stack size 24 bytes, fseek.o(.text), UNUSED) - -

    _seterr (Thumb, 20 bytes, Stack size 0 bytes, stdio.o(.text)) -

    [Called By]

    • >>   _writebuf -
    • >>   _fseek -
    - -

    _writebuf (Thumb, 84 bytes, Stack size 32 bytes, stdio.o(.text)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _sys_seek -
    • >>   _sys_write -
    • >>   _seterr -
    -
    [Called By]
    • >>   _fflush -
    - -

    _fflush (Thumb, 70 bytes, Stack size 16 bytes, stdio.o(.text)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _writebuf -
    -
    [Called By]
    • >>   _fclose_internal -
    • >>   _deferredlazyseek -
    - -

    _deferredlazyseek (Thumb, 60 bytes, Stack size 8 bytes, stdio.o(.text), UNUSED) -

    [Calls]

    • >>   _fflush -
    - -

    __sig_exit (Thumb, 10 bytes, Stack size 0 bytes, defsig_exit.o(.text)) -

    [Calls]

    • >>   _sys_exit -
    -
    [Called By]
    • >>   __rt_SIGRTRED -
    • >>   __rt_SIGRTMEM -
    - -

    __rt_SIGRTRED_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_inner.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTRED_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __default_signal_display -
    -
    [Called By]
    • >>   __rt_SIGRTRED -
    - -

    _sys_exit (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text)) -

    [Called By]

    • >>   __rt_exit_exit -
    • >>   __sig_exit -
    - -

    __Heap_Initialize (Thumb, 10 bytes, Stack size 0 bytes, h1_init.o(.text)) -

    [Called By]

    • >>   _init_alloc -
    - -

    __Heap_DescSize (Thumb, 4 bytes, Stack size 0 bytes, h1_init.o(.text), UNUSED) - -

    __Heap_ProvideMemory (Thumb, 52 bytes, Stack size 0 bytes, h1_extend.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = __Heap_ProvideMemory ⇒ free -
    -
    [Calls]
    • >>   free -
    -
    [Called By]
    • >>   _init_alloc -
    • >>   __Heap_Full -
    - -

    _ftell_internal (Thumb, 66 bytes, Stack size 8 bytes, ftell.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _ftell_internal -
    -
    [Calls]
    • >>   __aeabi_errno_addr -
    -
    [Called By]
    • >>   _fseek -
    - -

    ftell (Thumb, 0 bytes, Stack size 8 bytes, ftell.o(.text), UNUSED) - -

    __default_signal_display (Thumb, 50 bytes, Stack size 16 bytes, defsig_general.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   _ttywrch -
    -
    [Called By]
    • >>   __rt_SIGRTMEM_inner -
    • >>   __rt_SIGRTRED_inner -
    - -

    __rt_SIGRTMEM (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtmem_outer.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTMEM_inner -
    • >>   __sig_exit -
    -
    [Called By]
    • >>   _init_alloc -
    • >>   __Heap_Broken -
    - -

    _ttywrch (Thumb, 14 bytes, Stack size 8 bytes, sys_wrch.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _ttywrch -
    -
    [Called By]
    • >>   __default_signal_display -
    - -

    __aeabi_errno_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text)) -

    [Called By]

    • >>   _ftell_internal -
    - -

    __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) - -

    __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) - -

    __rt_SIGRTMEM_inner (Thumb, 22 bytes, Stack size 8 bytes, defsig_rtmem_inner.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __default_signal_display -
    -
    [Called By]
    • >>   __rt_SIGRTMEM -
    - -

    BSP_SPI_GetHandle (Thumb, 10 bytes, Stack size 0 bytes, spi_1.o(i.BSP_SPI_GetHandle)) -

    [Called By]

    • >>   BSP_SPI_TransmitReceive -
    • >>   BSP_SPI_Transmit -
    - -

    BSP_SPI_RegisterCallback (Thumb, 22 bytes, Stack size 0 bytes, spi_1.o(i.BSP_SPI_RegisterCallback)) -

    [Called By]

    • >>   SpiInit -
    - -

    BSP_SPI_Transmit (Thumb, 40 bytes, Stack size 8 bytes, spi_1.o(i.BSP_SPI_Transmit)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   HAL_SPI_Transmit_DMA -
    • >>   HAL_SPI_Transmit -
    • >>   BSP_SPI_GetHandle -
    -
    [Called By]
    • >>   SpiIn -
    - -

    BSP_SPI_TransmitReceive (Thumb, 44 bytes, Stack size 16 bytes, spi_1.o(i.BSP_SPI_TransmitReceive)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   HAL_SPI_TransmitReceive -
    • >>   HAL_SPI_TransmitReceive_DMA -
    • >>   BSP_SPI_GetHandle -
    -
    [Called By]
    • >>   SpiInOut -
    - -

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.BusFault_Handler)) -

    [Calls]

    • >>   BusFault_Handler -
    -
    [Called By]
    • >>   BusFault_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DebugMon_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI15_10_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.EXTI15_10_IRQHandler)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    • >>   HAL_GPIO_EXTI_Falling_Callback -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    EXTI9_5_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.EXTI9_5_IRQHandler)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = EXTI9_5_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    Error_Handler (Thumb, 4 bytes, Stack size 0 bytes, main.o(i.Error_Handler)) -

    [Called By]

    • >>   MX_USART2_UART_Init -
    • >>   MX_USART1_UART_Init -
    • >>   MX_TIM1_Init -
    • >>   MX_SPI2_Init -
    • >>   MX_SPI1_Init -
    - -

    GpioGetBitPos (Thumb, 48 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioGetBitPos)) -

    [Called By]

    • >>   MSP_GetIRQn -
    • >>   GpioSetIrq -
    - -

    GpioInit (Thumb, 2 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioInit)) -

    [Called By]

    • >>   HwInit -
    - -

    GpioRead (Thumb, 4 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioRead)) -

    [Calls]

    • >>   HAL_GPIO_ReadPin -
    -
    [Called By]
    • >>   SX1281HalGetDioStatus -
    - -

    GpioSetIrq (Thumb, 50 bytes, Stack size 16 bytes, hw-gpio.o(i.GpioSetIrq)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_NVIC_EnableIRQ -
    • >>   MSP_GetIRQn -
    • >>   GpioGetBitPos -
    -
    [Called By]
    • >>   SX1281HalIoIrqInit -
    - -

    GpioWrite (Thumb, 6 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioWrite)) -

    [Calls]

    • >>   HAL_GPIO_WritePin -
    -
    [Called By]
    • >>   SX1281HalReset -
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    HAL_DMA_Start_IT (Thumb, 112 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_Start_IT)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   DMA_SetConfig -
    -
    [Called By]
    • >>   HAL_SPI_Transmit_DMA -
    • >>   HAL_SPI_TransmitReceive_DMA -
    - -

    HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_Delay)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_Delay -
    -
    [Calls]
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SX1281HalReset -
    • >>   main -
    • >>   HAL_GPIO_EXTI_Falling_Callback -
    - -

    HAL_GPIO_EXTI_Callback (Thumb, 40 bytes, Stack size 24 bytes, gpio_1.o(i.HAL_GPIO_EXTI_Callback)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_GPIO_EXTI_Callback -
    -
    [Called By]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    - -

    HAL_GPIO_EXTI_Falling_Callback (Thumb, 6 bytes, Stack size 0 bytes, main.o(i.HAL_GPIO_EXTI_Falling_Callback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_GPIO_EXTI_Falling_Callback ⇒ HAL_Delay -
    -
    [Calls]
    • >>   HAL_Delay -
    -
    [Called By]
    • >>   EXTI15_10_IRQHandler -
    - -

    HAL_GPIO_EXTI_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_Callback -
    -
    [Called By]
    • >>   EXTI9_5_IRQHandler -
    • >>   EXTI15_10_IRQHandler -
    - -

    HAL_GPIO_Init (Thumb, 446 bytes, Stack size 40 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_UART_MspInit -
    • >>   HAL_TIM_MspPostInit -
    • >>   HAL_SPI_MspInit -
    • >>   MX_GPIO_Init -
    - -

    HAL_GPIO_ReadPin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin)) -

    [Called By]

    • >>   main -
    • >>   GpioRead -
    • >>   SX1281HalWaitOnBusy -
    - -

    HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin)) -

    [Called By]

    • >>   MX_GPIO_Init -
    • >>   main -
    • >>   GpioWrite -
    - -

    HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_GetTick)) -

    [Called By]

    • >>   SPI_WaitFlagStateUntilTimeout -
    • >>   SPI_DMATransmitReceiveCplt -
    • >>   SPI_DMATransmitCplt -
    • >>   SPI_DMAReceiveCplt -
    • >>   HAL_UART_Transmit -
    • >>   HAL_SPI_TransmitReceive -
    • >>   HAL_RCC_OscConfig -
    • >>   HAL_RCC_ClockConfig -
    • >>   HAL_Delay -
    • >>   HAL_SPI_Transmit -
    • >>   UART_WaitOnFlagUntilTimeout -
    - -

    HAL_HalfDuplex_Init (Thumb, 110 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_MspInit -
    • >>   UART_SetConfig -
    -
    [Called By]
    • >>   MX_USART1_UART_Init -
    - -

    HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_IncTick)) -

    [Called By]

    • >>   SysTick_Handler -
    - -

    HAL_Init (Thumb, 32 bytes, Stack size 8 bytes, stm32f1xx_hal.o(i.HAL_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_MspInit -
    • >>   HAL_InitTick -
    • >>   HAL_NVIC_SetPriorityGrouping -
    -
    [Called By]
    • >>   HwInit -
    • >>   main -
    - -

    HAL_InitTick (Thumb, 54 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_InitTick)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_SYSTICK_Config -
    -
    [Called By]
    • >>   HAL_RCC_ClockConfig -
    • >>   HAL_Init -
    - -

    HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(i.HAL_MspInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit -
    -
    [Called By]
    • >>   HAL_Init -
    - -

    HAL_NVIC_EnableIRQ (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)) -

    [Called By]

    • >>   MX_GPIO_Init -
    • >>   GpioSetIrq -
    - -

    HAL_NVIC_SetPriority (Thumb, 60 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   __NVIC_SetPriority -
    -
    [Called By]
    • >>   MX_GPIO_Init -
    • >>   HAL_InitTick -
    • >>   GpioSetIrq -
    - -

    HAL_NVIC_SetPriorityGrouping (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping)) -

    [Called By]

    • >>   HAL_Init -
    - -

    HAL_RCC_ClockConfig (Thumb, 280 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq -
    • >>   HAL_InitTick -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SystemClock_Config -
    - -

    HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) -

    [Called By]

    • >>   main -
    • >>   UART_SetConfig -
    - -

    HAL_RCC_GetPCLK2Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq)) -

    [Called By]

    • >>   main -
    • >>   UART_SetConfig -
    - -

    HAL_RCC_GetSysClockFreq (Thumb, 64 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) -

    [Called By]

    • >>   HAL_RCC_ClockConfig -
    • >>   main -
    - -

    HAL_RCC_OscConfig (Thumb, 778 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_RCC_OscConfig -
    -
    [Calls]
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SystemClock_Config -
    - -

    HAL_SPI_ErrorCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_ErrorCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_ErrorCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitReceiveCplt -
    • >>   SPI_DMATransmitCplt -
    • >>   SPI_DMAReceiveCplt -
    • >>   SPI_DMAError -
    - -

    HAL_SPI_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_MspInit -
    -
    [Called By]
    • >>   MX_SPI2_Init -
    • >>   MX_SPI1_Init -
    - -

    HAL_SPI_MspInit (Thumb, 162 bytes, Stack size 32 bytes, spi.o(i.HAL_SPI_MspInit)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_SPI_Init -
    - -

    HAL_SPI_RxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_RxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAReceiveCplt -
    - -

    HAL_SPI_RxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_RxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfReceiveCplt -
    - -

    HAL_SPI_Transmit (Thumb, 358 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SPI_EndRxTxTransaction -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   BSP_SPI_Transmit -
    - -

    HAL_SPI_TransmitReceive (Thumb, 496 bytes, Stack size 56 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive)) -

    [Stack]

    • Max Depth = 112
    • Call Chain = HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SPI_EndRxTxTransaction -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   main -
    • >>   BSP_SPI_TransmitReceive -
    - -

    HAL_SPI_TransmitReceive_DMA (Thumb, 252 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)) -

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_SPI_TransmitReceive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   HAL_DMA_Start_IT -
    -
    [Called By]
    • >>   BSP_SPI_TransmitReceive -
    - -

    HAL_SPI_Transmit_DMA (Thumb, 190 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA)) -

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_SPI_Transmit_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   HAL_DMA_Start_IT -
    -
    [Called By]
    • >>   BSP_SPI_Transmit -
    - -

    HAL_SPI_TxCpltCallback (Thumb, 30 bytes, Stack size 8 bytes, spi_1.o(i.HAL_SPI_TxCpltCallback)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_SPI_TxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitCplt -
    - -

    HAL_SPI_TxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfTransmitCplt -
    - -

    HAL_SPI_TxRxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxRxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitReceiveCplt -
    - -

    HAL_SPI_TxRxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxRxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfTransmitReceiveCplt -
    - -

    HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_SYSTICK_Config -
    -
    [Calls]
    • >>   __NVIC_SetPriority -
    -
    [Called By]
    • >>   HAL_InitTick -
    - -

    HAL_TIMEx_ConfigBreakDeadTime (Thumb, 84 bytes, Stack size 8 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIMEx_ConfigBreakDeadTime -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 92 bytes, Stack size 16 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_Base_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig -
    -
    [Calls]
    • >>   HAL_TIM_Base_MspInit -
    • >>   TIM_Base_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_Base_MspInit (Thumb, 30 bytes, Stack size 8 bytes, tim.o(i.HAL_TIM_Base_MspInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_Base_MspInit -
    -
    [Called By]
    • >>   HAL_TIM_Base_Init -
    - -

    HAL_TIM_ConfigClockSource (Thumb, 220 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_TI2_ConfigInputStage -
    -
    [Calls]
    • >>   TIM_TI2_ConfigInputStage -
    • >>   TIM_TI1_ConfigInputStage -
    • >>   TIM_ITRx_SetConfig -
    • >>   TIM_ETR_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_MspPostInit (Thumb, 64 bytes, Stack size 24 bytes, tim.o(i.HAL_TIM_MspPostInit)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_ConfigChannel (Thumb, 204 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC4_SetConfig -
    -
    [Calls]
    • >>   TIM_OC4_SetConfig -
    • >>   TIM_OC3_SetConfig -
    • >>   TIM_OC1_SetConfig -
    • >>   TIM_OC2_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig -
    -
    [Calls]
    • >>   HAL_TIM_PWM_MspInit -
    • >>   TIM_Base_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit)) -

    [Called By]

    • >>   HAL_TIM_PWM_Init -
    - -

    HAL_UART_Init (Thumb, 100 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_MspInit -
    • >>   UART_SetConfig -
    -
    [Called By]
    • >>   MX_USART2_UART_Init -
    - -

    HAL_UART_MspInit (Thumb, 150 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_UART_Init -
    • >>   HAL_HalfDuplex_Init -
    - -

    HAL_UART_Transmit (Thumb, 160 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Transmit)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout -
    -
    [Calls]
    • >>   HAL_GetTick -
    • >>   UART_WaitOnFlagUntilTimeout -
    -
    [Called By]
    • >>   fputc -
    - -

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.HardFault_Handler)) -

    [Calls]

    • >>   HardFault_Handler -
    -
    [Called By]
    • >>   HardFault_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    HwInit (Thumb, 18 bytes, Stack size 8 bytes, hw.o(i.HwInit)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = HwInit ⇒ HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_Init -
    • >>   SpiInit -
    • >>   GpioInit -
    -
    [Called By]
    • >>   main -
    - -

    MSP_GetIRQn (Thumb, 58 bytes, Stack size 4 bytes, hw-gpio.o(i.MSP_GetIRQn)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = MSP_GetIRQn -
    -
    [Calls]
    • >>   GpioGetBitPos -
    -
    [Called By]
    • >>   GpioSetIrq -
    - -

    MX_GPIO_Init (Thumb, 236 bytes, Stack size 48 bytes, gpio.o(i.MX_GPIO_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_NVIC_EnableIRQ -
    • >>   HAL_GPIO_Init -
    • >>   HAL_GPIO_WritePin -
    -
    [Called By]
    • >>   main -
    - -

    MX_SPI1_Init (Thumb, 62 bytes, Stack size 8 bytes, spi.o(i.MX_SPI1_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_SPI2_Init (Thumb, 60 bytes, Stack size 8 bytes, spi.o(i.MX_SPI2_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_SPI2_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_TIM1_Init (Thumb, 188 bytes, Stack size 96 bytes, tim.o(i.MX_TIM1_Init)) -

    [Stack]

    • Max Depth = 160
    • Call Chain = MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_TIM_PWM_Init -
    • >>   HAL_TIM_PWM_ConfigChannel -
    • >>   HAL_TIM_ConfigClockSource -
    • >>   HAL_TIM_Base_Init -
    • >>   HAL_TIMEx_MasterConfigSynchronization -
    • >>   HAL_TIMEx_ConfigBreakDeadTime -
    • >>   HAL_TIM_MspPostInit -
    • >>   Error_Handler -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   main -
    - -

    MX_USART1_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_USART1_UART_Init ⇒ HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_HalfDuplex_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_USART2_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART2_UART_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.MemManage_Handler)) -

    [Calls]

    • >>   MemManage_Handler -
    -
    [Called By]
    • >>   MemManage_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.NMI_Handler)) -

    [Calls]

    • >>   NMI_Handler -
    -
    [Called By]
    • >>   NMI_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    OnRxDone (Thumb, 50 bytes, Stack size 16 bytes, main.o(i.OnRxDone)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnRxDone ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnRxError (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.OnRxError)) -

    [Stack]

    • Max Depth = 152 + Unknown Stack Size -
    • Call Chain = OnRxError ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnRxTimeout (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.OnRxTimeout)) -

    [Stack]

    • Max Depth = 152 + Unknown Stack Size -
    • Call Chain = OnRxTimeout ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnTxDone (Thumb, 44 bytes, Stack size 16 bytes, main.o(i.OnTxDone)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnTxDone ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnTxTimeout (Thumb, 44 bytes, Stack size 16 bytes, main.o(i.OnTxTimeout)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnTxTimeout ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.PendSV_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SVC_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SX1281Calibrate (Thumb, 62 bytes, Stack size 8 bytes, sx1281.o(i.SX1281Calibrate)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281Calibrate ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281ClearIrqStatus (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281ClearIrqStatus)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Called By]
    • >>   SX1281ProcessIrqs -
    • >>   SX1281SetTx -
    • >>   SX1281SetRx -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetFirmwareVersion (Thumb, 26 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetFirmwareVersion)) -

    [Stack]

    • Max Depth = 184
    • Call Chain = SX1281GetFirmwareVersion ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetFrequencyError (Thumb, 132 bytes, Stack size 16 bytes, sx1281.o(i.SX1281GetFrequencyError)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281GetFrequencyError ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    • >>   SX1281GetLoRaBandwidth -
    • >>   __aeabi_dmul -
    • >>   __aeabi_i2d -
    • >>   __aeabi_ddiv -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetIrqStatus (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetIrqStatus)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Called By]
    • >>   SX1281ProcessIrqs -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetLoRaBandwidth (Thumb, 38 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetLoRaBandwidth)) -

    [Called By]

    • >>   SX1281GetFrequencyError -
    - -

    SX1281GetOpMode (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetOpMode)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPacketStatus (Thumb, 526 bytes, Stack size 16 bytes, sx1281.o(i.SX1281GetPacketStatus)) -

    [Stack]

    • Max Depth = 184
    • Call Chain = SX1281GetPacketStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPacketType (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetPacketType)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPayload (Thumb, 40 bytes, Stack size 24 bytes, sx1281.o(i.SX1281GetPayload)) -

    [Stack]

    • Max Depth = 224
    • Call Chain = SX1281GetPayload ⇒ SX1281GetRxBufferStatus ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadBuffer -
    • >>   SX1281GetRxBufferStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetRssiInst (Thumb, 34 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetRssiInst)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetRssiInst ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetRxBufferStatus (Thumb, 68 bytes, Stack size 24 bytes, sx1281.o(i.SX1281GetRxBufferStatus)) -

    [Stack]

    • Max Depth = 200
    • Call Chain = SX1281GetRxBufferStatus ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    • >>   SX1281HalReadCommand -
    -
    [Called By]
    • >>   SX1281GetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetStatus (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetStatus)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalGetDioStatus (Thumb, 32 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalGetDioStatus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SX1281HalGetDioStatus -
    -
    [Calls]
    • >>   GpioRead -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalInit (Thumb, 18 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalInit)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = SX1281HalInit ⇒ SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   SX1281HalReset -
    • >>   SX1281HalIoIrqInit -
    -
    [Called By]
    • >>   SX1281Init -
    - -

    SX1281HalIoIrqInit (Thumb, 12 bytes, Stack size 0 bytes, sx1281-hal.o(i.SX1281HalIoIrqInit)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   GpioSetIrq -
    -
    [Called By]
    • >>   SX1281HalInit -
    - -

    SX1281HalReadBuffer (Thumb, 96 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadBuffer)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadBuffer ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281GetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadCommand (Thumb, 94 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadCommand)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281GetStatus -
    • >>   SX1281GetRxBufferStatus -
    • >>   SX1281GetRssiInst -
    • >>   SX1281GetPacketStatus -
    • >>   SX1281GetIrqStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadRegister (Thumb, 16 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalReadRegister)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegisters -
    -
    [Called By]
    • >>   SX1281SetSyncWordErrorTolerance -
    • >>   SX1281GetRxBufferStatus -
    • >>   SX1281GetFrequencyError -
    • >>   SX1281GetFirmwareVersion -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadRegisters (Thumb, 100 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadRegisters)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReset (Thumb, 46 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalReset)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = SX1281HalReset ⇒ HAL_Delay -
    -
    [Calls]
    • >>   HAL_Delay -
    • >>   GpioWrite -
    -
    [Called By]
    • >>   main -
    • >>   SX1281HalInit -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWaitOnBusy (Thumb, 22 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWaitOnBusy)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SX1281HalWaitOnBusy -
    -
    [Calls]
    • >>   HAL_GPIO_ReadPin -
    -
    [Called By]
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    SX1281HalWriteBuffer (Thumb, 64 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteBuffer)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281HalWriteBuffer ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281SetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteCommand (Thumb, 78 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalWriteCommand)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281SetTxParams -
    • >>   SX1281SetTxContinuousWave -
    • >>   SX1281SetTxContinuousPreamble -
    • >>   SX1281SetTx -
    • >>   SX1281SetStandby -
    • >>   SX1281SetSleep -
    • >>   SX1281SetSaveContext -
    • >>   SX1281SetRxDutyCycle -
    • >>   SX1281SetRx -
    • >>   SX1281SetRfFrequency -
    • >>   SX1281SetRegulatorMode -
    • >>   SX1281SetPacketType -
    • >>   SX1281SetPacketParams -
    • >>   SX1281SetModulationParams -
    • >>   SX1281SetLongPreamble -
    • >>   SX1281SetFs -
    • >>   SX1281SetDioIrqParams -
    • >>   SX1281SetCadParams -
    • >>   SX1281SetCad -
    • >>   SX1281SetBufferBaseAddresses -
    • >>   SX1281SetAutoTx -
    • >>   SX1281SetAutoFS -
    • >>   SX1281ClearIrqStatus -
    • >>   SX1281Calibrate -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteRegister (Thumb, 12 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteRegister)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Called By]
    • >>   SX1281SetWhiteningSeed -
    • >>   SX1281SetSyncWordErrorTolerance -
    • >>   SX1281SetRegistersDefault -
    • >>   SX1281SetBleAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteRegisters (Thumb, 72 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteRegisters)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281HalWriteRegister -
    • >>   SX1281SetSyncWord -
    • >>   SX1281SetCrcSeed -
    • >>   SX1281SetCrcPolynomial -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281Init (Thumb, 12 bytes, Stack size 0 bytes, sx1281.o(i.SX1281Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = SX1281Init ⇒ SX1281HalInit ⇒ SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   SX1281HalInit -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281OnDioIrq (Thumb, 16 bytes, Stack size 0 bytes, sx1281.o(i.SX1281OnDioIrq)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281OnDioIrq ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281ProcessIrqs -
    -
    [Address Reference Count : 1]
    • sx1281.o(.data) -
    -

    SX1281ProcessIrqs (Thumb, 328 bytes, Stack size 16 bytes, sx1281.o(i.SX1281ProcessIrqs)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281GetIrqStatus -
    • >>   SX1281ClearIrqStatus -
    -
    [Called By]
    • >>   main -
    • >>   SX1281OnDioIrq -
    - -

    SX1281SendPayload (Thumb, 18 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SendPayload)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SendPayload ⇒ SX1281SetTx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281SetTx -
    • >>   SX1281SetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetAutoFS (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetAutoFS)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetAutoFS ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetAutoTx (Thumb, 26 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetAutoTx)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetAutoTx ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBleAccessAddress (Thumb, 52 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetBleAccessAddress)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetBleAccessAddress ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Called By]
    • >>   SX1281SetBleAdvertizerAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBleAdvertizerAccessAddress (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetBleAdvertizerAccessAddress)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetBleAdvertizerAccessAddress ⇒ SX1281SetBleAccessAddress ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281SetBleAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBufferBaseAddresses (Thumb, 22 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetBufferBaseAddresses)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetBufferBaseAddresses ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCad (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCad)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetCad ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCadParams (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCadParams)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetCadParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCrcPolynomial (Thumb, 36 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCrcPolynomial)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetCrcPolynomial ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCrcSeed (Thumb, 36 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCrcSeed)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetCrcSeed ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetDioIrqParams (Thumb, 54 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetDioIrqParams)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetDioIrqParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetFs (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetFs)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetFs ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetInterruptMode (Thumb, 8 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetInterruptMode)) -

    [Called By]

    • >>   main -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetLongPreamble (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetLongPreamble)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetLongPreamble ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetModulationParams (Thumb, 142 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetModulationParams)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetModulationParams ⇒ SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281SetPacketType -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPacketParams (Thumb, 212 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetPacketParams)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetPacketParams ⇒ SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281SetPacketType -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPacketType (Thumb, 22 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetPacketType)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Called By]
    • >>   SX1281SetPacketParams -
    • >>   SX1281SetModulationParams -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPayload (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetPayload)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281SetPayload ⇒ SX1281HalWriteBuffer ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteBuffer -
    -
    [Called By]
    • >>   SX1281SendPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPollingMode (Thumb, 8 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetPollingMode)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRegistersDefault (Thumb, 32 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetRegistersDefault)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetRegistersDefault ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRegulatorMode (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRegulatorMode)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetRegulatorMode ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRfFrequency (Thumb, 46 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRfFrequency)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetRfFrequency ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   __aeabi_ui2d -
    • >>   __aeabi_d2uiz -
    • >>   __aeabi_ddiv -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRx (Thumb, 44 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRx)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetRx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281ClearIrqStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRxDutyCycle (Thumb, 44 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetRxDutyCycle)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetRxDutyCycle ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSaveContext (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetSaveContext)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetSaveContext ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSleep (Thumb, 50 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetSleep)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetSleep ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetStandby (Thumb, 30 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetStandby)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetStandby ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSyncWord (Thumb, 104 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetSyncWord)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetSyncWord ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSyncWordErrorTolerance (Thumb, 34 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetSyncWordErrorTolerance)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281SetSyncWordErrorTolerance ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTx (Thumb, 44 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetTx)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetTx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281ClearIrqStatus -
    -
    [Called By]
    • >>   SX1281SendPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxContinuousPreamble (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetTxContinuousPreamble)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetTxContinuousPreamble ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxContinuousWave (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetTxContinuousWave)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetTxContinuousWave ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxParams (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetTxParams)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetTxParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetWhiteningSeed (Thumb, 26 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetWhiteningSeed)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetWhiteningSeed ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SpiIn (Thumb, 18 bytes, Stack size 0 bytes, hw-spi.o(i.SpiIn)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   BSP_SPI_Transmit -
    -
    [Called By]
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    - -

    SpiInOut (Thumb, 26 bytes, Stack size 16 bytes, hw-spi.o(i.SpiInOut)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   BSP_SPI_TransmitReceive -
    -
    [Called By]
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    SpiInit (Thumb, 26 bytes, Stack size 8 bytes, hw-spi.o(i.SpiInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = SpiInit -
    -
    [Calls]
    • >>   BSP_SPI_RegisterCallback -
    -
    [Called By]
    • >>   HwInit -
    - -

    SysTick_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SysTick_Handler)) -

    [Calls]

    • >>   HAL_IncTick -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    SystemClock_Config (Thumb, 96 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_RCC_OscConfig -
    • >>   HAL_RCC_ClockConfig -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   main -
    - -

    SystemInit (Thumb, 2 bytes, Stack size 0 bytes, system_stm32f1xx.o(i.SystemInit)) +

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(.text)
    -

    TIM_Base_SetConfig (Thumb, 108 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = TIM_Base_SetConfig -
    -
    [Called By]