From c81173d0bde596702e85d95985a815d6311349fb Mon Sep 17 00:00:00 2001 From: wantong Date: Fri, 26 Apr 2024 10:03:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8USB=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E6=AD=A5=E6=95=B0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=EF=BC=8C=E4=B8=80=E7=BB=84=E5=8D=81=E4=B8=AA=E5=AD=97=E8=8A=82?= =?UTF-8?q?=EF=BC=8C=E5=B8=A7=E5=A4=B40d=20ff=EF=BC=8C=E5=89=8D=E5=9B=9B?= =?UTF-8?q?=E4=B8=AA=E5=AD=97=E8=8A=82=E7=BC=96=E7=A0=81=E5=99=A8=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E5=90=8E=E5=9B=9B=E4=B8=AA=E5=AD=97=E8=8A=82=E6=98=AF?= =?UTF-8?q?=E6=97=B6=E9=97=B4ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cproject | 16 +- .mxproject | 38 +- CMakeLists.txt | 4 +- Core/Inc/stm32h7xx_hal_conf.h | 2 +- Core/Inc/stm32h7xx_it.h | 5 +- Core/Src/gpio.c | 22 +- Core/Src/main.c | 51 +- Core/Src/stm32h7xx_it.c | 57 +- Core/Src/usart.c | 36 +- .../Inc/stm32h7xx_hal_pcd.h | 444 ++ .../Inc/stm32h7xx_hal_pcd_ex.h | 88 + .../Inc/stm32h7xx_ll_usb.h | 578 +++ .../Src/stm32h7xx_hal_pcd.c | 2347 +++++++++ .../Src/stm32h7xx_hal_pcd_ex.c | 341 ++ .../Src/stm32h7xx_ll_usb.c | 2257 +++++++++ Encoder_Time_Sysn.ioc | 85 +- .../Class/CDC/Inc/usbd_cdc.h | 184 + .../Class/CDC/Src/usbd_cdc.c | 893 ++++ .../Core/Inc/usbd_core.h | 175 + .../Core/Inc/usbd_ctlreq.h | 101 + .../Core/Inc/usbd_def.h | 523 ++ .../Core/Inc/usbd_ioreq.h | 113 + .../Core/Src/usbd_core.c | 1215 +++++ .../Core/Src/usbd_ctlreq.c | 1058 ++++ .../Core/Src/usbd_ioreq.c | 224 + .../ST/STM32_USB_Device_Library/LICENSE.txt | 86 + USB_DEVICE/App/usb_device.c | 101 + USB_DEVICE/App/usb_device.h | 102 + USB_DEVICE/App/usbd_cdc_if.c | 327 ++ USB_DEVICE/App/usbd_cdc_if.h | 131 + USB_DEVICE/App/usbd_desc.c | 409 ++ USB_DEVICE/App/usbd_desc.h | 143 + USB_DEVICE/Target/usbd_conf.c | 745 +++ USB_DEVICE/Target/usbd_conf.h | 173 + .../codemodel-v2-1a2d6be2abeda14778e8.json | 60 - .../reply/index-2024-04-25T07-38-58-0517.json | 108 - ...e_Sysn.elf-Debug-46b275c97fe50eba4e31.json | 1080 ---- .../3.22.3/CMakeDetermineCompilerABI_C.bin | Bin 1656 -> 1656 bytes .../3.22.3/CMakeDetermineCompilerABI_CXX.bin | Bin 1872 -> 1872 bytes cmake-build-debug/CMakeFiles/CMakeOutput.log | 104 +- .../Core/Src/dma.c.obj.d | 5 +- .../Core/Src/gpio.c.obj | Bin 12376 -> 12616 bytes .../Core/Src/gpio.c.obj.d | 5 +- .../Core/Src/main.c.obj | Bin 23908 -> 24772 bytes .../Core/Src/main.c.obj.d | 37 +- .../Core/Src/retarget.c.obj.d | 3 + .../Core/Src/stm32h7xx_hal_msp.c.obj.d | 5 +- .../Core/Src/stm32h7xx_it.c.obj | Bin 14992 -> 19500 bytes .../Core/Src/stm32h7xx_it.c.obj.d | 3 + .../Core/Src/system_stm32h7xx.c.obj.d | 5 +- .../Core/Src/tim.c.obj.d | 5 +- .../Core/Src/usart.c.obj | Bin 22084 -> 21320 bytes .../Core/Src/usart.c.obj.d | 17 +- .../DependInfo.cmake | 15 + .../Src/stm32h7xx_hal.c.obj.d | 5 +- .../Src/stm32h7xx_hal_cortex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_dma.c.obj.d | 5 +- .../Src/stm32h7xx_hal_dma_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_exti.c.obj.d | 5 +- .../Src/stm32h7xx_hal_flash.c.obj.d | 5 +- .../Src/stm32h7xx_hal_flash_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_gpio.c.obj.d | 5 +- .../Src/stm32h7xx_hal_hsem.c.obj.d | 5 +- .../Src/stm32h7xx_hal_i2c.c.obj.d | 5 +- .../Src/stm32h7xx_hal_i2c_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_mdma.c.obj.d | 5 +- .../Src/stm32h7xx_hal_pwr.c.obj.d | 5 +- .../Src/stm32h7xx_hal_pwr_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_rcc.c.obj.d | 5 +- .../Src/stm32h7xx_hal_rcc_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_tim.c.obj.d | 5 +- .../Src/stm32h7xx_hal_tim_ex.c.obj.d | 5 +- .../Src/stm32h7xx_hal_uart.c.obj.d | 5 +- .../Src/stm32h7xx_hal_uart_ex.c.obj.d | 5 +- .../Encoder_Time_Sysn.elf.dir/build.make | 196 +- .../cmake_clean.cmake | 22 + .../compiler_depend.internal | 1002 +++- .../compiler_depend.make | 1135 ++++- .../Encoder_Time_Sysn.elf.dir/flags.make | 4 +- .../Encoder_Time_Sysn.elf.dir/link.txt | 2 +- .../Encoder_Time_Sysn.elf.dir/progress.make | 11 + cmake-build-debug/CMakeFiles/Makefile2 | 4 +- cmake-build-debug/CMakeFiles/progress.marks | 2 +- cmake-build-debug/Encoder_Time_Sysn.bin | Bin 32096 -> 43100 bytes cmake-build-debug/Encoder_Time_Sysn.cbp | 80 + cmake-build-debug/Encoder_Time_Sysn.elf | Bin 524948 -> 675856 bytes cmake-build-debug/Encoder_Time_Sysn.hex | 4443 ++++++++++------- cmake-build-debug/Encoder_Time_Sysn.map | 2404 ++++++--- cmake-build-debug/Makefile | 297 ++ 89 files changed, 19992 insertions(+), 4236 deletions(-) create mode 100644 Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h create mode 100644 Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h create mode 100644 Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h create mode 100644 Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c create mode 100644 Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c create mode 100644 Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c create mode 100644 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c create mode 100644 Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt create mode 100644 USB_DEVICE/App/usb_device.c create mode 100644 USB_DEVICE/App/usb_device.h create mode 100644 USB_DEVICE/App/usbd_cdc_if.c create mode 100644 USB_DEVICE/App/usbd_cdc_if.h create mode 100644 USB_DEVICE/App/usbd_desc.c create mode 100644 USB_DEVICE/App/usbd_desc.h create mode 100644 USB_DEVICE/Target/usbd_conf.c create mode 100644 USB_DEVICE/Target/usbd_conf.h delete mode 100644 cmake-build-debug/.cmake/api/v1/reply/codemodel-v2-1a2d6be2abeda14778e8.json delete mode 100644 cmake-build-debug/.cmake/api/v1/reply/index-2024-04-25T07-38-58-0517.json delete mode 100644 cmake-build-debug/.cmake/api/v1/reply/target-Encoder_Time_Sysn.elf-Debug-46b275c97fe50eba4e31.json diff --git a/.cproject b/.cproject index 575090d..c96db47 100644 --- a/.cproject +++ b/.cproject @@ -23,7 +23,7 @@ @@ -75,7 +79,9 @@ + + @@ -103,7 +109,7 @@ @@ -151,7 +161,9 @@ + + diff --git a/.mxproject b/.mxproject index d8fba40..23376ac 100644 --- a/.mxproject +++ b/.mxproject @@ -1,33 +1,45 @@ [PreviousLibFiles] -LibFiles=Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_bus.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_crs.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_system.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_utils.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dmamux.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_mdma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_def.h;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_lpuart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart_ex.h;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_bus.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_crs.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_system.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_utils.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dmamux.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_mdma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_def.h;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_lpuart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart_ex.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h750xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\system_stm32h7xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.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_armv81mml.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_cm35p.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; +LibFiles=Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pcd.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pcd_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usb.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_bus.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_crs.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_system.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_utils.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dmamux.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_mdma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_def.h;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_lpuart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart_ex.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_core.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_ctlreq.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_def.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_ioreq.h;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc\usbd_cdc.h;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pcd.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pcd_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usb.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_rcc_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_bus.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_rcc.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_crs.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_system.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_utils.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_flash_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_gpio_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_gpio.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_hsem.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_dma_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_dmamux.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_mdma.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_pwr_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_pwr.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_cortex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_def.h;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_i2c_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_exti.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_tim_ex.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_tim.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_usart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_ll_lpuart.h;Drivers\STM32H7xx_HAL_Driver\Inc\stm32h7xx_hal_uart_ex.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_core.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_ctlreq.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_def.h;Middlewares\ST\STM32_USB_Device_Library\Core\Inc\usbd_ioreq.h;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc\usbd_cdc.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h750xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Include\system_stm32h7xx.h;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.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_armv81mml.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_cm35p.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; [PreviousUsedCubeIDEFiles] -SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\dma.c;Core\Src\tim.c;Core\Src\usart.c;Core\Src\stm32h7xx_it.c;Core\Src\stm32h7xx_hal_msp.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Core\Src\system_stm32h7xx.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Core\Src\system_stm32h7xx.c;;; -HeaderPath=Drivers\STM32H7xx_HAL_Driver\Inc;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32H7xx\Include;Drivers\CMSIS\Include;Core\Inc; +SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\dma.c;Core\Src\tim.c;Core\Src\usart.c;USB_DEVICE\App\usb_device.c;USB_DEVICE\Target\usbd_conf.c;USB_DEVICE\App\usbd_desc.c;USB_DEVICE\App\usbd_cdc_if.c;Core\Src\stm32h7xx_it.c;Core\Src\stm32h7xx_hal_msp.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Core\Src\system_stm32h7xx.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_flash_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_gpio.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_hsem.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_dma_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_mdma.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_cortex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_i2c_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_exti.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c;Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c;Drivers\CMSIS\Device\ST\STM32H7xx\Source\Templates\system_stm32h7xx.c;Core\Src\system_stm32h7xx.c;;;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c;Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c; +HeaderPath=Drivers\STM32H7xx_HAL_Driver\Inc;Drivers\STM32H7xx_HAL_Driver\Inc\Legacy;Middlewares\ST\STM32_USB_Device_Library\Core\Inc;Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc;Drivers\CMSIS\Device\ST\STM32H7xx\Include;Drivers\CMSIS\Include;Core\Inc;USB_DEVICE\App;USB_DEVICE\Target; CDefines=USE_HAL_DRIVER;STM32H750xx;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=7 +HeaderFileListSize=11 HeaderFiles#0=..\Core\Inc\gpio.h HeaderFiles#1=..\Core\Inc\dma.h HeaderFiles#2=..\Core\Inc\tim.h HeaderFiles#3=..\Core\Inc\usart.h -HeaderFiles#4=..\Core\Inc\stm32h7xx_it.h -HeaderFiles#5=..\Core\Inc\stm32h7xx_hal_conf.h -HeaderFiles#6=..\Core\Inc\main.h -HeaderFolderListSize=1 +HeaderFiles#4=..\USB_DEVICE\App\usb_device.h +HeaderFiles#5=..\USB_DEVICE\Target\usbd_conf.h +HeaderFiles#6=..\USB_DEVICE\App\usbd_desc.h +HeaderFiles#7=..\USB_DEVICE\App\usbd_cdc_if.h +HeaderFiles#8=..\Core\Inc\stm32h7xx_it.h +HeaderFiles#9=..\Core\Inc\stm32h7xx_hal_conf.h +HeaderFiles#10=..\Core\Inc\main.h +HeaderFolderListSize=3 HeaderPath#0=..\Core\Inc +HeaderPath#1=..\USB_DEVICE\App +HeaderPath#2=..\USB_DEVICE\Target HeaderFiles=; -SourceFileListSize=7 +SourceFileListSize=11 SourceFiles#0=..\Core\Src\gpio.c SourceFiles#1=..\Core\Src\dma.c SourceFiles#2=..\Core\Src\tim.c SourceFiles#3=..\Core\Src\usart.c -SourceFiles#4=..\Core\Src\stm32h7xx_it.c -SourceFiles#5=..\Core\Src\stm32h7xx_hal_msp.c -SourceFiles#6=..\Core\Src\main.c -SourceFolderListSize=1 +SourceFiles#4=..\USB_DEVICE\App\usb_device.c +SourceFiles#5=..\USB_DEVICE\Target\usbd_conf.c +SourceFiles#6=..\USB_DEVICE\App\usbd_desc.c +SourceFiles#7=..\USB_DEVICE\App\usbd_cdc_if.c +SourceFiles#8=..\Core\Src\stm32h7xx_it.c +SourceFiles#9=..\Core\Src\stm32h7xx_hal_msp.c +SourceFiles#10=..\Core\Src\main.c +SourceFolderListSize=3 SourcePath#0=..\Core\Src +SourcePath#1=..\USB_DEVICE\App +SourcePath#2=..\USB_DEVICE\Target SourceFiles=; diff --git a/CMakeLists.txt b/CMakeLists.txt index 95ac367..44a087d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,11 +49,11 @@ else () add_compile_options(-Og -g) endif () -include_directories(Core/Inc Drivers/STM32H7xx_HAL_Driver/Inc Drivers/STM32H7xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32H7xx/Include Drivers/CMSIS/Include) +include_directories(Core/Inc Drivers/STM32H7xx_HAL_Driver/Inc Drivers/STM32H7xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32H7xx/Include Drivers/CMSIS/Include USB_DEVICE/App USB_DEVICE/Target Middlewares/ST/STM32_USB_Device_Library/Core/Inc Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc) add_definitions(-DDEBUG -DUSE_HAL_DRIVER -DSTM32H750xx) -file(GLOB_RECURSE SOURCES "Core/*.*" "Drivers/*.*") +file(GLOB_RECURSE SOURCES "Core/*.*" "Middlewares/*.*" "Drivers/*.*" "USB_DEVICE/*.*") set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/STM32H750VBTX_FLASH.ld) diff --git a/Core/Inc/stm32h7xx_hal_conf.h b/Core/Inc/stm32h7xx_hal_conf.h index cbcdf23..6b21f95 100644 --- a/Core/Inc/stm32h7xx_hal_conf.h +++ b/Core/Inc/stm32h7xx_hal_conf.h @@ -81,7 +81,7 @@ /* #define HAL_IRDA_MODULE_ENABLED */ /* #define HAL_SMARTCARD_MODULE_ENABLED */ /* #define HAL_WWDG_MODULE_ENABLED */ -/* #define HAL_PCD_MODULE_ENABLED */ +#define HAL_PCD_MODULE_ENABLED /* #define HAL_HCD_MODULE_ENABLED */ /* #define HAL_DFSDM_MODULE_ENABLED */ /* #define HAL_DSI_MODULE_ENABLED */ diff --git a/Core/Inc/stm32h7xx_it.h b/Core/Inc/stm32h7xx_it.h index 929f35e..866d86a 100644 --- a/Core/Inc/stm32h7xx_it.h +++ b/Core/Inc/stm32h7xx_it.h @@ -55,11 +55,14 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); -void EXTI2_IRQHandler(void); +void EXTI1_IRQHandler(void); void EXTI4_IRQHandler(void); void DMA1_Stream0_IRQHandler(void); void TIM2_IRQHandler(void); void USART1_IRQHandler(void); +void OTG_HS_EP1_OUT_IRQHandler(void); +void OTG_HS_EP1_IN_IRQHandler(void); +void OTG_HS_IRQHandler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 24b3295..25ca34a 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -43,17 +43,25 @@ void MX_GPIO_Init(void) /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); - /*Configure GPIO pins : PA2 PA4 */ - GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_4; + /*Configure GPIO pin : PC1 */ + GPIO_InitStruct.Pin = GPIO_PIN_1; + GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /*Configure GPIO pin : PA4 */ + GPIO_InitStruct.Pin = GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* EXTI interrupt init*/ - HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(EXTI2_IRQn); + HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(EXTI1_IRQn); HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI4_IRQn); @@ -65,12 +73,12 @@ volatile uint8_t captureFlag = 0; extern uint32_t G_StartMillis; void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { - if (GPIO_Pin == GPIO_PIN_2) + if (GPIO_Pin == GPIO_PIN_1) { - // ?查捕获标志,避免重复捕获 + // �?查捕获标志,避免重复捕获 if (!captureFlag) { - // 处理上升沿触发事? + // 处理上升沿触发事�? G_StartMillis=0; G_StartMillis = HAL_GetTick(); //获取当前系统时间 diff --git a/Core/Src/main.c b/Core/Src/main.c index 6dcdec5..acefede 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -21,10 +21,12 @@ #include "dma.h" #include "tim.h" #include "usart.h" +#include "usb_device.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#include "usbd_cdc_if.h" #include "retarget.h" /* USER CODE END Includes */ @@ -49,14 +51,15 @@ volatile uint32_t G_StartMillis = 0; volatile uint32_t G_CurrentMillis = 0; int enc; -uint8_t buf[10]; +int enc_old; +uint8_t buf[1000]; /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MPU_Config(void); /* USER CODE BEGIN PFP */ -void data_shift(); +void data_shift(int i); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ @@ -104,6 +107,7 @@ int main(void) MX_DMA_Init(); MX_TIM2_Init(); MX_USART1_UART_Init(); + MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ RetargetInit(&huart1); HAL_TIM_Encoder_Start(&htim2, TIM_CHANNEL_ALL); @@ -117,11 +121,21 @@ int main(void) /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ + for(int i=0;i<1000;i+=10) + { + enc_old = __HAL_TIM_GET_COUNTER(&htim2);//获取第一次定时器的值 + enc = enc_old; + while(abs(enc-enc_old)==0) { + enc = __HAL_TIM_GET_COUNTER(&htim2);//获取第二次定时器的值 + } - enc = __HAL_TIM_GET_COUNTER(&htim2);//获取定时器的值 - G_CurrentMillis = HAL_GetTick()-G_StartMillis; - data_shift(); - HAL_UART_Transmit_DMA(&huart1, buf, sizeof(buf)); + G_CurrentMillis = HAL_GetTick()-G_StartMillis; + data_shift(i); + } + + //HAL_UART_Transmit_DMA(&huart1, buf, sizeof(buf)); + CDC_Transmit_HS(buf, sizeof(buf)); + //HAL_Delay(10); // printf("start time:%lu\r\n", G_StartMillis); // printf("current time:%lu\r\n", G_CurrentMillis); @@ -158,8 +172,9 @@ void SystemClock_Config(void) /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 2; @@ -196,17 +211,17 @@ void SystemClock_Config(void) /* USER CODE BEGIN 4 */ -void data_shift(){ - buf[0] = (uint8_t)(enc & 0xFF); - buf[1] = (uint8_t)((enc >> 8) & 0xFF); - buf[2] = (uint8_t)((enc >> 16) & 0xFF); - buf[3] = (uint8_t)((enc >> 24) & 0xFF); - buf[4] = G_CurrentMillis & 0xFF; - buf[5] = (G_CurrentMillis >> 8) & 0xFF; - buf[6] = (G_CurrentMillis >> 16) & 0xFF; - buf[7] = (G_CurrentMillis >> 24) & 0xFF; - buf[8] = 0x0d; - buf[9] = 0xff; +void data_shift(int i){ + buf[i+0] = (uint8_t)(enc & 0xFF); + buf[i+1] = (uint8_t)((enc >> 8) & 0xFF); + buf[i+2] = (uint8_t)((enc >> 16) & 0xFF); + buf[i+3] = (uint8_t)((enc >> 24) & 0xFF); + buf[i+4] = G_CurrentMillis & 0xFF; + buf[i+5] = (G_CurrentMillis >> 8) & 0xFF; + buf[i+6] = (G_CurrentMillis >> 16) & 0xFF; + buf[i+7] = (G_CurrentMillis >> 24) & 0xFF; + buf[i+8] = 0x0d; + buf[i+9] = 0xff; } /* USER CODE END 4 */ diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index 91c7344..688445b 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -55,6 +55,7 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ +extern PCD_HandleTypeDef hpcd_USB_OTG_HS; extern TIM_HandleTypeDef htim2; extern DMA_HandleTypeDef hdma_usart1_tx; extern UART_HandleTypeDef huart1; @@ -201,17 +202,17 @@ void SysTick_Handler(void) /******************************************************************************/ /** - * @brief This function handles EXTI line2 interrupt. + * @brief This function handles EXTI line1 interrupt. */ -void EXTI2_IRQHandler(void) +void EXTI1_IRQHandler(void) { - /* USER CODE BEGIN EXTI2_IRQn 0 */ + /* USER CODE BEGIN EXTI1_IRQn 0 */ - /* USER CODE END EXTI2_IRQn 0 */ - HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); - /* USER CODE BEGIN EXTI2_IRQn 1 */ + /* USER CODE END EXTI1_IRQn 0 */ + HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1); + /* USER CODE BEGIN EXTI1_IRQn 1 */ - /* USER CODE END EXTI2_IRQn 1 */ + /* USER CODE END EXTI1_IRQn 1 */ } /** @@ -270,6 +271,48 @@ void USART1_IRQHandler(void) /* USER CODE END USART1_IRQn 1 */ } +/** + * @brief This function handles USB On The Go HS End Point 1 Out global interrupt. + */ +void OTG_HS_EP1_OUT_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_HS_EP1_OUT_IRQn 0 */ + + /* USER CODE END OTG_HS_EP1_OUT_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_HS); + /* USER CODE BEGIN OTG_HS_EP1_OUT_IRQn 1 */ + + /* USER CODE END OTG_HS_EP1_OUT_IRQn 1 */ +} + +/** + * @brief This function handles USB On The Go HS End Point 1 In global interrupt. + */ +void OTG_HS_EP1_IN_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_HS_EP1_IN_IRQn 0 */ + + /* USER CODE END OTG_HS_EP1_IN_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_HS); + /* USER CODE BEGIN OTG_HS_EP1_IN_IRQn 1 */ + + /* USER CODE END OTG_HS_EP1_IN_IRQn 1 */ +} + +/** + * @brief This function handles USB On The Go HS global interrupt. + */ +void OTG_HS_IRQHandler(void) +{ + /* USER CODE BEGIN OTG_HS_IRQn 0 */ + + /* USER CODE END OTG_HS_IRQn 0 */ + HAL_PCD_IRQHandler(&hpcd_USB_OTG_HS); + /* USER CODE BEGIN OTG_HS_IRQn 1 */ + + /* USER CODE END OTG_HS_IRQn 1 */ +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/Core/Src/usart.c b/Core/Src/usart.c index d201b66..fe4bff2 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -19,7 +19,7 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "usart.h" -#include "stdio.h" + /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ @@ -164,21 +164,21 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) } /* USER CODE BEGIN 1 */ -#define SEND_COUNT 5 -volatile uint32_t sendCount = 0; -uint8_t data = 16; -void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) -{ - if (huart->Instance == USART1) - { - sendCount++; // 每次传输完成增加计数 - - if (sendCount >= SEND_COUNT) - { - // 达到指定次数后停止传输 - - - } - } -} +//#define SEND_COUNT 5 +//volatile uint32_t sendCount = 0; +//uint8_t data = 16; +//void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +//{ +// if (huart->Instance == USART1) +// { +// sendCount++; // 每次传输完成增加计数 +// +// if (sendCount >= SEND_COUNT) +// { +// // 达到指定次数后停止传�? +// +// +// } +// } +//} /* USER CODE END 1 */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h new file mode 100644 index 0000000..f1fe87f --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h @@ -0,0 +1,444 @@ +/** + ****************************************************************************** + * @file stm32h7xx_hal_pcd.h + * @author MCD Application Team + * @brief Header file of PCD HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32H7xx_HAL_PCD_H +#define STM32H7xx_HAL_PCD_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_ll_usb.h" + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) + +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +/** @addtogroup PCD + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +/** @defgroup PCD_Exported_Types PCD Exported Types + * @{ + */ + +/** + * @brief PCD State structure definition + */ +typedef enum +{ + HAL_PCD_STATE_RESET = 0x00, + HAL_PCD_STATE_READY = 0x01, + HAL_PCD_STATE_ERROR = 0x02, + HAL_PCD_STATE_BUSY = 0x03, + HAL_PCD_STATE_TIMEOUT = 0x04 +} PCD_StateTypeDef; + +/* Device LPM suspend state */ +typedef enum +{ + LPM_L0 = 0x00, /* on */ + LPM_L1 = 0x01, /* LPM L1 sleep */ + LPM_L2 = 0x02, /* suspend */ + LPM_L3 = 0x03, /* off */ +} PCD_LPM_StateTypeDef; + +typedef enum +{ + PCD_LPM_L0_ACTIVE = 0x00, /* on */ + PCD_LPM_L1_ACTIVE = 0x01, /* LPM L1 sleep */ +} PCD_LPM_MsgTypeDef; + +typedef enum +{ + PCD_BCD_ERROR = 0xFF, + PCD_BCD_CONTACT_DETECTION = 0xFE, + PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD, + PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC, + PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB, + PCD_BCD_DISCOVERY_COMPLETED = 0x00, + +} PCD_BCD_MsgTypeDef; + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +typedef USB_OTG_GlobalTypeDef PCD_TypeDef; +typedef USB_OTG_CfgTypeDef PCD_InitTypeDef; +typedef USB_OTG_EPTypeDef PCD_EPTypeDef; +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +/** + * @brief PCD Handle Structure definition + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +typedef struct __PCD_HandleTypeDef +#else +typedef struct +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + PCD_TypeDef *Instance; /*!< Register base address */ + PCD_InitTypeDef Init; /*!< PCD required parameters */ + __IO uint8_t USB_Address; /*!< USB Address */ + PCD_EPTypeDef IN_ep[16]; /*!< IN endpoint parameters */ + PCD_EPTypeDef OUT_ep[16]; /*!< OUT endpoint parameters */ + HAL_LockTypeDef Lock; /*!< PCD peripheral status */ + __IO PCD_StateTypeDef State; /*!< PCD communication state */ + __IO uint32_t ErrorCode; /*!< PCD Error code */ + uint32_t Setup[12]; /*!< Setup packet buffer */ + PCD_LPM_StateTypeDef LPM_State; /*!< LPM State */ + uint32_t BESL; + uint32_t FrameNumber; /*!< Store Current Frame number */ + + + uint32_t lpm_active; /*!< Enable or disable the Link Power Management . + This parameter can be set to ENABLE or DISABLE */ + + uint32_t battery_charging_active; /*!< Enable or disable Battery charging. + This parameter can be set to ENABLE or DISABLE */ + void *pData; /*!< Pointer to upper stack Handler */ + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + void (* SOFCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD SOF callback */ + void (* SetupStageCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Setup Stage callback */ + void (* ResetCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Reset callback */ + void (* SuspendCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Suspend callback */ + void (* ResumeCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Resume callback */ + void (* ConnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Connect callback */ + void (* DisconnectCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Disconnect callback */ + + void (* DataOutStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data OUT Stage callback */ + void (* DataInStageCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD Data IN Stage callback */ + void (* ISOOUTIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO OUT Incomplete callback */ + void (* ISOINIncompleteCallback)(struct __PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< USB OTG PCD ISO IN Incomplete callback */ + void (* BCDCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< USB OTG PCD BCD callback */ + void (* LPMCallback)(struct __PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< USB OTG PCD LPM callback */ + + void (* MspInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp Init callback */ + void (* MspDeInitCallback)(struct __PCD_HandleTypeDef *hpcd); /*!< USB OTG PCD Msp DeInit callback */ +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +} PCD_HandleTypeDef; + +/** + * @} + */ + +/* Include PCD HAL Extended module */ +#include "stm32h7xx_hal_pcd_ex.h" + +/* Exported constants --------------------------------------------------------*/ +/** @defgroup PCD_Exported_Constants PCD Exported Constants + * @{ + */ + +/** @defgroup PCD_Speed PCD Speed + * @{ + */ +#define PCD_SPEED_HIGH USBD_HS_SPEED +#define PCD_SPEED_HIGH_IN_FULL USBD_HSINFS_SPEED +#define PCD_SPEED_FULL USBD_FS_SPEED +/** + * @} + */ + +/** @defgroup PCD_PHY_Module PCD PHY Module + * @{ + */ +#define PCD_PHY_ULPI 1U +#define PCD_PHY_EMBEDDED 2U +#define PCD_PHY_UTMI 3U +/** + * @} + */ + +/** @defgroup PCD_Error_Code_definition PCD Error Code definition + * @brief PCD Error Code definition + * @{ + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +#define HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) /*!< Invalid Callback error */ +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** + * @} + */ + +/* Exported macros -----------------------------------------------------------*/ +/** @defgroup PCD_Exported_Macros PCD Exported Macros + * @brief macros to handle interrupts and specific clock configurations + * @{ + */ +#define __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance) +#define __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance) + +#define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) \ + ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__)) + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) &= (__INTERRUPT__)) +#define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0U) + +#define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) \ + *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= ~(USB_OTG_PCGCCTL_STOPCLK) + +#define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) \ + *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK + +#define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) \ + ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE)) & 0x10U) + +#define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI_D1->IMR2 |= (USB_OTG_HS_WAKEUP_EXTI_LINE) +#define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI_D1->IMR2 &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE) +#define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI_D1->IMR2 |= (USB_OTG_FS_WAKEUP_EXTI_LINE) +#define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI_D1->IMR2 &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE) +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + + +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup PCD_Exported_Functions PCD Exported Functions + * @{ + */ + +/* Initialization/de-initialization functions ********************************/ +/** @addtogroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions + * @{ + */ +HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd); +void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd); +void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd); + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +/** @defgroup HAL_PCD_Callback_ID_enumeration_definition HAL USB OTG PCD Callback ID enumeration definition + * @brief HAL USB OTG PCD Callback ID enumeration definition + * @{ + */ +typedef enum +{ + HAL_PCD_SOF_CB_ID = 0x01, /*!< USB PCD SOF callback ID */ + HAL_PCD_SETUPSTAGE_CB_ID = 0x02, /*!< USB PCD Setup Stage callback ID */ + HAL_PCD_RESET_CB_ID = 0x03, /*!< USB PCD Reset callback ID */ + HAL_PCD_SUSPEND_CB_ID = 0x04, /*!< USB PCD Suspend callback ID */ + HAL_PCD_RESUME_CB_ID = 0x05, /*!< USB PCD Resume callback ID */ + HAL_PCD_CONNECT_CB_ID = 0x06, /*!< USB PCD Connect callback ID */ + HAL_PCD_DISCONNECT_CB_ID = 0x07, /*!< USB PCD Disconnect callback ID */ + + HAL_PCD_MSPINIT_CB_ID = 0x08, /*!< USB PCD MspInit callback ID */ + HAL_PCD_MSPDEINIT_CB_ID = 0x09 /*!< USB PCD MspDeInit callback ID */ + +} HAL_PCD_CallbackIDTypeDef; +/** + * @} + */ + +/** @defgroup HAL_PCD_Callback_pointer_definition HAL USB OTG PCD Callback pointer definition + * @brief HAL USB OTG PCD Callback pointer definition + * @{ + */ + +typedef void (*pPCD_CallbackTypeDef)(PCD_HandleTypeDef *hpcd); /*!< pointer to a common USB OTG PCD callback function */ +typedef void (*pPCD_DataOutStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data OUT Stage callback */ +typedef void (*pPCD_DataInStageCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD Data IN Stage callback */ +typedef void (*pPCD_IsoOutIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO OUT Incomplete callback */ +typedef void (*pPCD_IsoInIncpltCallbackTypeDef)(PCD_HandleTypeDef *hpcd, uint8_t epnum); /*!< pointer to USB OTG PCD ISO IN Incomplete callback */ +typedef void (*pPCD_LpmCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); /*!< pointer to USB OTG PCD LPM callback */ +typedef void (*pPCD_BcdCallbackTypeDef)(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); /*!< pointer to USB OTG PCD BCD callback */ + +/** + * @} + */ + +HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID, + pPCD_CallbackTypeDef pCallback); + +HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID); + +HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, + pPCD_DataOutStageCallbackTypeDef pCallback); + +HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd); + +HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, + pPCD_DataInStageCallbackTypeDef pCallback); + +HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd); + +HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, + pPCD_IsoOutIncpltCallbackTypeDef pCallback); + +HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd); + +HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, + pPCD_IsoInIncpltCallbackTypeDef pCallback); + +HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd); + +HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd); + +HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback); +HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +/** + * @} + */ + +/* I/O operation functions ***************************************************/ +/* Non-Blocking mode: Interrupt */ +/** @addtogroup PCD_Exported_Functions_Group2 Input and Output operation functions + * @{ + */ +HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd); +void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd); + +void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd); +void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd); + +void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); +void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); +void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); +void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum); +/** + * @} + */ + +/* Peripheral Control functions **********************************************/ +/** @addtogroup PCD_Exported_Functions_Group3 Peripheral Control functions + * @{ + */ +HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address); +HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type); +HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); +HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len); +HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len); +HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); +HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); +HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); +HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr); +HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd); +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +HAL_StatusTypeDef HAL_PCD_SetTestMode(const PCD_HandleTypeDef *hpcd, uint8_t testmode); +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr); +/** + * @} + */ + +/* Peripheral State functions ************************************************/ +/** @addtogroup PCD_Exported_Functions_Group4 Peripheral State functions + * @{ + */ +PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd); +/** + * @} + */ + +/** + * @} + */ + +/* Private constants ---------------------------------------------------------*/ +/** @defgroup PCD_Private_Constants PCD Private Constants + * @{ + */ +/** @defgroup USB_EXTI_Line_Interrupt USB EXTI line interrupt + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +#define USB_OTG_FS_WAKEUP_EXTI_LINE (0x1U << 12) /*!< USB FS EXTI Line WakeUp Interrupt */ +#define USB_OTG_HS_WAKEUP_EXTI_LINE (0x1U << 11) /*!< USB HS EXTI Line WakeUp Interrupt */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + + +/** + * @} + */ +/** + * @} + */ + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +#ifndef USB_OTG_DOEPINT_OTEPSPR +#define USB_OTG_DOEPINT_OTEPSPR (0x1UL << 5) /*!< Status Phase Received interrupt */ +#endif /* defined USB_OTG_DOEPINT_OTEPSPR */ + +#ifndef USB_OTG_DOEPMSK_OTEPSPRM +#define USB_OTG_DOEPMSK_OTEPSPRM (0x1UL << 5) /*!< Setup Packet Received interrupt mask */ +#endif /* defined USB_OTG_DOEPMSK_OTEPSPRM */ + +#ifndef USB_OTG_DOEPINT_NAK +#define USB_OTG_DOEPINT_NAK (0x1UL << 13) /*!< NAK interrupt */ +#endif /* defined USB_OTG_DOEPINT_NAK */ + +#ifndef USB_OTG_DOEPMSK_NAKM +#define USB_OTG_DOEPMSK_NAKM (0x1UL << 13) /*!< OUT Packet NAK interrupt mask */ +#endif /* defined USB_OTG_DOEPMSK_NAKM */ + +#ifndef USB_OTG_DOEPINT_STPKTRX +#define USB_OTG_DOEPINT_STPKTRX (0x1UL << 15) /*!< Setup Packet Received interrupt */ +#endif /* defined USB_OTG_DOEPINT_STPKTRX */ + +#ifndef USB_OTG_DOEPMSK_NYETM +#define USB_OTG_DOEPMSK_NYETM (0x1UL << 14) /*!< Setup Packet Received interrupt mask */ +#endif /* defined USB_OTG_DOEPMSK_NYETM */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +/* Private macros ------------------------------------------------------------*/ +/** @defgroup PCD_Private_Macros PCD Private Macros + * @{ + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +#ifdef __cplusplus +} +#endif + +#endif /* STM32H7xx_HAL_PCD_H */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h new file mode 100644 index 0000000..9cfa012 --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h @@ -0,0 +1,88 @@ +/** + ****************************************************************************** + * @file stm32h7xx_hal_pcd_ex.h + * @author MCD Application Team + * @brief Header file of PCD HAL Extension module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32H7xx_HAL_PCD_EX_H +#define STM32H7xx_HAL_PCD_EX_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal_def.h" + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +/** @addtogroup PCDEx + * @{ + */ +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ +/* Exported macros -----------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions + * @{ + */ +/** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions + * @{ + */ + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size); +HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size); +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + + +HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd); + + +HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd); +HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd); +void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd); + +void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg); +void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* STM32H7xx_HAL_PCD_EX_H */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h new file mode 100644 index 0000000..9cfe6a1 --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h @@ -0,0 +1,578 @@ +/** + ****************************************************************************** + * @file stm32h7xx_ll_usb.h + * @author MCD Application Team + * @brief Header file of USB Low Layer HAL module. + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef STM32H7xx_LL_USB_H +#define STM32H7xx_LL_USB_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal_def.h" + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +/** @addtogroup USB_LL + * @{ + */ + +/* Exported types ------------------------------------------------------------*/ +#ifndef HAL_USB_TIMEOUT +#define HAL_USB_TIMEOUT 0xF000000U +#endif /* define HAL_USB_TIMEOUT */ + +#ifndef HAL_USB_CURRENT_MODE_MAX_DELAY_MS +#define HAL_USB_CURRENT_MODE_MAX_DELAY_MS 200U +#endif /* define HAL_USB_CURRENT_MODE_MAX_DELAY_MS */ + +/** + * @brief USB Mode definition + */ + +typedef enum +{ + USB_DEVICE_MODE = 0, + USB_HOST_MODE = 1, + USB_DRD_MODE = 2 +} USB_ModeTypeDef; + +/** + * @brief URB States definition + */ +typedef enum +{ + URB_IDLE = 0, + URB_DONE, + URB_NOTREADY, + URB_NYET, + URB_ERROR, + URB_STALL +} USB_URBStateTypeDef; + +/** + * @brief Host channel States definition + */ +typedef enum +{ + HC_IDLE = 0, + HC_XFRC, + HC_HALTED, + HC_ACK, + HC_NAK, + HC_NYET, + HC_STALL, + HC_XACTERR, + HC_BBLERR, + HC_DATATGLERR +} USB_HCStateTypeDef; + + +/** + * @brief USB Instance Initialization Structure definition + */ +typedef struct +{ + uint8_t dev_endpoints; /*!< Device Endpoints number. + This parameter depends on the used USB core. + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint8_t Host_channels; /*!< Host Channels number. + This parameter Depends on the used USB core. + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint8_t dma_enable; /*!< USB DMA state. + If DMA is not supported this parameter shall be set by default to zero */ + + uint8_t speed; /*!< USB Core speed. + This parameter can be any value of @ref PCD_Speed/HCD_Speed + (HCD_SPEED_xxx, HCD_SPEED_xxx) */ + + uint8_t ep0_mps; /*!< Set the Endpoint 0 Max Packet size. */ + + uint8_t phy_itface; /*!< Select the used PHY interface. + This parameter can be any value of @ref PCD_PHY_Module/HCD_PHY_Module */ + + uint8_t Sof_enable; /*!< Enable or disable the output of the SOF signal. */ + + uint8_t low_power_enable; /*!< Enable or disable the low Power Mode. */ + + uint8_t lpm_enable; /*!< Enable or disable Link Power Management. */ + + uint8_t battery_charging_enable; /*!< Enable or disable Battery charging. */ + + uint8_t vbus_sensing_enable; /*!< Enable or disable the VBUS Sensing feature. */ + + uint8_t use_dedicated_ep1; /*!< Enable or disable the use of the dedicated EP1 interrupt. */ + + uint8_t use_external_vbus; /*!< Enable or disable the use of the external VBUS. */ + +} USB_CfgTypeDef; + +typedef struct +{ + uint8_t num; /*!< Endpoint number + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint8_t is_in; /*!< Endpoint direction + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t is_stall; /*!< Endpoint stall condition + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t is_iso_incomplete; /*!< Endpoint isoc condition + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t type; /*!< Endpoint type + This parameter can be any value of @ref USB_LL_EP_Type */ + + uint8_t data_pid_start; /*!< Initial data PID + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint32_t maxpacket; /*!< Endpoint Max packet size + This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */ + + uint8_t *xfer_buff; /*!< Pointer to transfer buffer */ + + uint32_t xfer_len; /*!< Current transfer length */ + + uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer */ + + uint8_t even_odd_frame; /*!< IFrame parity + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint16_t tx_fifo_num; /*!< Transmission FIFO number + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address */ + + uint32_t xfer_size; /*!< requested transfer size */ +} USB_EPTypeDef; + +typedef struct +{ + uint8_t dev_addr; /*!< USB device address. + This parameter must be a number between Min_Data = 1 and Max_Data = 255 */ + + uint8_t ch_num; /*!< Host channel number. + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint8_t ep_num; /*!< Endpoint number. + This parameter must be a number between Min_Data = 1 and Max_Data = 15 */ + + uint8_t ep_is_in; /*!< Endpoint direction + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t speed; /*!< USB Host Channel speed. + This parameter can be any value of @ref HCD_Device_Speed: + (HCD_DEVICE_SPEED_xxx) */ + + uint8_t do_ping; /*!< Enable or disable the use of the PING protocol for HS mode. */ + uint8_t do_ssplit; /*!< Enable start split transaction in HS mode. */ + uint8_t do_csplit; /*!< Enable complete split transaction in HS mode. */ + uint8_t ep_ss_schedule; /*!< Enable periodic endpoint start split schedule . */ + uint32_t iso_splt_xactPos; /*!< iso split transfer transaction position. */ + + uint8_t hub_port_nbr; /*!< USB HUB port number */ + uint8_t hub_addr; /*!< USB HUB address */ + + uint8_t ep_type; /*!< Endpoint Type. + This parameter can be any value of @ref USB_LL_EP_Type */ + + uint16_t max_packet; /*!< Endpoint Max packet size. + This parameter must be a number between Min_Data = 0 and Max_Data = 64KB */ + + uint8_t data_pid; /*!< Initial data PID. + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t *xfer_buff; /*!< Pointer to transfer buffer. */ + + uint32_t XferSize; /*!< OTG Channel transfer size. */ + + uint32_t xfer_len; /*!< Current transfer length. */ + + uint32_t xfer_count; /*!< Partial transfer length in case of multi packet transfer. */ + + uint8_t toggle_in; /*!< IN transfer current toggle flag. + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint8_t toggle_out; /*!< OUT transfer current toggle flag + This parameter must be a number between Min_Data = 0 and Max_Data = 1 */ + + uint32_t dma_addr; /*!< 32 bits aligned transfer buffer address. */ + + uint32_t ErrCnt; /*!< Host channel error count. */ + uint32_t NyetErrCnt; /*!< Complete Split NYET Host channel error count. */ + + USB_URBStateTypeDef urb_state; /*!< URB state. + This parameter can be any value of @ref USB_URBStateTypeDef */ + + USB_HCStateTypeDef state; /*!< Host Channel state. + This parameter can be any value of @ref USB_HCStateTypeDef */ +} USB_HCTypeDef; + +typedef USB_ModeTypeDef USB_OTG_ModeTypeDef; +typedef USB_CfgTypeDef USB_OTG_CfgTypeDef; +typedef USB_EPTypeDef USB_OTG_EPTypeDef; +typedef USB_URBStateTypeDef USB_OTG_URBStateTypeDef; +typedef USB_HCStateTypeDef USB_OTG_HCStateTypeDef; +typedef USB_HCTypeDef USB_OTG_HCTypeDef; + +/* Exported constants --------------------------------------------------------*/ + +/** @defgroup PCD_Exported_Constants PCD Exported Constants + * @{ + */ + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** @defgroup USB_OTG_CORE VERSION ID + * @{ + */ +#define USB_OTG_CORE_ID_300A 0x4F54300AU +#define USB_OTG_CORE_ID_310A 0x4F54310AU +/** + * @} + */ + +/** @defgroup USB_Core_Mode_ USB Core Mode + * @{ + */ +#define USB_OTG_MODE_DEVICE 0U +#define USB_OTG_MODE_HOST 1U +#define USB_OTG_MODE_DRD 2U +/** + * @} + */ + +/** @defgroup USB_LL_Core_Speed USB Low Layer Core Speed + * @{ + */ +#define USB_OTG_SPEED_HIGH 0U +#define USB_OTG_SPEED_HIGH_IN_FULL 1U +#define USB_OTG_SPEED_FULL 3U +/** + * @} + */ + +/** @defgroup USB_LL_Core_PHY USB Low Layer Core PHY + * @{ + */ +#define USB_OTG_ULPI_PHY 1U +#define USB_OTG_EMBEDDED_PHY 2U +/** + * @} + */ + +/** @defgroup USB_LL_Turnaround_Timeout Turnaround Timeout Value + * @{ + */ +#ifndef USBD_HS_TRDT_VALUE +#define USBD_HS_TRDT_VALUE 9U +#endif /* USBD_HS_TRDT_VALUE */ +#ifndef USBD_FS_TRDT_VALUE +#define USBD_FS_TRDT_VALUE 5U +#define USBD_DEFAULT_TRDT_VALUE 9U +#endif /* USBD_HS_TRDT_VALUE */ +/** + * @} + */ + +/** @defgroup USB_LL_Core_MPS USB Low Layer Core MPS + * @{ + */ +#define USB_OTG_HS_MAX_PACKET_SIZE 512U +#define USB_OTG_FS_MAX_PACKET_SIZE 64U +#define USB_OTG_MAX_EP0_SIZE 64U +/** + * @} + */ + +/** @defgroup USB_LL_Core_PHY_Frequency USB Low Layer Core PHY Frequency + * @{ + */ +#define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ (0U << 1) +#define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ (1U << 1) +#define DSTS_ENUMSPD_FS_PHY_48MHZ (3U << 1) +/** + * @} + */ + +/** @defgroup USB_LL_CORE_Frame_Interval USB Low Layer Core Frame Interval + * @{ + */ +#define DCFG_FRAME_INTERVAL_80 0U +#define DCFG_FRAME_INTERVAL_85 1U +#define DCFG_FRAME_INTERVAL_90 2U +#define DCFG_FRAME_INTERVAL_95 3U +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +/** @defgroup USB_LL_EP0_MPS USB Low Layer EP0 MPS + * @{ + */ +#define EP_MPS_64 0U +#define EP_MPS_32 1U +#define EP_MPS_16 2U +#define EP_MPS_8 3U +/** + * @} + */ + +/** @defgroup USB_LL_EP_Type USB Low Layer EP Type + * @{ + */ +#define EP_TYPE_CTRL 0U +#define EP_TYPE_ISOC 1U +#define EP_TYPE_BULK 2U +#define EP_TYPE_INTR 3U +#define EP_TYPE_MSK 3U +/** + * @} + */ + +/** @defgroup USB_LL_EP_Speed USB Low Layer EP Speed + * @{ + */ +#define EP_SPEED_LOW 0U +#define EP_SPEED_FULL 1U +#define EP_SPEED_HIGH 2U +/** + * @} + */ + +/** @defgroup USB_LL_CH_PID_Type USB Low Layer Channel PID Type + * @{ + */ +#define HC_PID_DATA0 0U +#define HC_PID_DATA2 1U +#define HC_PID_DATA1 2U +#define HC_PID_SETUP 3U +/** + * @} + */ + +/** @defgroup USB_LL Device Speed + * @{ + */ +#define USBD_HS_SPEED 0U +#define USBD_HSINFS_SPEED 1U +#define USBH_HS_SPEED 0U +#define USBD_FS_SPEED 2U +#define USBH_FSLS_SPEED 1U +/** + * @} + */ + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** @defgroup USB_LL_STS_Defines USB Low Layer STS Defines + * @{ + */ +#define STS_GOUT_NAK 1U +#define STS_DATA_UPDT 2U +#define STS_XFER_COMP 3U +#define STS_SETUP_COMP 4U +#define STS_SETUP_UPDT 6U +/** + * @} + */ + +/** @defgroup USB_LL_HCFG_SPEED_Defines USB Low Layer HCFG Speed Defines + * @{ + */ +#define HCFG_30_60_MHZ 0U +#define HCFG_48_MHZ 1U +#define HCFG_6_MHZ 2U +/** + * @} + */ + +/** @defgroup USB_LL_HFIR_Defines USB Low Layer frame interval Defines + * @{ + */ +#define HFIR_6_MHZ 6000U +#define HFIR_60_MHZ 60000U +#define HFIR_48_MHZ 48000U +/** + * @} + */ + +/** @defgroup USB_LL_HPRT0_PRTSPD_SPEED_Defines USB Low Layer HPRT0 PRTSPD Speed Defines + * @{ + */ +#define HPRT0_PRTSPD_HIGH_SPEED 0U +#define HPRT0_PRTSPD_FULL_SPEED 1U +#define HPRT0_PRTSPD_LOW_SPEED 2U +/** + * @} + */ + +#define HCCHAR_CTRL 0U +#define HCCHAR_ISOC 1U +#define HCCHAR_BULK 2U +#define HCCHAR_INTR 3U + +#define GRXSTS_PKTSTS_IN 2U +#define GRXSTS_PKTSTS_IN_XFER_COMP 3U +#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5U +#define GRXSTS_PKTSTS_CH_HALTED 7U + +#define CLEAR_INTERRUPT_MASK 0xFFFFFFFFU + +#define HC_MAX_PKT_CNT 256U +#define ISO_SPLT_MPS 188U + +#define HCSPLT_BEGIN 1U +#define HCSPLT_MIDDLE 2U +#define HCSPLT_END 3U +#define HCSPLT_FULL 4U + +#define TEST_J 1U +#define TEST_K 2U +#define TEST_SE0_NAK 3U +#define TEST_PACKET 4U +#define TEST_FORCE_EN 5U + +#define USBx_PCGCCTL *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_PCGCCTL_BASE) +#define USBx_HPRT0 *(__IO uint32_t *)((uint32_t)USBx_BASE + USB_OTG_HOST_PORT_BASE) + +#define USBx_DEVICE ((USB_OTG_DeviceTypeDef *)(USBx_BASE + USB_OTG_DEVICE_BASE)) +#define USBx_INEP(i) ((USB_OTG_INEndpointTypeDef *)(USBx_BASE\ + + USB_OTG_IN_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE))) + +#define USBx_OUTEP(i) ((USB_OTG_OUTEndpointTypeDef *)(USBx_BASE\ + + USB_OTG_OUT_ENDPOINT_BASE + ((i) * USB_OTG_EP_REG_SIZE))) + +#define USBx_DFIFO(i) *(__IO uint32_t *)(USBx_BASE + USB_OTG_FIFO_BASE + ((i) * USB_OTG_FIFO_SIZE)) + +#define USBx_HOST ((USB_OTG_HostTypeDef *)(USBx_BASE + USB_OTG_HOST_BASE)) +#define USBx_HC(i) ((USB_OTG_HostChannelTypeDef *)(USBx_BASE\ + + USB_OTG_HOST_CHANNEL_BASE\ + + ((i) * USB_OTG_HOST_CHANNEL_SIZE))) + + +#define EP_ADDR_MSK 0xFU +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +/** + * @} + */ + +/* Exported macro ------------------------------------------------------------*/ +/** @defgroup USB_LL_Exported_Macros USB Low Layer Exported Macros + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +#define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK &= ~(__INTERRUPT__)) +#define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->GINTMSK |= (__INTERRUPT__)) + +#define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_INEP(__EPNUM__)->DIEPINT = (__INTERRUPT__)) +#define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__)) +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @addtogroup USB_LL_Exported_Functions USB Low Layer Exported Functions + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg); +HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg); +HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, uint32_t hclk, uint8_t speed); +HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode); +HAL_StatusTypeDef USB_SetDevSpeed(const USB_OTG_GlobalTypeDef *USBx, uint8_t speed); +HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num); +HAL_StatusTypeDef USB_ActivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_DeactivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma); +HAL_StatusTypeDef USB_WritePacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *src, + uint8_t ch_ep_num, uint16_t len, uint8_t dma); + +void *USB_ReadPacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len); +HAL_StatusTypeDef USB_EPSetStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_EPClearStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_EPStopXfer(const USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep); +HAL_StatusTypeDef USB_SetDevAddress(const USB_OTG_GlobalTypeDef *USBx, uint8_t address); +HAL_StatusTypeDef USB_DevConnect(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_DevDisconnect(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_ActivateSetup(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_EP0_OutStart(const USB_OTG_GlobalTypeDef *USBx, uint8_t dma, const uint8_t *psetup); +uint8_t USB_GetDevSpeed(const USB_OTG_GlobalTypeDef *USBx); +uint32_t USB_GetMode(const USB_OTG_GlobalTypeDef *USBx); +uint32_t USB_ReadInterrupts(USB_OTG_GlobalTypeDef const *USBx); +uint32_t USB_ReadChInterrupts(const USB_OTG_GlobalTypeDef *USBx, uint8_t chnum); +uint32_t USB_ReadDevAllOutEpInterrupt(const USB_OTG_GlobalTypeDef *USBx); +uint32_t USB_ReadDevOutEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum); +uint32_t USB_ReadDevAllInEpInterrupt(const USB_OTG_GlobalTypeDef *USBx); +uint32_t USB_ReadDevInEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum); +void USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt); + +HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg); +HAL_StatusTypeDef USB_InitFSLSPClkSel(const USB_OTG_GlobalTypeDef *USBx, uint8_t freq); +HAL_StatusTypeDef USB_ResetPort(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_DriveVbus(const USB_OTG_GlobalTypeDef *USBx, uint8_t state); +uint32_t USB_GetHostSpeed(USB_OTG_GlobalTypeDef const *USBx); +uint32_t USB_GetCurrentFrame(USB_OTG_GlobalTypeDef const *USBx); +HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num, + uint8_t epnum, uint8_t dev_address, uint8_t speed, + uint8_t ep_type, uint16_t mps); +HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, + USB_OTG_HCTypeDef *hc, uint8_t dma); + +uint32_t USB_HC_ReadInterrupt(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_HC_Halt(const USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num); +HAL_StatusTypeDef USB_DoPing(const USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num); +HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_ActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx); +HAL_StatusTypeDef USB_DeActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx); +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* STM32H7xx_LL_USB_H */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c new file mode 100644 index 0000000..221cdfc --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c @@ -0,0 +1,2347 @@ +/** + ****************************************************************************** + * @file stm32h7xx_hal_pcd.c + * @author MCD Application Team + * @brief PCD HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the USB Peripheral Controller: + * + Initialization and de-initialization functions + * + IO operation functions + * + Peripheral Control functions + * + Peripheral State functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + The PCD HAL driver can be used as follows: + + (#) Declare a PCD_HandleTypeDef handle structure, for example: + PCD_HandleTypeDef hpcd; + + (#) Fill parameters of Init structure in HCD handle + + (#) Call HAL_PCD_Init() API to initialize the PCD peripheral (Core, Device core, ...) + + (#) Initialize the PCD low level resources through the HAL_PCD_MspInit() API: + (##) Enable the PCD/USB Low Level interface clock using + (+++) __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); + (+++) __HAL_RCC_USB_OTG_HS_CLK_ENABLE(); (For High Speed Mode) + + (##) Initialize the related GPIO clocks + (##) Configure PCD pin-out + (##) Configure PCD NVIC interrupt + + (#)Associate the Upper USB device stack to the HAL PCD Driver: + (##) hpcd.pData = pdev; + + (#)Enable PCD transmission and reception: + (##) HAL_PCD_Start(); + + @endverbatim + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal.h" + +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +/** @defgroup PCD PCD + * @brief PCD HAL module driver + * @{ + */ + +#ifdef HAL_PCD_MODULE_ENABLED + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) + +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/** @defgroup PCD_Private_Macros PCD Private Macros + * @{ + */ +#define PCD_MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define PCD_MAX(a, b) (((a) > (b)) ? (a) : (b)) +/** + * @} + */ + +/* Private functions prototypes ----------------------------------------------*/ +/** @defgroup PCD_Private_Functions PCD Private Functions + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +static HAL_StatusTypeDef PCD_WriteEmptyTxFifo(PCD_HandleTypeDef *hpcd, uint32_t epnum); +static HAL_StatusTypeDef PCD_EP_OutXfrComplete_int(PCD_HandleTypeDef *hpcd, uint32_t epnum); +static HAL_StatusTypeDef PCD_EP_OutSetupPacket_int(PCD_HandleTypeDef *hpcd, uint32_t epnum); +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +/** + * @} + */ + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup PCD_Exported_Functions PCD Exported Functions + * @{ + */ + +/** @defgroup PCD_Exported_Functions_Group1 Initialization and de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization and de-initialization functions ##### + =============================================================================== + [..] This section provides functions allowing to: + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the PCD according to the specified + * parameters in the PCD_InitTypeDef and initialize the associated handle. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) +{ + uint8_t i; + + /* Check the PCD handle allocation */ + if (hpcd == NULL) + { + return HAL_ERROR; + } + + /* Check the parameters */ + assert_param(IS_PCD_ALL_INSTANCE(hpcd->Instance)); + + if (hpcd->State == HAL_PCD_STATE_RESET) + { + /* Allocate lock resource and initialize it */ + hpcd->Lock = HAL_UNLOCKED; + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->SOFCallback = HAL_PCD_SOFCallback; + hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; + hpcd->ResetCallback = HAL_PCD_ResetCallback; + hpcd->SuspendCallback = HAL_PCD_SuspendCallback; + hpcd->ResumeCallback = HAL_PCD_ResumeCallback; + hpcd->ConnectCallback = HAL_PCD_ConnectCallback; + hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; + hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; + hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; + hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; + hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; + hpcd->LPMCallback = HAL_PCDEx_LPM_Callback; + hpcd->BCDCallback = HAL_PCDEx_BCD_Callback; + + if (hpcd->MspInitCallback == NULL) + { + hpcd->MspInitCallback = HAL_PCD_MspInit; + } + + /* Init the low level hardware */ + hpcd->MspInitCallback(hpcd); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC... */ + HAL_PCD_MspInit(hpcd); +#endif /* (USE_HAL_PCD_REGISTER_CALLBACKS) */ + } + + hpcd->State = HAL_PCD_STATE_BUSY; + + /* Disable the Interrupts */ + __HAL_PCD_DISABLE(hpcd); + + /*Init the Core (common init.) */ + if (USB_CoreInit(hpcd->Instance, hpcd->Init) != HAL_OK) + { + hpcd->State = HAL_PCD_STATE_ERROR; + return HAL_ERROR; + } + + /* Force Device Mode */ + if (USB_SetCurrentMode(hpcd->Instance, USB_DEVICE_MODE) != HAL_OK) + { + hpcd->State = HAL_PCD_STATE_ERROR; + return HAL_ERROR; + } + + /* Init endpoints structures */ + for (i = 0U; i < hpcd->Init.dev_endpoints; i++) + { + /* Init ep structure */ + hpcd->IN_ep[i].is_in = 1U; + hpcd->IN_ep[i].num = i; + hpcd->IN_ep[i].tx_fifo_num = i; + /* Control until ep is activated */ + hpcd->IN_ep[i].type = EP_TYPE_CTRL; + hpcd->IN_ep[i].maxpacket = 0U; + hpcd->IN_ep[i].xfer_buff = 0U; + hpcd->IN_ep[i].xfer_len = 0U; + } + + for (i = 0U; i < hpcd->Init.dev_endpoints; i++) + { + hpcd->OUT_ep[i].is_in = 0U; + hpcd->OUT_ep[i].num = i; + /* Control until ep is activated */ + hpcd->OUT_ep[i].type = EP_TYPE_CTRL; + hpcd->OUT_ep[i].maxpacket = 0U; + hpcd->OUT_ep[i].xfer_buff = 0U; + hpcd->OUT_ep[i].xfer_len = 0U; + } + + /* Init Device */ + if (USB_DevInit(hpcd->Instance, hpcd->Init) != HAL_OK) + { + hpcd->State = HAL_PCD_STATE_ERROR; + return HAL_ERROR; + } + + hpcd->USB_Address = 0U; + hpcd->State = HAL_PCD_STATE_READY; + + /* Activate LPM */ + if (hpcd->Init.lpm_enable == 1U) + { + (void)HAL_PCDEx_ActivateLPM(hpcd); + } + + (void)USB_DevDisconnect(hpcd->Instance); + + return HAL_OK; +} + +/** + * @brief DeInitializes the PCD peripheral. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd) +{ + /* Check the PCD handle allocation */ + if (hpcd == NULL) + { + return HAL_ERROR; + } + + hpcd->State = HAL_PCD_STATE_BUSY; + + /* Stop Device */ + if (USB_StopDevice(hpcd->Instance) != HAL_OK) + { + return HAL_ERROR; + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + if (hpcd->MspDeInitCallback == NULL) + { + hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; /* Legacy weak MspDeInit */ + } + + /* DeInit the low level hardware */ + hpcd->MspDeInitCallback(hpcd); +#else + /* DeInit the low level hardware: CLOCK, NVIC.*/ + HAL_PCD_MspDeInit(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + hpcd->State = HAL_PCD_STATE_RESET; + + return HAL_OK; +} + +/** + * @brief Initializes the PCD MSP. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_MspInit could be implemented in the user file + */ +} + +/** + * @brief DeInitializes PCD MSP. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_MspDeInit could be implemented in the user file + */ +} + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +/** + * @brief Register a User USB PCD Callback + * To be used instead of the weak predefined callback + * @param hpcd USB PCD handle + * @param CallbackID ID of the callback to be registered + * This parameter can be one of the following values: + * @arg @ref HAL_PCD_SOF_CB_ID USB PCD SOF callback ID + * @arg @ref HAL_PCD_SETUPSTAGE_CB_ID USB PCD Setup callback ID + * @arg @ref HAL_PCD_RESET_CB_ID USB PCD Reset callback ID + * @arg @ref HAL_PCD_SUSPEND_CB_ID USB PCD Suspend callback ID + * @arg @ref HAL_PCD_RESUME_CB_ID USB PCD Resume callback ID + * @arg @ref HAL_PCD_CONNECT_CB_ID USB PCD Connect callback ID + * @arg @ref HAL_PCD_DISCONNECT_CB_ID USB PCD Disconnect callback ID + * @arg @ref HAL_PCD_MSPINIT_CB_ID MspDeInit callback ID + * @arg @ref HAL_PCD_MSPDEINIT_CB_ID MspDeInit callback ID + * @param pCallback pointer to the Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, + HAL_PCD_CallbackIDTypeDef CallbackID, + pPCD_CallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + return HAL_ERROR; + } + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + switch (CallbackID) + { + case HAL_PCD_SOF_CB_ID : + hpcd->SOFCallback = pCallback; + break; + + case HAL_PCD_SETUPSTAGE_CB_ID : + hpcd->SetupStageCallback = pCallback; + break; + + case HAL_PCD_RESET_CB_ID : + hpcd->ResetCallback = pCallback; + break; + + case HAL_PCD_SUSPEND_CB_ID : + hpcd->SuspendCallback = pCallback; + break; + + case HAL_PCD_RESUME_CB_ID : + hpcd->ResumeCallback = pCallback; + break; + + case HAL_PCD_CONNECT_CB_ID : + hpcd->ConnectCallback = pCallback; + break; + + case HAL_PCD_DISCONNECT_CB_ID : + hpcd->DisconnectCallback = pCallback; + break; + + case HAL_PCD_MSPINIT_CB_ID : + hpcd->MspInitCallback = pCallback; + break; + + case HAL_PCD_MSPDEINIT_CB_ID : + hpcd->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (hpcd->State == HAL_PCD_STATE_RESET) + { + switch (CallbackID) + { + case HAL_PCD_MSPINIT_CB_ID : + hpcd->MspInitCallback = pCallback; + break; + + case HAL_PCD_MSPDEINIT_CB_ID : + hpcd->MspDeInitCallback = pCallback; + break; + + default : + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + return status; +} + +/** + * @brief Unregister an USB PCD Callback + * USB PCD callback is redirected to the weak predefined callback + * @param hpcd USB PCD handle + * @param CallbackID ID of the callback to be unregistered + * This parameter can be one of the following values: + * @arg @ref HAL_PCD_SOF_CB_ID USB PCD SOF callback ID + * @arg @ref HAL_PCD_SETUPSTAGE_CB_ID USB PCD Setup callback ID + * @arg @ref HAL_PCD_RESET_CB_ID USB PCD Reset callback ID + * @arg @ref HAL_PCD_SUSPEND_CB_ID USB PCD Suspend callback ID + * @arg @ref HAL_PCD_RESUME_CB_ID USB PCD Resume callback ID + * @arg @ref HAL_PCD_CONNECT_CB_ID USB PCD Connect callback ID + * @arg @ref HAL_PCD_DISCONNECT_CB_ID USB PCD Disconnect callback ID + * @arg @ref HAL_PCD_MSPINIT_CB_ID MspDeInit callback ID + * @arg @ref HAL_PCD_MSPDEINIT_CB_ID MspDeInit callback ID + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + /* Setup Legacy weak Callbacks */ + if (hpcd->State == HAL_PCD_STATE_READY) + { + switch (CallbackID) + { + case HAL_PCD_SOF_CB_ID : + hpcd->SOFCallback = HAL_PCD_SOFCallback; + break; + + case HAL_PCD_SETUPSTAGE_CB_ID : + hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; + break; + + case HAL_PCD_RESET_CB_ID : + hpcd->ResetCallback = HAL_PCD_ResetCallback; + break; + + case HAL_PCD_SUSPEND_CB_ID : + hpcd->SuspendCallback = HAL_PCD_SuspendCallback; + break; + + case HAL_PCD_RESUME_CB_ID : + hpcd->ResumeCallback = HAL_PCD_ResumeCallback; + break; + + case HAL_PCD_CONNECT_CB_ID : + hpcd->ConnectCallback = HAL_PCD_ConnectCallback; + break; + + case HAL_PCD_DISCONNECT_CB_ID : + hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; + break; + + case HAL_PCD_MSPINIT_CB_ID : + hpcd->MspInitCallback = HAL_PCD_MspInit; + break; + + case HAL_PCD_MSPDEINIT_CB_ID : + hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; + break; + + default : + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else if (hpcd->State == HAL_PCD_STATE_RESET) + { + switch (CallbackID) + { + case HAL_PCD_MSPINIT_CB_ID : + hpcd->MspInitCallback = HAL_PCD_MspInit; + break; + + case HAL_PCD_MSPDEINIT_CB_ID : + hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; + break; + + default : + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + break; + } + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + return status; +} + +/** + * @brief Register USB PCD Data OUT Stage Callback + * To be used instead of the weak HAL_PCD_DataOutStageCallback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD Data OUT Stage Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, + pPCD_DataOutStageCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->DataOutStageCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD Data OUT Stage Callback + * USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataOutStageCallback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; /* Legacy weak DataOutStageCallback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Register USB PCD Data IN Stage Callback + * To be used instead of the weak HAL_PCD_DataInStageCallback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD Data IN Stage Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, + pPCD_DataInStageCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->DataInStageCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD Data IN Stage Callback + * USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataInStageCallback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; /* Legacy weak DataInStageCallback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Register USB PCD Iso OUT incomplete Callback + * To be used instead of the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD Iso OUT incomplete Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, + pPCD_IsoOutIncpltCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->ISOOUTIncompleteCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD Iso OUT incomplete Callback + * USB PCD Iso OUT incomplete Callback is redirected + * to the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; /* Legacy weak ISOOUTIncompleteCallback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Register USB PCD Iso IN incomplete Callback + * To be used instead of the weak HAL_PCD_ISOINIncompleteCallback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD Iso IN incomplete Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, + pPCD_IsoInIncpltCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->ISOINIncompleteCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD Iso IN incomplete Callback + * USB PCD Iso IN incomplete Callback is redirected + * to the weak HAL_PCD_ISOINIncompleteCallback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; /* Legacy weak ISOINIncompleteCallback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Register USB PCD BCD Callback + * To be used instead of the weak HAL_PCDEx_BCD_Callback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD BCD Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterBcdCallback(PCD_HandleTypeDef *hpcd, pPCD_BcdCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->BCDCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD BCD Callback + * USB BCD Callback is redirected to the weak HAL_PCDEx_BCD_Callback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterBcdCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->BCDCallback = HAL_PCDEx_BCD_Callback; /* Legacy weak HAL_PCDEx_BCD_Callback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Register USB PCD LPM Callback + * To be used instead of the weak HAL_PCDEx_LPM_Callback() predefined callback + * @param hpcd PCD handle + * @param pCallback pointer to the USB PCD LPM Callback function + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_RegisterLpmCallback(PCD_HandleTypeDef *hpcd, pPCD_LpmCallbackTypeDef pCallback) +{ + HAL_StatusTypeDef status = HAL_OK; + + if (pCallback == NULL) + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + return HAL_ERROR; + } + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->LPMCallback = pCallback; + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} + +/** + * @brief Unregister the USB PCD LPM Callback + * USB LPM Callback is redirected to the weak HAL_PCDEx_LPM_Callback() predefined callback + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_UnRegisterLpmCallback(PCD_HandleTypeDef *hpcd) +{ + HAL_StatusTypeDef status = HAL_OK; + + /* Process locked */ + __HAL_LOCK(hpcd); + + if (hpcd->State == HAL_PCD_STATE_READY) + { + hpcd->LPMCallback = HAL_PCDEx_LPM_Callback; /* Legacy weak HAL_PCDEx_LPM_Callback */ + } + else + { + /* Update the error code */ + hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; + + /* Return error status */ + status = HAL_ERROR; + } + + /* Release Lock */ + __HAL_UNLOCK(hpcd); + + return status; +} +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + +/** + * @} + */ + +/** @defgroup PCD_Exported_Functions_Group2 Input and Output operation functions + * @brief Data transfers functions + * +@verbatim + =============================================================================== + ##### IO operation functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to manage the PCD data + transfers. + +@endverbatim + * @{ + */ + +/** + * @brief Start the USB device + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + __HAL_LOCK(hpcd); + + if (((USBx->GUSBCFG & USB_OTG_GUSBCFG_PHYSEL) != 0U) && + (hpcd->Init.battery_charging_enable == 1U)) + { + /* Enable USB Transceiver */ + USBx->GCCFG |= USB_OTG_GCCFG_PWRDWN; + } + + __HAL_PCD_ENABLE(hpcd); + (void)USB_DevConnect(hpcd->Instance); + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Stop the USB device. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + __HAL_LOCK(hpcd); + __HAL_PCD_DISABLE(hpcd); + (void)USB_DevDisconnect(hpcd->Instance); + + (void)USB_FlushTxFifo(hpcd->Instance, 0x10U); + + if (((USBx->GUSBCFG & USB_OTG_GUSBCFG_PHYSEL) != 0U) && + (hpcd->Init.battery_charging_enable == 1U)) + { + /* Disable USB Transceiver */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN); + } + + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** + * @brief Handles PCD interrupt request. + * @param hpcd PCD handle + * @retval HAL status + */ +void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t USBx_BASE = (uint32_t)USBx; + USB_OTG_EPTypeDef *ep; + uint32_t i; + uint32_t ep_intr; + uint32_t epint; + uint32_t epnum; + uint32_t fifoemptymsk; + uint32_t RegVal; + + /* ensure that we are in device mode */ + if (USB_GetMode(hpcd->Instance) == USB_OTG_MODE_DEVICE) + { + /* avoid spurious interrupt */ + if (__HAL_PCD_IS_INVALID_INTERRUPT(hpcd)) + { + return; + } + + /* store current frame number */ + hpcd->FrameNumber = (USBx_DEVICE->DSTS & USB_OTG_DSTS_FNSOF_Msk) >> USB_OTG_DSTS_FNSOF_Pos; + + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_MMIS)) + { + /* incorrect mode, acknowledge the interrupt */ + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_MMIS); + } + + /* Handle RxQLevel Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_RXFLVL)) + { + USB_MASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL); + + RegVal = USBx->GRXSTSP; + + ep = &hpcd->OUT_ep[RegVal & USB_OTG_GRXSTSP_EPNUM]; + + if (((RegVal & USB_OTG_GRXSTSP_PKTSTS) >> 17) == STS_DATA_UPDT) + { + if ((RegVal & USB_OTG_GRXSTSP_BCNT) != 0U) + { + (void)USB_ReadPacket(USBx, ep->xfer_buff, + (uint16_t)((RegVal & USB_OTG_GRXSTSP_BCNT) >> 4)); + + ep->xfer_buff += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; + ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; + } + } + else if (((RegVal & USB_OTG_GRXSTSP_PKTSTS) >> 17) == STS_SETUP_UPDT) + { + (void)USB_ReadPacket(USBx, (uint8_t *)hpcd->Setup, 8U); + ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; + } + else + { + /* ... */ + } + + USB_UNMASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL); + } + + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_OEPINT)) + { + epnum = 0U; + + /* Read in the device interrupt bits */ + ep_intr = USB_ReadDevAllOutEpInterrupt(hpcd->Instance); + + while (ep_intr != 0U) + { + if ((ep_intr & 0x1U) != 0U) + { + epint = USB_ReadDevOutEPInterrupt(hpcd->Instance, (uint8_t)epnum); + + if ((epint & USB_OTG_DOEPINT_XFRC) == USB_OTG_DOEPINT_XFRC) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_XFRC); + (void)PCD_EP_OutXfrComplete_int(hpcd, epnum); + } + + if ((epint & USB_OTG_DOEPINT_STUP) == USB_OTG_DOEPINT_STUP) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_STUP); + /* Class B setup phase done for previous decoded setup */ + (void)PCD_EP_OutSetupPacket_int(hpcd, epnum); + } + + if ((epint & USB_OTG_DOEPINT_OTEPDIS) == USB_OTG_DOEPINT_OTEPDIS) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_OTEPDIS); + } + + /* Clear OUT Endpoint disable interrupt */ + if ((epint & USB_OTG_DOEPINT_EPDISD) == USB_OTG_DOEPINT_EPDISD) + { + if ((USBx->GINTSTS & USB_OTG_GINTSTS_BOUTNAKEFF) == USB_OTG_GINTSTS_BOUTNAKEFF) + { + USBx_DEVICE->DCTL |= USB_OTG_DCTL_CGONAK; + } + + ep = &hpcd->OUT_ep[epnum]; + + if (ep->is_iso_incomplete == 1U) + { + ep->is_iso_incomplete = 0U; + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_EPDISD); + } + + /* Clear Status Phase Received interrupt */ + if ((epint & USB_OTG_DOEPINT_OTEPSPR) == USB_OTG_DOEPINT_OTEPSPR) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_OTEPSPR); + } + + /* Clear OUT NAK interrupt */ + if ((epint & USB_OTG_DOEPINT_NAK) == USB_OTG_DOEPINT_NAK) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_NAK); + } + } + epnum++; + ep_intr >>= 1U; + } + } + + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IEPINT)) + { + /* Read in the device interrupt bits */ + ep_intr = USB_ReadDevAllInEpInterrupt(hpcd->Instance); + + epnum = 0U; + + while (ep_intr != 0U) + { + if ((ep_intr & 0x1U) != 0U) /* In ITR */ + { + epint = USB_ReadDevInEPInterrupt(hpcd->Instance, (uint8_t)epnum); + + if ((epint & USB_OTG_DIEPINT_XFRC) == USB_OTG_DIEPINT_XFRC) + { + fifoemptymsk = (uint32_t)(0x1UL << (epnum & EP_ADDR_MSK)); + USBx_DEVICE->DIEPEMPMSK &= ~fifoemptymsk; + + CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_XFRC); + + if (hpcd->Init.dma_enable == 1U) + { + hpcd->IN_ep[epnum].xfer_buff += hpcd->IN_ep[epnum].maxpacket; + + /* this is ZLP, so prepare EP0 for next setup */ + if ((epnum == 0U) && (hpcd->IN_ep[epnum].xfer_len == 0U)) + { + /* prepare to rx more setup packets */ + (void)USB_EP0_OutStart(hpcd->Instance, 1U, (uint8_t *)hpcd->Setup); + } + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->DataInStageCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_DataInStageCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + if ((epint & USB_OTG_DIEPINT_TOC) == USB_OTG_DIEPINT_TOC) + { + CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_TOC); + } + if ((epint & USB_OTG_DIEPINT_ITTXFE) == USB_OTG_DIEPINT_ITTXFE) + { + CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_ITTXFE); + } + if ((epint & USB_OTG_DIEPINT_INEPNE) == USB_OTG_DIEPINT_INEPNE) + { + CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_INEPNE); + } + if ((epint & USB_OTG_DIEPINT_EPDISD) == USB_OTG_DIEPINT_EPDISD) + { + (void)USB_FlushTxFifo(USBx, epnum); + + ep = &hpcd->IN_ep[epnum]; + + if (ep->is_iso_incomplete == 1U) + { + ep->is_iso_incomplete = 0U; + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->ISOINIncompleteCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_ISOINIncompleteCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + + CLEAR_IN_EP_INTR(epnum, USB_OTG_DIEPINT_EPDISD); + } + if ((epint & USB_OTG_DIEPINT_TXFE) == USB_OTG_DIEPINT_TXFE) + { + (void)PCD_WriteEmptyTxFifo(hpcd, epnum); + } + } + epnum++; + ep_intr >>= 1U; + } + } + + /* Handle Resume Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_WKUINT)) + { + /* Clear the Remote Wake-up Signaling */ + USBx_DEVICE->DCTL &= ~USB_OTG_DCTL_RWUSIG; + + if (hpcd->LPM_State == LPM_L1) + { + hpcd->LPM_State = LPM_L0; + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->LPMCallback(hpcd, PCD_LPM_L0_ACTIVE); +#else + HAL_PCDEx_LPM_Callback(hpcd, PCD_LPM_L0_ACTIVE); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + else + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->ResumeCallback(hpcd); +#else + HAL_PCD_ResumeCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_WKUINT); + } + + /* Handle Suspend Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_USBSUSP)) + { + if ((USBx_DEVICE->DSTS & USB_OTG_DSTS_SUSPSTS) == USB_OTG_DSTS_SUSPSTS) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->SuspendCallback(hpcd); +#else + HAL_PCD_SuspendCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_USBSUSP); + } + + /* Handle LPM Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_LPMINT)) + { + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_LPMINT); + + if (hpcd->LPM_State == LPM_L0) + { + hpcd->LPM_State = LPM_L1; + hpcd->BESL = (hpcd->Instance->GLPMCFG & USB_OTG_GLPMCFG_BESL) >> 2U; + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->LPMCallback(hpcd, PCD_LPM_L1_ACTIVE); +#else + HAL_PCDEx_LPM_Callback(hpcd, PCD_LPM_L1_ACTIVE); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + else + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->SuspendCallback(hpcd); +#else + HAL_PCD_SuspendCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + } + + /* Handle Reset Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_USBRST)) + { + USBx_DEVICE->DCTL &= ~USB_OTG_DCTL_RWUSIG; + (void)USB_FlushTxFifo(hpcd->Instance, 0x10U); + + for (i = 0U; i < hpcd->Init.dev_endpoints; i++) + { + USBx_INEP(i)->DIEPINT = 0xFB7FU; + USBx_INEP(i)->DIEPCTL &= ~USB_OTG_DIEPCTL_STALL; + USBx_OUTEP(i)->DOEPINT = 0xFB7FU; + USBx_OUTEP(i)->DOEPCTL &= ~USB_OTG_DOEPCTL_STALL; + USBx_OUTEP(i)->DOEPCTL |= USB_OTG_DOEPCTL_SNAK; + } + USBx_DEVICE->DAINTMSK |= 0x10001U; + + if (hpcd->Init.use_dedicated_ep1 != 0U) + { + USBx_DEVICE->DOUTEP1MSK |= USB_OTG_DOEPMSK_STUPM | + USB_OTG_DOEPMSK_XFRCM | + USB_OTG_DOEPMSK_EPDM; + + USBx_DEVICE->DINEP1MSK |= USB_OTG_DIEPMSK_TOM | + USB_OTG_DIEPMSK_XFRCM | + USB_OTG_DIEPMSK_EPDM; + } + else + { + USBx_DEVICE->DOEPMSK |= USB_OTG_DOEPMSK_STUPM | + USB_OTG_DOEPMSK_XFRCM | + USB_OTG_DOEPMSK_EPDM | + USB_OTG_DOEPMSK_OTEPSPRM | + USB_OTG_DOEPMSK_NAKM; + + USBx_DEVICE->DIEPMSK |= USB_OTG_DIEPMSK_TOM | + USB_OTG_DIEPMSK_XFRCM | + USB_OTG_DIEPMSK_EPDM; + } + + /* Set Default Address to 0 */ + USBx_DEVICE->DCFG &= ~USB_OTG_DCFG_DAD; + + /* setup EP0 to receive SETUP packets */ + (void)USB_EP0_OutStart(hpcd->Instance, (uint8_t)hpcd->Init.dma_enable, + (uint8_t *)hpcd->Setup); + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_USBRST); + } + + /* Handle Enumeration done Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_ENUMDNE)) + { + (void)USB_ActivateSetup(hpcd->Instance); + hpcd->Init.speed = USB_GetDevSpeed(hpcd->Instance); + + /* Set USB Turnaround time */ + (void)USB_SetTurnaroundTime(hpcd->Instance, + HAL_RCC_GetHCLKFreq(), + (uint8_t)hpcd->Init.speed); + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->ResetCallback(hpcd); +#else + HAL_PCD_ResetCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_ENUMDNE); + } + + /* Handle SOF Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_SOF)) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->SOFCallback(hpcd); +#else + HAL_PCD_SOFCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SOF); + } + + /* Handle Global OUT NAK effective Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_BOUTNAKEFF)) + { + USBx->GINTMSK &= ~USB_OTG_GINTMSK_GONAKEFFM; + + for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) + { + if (hpcd->OUT_ep[epnum].is_iso_incomplete == 1U) + { + /* Abort current transaction and disable the EP */ + (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)epnum); + } + } + } + + /* Handle Incomplete ISO IN Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR)) + { + for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) + { + RegVal = USBx_INEP(epnum)->DIEPCTL; + + if ((hpcd->IN_ep[epnum].type == EP_TYPE_ISOC) && + ((RegVal & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA)) + { + hpcd->IN_ep[epnum].is_iso_incomplete = 1U; + + /* Abort current transaction and disable the EP */ + (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)(epnum | 0x80U)); + } + } + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR); + } + + /* Handle Incomplete ISO OUT Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT)) + { + for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) + { + RegVal = USBx_OUTEP(epnum)->DOEPCTL; + + if ((hpcd->OUT_ep[epnum].type == EP_TYPE_ISOC) && + ((RegVal & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) && + ((RegVal & (0x1U << 16)) == (hpcd->FrameNumber & 0x1U))) + { + hpcd->OUT_ep[epnum].is_iso_incomplete = 1U; + + USBx->GINTMSK |= USB_OTG_GINTMSK_GONAKEFFM; + + if ((USBx->GINTSTS & USB_OTG_GINTSTS_BOUTNAKEFF) == 0U) + { + USBx_DEVICE->DCTL |= USB_OTG_DCTL_SGONAK; + break; + } + } + } + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT); + } + + /* Handle Connection event Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT)) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->ConnectCallback(hpcd); +#else + HAL_PCD_ConnectCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT); + } + + /* Handle Disconnection event Interrupt */ + if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_OTGINT)) + { + RegVal = hpcd->Instance->GOTGINT; + + if ((RegVal & USB_OTG_GOTGINT_SEDET) == USB_OTG_GOTGINT_SEDET) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->DisconnectCallback(hpcd); +#else + HAL_PCD_DisconnectCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + hpcd->Instance->GOTGINT |= RegVal; + } + } +} +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + + +/** + * @brief Data OUT stage callback. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval None + */ +__weak void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(epnum); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_DataOutStageCallback could be implemented in the user file + */ +} + +/** + * @brief Data IN stage callback + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval None + */ +__weak void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(epnum); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_DataInStageCallback could be implemented in the user file + */ +} +/** + * @brief Setup stage callback + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_SetupStageCallback could be implemented in the user file + */ +} + +/** + * @brief USB Start Of Frame callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_SOFCallback could be implemented in the user file + */ +} + +/** + * @brief USB Reset callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_ResetCallback could be implemented in the user file + */ +} + +/** + * @brief Suspend event callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_SuspendCallback could be implemented in the user file + */ +} + +/** + * @brief Resume event callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_ResumeCallback could be implemented in the user file + */ +} + +/** + * @brief Incomplete ISO OUT callback. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval None + */ +__weak void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(epnum); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_ISOOUTIncompleteCallback could be implemented in the user file + */ +} + +/** + * @brief Incomplete ISO IN callback. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval None + */ +__weak void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(epnum); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_ISOINIncompleteCallback could be implemented in the user file + */ +} + +/** + * @brief Connection event callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_ConnectCallback could be implemented in the user file + */ +} + +/** + * @brief Disconnection event callback. + * @param hpcd PCD handle + * @retval None + */ +__weak void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCD_DisconnectCallback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** @defgroup PCD_Exported_Functions_Group3 Peripheral Control functions + * @brief management functions + * +@verbatim + =============================================================================== + ##### Peripheral Control functions ##### + =============================================================================== + [..] + This subsection provides a set of functions allowing to control the PCD data + transfers. + +@endverbatim + * @{ + */ + +/** + * @brief Connect the USB device + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + __HAL_LOCK(hpcd); + + if (((USBx->GUSBCFG & USB_OTG_GUSBCFG_PHYSEL) != 0U) && + (hpcd->Init.battery_charging_enable == 1U)) + { + /* Enable USB Transceiver */ + USBx->GCCFG |= USB_OTG_GCCFG_PWRDWN; + } + (void)USB_DevConnect(hpcd->Instance); + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Disconnect the USB device. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + __HAL_LOCK(hpcd); + (void)USB_DevDisconnect(hpcd->Instance); + + if (((USBx->GUSBCFG & USB_OTG_GUSBCFG_PHYSEL) != 0U) && + (hpcd->Init.battery_charging_enable == 1U)) + { + /* Disable USB Transceiver */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN); + } + + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Set the USB Device address. + * @param hpcd PCD handle + * @param address new device address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address) +{ + __HAL_LOCK(hpcd); + hpcd->USB_Address = address; + (void)USB_SetDevAddress(hpcd->Instance, address); + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} +/** + * @brief Open and configure an endpoint. + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @param ep_mps endpoint max packet size + * @param ep_type endpoint type + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, + uint16_t ep_mps, uint8_t ep_type) +{ + HAL_StatusTypeDef ret = HAL_OK; + PCD_EPTypeDef *ep; + + if ((ep_addr & 0x80U) == 0x80U) + { + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 1U; + } + else + { + ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 0U; + } + + ep->num = ep_addr & EP_ADDR_MSK; + ep->maxpacket = ep_mps; + ep->type = ep_type; + + if (ep->is_in != 0U) + { + /* Assign a Tx FIFO */ + ep->tx_fifo_num = ep->num; + } + + /* Set initial data PID. */ + if (ep_type == EP_TYPE_BULK) + { + ep->data_pid_start = 0U; + } + + __HAL_LOCK(hpcd); + (void)USB_ActivateEndpoint(hpcd->Instance, ep); + __HAL_UNLOCK(hpcd); + + return ret; +} + +/** + * @brief Deactivate an endpoint. + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +{ + PCD_EPTypeDef *ep; + + if ((ep_addr & 0x80U) == 0x80U) + { + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 1U; + } + else + { + ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 0U; + } + ep->num = ep_addr & EP_ADDR_MSK; + + __HAL_LOCK(hpcd); + (void)USB_DeactivateEndpoint(hpcd->Instance, ep); + __HAL_UNLOCK(hpcd); + return HAL_OK; +} + + +/** + * @brief Receive an amount of data. + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @param pBuf pointer to the reception buffer + * @param len amount of data to be received + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len) +{ + PCD_EPTypeDef *ep; + + ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; + + /*setup and start the Xfer */ + ep->xfer_buff = pBuf; + ep->xfer_len = len; + ep->xfer_count = 0U; + ep->is_in = 0U; + ep->num = ep_addr & EP_ADDR_MSK; + + if (hpcd->Init.dma_enable == 1U) + { + ep->dma_addr = (uint32_t)pBuf; + } + + (void)USB_EPStartXfer(hpcd->Instance, ep, (uint8_t)hpcd->Init.dma_enable); + + return HAL_OK; +} + +/** + * @brief Get Received Data Size + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval Data Size + */ +uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr) +{ + return hpcd->OUT_ep[ep_addr & EP_ADDR_MSK].xfer_count; +} +/** + * @brief Send an amount of data + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @param pBuf pointer to the transmission buffer + * @param len amount of data to be sent + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len) +{ + PCD_EPTypeDef *ep; + + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + + /*setup and start the Xfer */ + ep->xfer_buff = pBuf; + ep->xfer_len = len; + ep->xfer_count = 0U; + ep->is_in = 1U; + ep->num = ep_addr & EP_ADDR_MSK; + + if (hpcd->Init.dma_enable == 1U) + { + ep->dma_addr = (uint32_t)pBuf; + } + + (void)USB_EPStartXfer(hpcd->Instance, ep, (uint8_t)hpcd->Init.dma_enable); + + return HAL_OK; +} + +/** + * @brief Set a STALL condition over an endpoint + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +{ + PCD_EPTypeDef *ep; + + if (((uint32_t)ep_addr & EP_ADDR_MSK) > hpcd->Init.dev_endpoints) + { + return HAL_ERROR; + } + + if ((0x80U & ep_addr) == 0x80U) + { + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 1U; + } + else + { + ep = &hpcd->OUT_ep[ep_addr]; + ep->is_in = 0U; + } + + ep->is_stall = 1U; + ep->num = ep_addr & EP_ADDR_MSK; + + __HAL_LOCK(hpcd); + + (void)USB_EPSetStall(hpcd->Instance, ep); + + if ((ep_addr & EP_ADDR_MSK) == 0U) + { + (void)USB_EP0_OutStart(hpcd->Instance, (uint8_t)hpcd->Init.dma_enable, (uint8_t *)hpcd->Setup); + } + + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Clear a STALL condition over in an endpoint + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +{ + PCD_EPTypeDef *ep; + + if (((uint32_t)ep_addr & 0x0FU) > hpcd->Init.dev_endpoints) + { + return HAL_ERROR; + } + + if ((0x80U & ep_addr) == 0x80U) + { + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 1U; + } + else + { + ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; + ep->is_in = 0U; + } + + ep->is_stall = 0U; + ep->num = ep_addr & EP_ADDR_MSK; + + __HAL_LOCK(hpcd); + (void)USB_EPClearStall(hpcd->Instance, ep); + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Abort an USB EP transaction. + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +{ + HAL_StatusTypeDef ret; + PCD_EPTypeDef *ep; + + if ((0x80U & ep_addr) == 0x80U) + { + ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; + } + else + { + ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; + } + + /* Stop Xfer */ + ret = USB_EPStopXfer(hpcd->Instance, ep); + + return ret; +} + +/** + * @brief Flush an endpoint + * @param hpcd PCD handle + * @param ep_addr endpoint address + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) +{ + __HAL_LOCK(hpcd); + + if ((ep_addr & 0x80U) == 0x80U) + { + (void)USB_FlushTxFifo(hpcd->Instance, (uint32_t)ep_addr & EP_ADDR_MSK); + } + else + { + (void)USB_FlushRxFifo(hpcd->Instance); + } + + __HAL_UNLOCK(hpcd); + + return HAL_OK; +} + +/** + * @brief Activate remote wakeup signalling + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) +{ + return (USB_ActivateRemoteWakeup(hpcd->Instance)); +} + +/** + * @brief De-activate remote wakeup signalling. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) +{ + return (USB_DeActivateRemoteWakeup(hpcd->Instance)); +} + +/** + * @} + */ + +/** @defgroup PCD_Exported_Functions_Group4 Peripheral State functions + * @brief Peripheral State functions + * +@verbatim + =============================================================================== + ##### Peripheral State functions ##### + =============================================================================== + [..] + This subsection permits to get in run-time the status of the peripheral + and the data flow. + +@endverbatim + * @{ + */ + +/** + * @brief Return the PCD handle state. + * @param hpcd PCD handle + * @retval HAL state + */ +PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd) +{ + return hpcd->State; +} + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** + * @brief Set the USB Device high speed test mode. + * @param hpcd PCD handle + * @param testmode USB Device high speed test mode + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCD_SetTestMode(const PCD_HandleTypeDef *hpcd, uint8_t testmode) +{ + const USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t USBx_BASE = (uint32_t)USBx; + + switch (testmode) + { + case TEST_J: + case TEST_K: + case TEST_SE0_NAK: + case TEST_PACKET: + case TEST_FORCE_EN: + USBx_DEVICE->DCTL |= (uint32_t)testmode << 4; + break; + + default: + break; + } + + return HAL_OK; +} +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +/** + * @} + */ + +/** + * @} + */ + +/* Private functions ---------------------------------------------------------*/ +/** @addtogroup PCD_Private_Functions + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** + * @brief Check FIFO for the next packet to be loaded. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval HAL status + */ +static HAL_StatusTypeDef PCD_WriteEmptyTxFifo(PCD_HandleTypeDef *hpcd, uint32_t epnum) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t USBx_BASE = (uint32_t)USBx; + USB_OTG_EPTypeDef *ep; + uint32_t len; + uint32_t len32b; + uint32_t fifoemptymsk; + + ep = &hpcd->IN_ep[epnum]; + + if (ep->xfer_count > ep->xfer_len) + { + return HAL_ERROR; + } + + len = ep->xfer_len - ep->xfer_count; + + if (len > ep->maxpacket) + { + len = ep->maxpacket; + } + + len32b = (len + 3U) / 4U; + + while (((USBx_INEP(epnum)->DTXFSTS & USB_OTG_DTXFSTS_INEPTFSAV) >= len32b) && + (ep->xfer_count < ep->xfer_len) && (ep->xfer_len != 0U)) + { + /* Write the FIFO */ + len = ep->xfer_len - ep->xfer_count; + + if (len > ep->maxpacket) + { + len = ep->maxpacket; + } + len32b = (len + 3U) / 4U; + + (void)USB_WritePacket(USBx, ep->xfer_buff, (uint8_t)epnum, (uint16_t)len, + (uint8_t)hpcd->Init.dma_enable); + + ep->xfer_buff += len; + ep->xfer_count += len; + } + + if (ep->xfer_len <= ep->xfer_count) + { + fifoemptymsk = (uint32_t)(0x1UL << (epnum & EP_ADDR_MSK)); + USBx_DEVICE->DIEPEMPMSK &= ~fifoemptymsk; + } + + return HAL_OK; +} + + +/** + * @brief process EP OUT transfer complete interrupt. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval HAL status + */ +static HAL_StatusTypeDef PCD_EP_OutXfrComplete_int(PCD_HandleTypeDef *hpcd, uint32_t epnum) +{ + USB_OTG_EPTypeDef *ep; + const USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t gSNPSiD = *(__IO const uint32_t *)(&USBx->CID + 0x1U); + uint32_t DoepintReg = USBx_OUTEP(epnum)->DOEPINT; + + if (hpcd->Init.dma_enable == 1U) + { + if ((DoepintReg & USB_OTG_DOEPINT_STUP) == USB_OTG_DOEPINT_STUP) /* Class C */ + { + /* StupPktRcvd = 1 this is a setup packet */ + if ((gSNPSiD > USB_OTG_CORE_ID_300A) && + ((DoepintReg & USB_OTG_DOEPINT_STPKTRX) == USB_OTG_DOEPINT_STPKTRX)) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_STPKTRX); + } + } + else if ((DoepintReg & USB_OTG_DOEPINT_OTEPSPR) == USB_OTG_DOEPINT_OTEPSPR) /* Class E */ + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_OTEPSPR); + } + else if ((DoepintReg & (USB_OTG_DOEPINT_STUP | USB_OTG_DOEPINT_OTEPSPR)) == 0U) + { + /* StupPktRcvd = 1 this is a setup packet */ + if ((gSNPSiD > USB_OTG_CORE_ID_300A) && + ((DoepintReg & USB_OTG_DOEPINT_STPKTRX) == USB_OTG_DOEPINT_STPKTRX)) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_STPKTRX); + } + else + { + ep = &hpcd->OUT_ep[epnum]; + + /* out data packet received over EP */ + ep->xfer_count = ep->xfer_size - (USBx_OUTEP(epnum)->DOEPTSIZ & USB_OTG_DOEPTSIZ_XFRSIZ); + + if (epnum == 0U) + { + if (ep->xfer_len == 0U) + { + /* this is ZLP, so prepare EP0 for next setup */ + (void)USB_EP0_OutStart(hpcd->Instance, 1U, (uint8_t *)hpcd->Setup); + } + else + { + ep->xfer_buff += ep->xfer_count; + } + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_DataOutStageCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + } + else + { + /* ... */ + } + } + else + { + if (gSNPSiD == USB_OTG_CORE_ID_310A) + { + /* StupPktRcvd = 1 this is a setup packet */ + if ((DoepintReg & USB_OTG_DOEPINT_STPKTRX) == USB_OTG_DOEPINT_STPKTRX) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_STPKTRX); + } + else + { + if ((DoepintReg & USB_OTG_DOEPINT_OTEPSPR) == USB_OTG_DOEPINT_OTEPSPR) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_OTEPSPR); + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_DataOutStageCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + } + else + { + if ((epnum == 0U) && (hpcd->OUT_ep[epnum].xfer_len == 0U)) + { + /* this is ZLP, so prepare EP0 for next setup */ + (void)USB_EP0_OutStart(hpcd->Instance, 0U, (uint8_t *)hpcd->Setup); + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum); +#else + HAL_PCD_DataOutStageCallback(hpcd, (uint8_t)epnum); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + } + + return HAL_OK; +} + + +/** + * @brief process EP OUT setup packet received interrupt. + * @param hpcd PCD handle + * @param epnum endpoint number + * @retval HAL status + */ +static HAL_StatusTypeDef PCD_EP_OutSetupPacket_int(PCD_HandleTypeDef *hpcd, uint32_t epnum) +{ + const USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t gSNPSiD = *(__IO const uint32_t *)(&USBx->CID + 0x1U); + uint32_t DoepintReg = USBx_OUTEP(epnum)->DOEPINT; + + if ((gSNPSiD > USB_OTG_CORE_ID_300A) && + ((DoepintReg & USB_OTG_DOEPINT_STPKTRX) == USB_OTG_DOEPINT_STPKTRX)) + { + CLEAR_OUT_EP_INTR(epnum, USB_OTG_DOEPINT_STPKTRX); + } + + /* Inform the upper layer that a setup packet is available */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->SetupStageCallback(hpcd); +#else + HAL_PCD_SetupStageCallback(hpcd); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + + if ((gSNPSiD > USB_OTG_CORE_ID_300A) && (hpcd->Init.dma_enable == 1U)) + { + (void)USB_EP0_OutStart(hpcd->Instance, 1U, (uint8_t *)hpcd->Setup); + } + + return HAL_OK; +} +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +#endif /* HAL_PCD_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c new file mode 100644 index 0000000..1d4bfe9 --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c @@ -0,0 +1,341 @@ +/** + ****************************************************************************** + * @file stm32h7xx_hal_pcd_ex.c + * @author MCD Application Team + * @brief PCD Extended HAL module driver. + * This file provides firmware functions to manage the following + * functionalities of the USB Peripheral Controller: + * + Extended features functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal.h" + +/** @addtogroup STM32H7xx_HAL_Driver + * @{ + */ + +/** @defgroup PCDEx PCDEx + * @brief PCD Extended HAL module driver + * @{ + */ + +#ifdef HAL_PCD_MODULE_ENABLED + +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/* Private types -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private constants ---------------------------------------------------------*/ +/* Private macros ------------------------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +/* Exported functions --------------------------------------------------------*/ + +/** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions + * @{ + */ + +/** @defgroup PCDEx_Exported_Functions_Group1 Peripheral Control functions + * @brief PCDEx control functions + * +@verbatim + =============================================================================== + ##### Extended features functions ##### + =============================================================================== + [..] This section provides functions allowing to: + (+) Update FIFO configuration + +@endverbatim + * @{ + */ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/** + * @brief Set Tx FIFO + * @param hpcd PCD handle + * @param fifo The number of Tx fifo + * @param size Fifo size + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size) +{ + uint8_t i; + uint32_t Tx_Offset; + + /* TXn min size = 16 words. (n : Transmit FIFO index) + When a TxFIFO is not used, the Configuration should be as follows: + case 1 : n > m and Txn is not used (n,m : Transmit FIFO indexes) + --> Txm can use the space allocated for Txn. + case2 : n < m and Txn is not used (n,m : Transmit FIFO indexes) + --> Txn should be configured with the minimum space of 16 words + The FIFO is used optimally when used TxFIFOs are allocated in the top + of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones. + When DMA is used 3n * FIFO locations should be reserved for internal DMA registers */ + + Tx_Offset = hpcd->Instance->GRXFSIZ; + + if (fifo == 0U) + { + hpcd->Instance->DIEPTXF0_HNPTXFSIZ = ((uint32_t)size << 16) | Tx_Offset; + } + else + { + Tx_Offset += (hpcd->Instance->DIEPTXF0_HNPTXFSIZ) >> 16; + for (i = 0U; i < (fifo - 1U); i++) + { + Tx_Offset += (hpcd->Instance->DIEPTXF[i] >> 16); + } + + /* Multiply Tx_Size by 2 to get higher performance */ + hpcd->Instance->DIEPTXF[fifo - 1U] = ((uint32_t)size << 16) | Tx_Offset; + } + + return HAL_OK; +} + +/** + * @brief Set Rx FIFO + * @param hpcd PCD handle + * @param size Size of Rx fifo + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size) +{ + hpcd->Instance->GRXFSIZ = size; + + return HAL_OK; +} + +/** + * @brief Activate LPM feature. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + hpcd->lpm_active = 1U; + hpcd->LPM_State = LPM_L0; + USBx->GINTMSK |= USB_OTG_GINTMSK_LPMINTM; + USBx->GLPMCFG |= (USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL); + + return HAL_OK; +} + +/** + * @brief Deactivate LPM feature. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + hpcd->lpm_active = 0U; + USBx->GINTMSK &= ~USB_OTG_GINTMSK_LPMINTM; + USBx->GLPMCFG &= ~(USB_OTG_GLPMCFG_LPMEN | USB_OTG_GLPMCFG_LPMACK | USB_OTG_GLPMCFG_ENBESL); + + return HAL_OK; +} + + +/** + * @brief Handle BatteryCharging Process. + * @param hpcd PCD handle + * @retval HAL status + */ +void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + uint32_t tickstart = HAL_GetTick(); + + /* Enable DCD : Data Contact Detect */ + USBx->GCCFG |= USB_OTG_GCCFG_DCDEN; + + /* Wait for Min DCD Timeout */ + HAL_Delay(300U); + + /* Check Detect flag */ + if ((USBx->GCCFG & USB_OTG_GCCFG_DCDET) == USB_OTG_GCCFG_DCDET) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_CONTACT_DETECTION); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CONTACT_DETECTION); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + + /* Primary detection: checks if connected to Standard Downstream Port + (without charging capability) */ + USBx->GCCFG &= ~USB_OTG_GCCFG_DCDEN; + HAL_Delay(50U); + USBx->GCCFG |= USB_OTG_GCCFG_PDEN; + HAL_Delay(50U); + + if ((USBx->GCCFG & USB_OTG_GCCFG_PDET) == 0U) + { + /* Case of Standard Downstream Port */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + else + { + /* start secondary detection to check connection to Charging Downstream + Port or Dedicated Charging Port */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN); + HAL_Delay(50U); + USBx->GCCFG |= USB_OTG_GCCFG_SDEN; + HAL_Delay(50U); + + if ((USBx->GCCFG & USB_OTG_GCCFG_SDET) == USB_OTG_GCCFG_SDET) + { + /* case Dedicated Charging Port */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + else + { + /* case Charging Downstream Port */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + } + + /* Battery Charging capability discovery finished */ + (void)HAL_PCDEx_DeActivateBCD(hpcd); + + /* Check for the Timeout, else start USB Device */ + if ((HAL_GetTick() - tickstart) > 1000U) + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_ERROR); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } + else + { +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED); +#else + HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + } +} + +/** + * @brief Activate BatteryCharging feature. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN); + USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN); + + /* Power Down USB transceiver */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN); + + /* Enable Battery charging */ + USBx->GCCFG |= USB_OTG_GCCFG_BCDEN; + + hpcd->battery_charging_active = 1U; + + return HAL_OK; +} + +/** + * @brief Deactivate BatteryCharging feature. + * @param hpcd PCD handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd) +{ + USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; + + USBx->GCCFG &= ~(USB_OTG_GCCFG_SDEN); + USBx->GCCFG &= ~(USB_OTG_GCCFG_PDEN); + + /* Disable Battery charging */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_BCDEN); + + hpcd->battery_charging_active = 0U; + + return HAL_OK; +} + +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +/** + * @brief Send LPM message to user layer callback. + * @param hpcd PCD handle + * @param msg LPM message + * @retval HAL status + */ +__weak void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(msg); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCDEx_LPM_Callback could be implemented in the user file + */ +} + +/** + * @brief Send BatteryCharging message to user layer callback. + * @param hpcd PCD handle + * @param msg LPM message + * @retval HAL status + */ +__weak void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg) +{ + /* Prevent unused argument(s) compilation warning */ + UNUSED(hpcd); + UNUSED(msg); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_PCDEx_BCD_Callback could be implemented in the user file + */ +} + +/** + * @} + */ + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +#endif /* HAL_PCD_MODULE_ENABLED */ + +/** + * @} + */ + +/** + * @} + */ diff --git a/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c new file mode 100644 index 0000000..ed2ca0f --- /dev/null +++ b/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c @@ -0,0 +1,2257 @@ +/** + ****************************************************************************** + * @file stm32h7xx_ll_usb.c + * @author MCD Application Team + * @brief USB Low Layer HAL module driver. + * + * This file provides firmware functions to manage the following + * functionalities of the USB Peripheral Controller: + * + Initialization/de-initialization functions + * + I/O operation functions + * + Peripheral Control functions + * + Peripheral State functions + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2017 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. + * + ****************************************************************************** + @verbatim + ============================================================================== + ##### How to use this driver ##### + ============================================================================== + [..] + (#) Fill parameters of Init structure in USB_CfgTypeDef structure. + + (#) Call USB_CoreInit() API to initialize the USB Core peripheral. + + (#) The upper HAL HCD/PCD driver will call the right routines for its internal processes. + + @endverbatim + + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx_hal.h" + +/** @addtogroup STM32H7xx_LL_USB_DRIVER + * @{ + */ + +#if defined (HAL_PCD_MODULE_ENABLED) || defined (HAL_HCD_MODULE_ENABLED) +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +/* Private functions ---------------------------------------------------------*/ +#if defined (USB_OTG_FS) || defined (USB_OTG_HS) +static HAL_StatusTypeDef USB_CoreReset(USB_OTG_GlobalTypeDef *USBx); + +/* Exported functions --------------------------------------------------------*/ +/** @defgroup USB_LL_Exported_Functions USB Low Layer Exported Functions + * @{ + */ + +/** @defgroup USB_LL_Exported_Functions_Group1 Initialization/de-initialization functions + * @brief Initialization and Configuration functions + * +@verbatim + =============================================================================== + ##### Initialization/de-initialization functions ##### + =============================================================================== + +@endverbatim + * @{ + */ + +/** + * @brief Initializes the USB Core + * @param USBx USB Instance + * @param cfg pointer to a USB_OTG_CfgTypeDef structure that contains + * the configuration information for the specified USBx peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg) +{ + HAL_StatusTypeDef ret; + if (cfg.phy_itface == USB_OTG_ULPI_PHY) + { + USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN); + + /* Init The ULPI Interface */ + USBx->GUSBCFG &= ~(USB_OTG_GUSBCFG_TSDPS | USB_OTG_GUSBCFG_ULPIFSLS | USB_OTG_GUSBCFG_PHYSEL); + + /* Select vbus source */ + USBx->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI); + if (cfg.use_external_vbus == 1U) + { + USBx->GUSBCFG |= USB_OTG_GUSBCFG_ULPIEVBUSD; + } + + /* Reset after a PHY select */ + ret = USB_CoreReset(USBx); + } + else /* FS interface (embedded Phy) */ + { + /* Select FS Embedded PHY */ + USBx->GUSBCFG |= USB_OTG_GUSBCFG_PHYSEL; + + /* Reset after a PHY select */ + ret = USB_CoreReset(USBx); + + if (cfg.battery_charging_enable == 0U) + { + /* Activate the USB Transceiver */ + USBx->GCCFG |= USB_OTG_GCCFG_PWRDWN; + } + else + { + /* Deactivate the USB Transceiver */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN); + } + } + + if (cfg.dma_enable == 1U) + { + /* make sure to reserve 18 fifo Locations for DMA buffers */ + USBx->GDFIFOCFG &= ~(0xFFFFU << 16); + USBx->GDFIFOCFG |= 0x3EEU << 16; + + USBx->GAHBCFG |= USB_OTG_GAHBCFG_HBSTLEN_2; + USBx->GAHBCFG |= USB_OTG_GAHBCFG_DMAEN; + } + + return ret; +} + + +/** + * @brief Set the USB turnaround time + * @param USBx USB Instance + * @param hclk: AHB clock frequency + * @retval USB turnaround time In PHY Clocks number + */ +HAL_StatusTypeDef USB_SetTurnaroundTime(USB_OTG_GlobalTypeDef *USBx, + uint32_t hclk, uint8_t speed) +{ + uint32_t UsbTrd; + + /* The USBTRD is configured according to the tables below, depending on AHB frequency + used by application. In the low AHB frequency range it is used to stretch enough the USB response + time to IN tokens, the USB turnaround time, so to compensate for the longer AHB read access + latency to the Data FIFO */ + if (speed == USBD_FS_SPEED) + { + if ((hclk >= 14200000U) && (hclk < 15000000U)) + { + /* hclk Clock Range between 14.2-15 MHz */ + UsbTrd = 0xFU; + } + else if ((hclk >= 15000000U) && (hclk < 16000000U)) + { + /* hclk Clock Range between 15-16 MHz */ + UsbTrd = 0xEU; + } + else if ((hclk >= 16000000U) && (hclk < 17200000U)) + { + /* hclk Clock Range between 16-17.2 MHz */ + UsbTrd = 0xDU; + } + else if ((hclk >= 17200000U) && (hclk < 18500000U)) + { + /* hclk Clock Range between 17.2-18.5 MHz */ + UsbTrd = 0xCU; + } + else if ((hclk >= 18500000U) && (hclk < 20000000U)) + { + /* hclk Clock Range between 18.5-20 MHz */ + UsbTrd = 0xBU; + } + else if ((hclk >= 20000000U) && (hclk < 21800000U)) + { + /* hclk Clock Range between 20-21.8 MHz */ + UsbTrd = 0xAU; + } + else if ((hclk >= 21800000U) && (hclk < 24000000U)) + { + /* hclk Clock Range between 21.8-24 MHz */ + UsbTrd = 0x9U; + } + else if ((hclk >= 24000000U) && (hclk < 27700000U)) + { + /* hclk Clock Range between 24-27.7 MHz */ + UsbTrd = 0x8U; + } + else if ((hclk >= 27700000U) && (hclk < 32000000U)) + { + /* hclk Clock Range between 27.7-32 MHz */ + UsbTrd = 0x7U; + } + else /* if(hclk >= 32000000) */ + { + /* hclk Clock Range between 32-200 MHz */ + UsbTrd = 0x6U; + } + } + else if (speed == USBD_HS_SPEED) + { + UsbTrd = USBD_HS_TRDT_VALUE; + } + else + { + UsbTrd = USBD_DEFAULT_TRDT_VALUE; + } + + USBx->GUSBCFG &= ~USB_OTG_GUSBCFG_TRDT; + USBx->GUSBCFG |= (uint32_t)((UsbTrd << 10) & USB_OTG_GUSBCFG_TRDT); + + return HAL_OK; +} + +/** + * @brief USB_EnableGlobalInt + * Enables the controller's Global Int in the AHB Config reg + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx) +{ + USBx->GAHBCFG |= USB_OTG_GAHBCFG_GINT; + return HAL_OK; +} + +/** + * @brief USB_DisableGlobalInt + * Disable the controller's Global Int in the AHB Config reg + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx) +{ + USBx->GAHBCFG &= ~USB_OTG_GAHBCFG_GINT; + return HAL_OK; +} + +/** + * @brief USB_SetCurrentMode Set functional mode + * @param USBx Selected device + * @param mode current core mode + * This parameter can be one of these values: + * @arg USB_DEVICE_MODE Peripheral mode + * @arg USB_HOST_MODE Host mode + * @retval HAL status + */ +HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode) +{ + uint32_t ms = 0U; + + USBx->GUSBCFG &= ~(USB_OTG_GUSBCFG_FHMOD | USB_OTG_GUSBCFG_FDMOD); + + if (mode == USB_HOST_MODE) + { + USBx->GUSBCFG |= USB_OTG_GUSBCFG_FHMOD; + + do + { + HAL_Delay(10U); + ms += 10U; + } while ((USB_GetMode(USBx) != (uint32_t)USB_HOST_MODE) && (ms < HAL_USB_CURRENT_MODE_MAX_DELAY_MS)); + } + else if (mode == USB_DEVICE_MODE) + { + USBx->GUSBCFG |= USB_OTG_GUSBCFG_FDMOD; + + do + { + HAL_Delay(10U); + ms += 10U; + } while ((USB_GetMode(USBx) != (uint32_t)USB_DEVICE_MODE) && (ms < HAL_USB_CURRENT_MODE_MAX_DELAY_MS)); + } + else + { + return HAL_ERROR; + } + + if (ms == HAL_USB_CURRENT_MODE_MAX_DELAY_MS) + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief USB_DevInit Initializes the USB_OTG controller registers + * for device mode + * @param USBx Selected device + * @param cfg pointer to a USB_OTG_CfgTypeDef structure that contains + * the configuration information for the specified USBx peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg) +{ + HAL_StatusTypeDef ret = HAL_OK; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t i; + + for (i = 0U; i < 15U; i++) + { + USBx->DIEPTXF[i] = 0U; + } + + /* VBUS Sensing setup */ + if (cfg.vbus_sensing_enable == 0U) + { + USBx_DEVICE->DCTL |= USB_OTG_DCTL_SDIS; + + /* Deactivate VBUS Sensing B */ + USBx->GCCFG &= ~USB_OTG_GCCFG_VBDEN; + + /* B-peripheral session valid override enable */ + USBx->GOTGCTL |= USB_OTG_GOTGCTL_BVALOEN; + USBx->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL; + } + else + { + /* Enable HW VBUS sensing */ + USBx->GCCFG |= USB_OTG_GCCFG_VBDEN; + } + + /* Restart the Phy Clock */ + USBx_PCGCCTL = 0U; + + if (cfg.phy_itface == USB_OTG_ULPI_PHY) + { + if (cfg.speed == USBD_HS_SPEED) + { + /* Set Core speed to High speed mode */ + (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_HIGH); + } + else + { + /* Set Core speed to Full speed mode */ + (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_HIGH_IN_FULL); + } + } + else + { + /* Set Core speed to Full speed mode */ + (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_FULL); + } + + /* Flush the FIFOs */ + if (USB_FlushTxFifo(USBx, 0x10U) != HAL_OK) /* all Tx FIFOs */ + { + ret = HAL_ERROR; + } + + if (USB_FlushRxFifo(USBx) != HAL_OK) + { + ret = HAL_ERROR; + } + + /* Clear all pending Device Interrupts */ + USBx_DEVICE->DIEPMSK = 0U; + USBx_DEVICE->DOEPMSK = 0U; + USBx_DEVICE->DAINTMSK = 0U; + + for (i = 0U; i < cfg.dev_endpoints; i++) + { + if ((USBx_INEP(i)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA) + { + if (i == 0U) + { + USBx_INEP(i)->DIEPCTL = USB_OTG_DIEPCTL_SNAK; + } + else + { + USBx_INEP(i)->DIEPCTL = USB_OTG_DIEPCTL_EPDIS | USB_OTG_DIEPCTL_SNAK; + } + } + else + { + USBx_INEP(i)->DIEPCTL = 0U; + } + + USBx_INEP(i)->DIEPTSIZ = 0U; + USBx_INEP(i)->DIEPINT = 0xFB7FU; + } + + for (i = 0U; i < cfg.dev_endpoints; i++) + { + if ((USBx_OUTEP(i)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) + { + if (i == 0U) + { + USBx_OUTEP(i)->DOEPCTL = USB_OTG_DOEPCTL_SNAK; + } + else + { + USBx_OUTEP(i)->DOEPCTL = USB_OTG_DOEPCTL_EPDIS | USB_OTG_DOEPCTL_SNAK; + } + } + else + { + USBx_OUTEP(i)->DOEPCTL = 0U; + } + + USBx_OUTEP(i)->DOEPTSIZ = 0U; + USBx_OUTEP(i)->DOEPINT = 0xFB7FU; + } + + USBx_DEVICE->DIEPMSK &= ~(USB_OTG_DIEPMSK_TXFURM); + + /* Disable all interrupts. */ + USBx->GINTMSK = 0U; + + /* Clear any pending interrupts */ + USBx->GINTSTS = 0xBFFFFFFFU; + + /* Enable the common interrupts */ + if (cfg.dma_enable == 0U) + { + USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM; + } + + /* Enable interrupts matching to the Device mode ONLY */ + USBx->GINTMSK |= USB_OTG_GINTMSK_USBSUSPM | USB_OTG_GINTMSK_USBRST | + USB_OTG_GINTMSK_ENUMDNEM | USB_OTG_GINTMSK_IEPINT | + USB_OTG_GINTMSK_OEPINT | USB_OTG_GINTMSK_IISOIXFRM | + USB_OTG_GINTMSK_PXFRM_IISOOXFRM | USB_OTG_GINTMSK_WUIM; + + if (cfg.Sof_enable != 0U) + { + USBx->GINTMSK |= USB_OTG_GINTMSK_SOFM; + } + + if (cfg.vbus_sensing_enable == 1U) + { + USBx->GINTMSK |= (USB_OTG_GINTMSK_SRQIM | USB_OTG_GINTMSK_OTGINT); + } + + return ret; +} + +/** + * @brief USB_FlushTxFifo Flush a Tx FIFO + * @param USBx Selected device + * @param num FIFO number + * This parameter can be a value from 1 to 15 + 15 means Flush all Tx FIFOs + * @retval HAL status + */ +HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num) +{ + __IO uint32_t count = 0U; + + /* Wait for AHB master IDLE state. */ + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL) == 0U); + + /* Flush TX Fifo */ + count = 0U; + USBx->GRSTCTL = (USB_OTG_GRSTCTL_TXFFLSH | (num << 6)); + + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_TXFFLSH) == USB_OTG_GRSTCTL_TXFFLSH); + + return HAL_OK; +} + +/** + * @brief USB_FlushRxFifo Flush Rx FIFO + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx) +{ + __IO uint32_t count = 0U; + + /* Wait for AHB master IDLE state. */ + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL) == 0U); + + /* Flush RX Fifo */ + count = 0U; + USBx->GRSTCTL = USB_OTG_GRSTCTL_RXFFLSH; + + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_RXFFLSH) == USB_OTG_GRSTCTL_RXFFLSH); + + return HAL_OK; +} + +/** + * @brief USB_SetDevSpeed Initializes the DevSpd field of DCFG register + * depending the PHY type and the enumeration speed of the device. + * @param USBx Selected device + * @param speed device speed + * This parameter can be one of these values: + * @arg USB_OTG_SPEED_HIGH: High speed mode + * @arg USB_OTG_SPEED_HIGH_IN_FULL: High speed core in Full Speed mode + * @arg USB_OTG_SPEED_FULL: Full speed mode + * @retval Hal status + */ +HAL_StatusTypeDef USB_SetDevSpeed(const USB_OTG_GlobalTypeDef *USBx, uint8_t speed) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + USBx_DEVICE->DCFG |= speed; + return HAL_OK; +} + +/** + * @brief USB_GetDevSpeed Return the Dev Speed + * @param USBx Selected device + * @retval speed device speed + * This parameter can be one of these values: + * @arg USBD_HS_SPEED: High speed mode + * @arg USBD_FS_SPEED: Full speed mode + */ +uint8_t USB_GetDevSpeed(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint8_t speed; + uint32_t DevEnumSpeed = USBx_DEVICE->DSTS & USB_OTG_DSTS_ENUMSPD; + + if (DevEnumSpeed == DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ) + { + speed = USBD_HS_SPEED; + } + else if ((DevEnumSpeed == DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ) || + (DevEnumSpeed == DSTS_ENUMSPD_FS_PHY_48MHZ)) + { + speed = USBD_FS_SPEED; + } + else + { + speed = 0xFU; + } + + return speed; +} + +/** + * @brief Activate and configure an endpoint + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_ActivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + if (ep->is_in == 1U) + { + USBx_DEVICE->DAINTMSK |= USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep->num & EP_ADDR_MSK)); + + if ((USBx_INEP(epnum)->DIEPCTL & USB_OTG_DIEPCTL_USBAEP) == 0U) + { + USBx_INEP(epnum)->DIEPCTL |= (ep->maxpacket & USB_OTG_DIEPCTL_MPSIZ) | + ((uint32_t)ep->type << 18) | (epnum << 22) | + USB_OTG_DIEPCTL_SD0PID_SEVNFRM | + USB_OTG_DIEPCTL_USBAEP; + } + } + else + { + USBx_DEVICE->DAINTMSK |= USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16); + + if (((USBx_OUTEP(epnum)->DOEPCTL) & USB_OTG_DOEPCTL_USBAEP) == 0U) + { + USBx_OUTEP(epnum)->DOEPCTL |= (ep->maxpacket & USB_OTG_DOEPCTL_MPSIZ) | + ((uint32_t)ep->type << 18) | + USB_OTG_DIEPCTL_SD0PID_SEVNFRM | + USB_OTG_DOEPCTL_USBAEP; + } + } + return HAL_OK; +} + +/** + * @brief Activate and configure a dedicated endpoint + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + /* Read DEPCTLn register */ + if (ep->is_in == 1U) + { + if (((USBx_INEP(epnum)->DIEPCTL) & USB_OTG_DIEPCTL_USBAEP) == 0U) + { + USBx_INEP(epnum)->DIEPCTL |= (ep->maxpacket & USB_OTG_DIEPCTL_MPSIZ) | + ((uint32_t)ep->type << 18) | (epnum << 22) | + USB_OTG_DIEPCTL_SD0PID_SEVNFRM | + USB_OTG_DIEPCTL_USBAEP; + } + + USBx_DEVICE->DEACHMSK |= USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep->num & EP_ADDR_MSK)); + } + else + { + if (((USBx_OUTEP(epnum)->DOEPCTL) & USB_OTG_DOEPCTL_USBAEP) == 0U) + { + USBx_OUTEP(epnum)->DOEPCTL |= (ep->maxpacket & USB_OTG_DOEPCTL_MPSIZ) | + ((uint32_t)ep->type << 18) | (epnum << 22) | + USB_OTG_DOEPCTL_USBAEP; + } + + USBx_DEVICE->DEACHMSK |= USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16); + } + + return HAL_OK; +} + +/** + * @brief De-activate and de-initialize an endpoint + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_DeactivateEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + /* Read DEPCTLn register */ + if (ep->is_in == 1U) + { + if ((USBx_INEP(epnum)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA) + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SNAK; + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_EPDIS; + } + + USBx_DEVICE->DEACHMSK &= ~(USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep->num & EP_ADDR_MSK))); + USBx_DEVICE->DAINTMSK &= ~(USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep->num & EP_ADDR_MSK))); + USBx_INEP(epnum)->DIEPCTL &= ~(USB_OTG_DIEPCTL_USBAEP | + USB_OTG_DIEPCTL_MPSIZ | + USB_OTG_DIEPCTL_TXFNUM | + USB_OTG_DIEPCTL_SD0PID_SEVNFRM | + USB_OTG_DIEPCTL_EPTYP); + } + else + { + if ((USBx_OUTEP(epnum)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) + { + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_SNAK; + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_EPDIS; + } + + USBx_DEVICE->DEACHMSK &= ~(USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16)); + USBx_DEVICE->DAINTMSK &= ~(USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16)); + USBx_OUTEP(epnum)->DOEPCTL &= ~(USB_OTG_DOEPCTL_USBAEP | + USB_OTG_DOEPCTL_MPSIZ | + USB_OTG_DOEPCTL_SD0PID_SEVNFRM | + USB_OTG_DOEPCTL_EPTYP); + } + + return HAL_OK; +} + +/** + * @brief De-activate and de-initialize a dedicated endpoint + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + /* Read DEPCTLn register */ + if (ep->is_in == 1U) + { + if ((USBx_INEP(epnum)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA) + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SNAK; + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_EPDIS; + } + + USBx_INEP(epnum)->DIEPCTL &= ~ USB_OTG_DIEPCTL_USBAEP; + USBx_DEVICE->DAINTMSK &= ~(USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep->num & EP_ADDR_MSK))); + } + else + { + if ((USBx_OUTEP(epnum)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) + { + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_SNAK; + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_EPDIS; + } + + USBx_OUTEP(epnum)->DOEPCTL &= ~USB_OTG_DOEPCTL_USBAEP; + USBx_DEVICE->DAINTMSK &= ~(USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16)); + } + + return HAL_OK; +} + +/** + * @brief USB_EPStartXfer : setup and starts a transfer over an EP + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @param dma USB dma enabled or disabled + * This parameter can be one of these values: + * 0 : DMA feature not used + * 1 : DMA feature used + * @retval HAL status + */ +HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + uint16_t pktcnt; + + /* IN endpoint */ + if (ep->is_in == 1U) + { + /* Zero Length Packet? */ + if (ep->xfer_len == 0U) + { + USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_PKTCNT); + USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & (1U << 19)); + USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_XFRSIZ); + } + else + { + /* Program the transfer size and packet count + * as follows: xfersize = N * maxpacket + + * short_packet pktcnt = N + (short_packet + * exist ? 1 : 0) + */ + USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_XFRSIZ); + USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_PKTCNT); + + if (epnum == 0U) + { + if (ep->xfer_len > ep->maxpacket) + { + ep->xfer_len = ep->maxpacket; + } + + USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & (1U << 19)); + } + else + { + USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & + (((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket) << 19)); + } + + USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_XFRSIZ & ep->xfer_len); + + if (ep->type == EP_TYPE_ISOC) + { + USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_MULCNT); + USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_MULCNT & (1U << 29)); + } + } + + if (dma == 1U) + { + if ((uint32_t)ep->dma_addr != 0U) + { + USBx_INEP(epnum)->DIEPDMA = (uint32_t)(ep->dma_addr); + } + + if (ep->type == EP_TYPE_ISOC) + { + if ((USBx_DEVICE->DSTS & (1U << 8)) == 0U) + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SODDFRM; + } + else + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SD0PID_SEVNFRM; + } + } + + /* EP enable, IN data in FIFO */ + USBx_INEP(epnum)->DIEPCTL |= (USB_OTG_DIEPCTL_CNAK | USB_OTG_DIEPCTL_EPENA); + } + else + { + /* EP enable, IN data in FIFO */ + USBx_INEP(epnum)->DIEPCTL |= (USB_OTG_DIEPCTL_CNAK | USB_OTG_DIEPCTL_EPENA); + + if (ep->type != EP_TYPE_ISOC) + { + /* Enable the Tx FIFO Empty Interrupt for this EP */ + if (ep->xfer_len > 0U) + { + USBx_DEVICE->DIEPEMPMSK |= 1UL << (ep->num & EP_ADDR_MSK); + } + } + else + { + if ((USBx_DEVICE->DSTS & (1U << 8)) == 0U) + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SODDFRM; + } + else + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SD0PID_SEVNFRM; + } + + (void)USB_WritePacket(USBx, ep->xfer_buff, ep->num, (uint16_t)ep->xfer_len, dma); + } + } + } + else /* OUT endpoint */ + { + /* Program the transfer size and packet count as follows: + * pktcnt = N + * xfersize = N * maxpacket + */ + USBx_OUTEP(epnum)->DOEPTSIZ &= ~(USB_OTG_DOEPTSIZ_XFRSIZ); + USBx_OUTEP(epnum)->DOEPTSIZ &= ~(USB_OTG_DOEPTSIZ_PKTCNT); + + if (epnum == 0U) + { + if (ep->xfer_len > 0U) + { + ep->xfer_len = ep->maxpacket; + } + + /* Store transfer size, for EP0 this is equal to endpoint max packet size */ + ep->xfer_size = ep->maxpacket; + + USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_XFRSIZ & ep->xfer_size); + USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_PKTCNT & (1U << 19)); + } + else + { + if (ep->xfer_len == 0U) + { + USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_XFRSIZ & ep->maxpacket); + USBx_OUTEP(epnum)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_PKTCNT & (1U << 19)); + } + else + { + pktcnt = (uint16_t)((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket); + ep->xfer_size = ep->maxpacket * pktcnt; + + USBx_OUTEP(epnum)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_PKTCNT & ((uint32_t)pktcnt << 19); + USBx_OUTEP(epnum)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_XFRSIZ & ep->xfer_size; + } + } + + if (dma == 1U) + { + if ((uint32_t)ep->xfer_buff != 0U) + { + USBx_OUTEP(epnum)->DOEPDMA = (uint32_t)(ep->xfer_buff); + } + } + + if (ep->type == EP_TYPE_ISOC) + { + if ((USBx_DEVICE->DSTS & (1U << 8)) == 0U) + { + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_SODDFRM; + } + else + { + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_SD0PID_SEVNFRM; + } + } + /* EP enable */ + USBx_OUTEP(epnum)->DOEPCTL |= (USB_OTG_DOEPCTL_CNAK | USB_OTG_DOEPCTL_EPENA); + } + + return HAL_OK; +} + + +/** + * @brief USB_EPStoptXfer Stop transfer on an EP + * @param USBx usb device instance + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_EPStopXfer(const USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep) +{ + __IO uint32_t count = 0U; + HAL_StatusTypeDef ret = HAL_OK; + uint32_t USBx_BASE = (uint32_t)USBx; + + /* IN endpoint */ + if (ep->is_in == 1U) + { + /* EP enable, IN data in FIFO */ + if (((USBx_INEP(ep->num)->DIEPCTL) & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA) + { + USBx_INEP(ep->num)->DIEPCTL |= (USB_OTG_DIEPCTL_SNAK); + USBx_INEP(ep->num)->DIEPCTL |= (USB_OTG_DIEPCTL_EPDIS); + + do + { + count++; + + if (count > 10000U) + { + ret = HAL_ERROR; + break; + } + } while (((USBx_INEP(ep->num)->DIEPCTL) & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA); + } + } + else /* OUT endpoint */ + { + if (((USBx_OUTEP(ep->num)->DOEPCTL) & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) + { + USBx_OUTEP(ep->num)->DOEPCTL |= (USB_OTG_DOEPCTL_SNAK); + USBx_OUTEP(ep->num)->DOEPCTL |= (USB_OTG_DOEPCTL_EPDIS); + + do + { + count++; + + if (count > 10000U) + { + ret = HAL_ERROR; + break; + } + } while (((USBx_OUTEP(ep->num)->DOEPCTL) & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA); + } + } + + return ret; +} + + +/** + * @brief USB_WritePacket : Writes a packet into the Tx FIFO associated + * with the EP/channel + * @param USBx Selected device + * @param src pointer to source buffer + * @param ch_ep_num endpoint or host channel number + * @param len Number of bytes to write + * @param dma USB dma enabled or disabled + * This parameter can be one of these values: + * 0 : DMA feature not used + * 1 : DMA feature used + * @retval HAL status + */ +HAL_StatusTypeDef USB_WritePacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *src, + uint8_t ch_ep_num, uint16_t len, uint8_t dma) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint8_t *pSrc = src; + uint32_t count32b; + uint32_t i; + + if (dma == 0U) + { + count32b = ((uint32_t)len + 3U) / 4U; + for (i = 0U; i < count32b; i++) + { + USBx_DFIFO((uint32_t)ch_ep_num) = __UNALIGNED_UINT32_READ(pSrc); + pSrc++; + pSrc++; + pSrc++; + pSrc++; + } + } + + return HAL_OK; +} + +/** + * @brief USB_ReadPacket : read a packet from the RX FIFO + * @param USBx Selected device + * @param dest source pointer + * @param len Number of bytes to read + * @retval pointer to destination buffer + */ +void *USB_ReadPacket(const USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint8_t *pDest = dest; + uint32_t pData; + uint32_t i; + uint32_t count32b = (uint32_t)len >> 2U; + uint16_t remaining_bytes = len % 4U; + + for (i = 0U; i < count32b; i++) + { + __UNALIGNED_UINT32_WRITE(pDest, USBx_DFIFO(0U)); + pDest++; + pDest++; + pDest++; + pDest++; + } + + /* When Number of data is not word aligned, read the remaining byte */ + if (remaining_bytes != 0U) + { + i = 0U; + __UNALIGNED_UINT32_WRITE(&pData, USBx_DFIFO(0U)); + + do + { + *(uint8_t *)pDest = (uint8_t)(pData >> (8U * (uint8_t)(i))); + i++; + pDest++; + remaining_bytes--; + } while (remaining_bytes != 0U); + } + + return ((void *)pDest); +} + +/** + * @brief USB_EPSetStall : set a stall condition over an EP + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_EPSetStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + if (ep->is_in == 1U) + { + if (((USBx_INEP(epnum)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == 0U) && (epnum != 0U)) + { + USBx_INEP(epnum)->DIEPCTL &= ~(USB_OTG_DIEPCTL_EPDIS); + } + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_STALL; + } + else + { + if (((USBx_OUTEP(epnum)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == 0U) && (epnum != 0U)) + { + USBx_OUTEP(epnum)->DOEPCTL &= ~(USB_OTG_DOEPCTL_EPDIS); + } + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_STALL; + } + + return HAL_OK; +} + +/** + * @brief USB_EPClearStall : Clear a stall condition over an EP + * @param USBx Selected device + * @param ep pointer to endpoint structure + * @retval HAL status + */ +HAL_StatusTypeDef USB_EPClearStall(const USB_OTG_GlobalTypeDef *USBx, const USB_OTG_EPTypeDef *ep) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t epnum = (uint32_t)ep->num; + + if (ep->is_in == 1U) + { + USBx_INEP(epnum)->DIEPCTL &= ~USB_OTG_DIEPCTL_STALL; + if ((ep->type == EP_TYPE_INTR) || (ep->type == EP_TYPE_BULK)) + { + USBx_INEP(epnum)->DIEPCTL |= USB_OTG_DIEPCTL_SD0PID_SEVNFRM; /* DATA0 */ + } + } + else + { + USBx_OUTEP(epnum)->DOEPCTL &= ~USB_OTG_DOEPCTL_STALL; + if ((ep->type == EP_TYPE_INTR) || (ep->type == EP_TYPE_BULK)) + { + USBx_OUTEP(epnum)->DOEPCTL |= USB_OTG_DOEPCTL_SD0PID_SEVNFRM; /* DATA0 */ + } + } + return HAL_OK; +} + +/** + * @brief USB_StopDevice : Stop the usb device mode + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx) +{ + HAL_StatusTypeDef ret; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t i; + + /* Clear Pending interrupt */ + for (i = 0U; i < 15U; i++) + { + USBx_INEP(i)->DIEPINT = 0xFB7FU; + USBx_OUTEP(i)->DOEPINT = 0xFB7FU; + } + + /* Clear interrupt masks */ + USBx_DEVICE->DIEPMSK = 0U; + USBx_DEVICE->DOEPMSK = 0U; + USBx_DEVICE->DAINTMSK = 0U; + + /* Flush the FIFO */ + ret = USB_FlushRxFifo(USBx); + if (ret != HAL_OK) + { + return ret; + } + + ret = USB_FlushTxFifo(USBx, 0x10U); + if (ret != HAL_OK) + { + return ret; + } + + return ret; +} + +/** + * @brief USB_SetDevAddress : Stop the usb device mode + * @param USBx Selected device + * @param address new device address to be assigned + * This parameter can be a value from 0 to 255 + * @retval HAL status + */ +HAL_StatusTypeDef USB_SetDevAddress(const USB_OTG_GlobalTypeDef *USBx, uint8_t address) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + USBx_DEVICE->DCFG &= ~(USB_OTG_DCFG_DAD); + USBx_DEVICE->DCFG |= ((uint32_t)address << 4) & USB_OTG_DCFG_DAD; + + return HAL_OK; +} + +/** + * @brief USB_DevConnect : Connect the USB device by enabling Rpu + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_DevConnect(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + /* In case phy is stopped, ensure to ungate and restore the phy CLK */ + USBx_PCGCCTL &= ~(USB_OTG_PCGCCTL_STOPCLK | USB_OTG_PCGCCTL_GATECLK); + + USBx_DEVICE->DCTL &= ~USB_OTG_DCTL_SDIS; + + return HAL_OK; +} + +/** + * @brief USB_DevDisconnect : Disconnect the USB device by disabling Rpu + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_DevDisconnect(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + /* In case phy is stopped, ensure to ungate and restore the phy CLK */ + USBx_PCGCCTL &= ~(USB_OTG_PCGCCTL_STOPCLK | USB_OTG_PCGCCTL_GATECLK); + + USBx_DEVICE->DCTL |= USB_OTG_DCTL_SDIS; + + return HAL_OK; +} + +/** + * @brief USB_ReadInterrupts: return the global USB interrupt status + * @param USBx Selected device + * @retval USB Global Interrupt status + */ +uint32_t USB_ReadInterrupts(USB_OTG_GlobalTypeDef const *USBx) +{ + uint32_t tmpreg; + + tmpreg = USBx->GINTSTS; + tmpreg &= USBx->GINTMSK; + + return tmpreg; +} + +/** + * @brief USB_ReadChInterrupts: return USB channel interrupt status + * @param USBx Selected device + * @param chnum Channel number + * @retval USB Channel Interrupt status + */ +uint32_t USB_ReadChInterrupts(const USB_OTG_GlobalTypeDef *USBx, uint8_t chnum) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t tmpreg; + + tmpreg = USBx_HC(chnum)->HCINT; + tmpreg &= USBx_HC(chnum)->HCINTMSK; + + return tmpreg; +} + +/** + * @brief USB_ReadDevAllOutEpInterrupt: return the USB device OUT endpoints interrupt status + * @param USBx Selected device + * @retval USB Device OUT EP interrupt status + */ +uint32_t USB_ReadDevAllOutEpInterrupt(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t tmpreg; + + tmpreg = USBx_DEVICE->DAINT; + tmpreg &= USBx_DEVICE->DAINTMSK; + + return ((tmpreg & 0xffff0000U) >> 16); +} + +/** + * @brief USB_ReadDevAllInEpInterrupt: return the USB device IN endpoints interrupt status + * @param USBx Selected device + * @retval USB Device IN EP interrupt status + */ +uint32_t USB_ReadDevAllInEpInterrupt(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t tmpreg; + + tmpreg = USBx_DEVICE->DAINT; + tmpreg &= USBx_DEVICE->DAINTMSK; + + return ((tmpreg & 0xFFFFU)); +} + +/** + * @brief Returns Device OUT EP Interrupt register + * @param USBx Selected device + * @param epnum endpoint number + * This parameter can be a value from 0 to 15 + * @retval Device OUT EP Interrupt register + */ +uint32_t USB_ReadDevOutEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t tmpreg; + + tmpreg = USBx_OUTEP((uint32_t)epnum)->DOEPINT; + tmpreg &= USBx_DEVICE->DOEPMSK; + + return tmpreg; +} + +/** + * @brief Returns Device IN EP Interrupt register + * @param USBx Selected device + * @param epnum endpoint number + * This parameter can be a value from 0 to 15 + * @retval Device IN EP Interrupt register + */ +uint32_t USB_ReadDevInEPInterrupt(const USB_OTG_GlobalTypeDef *USBx, uint8_t epnum) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t tmpreg; + uint32_t msk; + uint32_t emp; + + msk = USBx_DEVICE->DIEPMSK; + emp = USBx_DEVICE->DIEPEMPMSK; + msk |= ((emp >> (epnum & EP_ADDR_MSK)) & 0x1U) << 7; + tmpreg = USBx_INEP((uint32_t)epnum)->DIEPINT & msk; + + return tmpreg; +} + +/** + * @brief USB_ClearInterrupts: clear a USB interrupt + * @param USBx Selected device + * @param interrupt flag + * @retval None + */ +void USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt) +{ + USBx->GINTSTS &= interrupt; +} + +/** + * @brief Returns USB core mode + * @param USBx Selected device + * @retval return core mode : Host or Device + * This parameter can be one of these values: + * 0 : Host + * 1 : Device + */ +uint32_t USB_GetMode(const USB_OTG_GlobalTypeDef *USBx) +{ + return ((USBx->GINTSTS) & 0x1U); +} + +/** + * @brief Activate EP0 for Setup transactions + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_ActivateSetup(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + /* Set the MPS of the IN EP0 to 64 bytes */ + USBx_INEP(0U)->DIEPCTL &= ~USB_OTG_DIEPCTL_MPSIZ; + + USBx_DEVICE->DCTL |= USB_OTG_DCTL_CGINAK; + + return HAL_OK; +} + +/** + * @brief Prepare the EP0 to start the first control setup + * @param USBx Selected device + * @param dma USB dma enabled or disabled + * This parameter can be one of these values: + * 0 : DMA feature not used + * 1 : DMA feature used + * @param psetup pointer to setup packet + * @retval HAL status + */ +HAL_StatusTypeDef USB_EP0_OutStart(const USB_OTG_GlobalTypeDef *USBx, uint8_t dma, const uint8_t *psetup) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t gSNPSiD = *(__IO const uint32_t *)(&USBx->CID + 0x1U); + + if (gSNPSiD > USB_OTG_CORE_ID_300A) + { + if ((USBx_OUTEP(0U)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA) + { + return HAL_OK; + } + } + + USBx_OUTEP(0U)->DOEPTSIZ = 0U; + USBx_OUTEP(0U)->DOEPTSIZ |= (USB_OTG_DOEPTSIZ_PKTCNT & (1U << 19)); + USBx_OUTEP(0U)->DOEPTSIZ |= (3U * 8U); + USBx_OUTEP(0U)->DOEPTSIZ |= USB_OTG_DOEPTSIZ_STUPCNT; + + if (dma == 1U) + { + USBx_OUTEP(0U)->DOEPDMA = (uint32_t)psetup; + /* EP enable */ + USBx_OUTEP(0U)->DOEPCTL |= USB_OTG_DOEPCTL_EPENA | USB_OTG_DOEPCTL_USBAEP; + } + + return HAL_OK; +} + +/** + * @brief Reset the USB Core (needed after USB clock settings change) + * @param USBx Selected device + * @retval HAL status + */ +static HAL_StatusTypeDef USB_CoreReset(USB_OTG_GlobalTypeDef *USBx) +{ + __IO uint32_t count = 0U; + + /* Wait for AHB master IDLE state. */ + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL) == 0U); + + /* Core Soft Reset */ + count = 0U; + USBx->GRSTCTL |= USB_OTG_GRSTCTL_CSRST; + + do + { + count++; + + if (count > HAL_USB_TIMEOUT) + { + return HAL_TIMEOUT; + } + } while ((USBx->GRSTCTL & USB_OTG_GRSTCTL_CSRST) == USB_OTG_GRSTCTL_CSRST); + + return HAL_OK; +} + +/** + * @brief USB_HostInit : Initializes the USB OTG controller registers + * for Host mode + * @param USBx Selected device + * @param cfg pointer to a USB_OTG_CfgTypeDef structure that contains + * the configuration information for the specified USBx peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg) +{ + HAL_StatusTypeDef ret = HAL_OK; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t i; + + /* Restart the Phy Clock */ + USBx_PCGCCTL = 0U; + + /* Disable VBUS sensing */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_VBDEN); + + /* Disable Battery chargin detector */ + USBx->GCCFG &= ~(USB_OTG_GCCFG_BCDEN); + + + if ((USBx->GUSBCFG & USB_OTG_GUSBCFG_PHYSEL) == 0U) + { + if (cfg.speed == USBH_FSLS_SPEED) + { + /* Force Device Enumeration to FS/LS mode only */ + USBx_HOST->HCFG |= USB_OTG_HCFG_FSLSS; + } + else + { + /* Set default Max speed support */ + USBx_HOST->HCFG &= ~(USB_OTG_HCFG_FSLSS); + } + } + else + { + /* Set default Max speed support */ + USBx_HOST->HCFG &= ~(USB_OTG_HCFG_FSLSS); + } + + /* Make sure the FIFOs are flushed. */ + if (USB_FlushTxFifo(USBx, 0x10U) != HAL_OK) /* all Tx FIFOs */ + { + ret = HAL_ERROR; + } + + if (USB_FlushRxFifo(USBx) != HAL_OK) + { + ret = HAL_ERROR; + } + + /* Clear all pending HC Interrupts */ + for (i = 0U; i < cfg.Host_channels; i++) + { + USBx_HC(i)->HCINT = CLEAR_INTERRUPT_MASK; + USBx_HC(i)->HCINTMSK = 0U; + } + + /* Disable all interrupts. */ + USBx->GINTMSK = 0U; + + /* Clear any pending interrupts */ + USBx->GINTSTS = CLEAR_INTERRUPT_MASK; + /* set Rx FIFO size */ + USBx->GRXFSIZ = 0x200U; + USBx->DIEPTXF0_HNPTXFSIZ = (uint32_t)(((0x100U << 16) & USB_OTG_NPTXFD) | 0x200U); + USBx->HPTXFSIZ = (uint32_t)(((0xE0U << 16) & USB_OTG_HPTXFSIZ_PTXFD) | 0x300U); + + /* Enable the common interrupts */ + if (cfg.dma_enable == 0U) + { + USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM; + } + + /* Enable interrupts matching to the Host mode ONLY */ + USBx->GINTMSK |= (USB_OTG_GINTMSK_PRTIM | USB_OTG_GINTMSK_HCIM | \ + USB_OTG_GINTMSK_SOFM | USB_OTG_GINTSTS_DISCINT | \ + USB_OTG_GINTMSK_PXFRM_IISOOXFRM | USB_OTG_GINTMSK_WUIM); + + return ret; +} + +/** + * @brief USB_InitFSLSPClkSel : Initializes the FSLSPClkSel field of the + * HCFG register on the PHY type and set the right frame interval + * @param USBx Selected device + * @param freq clock frequency + * This parameter can be one of these values: + * HCFG_48_MHZ : Full Speed 48 MHz Clock + * HCFG_6_MHZ : Low Speed 6 MHz Clock + * @retval HAL status + */ +HAL_StatusTypeDef USB_InitFSLSPClkSel(const USB_OTG_GlobalTypeDef *USBx, uint8_t freq) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + USBx_HOST->HCFG &= ~(USB_OTG_HCFG_FSLSPCS); + USBx_HOST->HCFG |= (uint32_t)freq & USB_OTG_HCFG_FSLSPCS; + + if (freq == HCFG_48_MHZ) + { + USBx_HOST->HFIR = HFIR_48_MHZ; + } + else if (freq == HCFG_6_MHZ) + { + USBx_HOST->HFIR = HFIR_6_MHZ; + } + else + { + return HAL_ERROR; + } + + return HAL_OK; +} + +/** + * @brief USB_OTG_ResetPort : Reset Host Port + * @param USBx Selected device + * @retval HAL status + * @note (1)The application must wait at least 10 ms + * before clearing the reset bit. + */ +HAL_StatusTypeDef USB_ResetPort(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + __IO uint32_t hprt0 = 0U; + + hprt0 = USBx_HPRT0; + + hprt0 &= ~(USB_OTG_HPRT_PENA | USB_OTG_HPRT_PCDET | + USB_OTG_HPRT_PENCHNG | USB_OTG_HPRT_POCCHNG); + + USBx_HPRT0 = (USB_OTG_HPRT_PRST | hprt0); + HAL_Delay(100U); /* See Note #1 */ + USBx_HPRT0 = ((~USB_OTG_HPRT_PRST) & hprt0); + HAL_Delay(10U); + + return HAL_OK; +} + +/** + * @brief USB_DriveVbus : activate or de-activate vbus + * @param state VBUS state + * This parameter can be one of these values: + * 0 : Deactivate VBUS + * 1 : Activate VBUS + * @retval HAL status + */ +HAL_StatusTypeDef USB_DriveVbus(const USB_OTG_GlobalTypeDef *USBx, uint8_t state) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + __IO uint32_t hprt0 = 0U; + + hprt0 = USBx_HPRT0; + + hprt0 &= ~(USB_OTG_HPRT_PENA | USB_OTG_HPRT_PCDET | + USB_OTG_HPRT_PENCHNG | USB_OTG_HPRT_POCCHNG); + + if (((hprt0 & USB_OTG_HPRT_PPWR) == 0U) && (state == 1U)) + { + USBx_HPRT0 = (USB_OTG_HPRT_PPWR | hprt0); + } + if (((hprt0 & USB_OTG_HPRT_PPWR) == USB_OTG_HPRT_PPWR) && (state == 0U)) + { + USBx_HPRT0 = ((~USB_OTG_HPRT_PPWR) & hprt0); + } + return HAL_OK; +} + +/** + * @brief Return Host Core speed + * @param USBx Selected device + * @retval speed : Host speed + * This parameter can be one of these values: + * @arg HCD_SPEED_HIGH: High speed mode + * @arg HCD_SPEED_FULL: Full speed mode + * @arg HCD_SPEED_LOW: Low speed mode + */ +uint32_t USB_GetHostSpeed(USB_OTG_GlobalTypeDef const *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + __IO uint32_t hprt0 = 0U; + + hprt0 = USBx_HPRT0; + return ((hprt0 & USB_OTG_HPRT_PSPD) >> 17); +} + +/** + * @brief Return Host Current Frame number + * @param USBx Selected device + * @retval current frame number + */ +uint32_t USB_GetCurrentFrame(USB_OTG_GlobalTypeDef const *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + return (USBx_HOST->HFNUM & USB_OTG_HFNUM_FRNUM); +} + +/** + * @brief Initialize a host channel + * @param USBx Selected device + * @param ch_num Channel number + * This parameter can be a value from 1 to 15 + * @param epnum Endpoint number + * This parameter can be a value from 1 to 15 + * @param dev_address Current device address + * This parameter can be a value from 0 to 255 + * @param speed Current device speed + * This parameter can be one of these values: + * @arg USB_OTG_SPEED_HIGH: High speed mode + * @arg USB_OTG_SPEED_FULL: Full speed mode + * @arg USB_OTG_SPEED_LOW: Low speed mode + * @param ep_type Endpoint Type + * This parameter can be one of these values: + * @arg EP_TYPE_CTRL: Control type + * @arg EP_TYPE_ISOC: Isochronous type + * @arg EP_TYPE_BULK: Bulk type + * @arg EP_TYPE_INTR: Interrupt type + * @param mps Max Packet Size + * This parameter can be a value from 0 to 32K + * @retval HAL state + */ +HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num, + uint8_t epnum, uint8_t dev_address, uint8_t speed, + uint8_t ep_type, uint16_t mps) +{ + HAL_StatusTypeDef ret = HAL_OK; + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t HCcharEpDir; + uint32_t HCcharLowSpeed; + uint32_t HostCoreSpeed; + + /* Clear old interrupt conditions for this host channel. */ + USBx_HC((uint32_t)ch_num)->HCINT = CLEAR_INTERRUPT_MASK; + + /* Enable channel interrupts required for this transfer. */ + switch (ep_type) + { + case EP_TYPE_CTRL: + case EP_TYPE_BULK: + USBx_HC((uint32_t)ch_num)->HCINTMSK = USB_OTG_HCINTMSK_XFRCM | + USB_OTG_HCINTMSK_STALLM | + USB_OTG_HCINTMSK_TXERRM | + USB_OTG_HCINTMSK_DTERRM | + USB_OTG_HCINTMSK_AHBERR | + USB_OTG_HCINTMSK_NAKM; + + if ((epnum & 0x80U) == 0x80U) + { + USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_BBERRM; + } + else + { + USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_NYET | + USB_OTG_HCINTMSK_ACKM; + } + break; + + case EP_TYPE_INTR: + USBx_HC((uint32_t)ch_num)->HCINTMSK = USB_OTG_HCINTMSK_XFRCM | + USB_OTG_HCINTMSK_STALLM | + USB_OTG_HCINTMSK_TXERRM | + USB_OTG_HCINTMSK_DTERRM | + USB_OTG_HCINTMSK_NAKM | + USB_OTG_HCINTMSK_AHBERR | + USB_OTG_HCINTMSK_FRMORM; + + if ((epnum & 0x80U) == 0x80U) + { + USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_BBERRM; + } + + break; + + case EP_TYPE_ISOC: + USBx_HC((uint32_t)ch_num)->HCINTMSK = USB_OTG_HCINTMSK_XFRCM | + USB_OTG_HCINTMSK_ACKM | + USB_OTG_HCINTMSK_AHBERR | + USB_OTG_HCINTMSK_FRMORM; + + if ((epnum & 0x80U) == 0x80U) + { + USBx_HC((uint32_t)ch_num)->HCINTMSK |= (USB_OTG_HCINTMSK_TXERRM | USB_OTG_HCINTMSK_BBERRM); + } + break; + + default: + ret = HAL_ERROR; + break; + } + + /* Clear Hub Start Split transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT = 0U; + + /* Enable host channel Halt interrupt */ + USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_CHHM; + + /* Enable the top level host channel interrupt. */ + USBx_HOST->HAINTMSK |= 1UL << (ch_num & 0xFU); + + /* Make sure host channel interrupts are enabled. */ + USBx->GINTMSK |= USB_OTG_GINTMSK_HCIM; + + /* Program the HCCHAR register */ + if ((epnum & 0x80U) == 0x80U) + { + HCcharEpDir = (0x1U << 15) & USB_OTG_HCCHAR_EPDIR; + } + else + { + HCcharEpDir = 0U; + } + + HostCoreSpeed = USB_GetHostSpeed(USBx); + + /* LS device plugged to HUB */ + if ((speed == HPRT0_PRTSPD_LOW_SPEED) && (HostCoreSpeed != HPRT0_PRTSPD_LOW_SPEED)) + { + HCcharLowSpeed = (0x1U << 17) & USB_OTG_HCCHAR_LSDEV; + } + else + { + HCcharLowSpeed = 0U; + } + + USBx_HC((uint32_t)ch_num)->HCCHAR = (((uint32_t)dev_address << 22) & USB_OTG_HCCHAR_DAD) | + ((((uint32_t)epnum & 0x7FU) << 11) & USB_OTG_HCCHAR_EPNUM) | + (((uint32_t)ep_type << 18) & USB_OTG_HCCHAR_EPTYP) | + ((uint32_t)mps & USB_OTG_HCCHAR_MPSIZ) | + USB_OTG_HCCHAR_MC_0 | HCcharEpDir | HCcharLowSpeed; + + if ((ep_type == EP_TYPE_INTR) || (ep_type == EP_TYPE_ISOC)) + { + USBx_HC((uint32_t)ch_num)->HCCHAR |= USB_OTG_HCCHAR_ODDFRM; + } + + return ret; +} + +/** + * @brief Start a transfer over a host channel + * @param USBx Selected device + * @param hc pointer to host channel structure + * @param dma USB dma enabled or disabled + * This parameter can be one of these values: + * 0 : DMA feature not used + * 1 : DMA feature used + * @retval HAL state + */ +HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc, uint8_t dma) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t ch_num = (uint32_t)hc->ch_num; + __IO uint32_t tmpreg; + uint8_t is_oddframe; + uint16_t len_words; + uint16_t num_packets; + uint16_t max_hc_pkt_count = HC_MAX_PKT_CNT; + + /* in DMA mode host Core automatically issues ping in case of NYET/NAK */ + if (dma == 1U) + { + if ((hc->ep_type == EP_TYPE_CTRL) || (hc->ep_type == EP_TYPE_BULK)) + { + + USBx_HC((uint32_t)ch_num)->HCINTMSK &= ~(USB_OTG_HCINTMSK_NYET | + USB_OTG_HCINTMSK_ACKM | + USB_OTG_HCINTMSK_NAKM); + } + } + else + { + if ((hc->speed == USBH_HS_SPEED) && (hc->do_ping == 1U)) + { + (void)USB_DoPing(USBx, hc->ch_num); + return HAL_OK; + } + } + + if (hc->do_ssplit == 1U) + { + /* Set number of packet to 1 for Split transaction */ + num_packets = 1U; + + if (hc->ep_is_in != 0U) + { + hc->XferSize = (uint32_t)num_packets * hc->max_packet; + } + else + { + if (hc->ep_type == EP_TYPE_ISOC) + { + if (hc->xfer_len > ISO_SPLT_MPS) + { + /* Isochrone Max Packet Size for Split mode */ + hc->XferSize = hc->max_packet; + hc->xfer_len = hc->XferSize; + + if ((hc->iso_splt_xactPos == HCSPLT_BEGIN) || (hc->iso_splt_xactPos == HCSPLT_MIDDLE)) + { + hc->iso_splt_xactPos = HCSPLT_MIDDLE; + } + else + { + hc->iso_splt_xactPos = HCSPLT_BEGIN; + } + } + else + { + hc->XferSize = hc->xfer_len; + + if ((hc->iso_splt_xactPos != HCSPLT_BEGIN) && (hc->iso_splt_xactPos != HCSPLT_MIDDLE)) + { + hc->iso_splt_xactPos = HCSPLT_FULL; + } + else + { + hc->iso_splt_xactPos = HCSPLT_END; + } + } + } + else + { + if ((dma == 1U) && (hc->xfer_len > hc->max_packet)) + { + hc->XferSize = (uint32_t)num_packets * hc->max_packet; + } + else + { + hc->XferSize = hc->xfer_len; + } + } + } + } + else + { + /* Compute the expected number of packets associated to the transfer */ + if (hc->xfer_len > 0U) + { + num_packets = (uint16_t)((hc->xfer_len + hc->max_packet - 1U) / hc->max_packet); + + if (num_packets > max_hc_pkt_count) + { + num_packets = max_hc_pkt_count; + hc->XferSize = (uint32_t)num_packets * hc->max_packet; + } + } + else + { + num_packets = 1U; + } + + /* + * For IN channel HCTSIZ.XferSize is expected to be an integer multiple of + * max_packet size. + */ + if (hc->ep_is_in != 0U) + { + hc->XferSize = (uint32_t)num_packets * hc->max_packet; + } + else + { + hc->XferSize = hc->xfer_len; + } + } + + /* Initialize the HCTSIZn register */ + USBx_HC(ch_num)->HCTSIZ = (hc->XferSize & USB_OTG_HCTSIZ_XFRSIZ) | + (((uint32_t)num_packets << 19) & USB_OTG_HCTSIZ_PKTCNT) | + (((uint32_t)hc->data_pid << 29) & USB_OTG_HCTSIZ_DPID); + + if (dma != 0U) + { + /* xfer_buff MUST be 32-bits aligned */ + USBx_HC(ch_num)->HCDMA = (uint32_t)hc->xfer_buff; + } + + is_oddframe = (((uint32_t)USBx_HOST->HFNUM & 0x01U) != 0U) ? 0U : 1U; + USBx_HC(ch_num)->HCCHAR &= ~USB_OTG_HCCHAR_ODDFRM; + USBx_HC(ch_num)->HCCHAR |= (uint32_t)is_oddframe << 29; + + if (hc->do_ssplit == 1U) + { + /* Set Hub start Split transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT = ((uint32_t)hc->hub_addr << USB_OTG_HCSPLT_HUBADDR_Pos) | + (uint32_t)hc->hub_port_nbr | USB_OTG_HCSPLT_SPLITEN; + + /* unmask ack & nyet for IN/OUT transactions */ + USBx_HC((uint32_t)ch_num)->HCINTMSK |= (USB_OTG_HCINTMSK_ACKM | + USB_OTG_HCINTMSK_NYET); + + if ((hc->do_csplit == 1U) && (hc->ep_is_in == 0U)) + { + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_COMPLSPLT; + USBx_HC((uint32_t)ch_num)->HCINTMSK |= USB_OTG_HCINTMSK_NYET; + } + + if (((hc->ep_type == EP_TYPE_ISOC) || (hc->ep_type == EP_TYPE_INTR)) && + (hc->do_csplit == 1U) && (hc->ep_is_in == 1U)) + { + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_COMPLSPLT; + } + + /* Position management for iso out transaction on split mode */ + if ((hc->ep_type == EP_TYPE_ISOC) && (hc->ep_is_in == 0U)) + { + /* Set data payload position */ + switch (hc->iso_splt_xactPos) + { + case HCSPLT_BEGIN: + /* First data payload for OUT Transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_XACTPOS_1; + break; + + case HCSPLT_MIDDLE: + /* Middle data payload for OUT Transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_XACTPOS_Pos; + break; + + case HCSPLT_END: + /* End data payload for OUT Transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_XACTPOS_0; + break; + + case HCSPLT_FULL: + /* Entire data payload for OUT Transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT |= USB_OTG_HCSPLT_XACTPOS; + break; + + default: + break; + } + } + } + else + { + /* Clear Hub Start Split transaction */ + USBx_HC((uint32_t)ch_num)->HCSPLT = 0U; + } + + /* Set host channel enable */ + tmpreg = USBx_HC(ch_num)->HCCHAR; + tmpreg &= ~USB_OTG_HCCHAR_CHDIS; + + /* make sure to set the correct ep direction */ + if (hc->ep_is_in != 0U) + { + tmpreg |= USB_OTG_HCCHAR_EPDIR; + } + else + { + tmpreg &= ~USB_OTG_HCCHAR_EPDIR; + } + tmpreg |= USB_OTG_HCCHAR_CHENA; + USBx_HC(ch_num)->HCCHAR = tmpreg; + + if (dma != 0U) /* dma mode */ + { + return HAL_OK; + } + + if ((hc->ep_is_in == 0U) && (hc->xfer_len > 0U) && (hc->do_csplit == 0U)) + { + switch (hc->ep_type) + { + /* Non periodic transfer */ + case EP_TYPE_CTRL: + case EP_TYPE_BULK: + + len_words = (uint16_t)((hc->xfer_len + 3U) / 4U); + + /* check if there is enough space in FIFO space */ + if (len_words > (USBx->HNPTXSTS & 0xFFFFU)) + { + /* need to process data in nptxfempty interrupt */ + USBx->GINTMSK |= USB_OTG_GINTMSK_NPTXFEM; + } + break; + + /* Periodic transfer */ + case EP_TYPE_INTR: + case EP_TYPE_ISOC: + len_words = (uint16_t)((hc->xfer_len + 3U) / 4U); + /* check if there is enough space in FIFO space */ + if (len_words > (USBx_HOST->HPTXSTS & 0xFFFFU)) /* split the transfer */ + { + /* need to process data in ptxfempty interrupt */ + USBx->GINTMSK |= USB_OTG_GINTMSK_PTXFEM; + } + break; + + default: + break; + } + + /* Write packet into the Tx FIFO. */ + (void)USB_WritePacket(USBx, hc->xfer_buff, hc->ch_num, (uint16_t)hc->xfer_len, 0); + } + + return HAL_OK; +} + +/** + * @brief Read all host channel interrupts status + * @param USBx Selected device + * @retval HAL state + */ +uint32_t USB_HC_ReadInterrupt(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + return ((USBx_HOST->HAINT) & 0xFFFFU); +} + +/** + * @brief Halt a host channel + * @param USBx Selected device + * @param hc_num Host Channel number + * This parameter can be a value from 1 to 15 + * @retval HAL state + */ +HAL_StatusTypeDef USB_HC_Halt(const USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t hcnum = (uint32_t)hc_num; + __IO uint32_t count = 0U; + uint32_t HcEpType = (USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_EPTYP) >> 18; + uint32_t ChannelEna = (USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_CHENA) >> 31; + uint32_t SplitEna = (USBx_HC(hcnum)->HCSPLT & USB_OTG_HCSPLT_SPLITEN) >> 31; + + /* In buffer DMA, Channel disable must not be programmed for non-split periodic channels. + At the end of the next uframe/frame (in the worst case), the core generates a channel halted + and disables the channel automatically. */ + + if ((((USBx->GAHBCFG & USB_OTG_GAHBCFG_DMAEN) == USB_OTG_GAHBCFG_DMAEN) && (SplitEna == 0U)) && + ((ChannelEna == 0U) || (((HcEpType == HCCHAR_ISOC) || (HcEpType == HCCHAR_INTR))))) + { + return HAL_OK; + } + + /* Check for space in the request queue to issue the halt. */ + if ((HcEpType == HCCHAR_CTRL) || (HcEpType == HCCHAR_BULK)) + { + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHDIS; + + if ((USBx->GAHBCFG & USB_OTG_GAHBCFG_DMAEN) == 0U) + { + if ((USBx->HNPTXSTS & (0xFFU << 16)) == 0U) + { + USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_CHENA; + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA; + do + { + count++; + + if (count > 1000U) + { + break; + } + } while ((USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_CHENA) == USB_OTG_HCCHAR_CHENA); + } + else + { + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA; + } + } + else + { + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA; + } + } + else + { + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHDIS; + + if ((USBx_HOST->HPTXSTS & (0xFFU << 16)) == 0U) + { + USBx_HC(hcnum)->HCCHAR &= ~USB_OTG_HCCHAR_CHENA; + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA; + do + { + count++; + + if (count > 1000U) + { + break; + } + } while ((USBx_HC(hcnum)->HCCHAR & USB_OTG_HCCHAR_CHENA) == USB_OTG_HCCHAR_CHENA); + } + else + { + USBx_HC(hcnum)->HCCHAR |= USB_OTG_HCCHAR_CHENA; + } + } + + return HAL_OK; +} + +/** + * @brief Initiate Do Ping protocol + * @param USBx Selected device + * @param hc_num Host Channel number + * This parameter can be a value from 1 to 15 + * @retval HAL state + */ +HAL_StatusTypeDef USB_DoPing(const USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + uint32_t chnum = (uint32_t)ch_num; + uint32_t num_packets = 1U; + uint32_t tmpreg; + + USBx_HC(chnum)->HCTSIZ = ((num_packets << 19) & USB_OTG_HCTSIZ_PKTCNT) | + USB_OTG_HCTSIZ_DOPING; + + /* Set host channel enable */ + tmpreg = USBx_HC(chnum)->HCCHAR; + tmpreg &= ~USB_OTG_HCCHAR_CHDIS; + tmpreg |= USB_OTG_HCCHAR_CHENA; + USBx_HC(chnum)->HCCHAR = tmpreg; + + return HAL_OK; +} + +/** + * @brief Stop Host Core + * @param USBx Selected device + * @retval HAL state + */ +HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx) +{ + HAL_StatusTypeDef ret = HAL_OK; + uint32_t USBx_BASE = (uint32_t)USBx; + __IO uint32_t count = 0U; + uint32_t value; + uint32_t i; + + (void)USB_DisableGlobalInt(USBx); + + /* Flush USB FIFO */ + if (USB_FlushTxFifo(USBx, 0x10U) != HAL_OK) /* all Tx FIFOs */ + { + ret = HAL_ERROR; + } + + if (USB_FlushRxFifo(USBx) != HAL_OK) + { + ret = HAL_ERROR; + } + + /* Flush out any leftover queued requests. */ + for (i = 0U; i <= 15U; i++) + { + value = USBx_HC(i)->HCCHAR; + value |= USB_OTG_HCCHAR_CHDIS; + value &= ~USB_OTG_HCCHAR_CHENA; + value &= ~USB_OTG_HCCHAR_EPDIR; + USBx_HC(i)->HCCHAR = value; + } + + /* Halt all channels to put them into a known state. */ + for (i = 0U; i <= 15U; i++) + { + value = USBx_HC(i)->HCCHAR; + value |= USB_OTG_HCCHAR_CHDIS; + value |= USB_OTG_HCCHAR_CHENA; + value &= ~USB_OTG_HCCHAR_EPDIR; + USBx_HC(i)->HCCHAR = value; + + do + { + count++; + + if (count > 1000U) + { + break; + } + } while ((USBx_HC(i)->HCCHAR & USB_OTG_HCCHAR_CHENA) == USB_OTG_HCCHAR_CHENA); + } + + /* Clear any pending Host interrupts */ + USBx_HOST->HAINT = CLEAR_INTERRUPT_MASK; + USBx->GINTSTS = CLEAR_INTERRUPT_MASK; + + (void)USB_EnableGlobalInt(USBx); + + return ret; +} + +/** + * @brief USB_ActivateRemoteWakeup active remote wakeup signalling + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_ActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + if ((USBx_DEVICE->DSTS & USB_OTG_DSTS_SUSPSTS) == USB_OTG_DSTS_SUSPSTS) + { + /* active Remote wakeup signalling */ + USBx_DEVICE->DCTL |= USB_OTG_DCTL_RWUSIG; + } + + return HAL_OK; +} + +/** + * @brief USB_DeActivateRemoteWakeup de-active remote wakeup signalling + * @param USBx Selected device + * @retval HAL status + */ +HAL_StatusTypeDef USB_DeActivateRemoteWakeup(const USB_OTG_GlobalTypeDef *USBx) +{ + uint32_t USBx_BASE = (uint32_t)USBx; + + /* active Remote wakeup signalling */ + USBx_DEVICE->DCTL &= ~(USB_OTG_DCTL_RWUSIG); + + return HAL_OK; +} +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ + +/** + * @} + */ + +/** + * @} + */ +#endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */ +#endif /* defined (HAL_PCD_MODULE_ENABLED) || defined (HAL_HCD_MODULE_ENABLED) */ + +/** + * @} + */ diff --git a/Encoder_Time_Sysn.ioc b/Encoder_Time_Sysn.ioc index 422b027..7f440c2 100644 --- a/Encoder_Time_Sysn.ioc +++ b/Encoder_Time_Sysn.ioc @@ -44,19 +44,34 @@ Mcu.IP3=RCC Mcu.IP4=SYS Mcu.IP5=TIM2 Mcu.IP6=USART1 -Mcu.IPNb=7 +Mcu.IP7=USB_DEVICE +Mcu.IP8=USB_OTG_HS +Mcu.IPNb=9 Mcu.Name=STM32H750VBTx Mcu.Package=LQFP100 Mcu.Pin0=PH0-OSC_IN (PH0) Mcu.Pin1=PH1-OSC_OUT (PH1) -Mcu.Pin2=PA0 -Mcu.Pin3=PA1 -Mcu.Pin4=PA2 -Mcu.Pin5=PA4 -Mcu.Pin6=PA9 -Mcu.Pin7=PA10 -Mcu.Pin8=VP_SYS_VS_Systick -Mcu.PinsNb=9 +Mcu.Pin10=PA5 +Mcu.Pin11=PB0 +Mcu.Pin12=PB1 +Mcu.Pin13=PB10 +Mcu.Pin14=PB11 +Mcu.Pin15=PB12 +Mcu.Pin16=PB13 +Mcu.Pin17=PA9 +Mcu.Pin18=PA10 +Mcu.Pin19=PB5 +Mcu.Pin2=PC0 +Mcu.Pin20=VP_SYS_VS_Systick +Mcu.Pin21=VP_USB_DEVICE_VS_USB_DEVICE_CDC_HS +Mcu.Pin3=PC1 +Mcu.Pin4=PC2_C +Mcu.Pin5=PC3_C +Mcu.Pin6=PA0 +Mcu.Pin7=PA1 +Mcu.Pin8=PA3 +Mcu.Pin9=PA4 +Mcu.PinsNb=22 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32H750VBTx @@ -65,12 +80,15 @@ MxDb.Version=DB.6.0.81 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false -NVIC.EXTI2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.EXTI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.EXTI4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.OTG_HS_EP1_IN_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.OTG_HS_EP1_OUT_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.OTG_HS_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false @@ -83,13 +101,37 @@ PA1.Signal=S_TIM2_CH2 PA10.Locked=true PA10.Mode=Asynchronous PA10.Signal=USART1_RX -PA2.Locked=true -PA2.Signal=GPXTI2 +PA3.Mode=Device_HS +PA3.Signal=USB_OTG_HS_ULPI_D0 PA4.Locked=true PA4.Signal=GPXTI4 +PA5.Mode=Device_HS +PA5.Signal=USB_OTG_HS_ULPI_CK PA9.Locked=true PA9.Mode=Asynchronous PA9.Signal=USART1_TX +PB0.Mode=Device_HS +PB0.Signal=USB_OTG_HS_ULPI_D1 +PB1.Mode=Device_HS +PB1.Signal=USB_OTG_HS_ULPI_D2 +PB10.Mode=Device_HS +PB10.Signal=USB_OTG_HS_ULPI_D3 +PB11.Mode=Device_HS +PB11.Signal=USB_OTG_HS_ULPI_D4 +PB12.Mode=Device_HS +PB12.Signal=USB_OTG_HS_ULPI_D5 +PB13.Mode=Device_HS +PB13.Signal=USB_OTG_HS_ULPI_D6 +PB5.Mode=Device_HS +PB5.Signal=USB_OTG_HS_ULPI_D7 +PC0.Mode=Device_HS +PC0.Signal=USB_OTG_HS_ULPI_STP +PC1.Locked=true +PC1.Signal=GPXTI1 +PC2_C.Mode=Device_HS +PC2_C.Signal=USB_OTG_HS_ULPI_DIR +PC3_C.Mode=Device_HS +PC3_C.Signal=USB_OTG_HS_ULPI_NXT PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator @@ -123,7 +165,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true RCC.ADCFreq_Value=16125000 RCC.AHB12Freq_Value=240000000 RCC.AHB4Freq_Value=240000000 @@ -164,7 +206,7 @@ RCC.HRTIMFreq_Value=240000000 RCC.HSE_VALUE=8000000 RCC.I2C123Freq_Value=120000000 RCC.I2C4Freq_Value=120000000 -RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,SupplySource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value +RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,PWR_Regulator_Voltage_Scale,ProductRev,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,SupplySource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value RCC.LPTIM1Freq_Value=120000000 RCC.LPTIM2Freq_Value=120000000 RCC.LPTIM345Freq_Value=120000000 @@ -196,15 +238,16 @@ RCC.Tim2OutputFreq_Value=240000000 RCC.TraceFreq_Value=64000000 RCC.USART16Freq_Value=120000000 RCC.USART234578Freq_Value=120000000 -RCC.USBFreq_Value=480000000 +RCC.USBCLockSelection=RCC_USBCLKSOURCE_HSI48 +RCC.USBFreq_Value=48000000 RCC.VCO1OutputFreq_Value=960000000 RCC.VCO2OutputFreq_Value=32250000 RCC.VCO3OutputFreq_Value=32250000 RCC.VCOInput1Freq_Value=4000000 RCC.VCOInput2Freq_Value=250000 RCC.VCOInput3Freq_Value=250000 -SH.GPXTI2.0=GPIO_EXTI2 -SH.GPXTI2.ConfNb=1 +SH.GPXTI1.0=GPIO_EXTI1 +SH.GPXTI1.ConfNb=1 SH.GPXTI4.0=GPIO_EXTI4 SH.GPXTI4.ConfNb=1 SH.S_TIM2_CH1_ETR.0=TIM2_CH1,Encoder_Interface @@ -216,6 +259,14 @@ TIM2.IPParameters=Prescaler,EncoderMode TIM2.Prescaler=3 USART1.IPParameters=VirtualMode-Asynchronous USART1.VirtualMode-Asynchronous=VM_ASYNC +USB_DEVICE.CLASS_NAME_HS=CDC +USB_DEVICE.IPParameters=VirtualMode-CDC_HS,VirtualModeHS,CLASS_NAME_HS +USB_DEVICE.VirtualMode-CDC_HS=Cdc +USB_DEVICE.VirtualModeHS=Cdc_HS +USB_OTG_HS.IPParameters=VirtualMode-Device_HS +USB_OTG_HS.VirtualMode-Device_HS=Device_HS VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_USB_DEVICE_VS_USB_DEVICE_CDC_HS.Mode=CDC_HS +VP_USB_DEVICE_VS_USB_DEVICE_CDC_HS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_HS board=custom diff --git a/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h new file mode 100644 index 0000000..aeac6bf --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h @@ -0,0 +1,184 @@ +/** + ****************************************************************************** + * @file usbd_cdc.h + * @author MCD Application Team + * @brief header file for the usbd_cdc.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_CDC_H +#define __USB_CDC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_ioreq.h" + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup usbd_cdc + * @brief This file is the Header file for usbd_cdc.c + * @{ + */ + + +/** @defgroup usbd_cdc_Exported_Defines + * @{ + */ +#ifndef CDC_IN_EP +#define CDC_IN_EP 0x81U /* EP1 for data IN */ +#endif /* CDC_IN_EP */ +#ifndef CDC_OUT_EP +#define CDC_OUT_EP 0x01U /* EP1 for data OUT */ +#endif /* CDC_OUT_EP */ +#ifndef CDC_CMD_EP +#define CDC_CMD_EP 0x82U /* EP2 for CDC commands */ +#endif /* CDC_CMD_EP */ + +#ifndef CDC_HS_BINTERVAL +#define CDC_HS_BINTERVAL 0x10U +#endif /* CDC_HS_BINTERVAL */ + +#ifndef CDC_FS_BINTERVAL +#define CDC_FS_BINTERVAL 0x10U +#endif /* CDC_FS_BINTERVAL */ + +/* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */ +#define CDC_DATA_HS_MAX_PACKET_SIZE 512U /* Endpoint IN & OUT Packet size */ +#define CDC_DATA_FS_MAX_PACKET_SIZE 64U /* Endpoint IN & OUT Packet size */ +#define CDC_CMD_PACKET_SIZE 8U /* Control Endpoint Packet size */ + +#define USB_CDC_CONFIG_DESC_SIZ 67U +#define CDC_DATA_HS_IN_PACKET_SIZE CDC_DATA_HS_MAX_PACKET_SIZE +#define CDC_DATA_HS_OUT_PACKET_SIZE CDC_DATA_HS_MAX_PACKET_SIZE + +#define CDC_DATA_FS_IN_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE +#define CDC_DATA_FS_OUT_PACKET_SIZE CDC_DATA_FS_MAX_PACKET_SIZE + +#define CDC_REQ_MAX_DATA_SIZE 0x7U +/*---------------------------------------------------------------------*/ +/* CDC definitions */ +/*---------------------------------------------------------------------*/ +#define CDC_SEND_ENCAPSULATED_COMMAND 0x00U +#define CDC_GET_ENCAPSULATED_RESPONSE 0x01U +#define CDC_SET_COMM_FEATURE 0x02U +#define CDC_GET_COMM_FEATURE 0x03U +#define CDC_CLEAR_COMM_FEATURE 0x04U +#define CDC_SET_LINE_CODING 0x20U +#define CDC_GET_LINE_CODING 0x21U +#define CDC_SET_CONTROL_LINE_STATE 0x22U +#define CDC_SEND_BREAK 0x23U + +/** + * @} + */ + + +/** @defgroup USBD_CORE_Exported_TypesDefinitions + * @{ + */ + +/** + * @} + */ +typedef struct +{ + uint32_t bitrate; + uint8_t format; + uint8_t paritytype; + uint8_t datatype; +} USBD_CDC_LineCodingTypeDef; + +typedef struct _USBD_CDC_Itf +{ + int8_t (* Init)(void); + int8_t (* DeInit)(void); + int8_t (* Control)(uint8_t cmd, uint8_t *pbuf, uint16_t length); + int8_t (* Receive)(uint8_t *Buf, uint32_t *Len); + int8_t (* TransmitCplt)(uint8_t *Buf, uint32_t *Len, uint8_t epnum); +} USBD_CDC_ItfTypeDef; + + +typedef struct +{ + uint32_t data[CDC_DATA_HS_MAX_PACKET_SIZE / 4U]; /* Force 32-bit alignment */ + uint8_t CmdOpCode; + uint8_t CmdLength; + uint8_t *RxBuffer; + uint8_t *TxBuffer; + uint32_t RxLength; + uint32_t TxLength; + + __IO uint32_t TxState; + __IO uint32_t RxState; +} USBD_CDC_HandleTypeDef; + + + +/** @defgroup USBD_CORE_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_CORE_Exported_Variables + * @{ + */ + +extern USBD_ClassTypeDef USBD_CDC; +#define USBD_CDC_CLASS &USBD_CDC +/** + * @} + */ + +/** @defgroup USB_CORE_Exported_Functions + * @{ + */ +uint8_t USBD_CDC_RegisterInterface(USBD_HandleTypeDef *pdev, + USBD_CDC_ItfTypeDef *fops); + +#ifdef USE_USBD_COMPOSITE +uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff, + uint32_t length, uint8_t ClassId); +uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev, uint8_t ClassId); +#else +uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff, + uint32_t length); +uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev); +#endif /* USE_USBD_COMPOSITE */ +uint8_t USBD_CDC_SetRxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff); +uint8_t USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev); +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_CDC_H */ +/** + * @} + */ + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c new file mode 100644 index 0000000..ad8da25 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c @@ -0,0 +1,893 @@ +/** + ****************************************************************************** + * @file usbd_cdc.c + * @author MCD Application Team + * @brief This file provides the high layer firmware functions to manage the + * following functionalities of the USB CDC Class: + * - Initialization and Configuration of high and low layer + * - Enumeration as CDC Device (and enumeration for each implemented memory interface) + * - OUT/IN data transfer + * - Command IN transfer (class requests management) + * - Error management + * + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + * @verbatim + * + * =================================================================== + * CDC Class Driver Description + * =================================================================== + * This driver manages the "Universal Serial Bus Class Definitions for Communications Devices + * Revision 1.2 November 16, 2007" and the sub-protocol specification of "Universal Serial Bus + * Communications Class Subclass Specification for PSTN Devices Revision 1.2 February 9, 2007" + * This driver implements the following aspects of the specification: + * - Device descriptor management + * - Configuration descriptor management + * - Enumeration as CDC device with 2 data endpoints (IN and OUT) and 1 command endpoint (IN) + * - Requests management (as described in section 6.2 in specification) + * - Abstract Control Model compliant + * - Union Functional collection (using 1 IN endpoint for control) + * - Data interface class + * + * These aspects may be enriched or modified for a specific user application. + * + * This driver doesn't implement the following aspects of the specification + * (but it is possible to manage these features with some modifications on this driver): + * - Any class-specific aspect relative to communication classes should be managed by user application. + * - All communication classes other than PSTN are not managed + * + * @endverbatim + * + ****************************************************************************** + */ + +/* BSPDependencies +- "stm32xxxxx_{eval}{discovery}{nucleo_144}.c" +- "stm32xxxxx_{eval}{discovery}_io.c" +EndBSPDependencies */ + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_cdc.h" +#include "usbd_ctlreq.h" + + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + + +/** @defgroup USBD_CDC + * @brief usbd core module + * @{ + */ + +/** @defgroup USBD_CDC_Private_TypesDefinitions + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_CDC_Private_Defines + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_CDC_Private_Macros + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_CDC_Private_FunctionPrototypes + * @{ + */ + +static uint8_t USBD_CDC_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx); +static uint8_t USBD_CDC_DeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx); +static uint8_t USBD_CDC_Setup(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static uint8_t USBD_CDC_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum); +static uint8_t USBD_CDC_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum); +static uint8_t USBD_CDC_EP0_RxReady(USBD_HandleTypeDef *pdev); +#ifndef USE_USBD_COMPOSITE +static uint8_t *USBD_CDC_GetFSCfgDesc(uint16_t *length); +static uint8_t *USBD_CDC_GetHSCfgDesc(uint16_t *length); +static uint8_t *USBD_CDC_GetOtherSpeedCfgDesc(uint16_t *length); +uint8_t *USBD_CDC_GetDeviceQualifierDescriptor(uint16_t *length); +#endif /* USE_USBD_COMPOSITE */ + +#ifndef USE_USBD_COMPOSITE +/* USB Standard Device Descriptor */ +__ALIGN_BEGIN static uint8_t USBD_CDC_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END = +{ + USB_LEN_DEV_QUALIFIER_DESC, + USB_DESC_TYPE_DEVICE_QUALIFIER, + 0x00, + 0x02, + 0x00, + 0x00, + 0x00, + 0x40, + 0x01, + 0x00, +}; +#endif /* USE_USBD_COMPOSITE */ +/** + * @} + */ + +/** @defgroup USBD_CDC_Private_Variables + * @{ + */ + + +/* CDC interface class callbacks structure */ +USBD_ClassTypeDef USBD_CDC = +{ + USBD_CDC_Init, + USBD_CDC_DeInit, + USBD_CDC_Setup, + NULL, /* EP0_TxSent */ + USBD_CDC_EP0_RxReady, + USBD_CDC_DataIn, + USBD_CDC_DataOut, + NULL, + NULL, + NULL, +#ifdef USE_USBD_COMPOSITE + NULL, + NULL, + NULL, + NULL, +#else + USBD_CDC_GetHSCfgDesc, + USBD_CDC_GetFSCfgDesc, + USBD_CDC_GetOtherSpeedCfgDesc, + USBD_CDC_GetDeviceQualifierDescriptor, +#endif /* USE_USBD_COMPOSITE */ +}; + +#ifndef USE_USBD_COMPOSITE +/* USB CDC device Configuration Descriptor */ +__ALIGN_BEGIN static uint8_t USBD_CDC_CfgDesc[USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END = +{ + /* Configuration Descriptor */ + 0x09, /* bLength: Configuration Descriptor size */ + USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */ + USB_CDC_CONFIG_DESC_SIZ, /* wTotalLength */ + 0x00, + 0x02, /* bNumInterfaces: 2 interfaces */ + 0x01, /* bConfigurationValue: Configuration value */ + 0x00, /* iConfiguration: Index of string descriptor + describing the configuration */ +#if (USBD_SELF_POWERED == 1U) + 0xC0, /* bmAttributes: Bus Powered according to user configuration */ +#else + 0x80, /* bmAttributes: Bus Powered according to user configuration */ +#endif /* USBD_SELF_POWERED */ + USBD_MAX_POWER, /* MaxPower (mA) */ + + /*---------------------------------------------------------------------------*/ + + /* Interface Descriptor */ + 0x09, /* bLength: Interface Descriptor size */ + USB_DESC_TYPE_INTERFACE, /* bDescriptorType: Interface */ + /* Interface descriptor type */ + 0x00, /* bInterfaceNumber: Number of Interface */ + 0x00, /* bAlternateSetting: Alternate setting */ + 0x01, /* bNumEndpoints: One endpoint used */ + 0x02, /* bInterfaceClass: Communication Interface Class */ + 0x02, /* bInterfaceSubClass: Abstract Control Model */ + 0x01, /* bInterfaceProtocol: Common AT commands */ + 0x00, /* iInterface */ + + /* Header Functional Descriptor */ + 0x05, /* bLength: Endpoint Descriptor size */ + 0x24, /* bDescriptorType: CS_INTERFACE */ + 0x00, /* bDescriptorSubtype: Header Func Desc */ + 0x10, /* bcdCDC: spec release number */ + 0x01, + + /* Call Management Functional Descriptor */ + 0x05, /* bFunctionLength */ + 0x24, /* bDescriptorType: CS_INTERFACE */ + 0x01, /* bDescriptorSubtype: Call Management Func Desc */ + 0x00, /* bmCapabilities: D0+D1 */ + 0x01, /* bDataInterface */ + + /* ACM Functional Descriptor */ + 0x04, /* bFunctionLength */ + 0x24, /* bDescriptorType: CS_INTERFACE */ + 0x02, /* bDescriptorSubtype: Abstract Control Management desc */ + 0x02, /* bmCapabilities */ + + /* Union Functional Descriptor */ + 0x05, /* bFunctionLength */ + 0x24, /* bDescriptorType: CS_INTERFACE */ + 0x06, /* bDescriptorSubtype: Union func desc */ + 0x00, /* bMasterInterface: Communication class interface */ + 0x01, /* bSlaveInterface0: Data Class Interface */ + + /* Endpoint 2 Descriptor */ + 0x07, /* bLength: Endpoint Descriptor size */ + USB_DESC_TYPE_ENDPOINT, /* bDescriptorType: Endpoint */ + CDC_CMD_EP, /* bEndpointAddress */ + 0x03, /* bmAttributes: Interrupt */ + LOBYTE(CDC_CMD_PACKET_SIZE), /* wMaxPacketSize */ + HIBYTE(CDC_CMD_PACKET_SIZE), + CDC_FS_BINTERVAL, /* bInterval */ + /*---------------------------------------------------------------------------*/ + + /* Data class interface descriptor */ + 0x09, /* bLength: Endpoint Descriptor size */ + USB_DESC_TYPE_INTERFACE, /* bDescriptorType: */ + 0x01, /* bInterfaceNumber: Number of Interface */ + 0x00, /* bAlternateSetting: Alternate setting */ + 0x02, /* bNumEndpoints: Two endpoints used */ + 0x0A, /* bInterfaceClass: CDC */ + 0x00, /* bInterfaceSubClass */ + 0x00, /* bInterfaceProtocol */ + 0x00, /* iInterface */ + + /* Endpoint OUT Descriptor */ + 0x07, /* bLength: Endpoint Descriptor size */ + USB_DESC_TYPE_ENDPOINT, /* bDescriptorType: Endpoint */ + CDC_OUT_EP, /* bEndpointAddress */ + 0x02, /* bmAttributes: Bulk */ + LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), /* wMaxPacketSize */ + HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), + 0x00, /* bInterval */ + + /* Endpoint IN Descriptor */ + 0x07, /* bLength: Endpoint Descriptor size */ + USB_DESC_TYPE_ENDPOINT, /* bDescriptorType: Endpoint */ + CDC_IN_EP, /* bEndpointAddress */ + 0x02, /* bmAttributes: Bulk */ + LOBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), /* wMaxPacketSize */ + HIBYTE(CDC_DATA_FS_MAX_PACKET_SIZE), + 0x00 /* bInterval */ +}; +#endif /* USE_USBD_COMPOSITE */ + +static uint8_t CDCInEpAdd = CDC_IN_EP; +static uint8_t CDCOutEpAdd = CDC_OUT_EP; +static uint8_t CDCCmdEpAdd = CDC_CMD_EP; + +/** + * @} + */ + +/** @defgroup USBD_CDC_Private_Functions + * @{ + */ + +/** + * @brief USBD_CDC_Init + * Initialize the CDC interface + * @param pdev: device instance + * @param cfgidx: Configuration index + * @retval status + */ +static uint8_t USBD_CDC_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx) +{ + UNUSED(cfgidx); + USBD_CDC_HandleTypeDef *hcdc; + + hcdc = (USBD_CDC_HandleTypeDef *)USBD_malloc(sizeof(USBD_CDC_HandleTypeDef)); + + if (hcdc == NULL) + { + pdev->pClassDataCmsit[pdev->classId] = NULL; + return (uint8_t)USBD_EMEM; + } + + (void)USBD_memset(hcdc, 0, sizeof(USBD_CDC_HandleTypeDef)); + + pdev->pClassDataCmsit[pdev->classId] = (void *)hcdc; + pdev->pClassData = pdev->pClassDataCmsit[pdev->classId]; + +#ifdef USE_USBD_COMPOSITE + /* Get the Endpoints addresses allocated for this class instance */ + CDCInEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_IN, USBD_EP_TYPE_BULK, (uint8_t)pdev->classId); + CDCOutEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_OUT, USBD_EP_TYPE_BULK, (uint8_t)pdev->classId); + CDCCmdEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_IN, USBD_EP_TYPE_INTR, (uint8_t)pdev->classId); +#endif /* USE_USBD_COMPOSITE */ + + if (pdev->dev_speed == USBD_SPEED_HIGH) + { + /* Open EP IN */ + (void)USBD_LL_OpenEP(pdev, CDCInEpAdd, USBD_EP_TYPE_BULK, + CDC_DATA_HS_IN_PACKET_SIZE); + + pdev->ep_in[CDCInEpAdd & 0xFU].is_used = 1U; + + /* Open EP OUT */ + (void)USBD_LL_OpenEP(pdev, CDCOutEpAdd, USBD_EP_TYPE_BULK, + CDC_DATA_HS_OUT_PACKET_SIZE); + + pdev->ep_out[CDCOutEpAdd & 0xFU].is_used = 1U; + + /* Set bInterval for CDC CMD Endpoint */ + pdev->ep_in[CDCCmdEpAdd & 0xFU].bInterval = CDC_HS_BINTERVAL; + } + else + { + /* Open EP IN */ + (void)USBD_LL_OpenEP(pdev, CDCInEpAdd, USBD_EP_TYPE_BULK, + CDC_DATA_FS_IN_PACKET_SIZE); + + pdev->ep_in[CDCInEpAdd & 0xFU].is_used = 1U; + + /* Open EP OUT */ + (void)USBD_LL_OpenEP(pdev, CDCOutEpAdd, USBD_EP_TYPE_BULK, + CDC_DATA_FS_OUT_PACKET_SIZE); + + pdev->ep_out[CDCOutEpAdd & 0xFU].is_used = 1U; + + /* Set bInterval for CMD Endpoint */ + pdev->ep_in[CDCCmdEpAdd & 0xFU].bInterval = CDC_FS_BINTERVAL; + } + + /* Open Command IN EP */ + (void)USBD_LL_OpenEP(pdev, CDCCmdEpAdd, USBD_EP_TYPE_INTR, CDC_CMD_PACKET_SIZE); + pdev->ep_in[CDCCmdEpAdd & 0xFU].is_used = 1U; + + hcdc->RxBuffer = NULL; + + /* Init physical Interface components */ + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->Init(); + + /* Init Xfer states */ + hcdc->TxState = 0U; + hcdc->RxState = 0U; + + if (hcdc->RxBuffer == NULL) + { + return (uint8_t)USBD_EMEM; + } + + if (pdev->dev_speed == USBD_SPEED_HIGH) + { + /* Prepare Out endpoint to receive next packet */ + (void)USBD_LL_PrepareReceive(pdev, CDCOutEpAdd, hcdc->RxBuffer, + CDC_DATA_HS_OUT_PACKET_SIZE); + } + else + { + /* Prepare Out endpoint to receive next packet */ + (void)USBD_LL_PrepareReceive(pdev, CDCOutEpAdd, hcdc->RxBuffer, + CDC_DATA_FS_OUT_PACKET_SIZE); + } + + return (uint8_t)USBD_OK; +} + +/** + * @brief USBD_CDC_Init + * DeInitialize the CDC layer + * @param pdev: device instance + * @param cfgidx: Configuration index + * @retval status + */ +static uint8_t USBD_CDC_DeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx) +{ + UNUSED(cfgidx); + + +#ifdef USE_USBD_COMPOSITE + /* Get the Endpoints addresses allocated for this CDC class instance */ + CDCInEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_IN, USBD_EP_TYPE_BULK, (uint8_t)pdev->classId); + CDCOutEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_OUT, USBD_EP_TYPE_BULK, (uint8_t)pdev->classId); + CDCCmdEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_IN, USBD_EP_TYPE_INTR, (uint8_t)pdev->classId); +#endif /* USE_USBD_COMPOSITE */ + + /* Close EP IN */ + (void)USBD_LL_CloseEP(pdev, CDCInEpAdd); + pdev->ep_in[CDCInEpAdd & 0xFU].is_used = 0U; + + /* Close EP OUT */ + (void)USBD_LL_CloseEP(pdev, CDCOutEpAdd); + pdev->ep_out[CDCOutEpAdd & 0xFU].is_used = 0U; + + /* Close Command IN EP */ + (void)USBD_LL_CloseEP(pdev, CDCCmdEpAdd); + pdev->ep_in[CDCCmdEpAdd & 0xFU].is_used = 0U; + pdev->ep_in[CDCCmdEpAdd & 0xFU].bInterval = 0U; + + /* DeInit physical Interface components */ + if (pdev->pClassDataCmsit[pdev->classId] != NULL) + { + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->DeInit(); + (void)USBD_free(pdev->pClassDataCmsit[pdev->classId]); + pdev->pClassDataCmsit[pdev->classId] = NULL; + pdev->pClassData = NULL; + } + + return (uint8_t)USBD_OK; +} + +/** + * @brief USBD_CDC_Setup + * Handle the CDC specific requests + * @param pdev: instance + * @param req: usb requests + * @retval status + */ +static uint8_t USBD_CDC_Setup(USBD_HandleTypeDef *pdev, + USBD_SetupReqTypedef *req) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + uint16_t len; + uint8_t ifalt = 0U; + uint16_t status_info = 0U; + USBD_StatusTypeDef ret = USBD_OK; + + if (hcdc == NULL) + { + return (uint8_t)USBD_FAIL; + } + + switch (req->bmRequest & USB_REQ_TYPE_MASK) + { + case USB_REQ_TYPE_CLASS: + if (req->wLength != 0U) + { + if ((req->bmRequest & 0x80U) != 0U) + { + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->Control(req->bRequest, + (uint8_t *)hcdc->data, + req->wLength); + + len = MIN(CDC_REQ_MAX_DATA_SIZE, req->wLength); + (void)USBD_CtlSendData(pdev, (uint8_t *)hcdc->data, len); + } + else + { + hcdc->CmdOpCode = req->bRequest; + hcdc->CmdLength = (uint8_t)MIN(req->wLength, USB_MAX_EP0_SIZE); + + (void)USBD_CtlPrepareRx(pdev, (uint8_t *)hcdc->data, hcdc->CmdLength); + } + } + else + { + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->Control(req->bRequest, + (uint8_t *)req, 0U); + } + break; + + case USB_REQ_TYPE_STANDARD: + switch (req->bRequest) + { + case USB_REQ_GET_STATUS: + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + (void)USBD_CtlSendData(pdev, (uint8_t *)&status_info, 2U); + } + else + { + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + } + break; + + case USB_REQ_GET_INTERFACE: + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + (void)USBD_CtlSendData(pdev, &ifalt, 1U); + } + else + { + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + } + break; + + case USB_REQ_SET_INTERFACE: + if (pdev->dev_state != USBD_STATE_CONFIGURED) + { + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + } + break; + + case USB_REQ_CLEAR_FEATURE: + break; + + default: + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + break; + } + break; + + default: + USBD_CtlError(pdev, req); + ret = USBD_FAIL; + break; + } + + return (uint8_t)ret; +} + +/** + * @brief USBD_CDC_DataIn + * Data sent on non-control IN endpoint + * @param pdev: device instance + * @param epnum: endpoint number + * @retval status + */ +static uint8_t USBD_CDC_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum) +{ + USBD_CDC_HandleTypeDef *hcdc; + PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef *)pdev->pData; + + if (pdev->pClassDataCmsit[pdev->classId] == NULL) + { + return (uint8_t)USBD_FAIL; + } + + hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + + if ((pdev->ep_in[epnum & 0xFU].total_length > 0U) && + ((pdev->ep_in[epnum & 0xFU].total_length % hpcd->IN_ep[epnum & 0xFU].maxpacket) == 0U)) + { + /* Update the packet total length */ + pdev->ep_in[epnum & 0xFU].total_length = 0U; + + /* Send ZLP */ + (void)USBD_LL_Transmit(pdev, epnum, NULL, 0U); + } + else + { + hcdc->TxState = 0U; + + if (((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->TransmitCplt != NULL) + { + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->TransmitCplt(hcdc->TxBuffer, &hcdc->TxLength, epnum); + } + } + + return (uint8_t)USBD_OK; +} + +/** + * @brief USBD_CDC_DataOut + * Data received on non-control Out endpoint + * @param pdev: device instance + * @param epnum: endpoint number + * @retval status + */ +static uint8_t USBD_CDC_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + + if (pdev->pClassDataCmsit[pdev->classId] == NULL) + { + return (uint8_t)USBD_FAIL; + } + + /* Get the received data length */ + hcdc->RxLength = USBD_LL_GetRxDataSize(pdev, epnum); + + /* USB data will be immediately processed, this allow next USB traffic being + NAKed till the end of the application Xfer */ + + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->Receive(hcdc->RxBuffer, &hcdc->RxLength); + + return (uint8_t)USBD_OK; +} + +/** + * @brief USBD_CDC_EP0_RxReady + * Handle EP0 Rx Ready event + * @param pdev: device instance + * @retval status + */ +static uint8_t USBD_CDC_EP0_RxReady(USBD_HandleTypeDef *pdev) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + + if (hcdc == NULL) + { + return (uint8_t)USBD_FAIL; + } + + if ((pdev->pUserData[pdev->classId] != NULL) && (hcdc->CmdOpCode != 0xFFU)) + { + ((USBD_CDC_ItfTypeDef *)pdev->pUserData[pdev->classId])->Control(hcdc->CmdOpCode, + (uint8_t *)hcdc->data, + (uint16_t)hcdc->CmdLength); + hcdc->CmdOpCode = 0xFFU; + } + + return (uint8_t)USBD_OK; +} +#ifndef USE_USBD_COMPOSITE +/** + * @brief USBD_CDC_GetFSCfgDesc + * Return configuration descriptor + * @param length : pointer data length + * @retval pointer to descriptor buffer + */ +static uint8_t *USBD_CDC_GetFSCfgDesc(uint16_t *length) +{ + USBD_EpDescTypeDef *pEpCmdDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_CMD_EP); + USBD_EpDescTypeDef *pEpOutDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_OUT_EP); + USBD_EpDescTypeDef *pEpInDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_IN_EP); + + if (pEpCmdDesc != NULL) + { + pEpCmdDesc->bInterval = CDC_FS_BINTERVAL; + } + + if (pEpOutDesc != NULL) + { + pEpOutDesc->wMaxPacketSize = CDC_DATA_FS_MAX_PACKET_SIZE; + } + + if (pEpInDesc != NULL) + { + pEpInDesc->wMaxPacketSize = CDC_DATA_FS_MAX_PACKET_SIZE; + } + + *length = (uint16_t)sizeof(USBD_CDC_CfgDesc); + return USBD_CDC_CfgDesc; +} + +/** + * @brief USBD_CDC_GetHSCfgDesc + * Return configuration descriptor + * @param length : pointer data length + * @retval pointer to descriptor buffer + */ +static uint8_t *USBD_CDC_GetHSCfgDesc(uint16_t *length) +{ + USBD_EpDescTypeDef *pEpCmdDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_CMD_EP); + USBD_EpDescTypeDef *pEpOutDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_OUT_EP); + USBD_EpDescTypeDef *pEpInDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_IN_EP); + + if (pEpCmdDesc != NULL) + { + pEpCmdDesc->bInterval = CDC_HS_BINTERVAL; + } + + if (pEpOutDesc != NULL) + { + pEpOutDesc->wMaxPacketSize = CDC_DATA_HS_MAX_PACKET_SIZE; + } + + if (pEpInDesc != NULL) + { + pEpInDesc->wMaxPacketSize = CDC_DATA_HS_MAX_PACKET_SIZE; + } + + *length = (uint16_t)sizeof(USBD_CDC_CfgDesc); + return USBD_CDC_CfgDesc; +} + +/** + * @brief USBD_CDC_GetOtherSpeedCfgDesc + * Return configuration descriptor + * @param length : pointer data length + * @retval pointer to descriptor buffer + */ +static uint8_t *USBD_CDC_GetOtherSpeedCfgDesc(uint16_t *length) +{ + USBD_EpDescTypeDef *pEpCmdDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_CMD_EP); + USBD_EpDescTypeDef *pEpOutDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_OUT_EP); + USBD_EpDescTypeDef *pEpInDesc = USBD_GetEpDesc(USBD_CDC_CfgDesc, CDC_IN_EP); + + if (pEpCmdDesc != NULL) + { + pEpCmdDesc->bInterval = CDC_FS_BINTERVAL; + } + + if (pEpOutDesc != NULL) + { + pEpOutDesc->wMaxPacketSize = CDC_DATA_FS_MAX_PACKET_SIZE; + } + + if (pEpInDesc != NULL) + { + pEpInDesc->wMaxPacketSize = CDC_DATA_FS_MAX_PACKET_SIZE; + } + + *length = (uint16_t)sizeof(USBD_CDC_CfgDesc); + return USBD_CDC_CfgDesc; +} + +/** + * @brief USBD_CDC_GetDeviceQualifierDescriptor + * return Device Qualifier descriptor + * @param length : pointer data length + * @retval pointer to descriptor buffer + */ +uint8_t *USBD_CDC_GetDeviceQualifierDescriptor(uint16_t *length) +{ + *length = (uint16_t)sizeof(USBD_CDC_DeviceQualifierDesc); + + return USBD_CDC_DeviceQualifierDesc; +} +#endif /* USE_USBD_COMPOSITE */ +/** + * @brief USBD_CDC_RegisterInterface + * @param pdev: device instance + * @param fops: CD Interface callback + * @retval status + */ +uint8_t USBD_CDC_RegisterInterface(USBD_HandleTypeDef *pdev, + USBD_CDC_ItfTypeDef *fops) +{ + if (fops == NULL) + { + return (uint8_t)USBD_FAIL; + } + + pdev->pUserData[pdev->classId] = fops; + + return (uint8_t)USBD_OK; +} + + +/** + * @brief USBD_CDC_SetTxBuffer + * @param pdev: device instance + * @param pbuff: Tx Buffer + * @param length: length of data to be sent + * @param ClassId: The Class ID + * @retval status + */ +#ifdef USE_USBD_COMPOSITE +uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, + uint8_t *pbuff, uint32_t length, uint8_t ClassId) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[ClassId]; +#else +uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, + uint8_t *pbuff, uint32_t length) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; +#endif /* USE_USBD_COMPOSITE */ + + if (hcdc == NULL) + { + return (uint8_t)USBD_FAIL; + } + + hcdc->TxBuffer = pbuff; + hcdc->TxLength = length; + + return (uint8_t)USBD_OK; +} + +/** + * @brief USBD_CDC_SetRxBuffer + * @param pdev: device instance + * @param pbuff: Rx Buffer + * @retval status + */ +uint8_t USBD_CDC_SetRxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + + if (hcdc == NULL) + { + return (uint8_t)USBD_FAIL; + } + + hcdc->RxBuffer = pbuff; + + return (uint8_t)USBD_OK; +} + + +/** + * @brief USBD_CDC_TransmitPacket + * Transmit packet on IN endpoint + * @param pdev: device instance + * @param ClassId: The Class ID + * @retval status + */ +#ifdef USE_USBD_COMPOSITE +uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev, uint8_t ClassId) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[ClassId]; +#else +uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; +#endif /* USE_USBD_COMPOSITE */ + + USBD_StatusTypeDef ret = USBD_BUSY; + +#ifdef USE_USBD_COMPOSITE + /* Get the Endpoints addresses allocated for this class instance */ + CDCInEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_IN, USBD_EP_TYPE_BULK, ClassId); +#endif /* USE_USBD_COMPOSITE */ + + if (hcdc == NULL) + { + return (uint8_t)USBD_FAIL; + } + + if (hcdc->TxState == 0U) + { + /* Tx Transfer in progress */ + hcdc->TxState = 1U; + + /* Update the packet total length */ + pdev->ep_in[CDCInEpAdd & 0xFU].total_length = hcdc->TxLength; + + /* Transmit next packet */ + (void)USBD_LL_Transmit(pdev, CDCInEpAdd, hcdc->TxBuffer, hcdc->TxLength); + + ret = USBD_OK; + } + + return (uint8_t)ret; +} + +/** + * @brief USBD_CDC_ReceivePacket + * prepare OUT Endpoint for reception + * @param pdev: device instance + * @retval status + */ +uint8_t USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev) +{ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef *)pdev->pClassDataCmsit[pdev->classId]; + +#ifdef USE_USBD_COMPOSITE + /* Get the Endpoints addresses allocated for this class instance */ + CDCOutEpAdd = USBD_CoreGetEPAdd(pdev, USBD_EP_OUT, USBD_EP_TYPE_BULK, (uint8_t)pdev->classId); +#endif /* USE_USBD_COMPOSITE */ + + if (pdev->pClassDataCmsit[pdev->classId] == NULL) + { + return (uint8_t)USBD_FAIL; + } + + if (pdev->dev_speed == USBD_SPEED_HIGH) + { + /* Prepare Out endpoint to receive next packet */ + (void)USBD_LL_PrepareReceive(pdev, CDCOutEpAdd, hcdc->RxBuffer, + CDC_DATA_HS_OUT_PACKET_SIZE); + } + else + { + /* Prepare Out endpoint to receive next packet */ + (void)USBD_LL_PrepareReceive(pdev, CDCOutEpAdd, hcdc->RxBuffer, + CDC_DATA_FS_OUT_PACKET_SIZE); + } + + return (uint8_t)USBD_OK; +} +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h new file mode 100644 index 0000000..4672921 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h @@ -0,0 +1,175 @@ +/** + ****************************************************************************** + * @file usbd_core.h + * @author MCD Application Team + * @brief Header file for usbd_core.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USBD_CORE_H +#define __USBD_CORE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_conf.h" +#include "usbd_def.h" +#include "usbd_ioreq.h" +#include "usbd_ctlreq.h" + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup USBD_CORE + * @brief This file is the Header file for usbd_core.c file + * @{ + */ + + +/** @defgroup USBD_CORE_Exported_Defines + * @{ + */ +#ifndef USBD_DEBUG_LEVEL +#define USBD_DEBUG_LEVEL 0U +#endif /* USBD_DEBUG_LEVEL */ +/** + * @} + */ + + +/** @defgroup USBD_CORE_Exported_TypesDefinitions + * @{ + */ + + +/** + * @} + */ + + + +/** @defgroup USBD_CORE_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_CORE_Exported_Variables + * @{ + */ +#define USBD_SOF USBD_LL_SOF +/** + * @} + */ + +/** @defgroup USBD_CORE_Exported_FunctionsPrototype + * @{ + */ +USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, USBD_DescriptorsTypeDef *pdesc, uint8_t id); +USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_Start(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_Stop(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass); +#if (USBD_USER_REGISTER_CALLBACK == 1U) +USBD_StatusTypeDef USBD_RegisterDevStateCallback(USBD_HandleTypeDef *pdev, USBD_DevStateCallbackTypeDef pUserCallback); +#endif /* USBD_USER_REGISTER_CALLBACK */ + +#ifdef USE_USBD_COMPOSITE +USBD_StatusTypeDef USBD_RegisterClassComposite(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass, + USBD_CompositeClassTypeDef classtype, uint8_t *EpAddr); + +USBD_StatusTypeDef USBD_UnRegisterClassComposite(USBD_HandleTypeDef *pdev); +uint8_t USBD_CoreGetEPAdd(USBD_HandleTypeDef *pdev, uint8_t ep_dir, uint8_t ep_type, uint8_t ClassId); +#endif /* USE_USBD_COMPOSITE */ + +uint8_t USBD_CoreFindIF(USBD_HandleTypeDef *pdev, uint8_t index); +uint8_t USBD_CoreFindEP(USBD_HandleTypeDef *pdev, uint8_t index); + +USBD_StatusTypeDef USBD_RunTestMode(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx); +USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx); + +USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup); +USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata); +USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, uint8_t epnum, uint8_t *pdata); + +USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, USBD_SpeedTypeDef speed); +USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev); + +USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); +USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, uint8_t epnum); + +USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev); + +/* USBD Low Level Driver */ +USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev); + +USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, + uint8_t ep_type, uint16_t ep_mps); + +USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); +USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); +USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); +USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); +USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr); + +USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, + uint8_t *pbuf, uint32_t size); + +USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, + uint8_t *pbuf, uint32_t size); + +#ifdef USBD_HS_TESTMODE_ENABLE +USBD_StatusTypeDef USBD_LL_SetTestMode(USBD_HandleTypeDef *pdev, uint8_t testmode); +#endif /* USBD_HS_TESTMODE_ENABLE */ + +uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr); +uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr); + +void USBD_LL_Delay(uint32_t Delay); + +void *USBD_GetEpDesc(uint8_t *pConfDesc, uint8_t EpAddr); +USBD_DescHeaderTypeDef *USBD_GetNextDesc(uint8_t *pbuf, uint16_t *ptr); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_CORE_H */ + +/** + * @} + */ + +/** + * @} + */ + + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h new file mode 100644 index 0000000..6c45d6c --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h @@ -0,0 +1,101 @@ +/** + ****************************************************************************** + * @file usbd_req.h + * @author MCD Application Team + * @brief Header file for the usbd_req.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USB_REQUEST_H +#define __USB_REQUEST_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_def.h" + + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup USBD_REQ + * @brief header file for the usbd_req.c file + * @{ + */ + +/** @defgroup USBD_REQ_Exported_Defines + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_REQ_Exported_Types + * @{ + */ +/** + * @} + */ + + + +/** @defgroup USBD_REQ_Exported_Macros + * @{ + */ +/** + * @} + */ + +/** @defgroup USBD_REQ_Exported_Variables + * @{ + */ +/** + * @} + */ + +/** @defgroup USBD_REQ_Exported_FunctionsPrototype + * @{ + */ + +USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + +void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata); +void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_REQUEST_H */ + +/** + * @} + */ + +/** + * @} + */ + + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h new file mode 100644 index 0000000..2a295d7 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h @@ -0,0 +1,523 @@ +/** + ****************************************************************************** + * @file usbd_def.h + * @author MCD Application Team + * @brief General defines for the usb device library + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USBD_DEF_H +#define __USBD_DEF_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_conf.h" + +/** @addtogroup STM32_USBD_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup USB_DEF + * @brief general defines for the usb device library file + * @{ + */ + +/** @defgroup USB_DEF_Exported_Defines + * @{ + */ + +#ifndef NULL +#define NULL 0U +#endif /* NULL */ + +#ifndef USBD_MAX_NUM_INTERFACES +#define USBD_MAX_NUM_INTERFACES 1U +#endif /* USBD_MAX_NUM_CONFIGURATION */ + +#ifndef USBD_MAX_NUM_CONFIGURATION +#define USBD_MAX_NUM_CONFIGURATION 1U +#endif /* USBD_MAX_NUM_CONFIGURATION */ + +#ifdef USE_USBD_COMPOSITE +#ifndef USBD_MAX_SUPPORTED_CLASS +#define USBD_MAX_SUPPORTED_CLASS 4U +#endif /* USBD_MAX_SUPPORTED_CLASS */ +#else +#ifndef USBD_MAX_SUPPORTED_CLASS +#define USBD_MAX_SUPPORTED_CLASS 1U +#endif /* USBD_MAX_SUPPORTED_CLASS */ +#endif /* USE_USBD_COMPOSITE */ + +#ifndef USBD_MAX_CLASS_ENDPOINTS +#define USBD_MAX_CLASS_ENDPOINTS 5U +#endif /* USBD_MAX_CLASS_ENDPOINTS */ + +#ifndef USBD_MAX_CLASS_INTERFACES +#define USBD_MAX_CLASS_INTERFACES 5U +#endif /* USBD_MAX_CLASS_INTERFACES */ + +#ifndef USBD_LPM_ENABLED +#define USBD_LPM_ENABLED 0U +#endif /* USBD_LPM_ENABLED */ + +#ifndef USBD_SELF_POWERED +#define USBD_SELF_POWERED 1U +#endif /*USBD_SELF_POWERED */ + +#ifndef USBD_MAX_POWER +#define USBD_MAX_POWER 0x32U /* 100 mA */ +#endif /* USBD_MAX_POWER */ + +#ifndef USBD_SUPPORT_USER_STRING_DESC +#define USBD_SUPPORT_USER_STRING_DESC 0U +#endif /* USBD_SUPPORT_USER_STRING_DESC */ + +#ifndef USBD_CLASS_USER_STRING_DESC +#define USBD_CLASS_USER_STRING_DESC 0U +#endif /* USBD_CLASS_USER_STRING_DESC */ + +#define USB_LEN_DEV_QUALIFIER_DESC 0x0AU +#define USB_LEN_DEV_DESC 0x12U +#define USB_LEN_CFG_DESC 0x09U +#define USB_LEN_IF_DESC 0x09U +#define USB_LEN_EP_DESC 0x07U +#define USB_LEN_OTG_DESC 0x03U +#define USB_LEN_LANGID_STR_DESC 0x04U +#define USB_LEN_OTHER_SPEED_DESC_SIZ 0x09U + +#define USBD_IDX_LANGID_STR 0x00U +#define USBD_IDX_MFC_STR 0x01U +#define USBD_IDX_PRODUCT_STR 0x02U +#define USBD_IDX_SERIAL_STR 0x03U +#define USBD_IDX_CONFIG_STR 0x04U +#define USBD_IDX_INTERFACE_STR 0x05U + +#define USB_REQ_TYPE_STANDARD 0x00U +#define USB_REQ_TYPE_CLASS 0x20U +#define USB_REQ_TYPE_VENDOR 0x40U +#define USB_REQ_TYPE_MASK 0x60U + +#define USB_REQ_RECIPIENT_DEVICE 0x00U +#define USB_REQ_RECIPIENT_INTERFACE 0x01U +#define USB_REQ_RECIPIENT_ENDPOINT 0x02U +#define USB_REQ_RECIPIENT_MASK 0x03U + +#define USB_REQ_GET_STATUS 0x00U +#define USB_REQ_CLEAR_FEATURE 0x01U +#define USB_REQ_SET_FEATURE 0x03U +#define USB_REQ_SET_ADDRESS 0x05U +#define USB_REQ_GET_DESCRIPTOR 0x06U +#define USB_REQ_SET_DESCRIPTOR 0x07U +#define USB_REQ_GET_CONFIGURATION 0x08U +#define USB_REQ_SET_CONFIGURATION 0x09U +#define USB_REQ_GET_INTERFACE 0x0AU +#define USB_REQ_SET_INTERFACE 0x0BU +#define USB_REQ_SYNCH_FRAME 0x0CU + +#define USB_DESC_TYPE_DEVICE 0x01U +#define USB_DESC_TYPE_CONFIGURATION 0x02U +#define USB_DESC_TYPE_STRING 0x03U +#define USB_DESC_TYPE_INTERFACE 0x04U +#define USB_DESC_TYPE_ENDPOINT 0x05U +#define USB_DESC_TYPE_DEVICE_QUALIFIER 0x06U +#define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION 0x07U +#define USB_DESC_TYPE_IAD 0x0BU +#define USB_DESC_TYPE_BOS 0x0FU + +#define USB_CONFIG_REMOTE_WAKEUP 0x02U +#define USB_CONFIG_SELF_POWERED 0x01U + +#define USB_FEATURE_EP_HALT 0x00U +#define USB_FEATURE_REMOTE_WAKEUP 0x01U +#define USB_FEATURE_TEST_MODE 0x02U + +#define USB_DEVICE_CAPABITY_TYPE 0x10U + +#define USB_CONF_DESC_SIZE 0x09U +#define USB_IF_DESC_SIZE 0x09U +#define USB_EP_DESC_SIZE 0x07U +#define USB_IAD_DESC_SIZE 0x08U + +#define USB_HS_MAX_PACKET_SIZE 512U +#define USB_FS_MAX_PACKET_SIZE 64U +#define USB_MAX_EP0_SIZE 64U + +/* Device Status */ +#define USBD_STATE_DEFAULT 0x01U +#define USBD_STATE_ADDRESSED 0x02U +#define USBD_STATE_CONFIGURED 0x03U +#define USBD_STATE_SUSPENDED 0x04U + + +/* EP0 State */ +#define USBD_EP0_IDLE 0x00U +#define USBD_EP0_SETUP 0x01U +#define USBD_EP0_DATA_IN 0x02U +#define USBD_EP0_DATA_OUT 0x03U +#define USBD_EP0_STATUS_IN 0x04U +#define USBD_EP0_STATUS_OUT 0x05U +#define USBD_EP0_STALL 0x06U + +#define USBD_EP_TYPE_CTRL 0x00U +#define USBD_EP_TYPE_ISOC 0x01U +#define USBD_EP_TYPE_BULK 0x02U +#define USBD_EP_TYPE_INTR 0x03U + +#ifdef USE_USBD_COMPOSITE +#define USBD_EP_IN 0x80U +#define USBD_EP_OUT 0x00U +#define USBD_FUNC_DESCRIPTOR_TYPE 0x24U +#define USBD_DESC_SUBTYPE_ACM 0x0FU +#define USBD_DESC_ECM_BCD_LOW 0x00U +#define USBD_DESC_ECM_BCD_HIGH 0x10U +#endif /* USE_USBD_COMPOSITE */ +/** + * @} + */ + + +/** @defgroup USBD_DEF_Exported_TypesDefinitions + * @{ + */ + +typedef struct usb_setup_req +{ + uint8_t bmRequest; + uint8_t bRequest; + uint16_t wValue; + uint16_t wIndex; + uint16_t wLength; +} USBD_SetupReqTypedef; + +typedef struct +{ + uint8_t bLength; + uint8_t bDescriptorType; + uint16_t wTotalLength; + uint8_t bNumInterfaces; + uint8_t bConfigurationValue; + uint8_t iConfiguration; + uint8_t bmAttributes; + uint8_t bMaxPower; +} __PACKED USBD_ConfigDescTypeDef; + +typedef struct +{ + uint8_t bLength; + uint8_t bDescriptorType; + uint16_t wTotalLength; + uint8_t bNumDeviceCaps; +} USBD_BosDescTypeDef; + +typedef struct +{ + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bEndpointAddress; + uint8_t bmAttributes; + uint16_t wMaxPacketSize; + uint8_t bInterval; +} __PACKED USBD_EpDescTypeDef; + +typedef struct +{ + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubType; +} USBD_DescHeaderTypeDef; + +struct _USBD_HandleTypeDef; + +typedef struct _Device_cb +{ + uint8_t (*Init)(struct _USBD_HandleTypeDef *pdev, uint8_t cfgidx); + uint8_t (*DeInit)(struct _USBD_HandleTypeDef *pdev, uint8_t cfgidx); + /* Control Endpoints*/ + uint8_t (*Setup)(struct _USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); + uint8_t (*EP0_TxSent)(struct _USBD_HandleTypeDef *pdev); + uint8_t (*EP0_RxReady)(struct _USBD_HandleTypeDef *pdev); + /* Class Specific Endpoints*/ + uint8_t (*DataIn)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + uint8_t (*DataOut)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + uint8_t (*SOF)(struct _USBD_HandleTypeDef *pdev); + uint8_t (*IsoINIncomplete)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + uint8_t (*IsoOUTIncomplete)(struct _USBD_HandleTypeDef *pdev, uint8_t epnum); + + uint8_t *(*GetHSConfigDescriptor)(uint16_t *length); + uint8_t *(*GetFSConfigDescriptor)(uint16_t *length); + uint8_t *(*GetOtherSpeedConfigDescriptor)(uint16_t *length); + uint8_t *(*GetDeviceQualifierDescriptor)(uint16_t *length); +#if (USBD_SUPPORT_USER_STRING_DESC == 1U) + uint8_t *(*GetUsrStrDescriptor)(struct _USBD_HandleTypeDef *pdev, uint8_t index, uint16_t *length); +#endif /* USBD_SUPPORT_USER_STRING_DESC */ + +} USBD_ClassTypeDef; + +/* Following USB Device Speed */ +typedef enum +{ + USBD_SPEED_HIGH = 0U, + USBD_SPEED_FULL = 1U, + USBD_SPEED_LOW = 2U, +} USBD_SpeedTypeDef; + +/* Following USB Device status */ +typedef enum +{ + USBD_OK = 0U, + USBD_BUSY, + USBD_EMEM, + USBD_FAIL, +} USBD_StatusTypeDef; + +/* USB Device descriptors structure */ +typedef struct +{ + uint8_t *(*GetDeviceDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetLangIDStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetManufacturerStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetProductStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetSerialStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetConfigurationStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); + uint8_t *(*GetInterfaceStrDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); +#if (USBD_CLASS_USER_STRING_DESC == 1) + uint8_t *(*GetUserStrDescriptor)(USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length); +#endif /* USBD_CLASS_USER_STRING_DESC */ +#if ((USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1)) + uint8_t *(*GetBOSDescriptor)(USBD_SpeedTypeDef speed, uint16_t *length); +#endif /* (USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1) */ +} USBD_DescriptorsTypeDef; + +/* USB Device handle structure */ +typedef struct +{ + uint32_t status; + uint32_t total_length; + uint32_t rem_length; + uint32_t maxpacket; + uint16_t is_used; + uint16_t bInterval; +} USBD_EndpointTypeDef; + +#ifdef USE_USBD_COMPOSITE +typedef enum +{ + CLASS_TYPE_NONE = 0, + CLASS_TYPE_HID = 1, + CLASS_TYPE_CDC = 2, + CLASS_TYPE_MSC = 3, + CLASS_TYPE_DFU = 4, + CLASS_TYPE_CHID = 5, + CLASS_TYPE_AUDIO = 6, + CLASS_TYPE_ECM = 7, + CLASS_TYPE_RNDIS = 8, + CLASS_TYPE_MTP = 9, + CLASS_TYPE_VIDEO = 10, + CLASS_TYPE_PRINTER = 11, + CLASS_TYPE_CCID = 12, +} USBD_CompositeClassTypeDef; + + +/* USB Device handle structure */ +typedef struct +{ + uint8_t add; + uint8_t type; + uint8_t size; + uint8_t is_used; +} USBD_EPTypeDef; + +/* USB Device handle structure */ +typedef struct +{ + USBD_CompositeClassTypeDef ClassType; + uint32_t ClassId; + uint32_t Active; + uint32_t NumEps; + USBD_EPTypeDef Eps[USBD_MAX_CLASS_ENDPOINTS]; + uint8_t *EpAdd; + uint32_t NumIf; + uint8_t Ifs[USBD_MAX_CLASS_INTERFACES]; + uint32_t CurrPcktSze; +} USBD_CompositeElementTypeDef; +#endif /* USE_USBD_COMPOSITE */ + +/* USB Device handle structure */ +typedef struct _USBD_HandleTypeDef +{ + uint8_t id; + uint32_t dev_config; + uint32_t dev_default_config; + uint32_t dev_config_status; + USBD_SpeedTypeDef dev_speed; + USBD_EndpointTypeDef ep_in[16]; + USBD_EndpointTypeDef ep_out[16]; + __IO uint32_t ep0_state; + uint32_t ep0_data_len; + __IO uint8_t dev_state; + __IO uint8_t dev_old_state; + uint8_t dev_address; + uint8_t dev_connection_status; + uint8_t dev_test_mode; + uint32_t dev_remote_wakeup; + uint8_t ConfIdx; + + USBD_SetupReqTypedef request; + USBD_DescriptorsTypeDef *pDesc; + USBD_ClassTypeDef *pClass[USBD_MAX_SUPPORTED_CLASS]; + void *pClassData; + void *pClassDataCmsit[USBD_MAX_SUPPORTED_CLASS]; + void *pUserData[USBD_MAX_SUPPORTED_CLASS]; + void *pData; + void *pBosDesc; + void *pConfDesc; + uint32_t classId; + uint32_t NumClasses; +#ifdef USE_USBD_COMPOSITE + USBD_CompositeElementTypeDef tclasslist[USBD_MAX_SUPPORTED_CLASS]; +#endif /* USE_USBD_COMPOSITE */ +#if (USBD_USER_REGISTER_CALLBACK == 1U) + void (* DevStateCallback)(uint8_t dev_state, uint8_t cfgidx); /*!< User Notification callback */ +#endif /* USBD_USER_REGISTER_CALLBACK */ +} USBD_HandleTypeDef; + +#if (USBD_USER_REGISTER_CALLBACK == 1U) +typedef void (*USBD_DevStateCallbackTypeDef)(uint8_t dev_state, uint8_t cfgidx); /*!< pointer to User callback function */ +#endif /* USBD_USER_REGISTER_CALLBACK */ + +/* USB Device endpoint direction */ +typedef enum +{ + OUT = 0x00, + IN = 0x80, +} USBD_EPDirectionTypeDef; + +typedef enum +{ + NETWORK_CONNECTION = 0x00, + RESPONSE_AVAILABLE = 0x01, + CONNECTION_SPEED_CHANGE = 0x2A +} USBD_CDC_NotifCodeTypeDef; +/** + * @} + */ + + + +/** @defgroup USBD_DEF_Exported_Macros + * @{ + */ +__STATIC_INLINE uint16_t SWAPBYTE(uint8_t *addr) +{ + uint16_t _SwapVal; + uint16_t _Byte1; + uint16_t _Byte2; + uint8_t *_pbuff = addr; + + _Byte1 = *(uint8_t *)_pbuff; + _pbuff++; + _Byte2 = *(uint8_t *)_pbuff; + + _SwapVal = (_Byte2 << 8) | _Byte1; + + return _SwapVal; +} + +#ifndef LOBYTE +#define LOBYTE(x) ((uint8_t)((x) & 0x00FFU)) +#endif /* LOBYTE */ + +#ifndef HIBYTE +#define HIBYTE(x) ((uint8_t)(((x) & 0xFF00U) >> 8U)) +#endif /* HIBYTE */ + +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif /* MIN */ + +#ifndef MAX +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) +#endif /* MAX */ + +#if defined ( __GNUC__ ) +#ifndef __weak +#define __weak __attribute__((weak)) +#endif /* __weak */ +#ifndef __packed +#define __packed __attribute__((__packed__)) +#endif /* __packed */ +#endif /* __GNUC__ */ + + +/* In HS mode and when the DMA is used, all variables and data structures dealing + with the DMA during the transaction process should be 4-bytes aligned */ + +#if defined ( __GNUC__ ) && !defined (__CC_ARM) /* GNU Compiler */ +#ifndef __ALIGN_END +#define __ALIGN_END __attribute__ ((aligned (4U))) +#endif /* __ALIGN_END */ +#ifndef __ALIGN_BEGIN +#define __ALIGN_BEGIN +#endif /* __ALIGN_BEGIN */ +#else +#ifndef __ALIGN_END +#define __ALIGN_END +#endif /* __ALIGN_END */ +#ifndef __ALIGN_BEGIN +#if defined (__CC_ARM) /* ARM Compiler */ +#define __ALIGN_BEGIN __align(4U) +#elif defined (__ICCARM__) /* IAR Compiler */ +#define __ALIGN_BEGIN +#endif /* __CC_ARM */ +#endif /* __ALIGN_BEGIN */ +#endif /* __GNUC__ */ + + +/** + * @} + */ + +/** @defgroup USBD_DEF_Exported_Variables + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_DEF_Exported_FunctionsPrototype + * @{ + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_DEF_H */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h new file mode 100644 index 0000000..15197b9 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h @@ -0,0 +1,113 @@ +/** + ****************************************************************************** + * @file usbd_ioreq.h + * @author MCD Application Team + * @brief Header file for the usbd_ioreq.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __USBD_IOREQ_H +#define __USBD_IOREQ_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_def.h" +#include "usbd_core.h" + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup USBD_IOREQ + * @brief header file for the usbd_ioreq.c file + * @{ + */ + +/** @defgroup USBD_IOREQ_Exported_Defines + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Exported_Types + * @{ + */ + + +/** + * @} + */ + + + +/** @defgroup USBD_IOREQ_Exported_Macros + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_IOREQ_Exported_Variables + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_IOREQ_Exported_FunctionsPrototype + * @{ + */ + +USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len); + +USBD_StatusTypeDef USBD_CtlContinueSendData(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len); + +USBD_StatusTypeDef USBD_CtlPrepareRx(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len); + +USBD_StatusTypeDef USBD_CtlContinueRx(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len); + +USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev); +USBD_StatusTypeDef USBD_CtlReceiveStatus(USBD_HandleTypeDef *pdev); + +uint32_t USBD_GetRxCount(USBD_HandleTypeDef *pdev, uint8_t ep_addr); + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_IOREQ_H */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c new file mode 100644 index 0000000..0576c87 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c @@ -0,0 +1,1215 @@ +/** + ****************************************************************************** + * @file usbd_core.c + * @author MCD Application Team + * @brief This file provides all the USBD core functions. + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_core.h" + +#ifdef USE_USBD_COMPOSITE +#include "usbd_composite_builder.h" +#endif /* USE_USBD_COMPOSITE */ + +/** @addtogroup STM32_USBD_DEVICE_LIBRARY + * @{ + */ + + +/** @defgroup USBD_CORE + * @brief usbd core module + * @{ + */ + +/** @defgroup USBD_CORE_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_CORE_Private_Defines + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_CORE_Private_Macros + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_CORE_Private_FunctionPrototypes + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_CORE_Private_Variables + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_CORE_Private_Functions + * @{ + */ + +/** + * @brief USBD_Init + * Initialize the device stack and load the class driver + * @param pdev: device instance + * @param pdesc: Descriptor structure address + * @param id: Low level core index + * @retval status: USBD Status + */ +USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, + USBD_DescriptorsTypeDef *pdesc, uint8_t id) +{ + USBD_StatusTypeDef ret; + + /* Check whether the USB Host handle is valid */ + if (pdev == NULL) + { +#if (USBD_DEBUG_LEVEL > 1U) + USBD_ErrLog("Invalid Device handle"); +#endif /* (USBD_DEBUG_LEVEL > 1U) */ + return USBD_FAIL; + } + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Unlink previous class*/ + pdev->pClass[i] = NULL; + pdev->pUserData[i] = NULL; + + /* Set class as inactive */ + pdev->tclasslist[i].Active = 0; + pdev->NumClasses = 0; + pdev->classId = 0; + } +#else + /* Unlink previous class*/ + pdev->pClass[0] = NULL; + pdev->pUserData[0] = NULL; +#endif /* USE_USBD_COMPOSITE */ + + pdev->pConfDesc = NULL; + + /* Assign USBD Descriptors */ + if (pdesc != NULL) + { + pdev->pDesc = pdesc; + } + + /* Set Device initial State */ + pdev->dev_state = USBD_STATE_DEFAULT; + pdev->id = id; + + /* Initialize low level driver */ + ret = USBD_LL_Init(pdev); + + return ret; +} + +/** + * @brief USBD_DeInit + * De-Initialize the device library + * @param pdev: device instance + * @retval status: USBD Status + */ +USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev) +{ + USBD_StatusTypeDef ret; + + /* Disconnect the USB Device */ + (void)USBD_LL_Stop(pdev); + + /* Set Default State */ + pdev->dev_state = USBD_STATE_DEFAULT; + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Free Class Resources */ + pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config); + } + } + } +#else + /* Free Class Resources */ + if (pdev->pClass[0] != NULL) + { + pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config); + } + + pdev->pUserData[0] = NULL; + +#endif /* USE_USBD_COMPOSITE */ + + /* Free Device descriptors resources */ + pdev->pDesc = NULL; + pdev->pConfDesc = NULL; + + /* DeInitialize low level driver */ + ret = USBD_LL_DeInit(pdev); + + return ret; +} + +/** + * @brief USBD_RegisterClass + * Link class driver to Device Core. + * @param pdev: Device Handle + * @param pclass: Class handle + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass) +{ + uint16_t len = 0U; + + if (pclass == NULL) + { +#if (USBD_DEBUG_LEVEL > 1U) + USBD_ErrLog("Invalid Class handle"); +#endif /* (USBD_DEBUG_LEVEL > 1U) */ + return USBD_FAIL; + } + + /* link the class to the USB Device handle */ + pdev->pClass[0] = pclass; + + /* Get Device Configuration Descriptor */ +#ifdef USE_USB_HS + if (pdev->pClass[pdev->classId]->GetHSConfigDescriptor != NULL) + { + pdev->pConfDesc = (void *)pdev->pClass[pdev->classId]->GetHSConfigDescriptor(&len); + } +#else /* Default USE_USB_FS */ + if (pdev->pClass[pdev->classId]->GetFSConfigDescriptor != NULL) + { + pdev->pConfDesc = (void *)pdev->pClass[pdev->classId]->GetFSConfigDescriptor(&len); + } +#endif /* USE_USB_FS */ + + /* Increment the NumClasses */ + pdev->NumClasses++; + + return USBD_OK; +} + +#ifdef USE_USBD_COMPOSITE +/** + * @brief USBD_RegisterClassComposite + * Link class driver to Device Core. + * @param pdev : Device Handle + * @param pclass: Class handle + * @param classtype: Class type + * @param EpAddr: Endpoint Address handle + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_RegisterClassComposite(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass, + USBD_CompositeClassTypeDef classtype, uint8_t *EpAddr) +{ + USBD_StatusTypeDef ret = USBD_OK; + uint16_t len = 0U; + + if ((pdev->classId < USBD_MAX_SUPPORTED_CLASS) && (pdev->NumClasses < USBD_MAX_SUPPORTED_CLASS)) + { + if ((uint32_t)pclass != 0U) + { + /* Link the class to the USB Device handle */ + pdev->pClass[pdev->classId] = pclass; + ret = USBD_OK; + + pdev->tclasslist[pdev->classId].EpAdd = EpAddr; + + /* Call the composite class builder */ + (void)USBD_CMPSIT_AddClass(pdev, pclass, classtype, 0); + + /* Increment the ClassId for the next occurrence */ + pdev->classId ++; + pdev->NumClasses ++; + } + else + { +#if (USBD_DEBUG_LEVEL > 1U) + USBD_ErrLog("Invalid Class handle"); +#endif /* (USBD_DEBUG_LEVEL > 1U) */ + ret = USBD_FAIL; + } + } + + if (ret == USBD_OK) + { + /* Get Device Configuration Descriptor */ +#ifdef USE_USB_HS + pdev->pConfDesc = USBD_CMPSIT.GetHSConfigDescriptor(&len); +#else /* Default USE_USB_FS */ + pdev->pConfDesc = USBD_CMPSIT.GetFSConfigDescriptor(&len); +#endif /* USE_USB_FS */ + } + + return ret; +} + +/** + * @brief USBD_UnRegisterClassComposite + * UnLink all composite class drivers from Device Core. + * @param pdev: Device Handle + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_UnRegisterClassComposite(USBD_HandleTypeDef *pdev) +{ + USBD_StatusTypeDef ret = USBD_FAIL; + uint8_t idx1; + uint8_t idx2; + + /* Unroll all activated classes */ + for (idx1 = 0; idx1 < pdev->NumClasses; idx1++) + { + /* Check if the class correspond to the requested type and if it is active */ + if (pdev->tclasslist[idx1].Active == 1U) + { + /* Set the new class ID */ + pdev->classId = idx1; + + /* Free resources used by the selected class */ + if (pdev->pClass[pdev->classId] != NULL) + { + /* Free Class Resources */ + if (pdev->pClass[pdev->classId]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) + { +#if (USBD_DEBUG_LEVEL > 1U) + USBD_ErrLog("Class DeInit didn't succeed!, can't unregister selected class"); +#endif /* (USBD_DEBUG_LEVEL > 1U) */ + + ret = USBD_FAIL; + } + } + + /* Free the class pointer */ + pdev->pClass[pdev->classId] = NULL; + + /* Free the class location in classes table and reset its parameters to zero */ + pdev->tclasslist[pdev->classId].ClassType = CLASS_TYPE_NONE; + pdev->tclasslist[pdev->classId].ClassId = 0U; + pdev->tclasslist[pdev->classId].Active = 0U; + pdev->tclasslist[pdev->classId].NumEps = 0U; + pdev->tclasslist[pdev->classId].NumIf = 0U; + pdev->tclasslist[pdev->classId].CurrPcktSze = 0U; + + for (idx2 = 0U; idx2 < USBD_MAX_CLASS_ENDPOINTS; idx2++) + { + pdev->tclasslist[pdev->classId].Eps[idx2].add = 0U; + pdev->tclasslist[pdev->classId].Eps[idx2].type = 0U; + pdev->tclasslist[pdev->classId].Eps[idx2].size = 0U; + pdev->tclasslist[pdev->classId].Eps[idx2].is_used = 0U; + } + + for (idx2 = 0U; idx2 < USBD_MAX_CLASS_INTERFACES; idx2++) + { + pdev->tclasslist[pdev->classId].Ifs[idx2] = 0U; + } + } + } + + /* Reset the configuration descriptor */ + (void)USBD_CMPST_ClearConfDesc(pdev); + + /* Reset the class ID and number of classes */ + pdev->classId = 0U; + pdev->NumClasses = 0U; + + return ret; +} +#endif /* USE_USBD_COMPOSITE */ + +#if (USBD_USER_REGISTER_CALLBACK == 1U) +/** + * @brief USBD_RegisterDevStateCallback + * @param pdev : Device Handle + * @param pUserCallback: User Callback + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_RegisterDevStateCallback(USBD_HandleTypeDef *pdev, USBD_DevStateCallbackTypeDef pUserCallback) +{ + pdev->DevStateCallback = pUserCallback; + + return USBD_OK; +} +#endif /* USBD_USER_REGISTER_CALLBACK */ + +/** + * @brief USBD_Start + * Start the USB Device Core. + * @param pdev: Device Handle + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_Start(USBD_HandleTypeDef *pdev) +{ +#ifdef USE_USBD_COMPOSITE + pdev->classId = 0U; +#endif /* USE_USBD_COMPOSITE */ + + /* Start the low level driver */ + return USBD_LL_Start(pdev); +} + +/** + * @brief USBD_Stop + * Stop the USB Device Core. + * @param pdev: Device Handle + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_Stop(USBD_HandleTypeDef *pdev) +{ + /* Disconnect USB Device */ + (void)USBD_LL_Stop(pdev); + + /* Free Class Resources */ +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Free Class Resources */ + (void)pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config); + } + } + } + + /* Reset the class ID */ + pdev->classId = 0U; +#else + if (pdev->pClass[0] != NULL) + { + (void)pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config); + } +#endif /* USE_USBD_COMPOSITE */ + + return USBD_OK; +} + +/** + * @brief USBD_RunTestMode + * Launch test mode process + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_RunTestMode(USBD_HandleTypeDef *pdev) +{ +#ifdef USBD_HS_TESTMODE_ENABLE + USBD_StatusTypeDef ret; + + /* Run USB HS test mode */ + ret = USBD_LL_SetTestMode(pdev, pdev->dev_test_mode); + + return ret; +#else + /* Prevent unused argument compilation warning */ + UNUSED(pdev); + + return USBD_OK; +#endif /* USBD_HS_TESTMODE_ENABLE */ +} + +/** + * @brief USBD_SetClassConfig + * Configure device and start the interface + * @param pdev: device instance + * @param cfgidx: configuration index + * @retval status + */ + +USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) +{ + USBD_StatusTypeDef ret = USBD_OK; + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Set configuration and Start the Class*/ + if (pdev->pClass[i]->Init(pdev, cfgidx) != 0U) + { + ret = USBD_FAIL; + } + } + } + } +#else + if (pdev->pClass[0] != NULL) + { + /* Set configuration and Start the Class */ + ret = (USBD_StatusTypeDef)pdev->pClass[0]->Init(pdev, cfgidx); + } +#endif /* USE_USBD_COMPOSITE */ + + return ret; +} + +/** + * @brief USBD_ClrClassConfig + * Clear current configuration + * @param pdev: device instance + * @param cfgidx: configuration index + * @retval status + */ +USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) +{ + USBD_StatusTypeDef ret = USBD_OK; + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Clear configuration and De-initialize the Class process */ + if (pdev->pClass[i]->DeInit(pdev, cfgidx) != 0U) + { + ret = USBD_FAIL; + } + } + } + } +#else + /* Clear configuration and De-initialize the Class process */ + if (pdev->pClass[0]->DeInit(pdev, cfgidx) != 0U) + { + ret = USBD_FAIL; + } +#endif /* USE_USBD_COMPOSITE */ + + return ret; +} + + +/** + * @brief USBD_LL_SetupStage + * Handle the setup stage + * @param pdev: device instance + * @param psetup: setup packet buffer pointer + * @retval status + */ +USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup) +{ + USBD_StatusTypeDef ret; + + USBD_ParseSetupRequest(&pdev->request, psetup); + + pdev->ep0_state = USBD_EP0_SETUP; + + pdev->ep0_data_len = pdev->request.wLength; + + switch (pdev->request.bmRequest & 0x1FU) + { + case USB_REQ_RECIPIENT_DEVICE: + ret = USBD_StdDevReq(pdev, &pdev->request); + break; + + case USB_REQ_RECIPIENT_INTERFACE: + ret = USBD_StdItfReq(pdev, &pdev->request); + break; + + case USB_REQ_RECIPIENT_ENDPOINT: + ret = USBD_StdEPReq(pdev, &pdev->request); + break; + + default: + ret = USBD_LL_StallEP(pdev, (pdev->request.bmRequest & 0x80U)); + break; + } + + return ret; +} + +/** + * @brief USBD_LL_DataOutStage + * Handle data OUT stage + * @param pdev: device instance + * @param epnum: endpoint index + * @param pdata: data pointer + * @retval status + */ +USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, + uint8_t epnum, uint8_t *pdata) +{ + USBD_EndpointTypeDef *pep; + USBD_StatusTypeDef ret = USBD_OK; + uint8_t idx; + + if (epnum == 0U) + { + pep = &pdev->ep_out[0]; + + if (pdev->ep0_state == USBD_EP0_DATA_OUT) + { + if (pep->rem_length > pep->maxpacket) + { + pep->rem_length -= pep->maxpacket; + + (void)USBD_CtlContinueRx(pdev, pdata, MIN(pep->rem_length, pep->maxpacket)); + } + else + { + /* Find the class ID relative to the current request */ + switch (pdev->request.bmRequest & 0x1FU) + { + case USB_REQ_RECIPIENT_DEVICE: + /* Device requests must be managed by the first instantiated class + (or duplicated by all classes for simplicity) */ + idx = 0U; + break; + + case USB_REQ_RECIPIENT_INTERFACE: + idx = USBD_CoreFindIF(pdev, LOBYTE(pdev->request.wIndex)); + break; + + case USB_REQ_RECIPIENT_ENDPOINT: + idx = USBD_CoreFindEP(pdev, LOBYTE(pdev->request.wIndex)); + break; + + default: + /* Back to the first class in case of doubt */ + idx = 0U; + break; + } + + if (idx < USBD_MAX_SUPPORTED_CLASS) + { + /* Setup the class ID and route the request to the relative class function */ + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[idx]->EP0_RxReady != NULL) + { + pdev->classId = idx; + pdev->pClass[idx]->EP0_RxReady(pdev); + } + } + } + + (void)USBD_CtlSendStatus(pdev); + } + } + } + else + { + /* Get the class index relative to this interface */ + idx = USBD_CoreFindEP(pdev, (epnum & 0x7FU)); + + if (((uint16_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) + { + /* Call the class data out function to manage the request */ + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[idx]->DataOut != NULL) + { + pdev->classId = idx; + ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataOut(pdev, epnum); + } + } + if (ret != USBD_OK) + { + return ret; + } + } + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_DataInStage + * Handle data in stage + * @param pdev: device instance + * @param epnum: endpoint index + * @param pdata: data pointer + * @retval status + */ +USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, + uint8_t epnum, uint8_t *pdata) +{ + USBD_EndpointTypeDef *pep; + USBD_StatusTypeDef ret; + uint8_t idx; + + if (epnum == 0U) + { + pep = &pdev->ep_in[0]; + + if (pdev->ep0_state == USBD_EP0_DATA_IN) + { + if (pep->rem_length > pep->maxpacket) + { + pep->rem_length -= pep->maxpacket; + + (void)USBD_CtlContinueSendData(pdev, pdata, pep->rem_length); + + /* Prepare endpoint for premature end of transfer */ + (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + } + else + { + /* last packet is MPS multiple, so send ZLP packet */ + if ((pep->maxpacket == pep->rem_length) && + (pep->total_length >= pep->maxpacket) && + (pep->total_length < pdev->ep0_data_len)) + { + (void)USBD_CtlContinueSendData(pdev, NULL, 0U); + pdev->ep0_data_len = 0U; + + /* Prepare endpoint for premature end of transfer */ + (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + } + else + { + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[0]->EP0_TxSent != NULL) + { + pdev->classId = 0U; + pdev->pClass[0]->EP0_TxSent(pdev); + } + } + (void)USBD_LL_StallEP(pdev, 0x80U); + (void)USBD_CtlReceiveStatus(pdev); + } + } + } + + if (pdev->dev_test_mode != 0U) + { + (void)USBD_RunTestMode(pdev); + pdev->dev_test_mode = 0U; + } + } + else + { + /* Get the class index relative to this interface */ + idx = USBD_CoreFindEP(pdev, ((uint8_t)epnum | 0x80U)); + + if (((uint16_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) + { + /* Call the class data out function to manage the request */ + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[idx]->DataIn != NULL) + { + pdev->classId = idx; + ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataIn(pdev, epnum); + + if (ret != USBD_OK) + { + return ret; + } + } + } + } + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_Reset + * Handle Reset event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) +{ + USBD_StatusTypeDef ret = USBD_OK; + + /* Upon Reset call user call back */ + pdev->dev_state = USBD_STATE_DEFAULT; + pdev->ep0_state = USBD_EP0_IDLE; + pdev->dev_config = 0U; + pdev->dev_remote_wakeup = 0U; + pdev->dev_test_mode = 0U; + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Clear configuration and De-initialize the Class process*/ + + if (pdev->pClass[i]->DeInit != NULL) + { + if (pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config) != USBD_OK) + { + ret = USBD_FAIL; + } + } + } + } + } +#else + + if (pdev->pClass[0] != NULL) + { + if (pdev->pClass[0]->DeInit != NULL) + { + if (pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config) != USBD_OK) + { + ret = USBD_FAIL; + } + } + } +#endif /* USE_USBD_COMPOSITE */ + + /* Open EP0 OUT */ + (void)USBD_LL_OpenEP(pdev, 0x00U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); + pdev->ep_out[0x00U & 0xFU].is_used = 1U; + + pdev->ep_out[0].maxpacket = USB_MAX_EP0_SIZE; + + /* Open EP0 IN */ + (void)USBD_LL_OpenEP(pdev, 0x80U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); + pdev->ep_in[0x80U & 0xFU].is_used = 1U; + + pdev->ep_in[0].maxpacket = USB_MAX_EP0_SIZE; + + return ret; +} + +/** + * @brief USBD_LL_SetSpeed + * Handle Reset event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, + USBD_SpeedTypeDef speed) +{ + pdev->dev_speed = speed; + + return USBD_OK; +} + +/** + * @brief USBD_LL_Suspend + * Handle Suspend event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev) +{ + if (pdev->dev_state != USBD_STATE_SUSPENDED) + { + pdev->dev_old_state = pdev->dev_state; + } + + pdev->dev_state = USBD_STATE_SUSPENDED; + + return USBD_OK; +} + +/** + * @brief USBD_LL_Resume + * Handle Resume event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev) +{ + if (pdev->dev_state == USBD_STATE_SUSPENDED) + { + pdev->dev_state = pdev->dev_old_state; + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_SOF + * Handle SOF event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev) +{ + /* The SOF event can be distributed for all classes that support it */ + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + if (pdev->pClass[i]->SOF != NULL) + { + pdev->classId = i; + (void)pdev->pClass[i]->SOF(pdev); + } + } + } + } +#else + if (pdev->pClass[0] != NULL) + { + if (pdev->pClass[0]->SOF != NULL) + { + (void)pdev->pClass[0]->SOF(pdev); + } + } +#endif /* USE_USBD_COMPOSITE */ + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_IsoINIncomplete + * Handle iso in incomplete event + * @param pdev: device instance + * @param epnum: Endpoint number + * @retval status + */ +USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, + uint8_t epnum) +{ + if (pdev->pClass[pdev->classId] == NULL) + { + return USBD_FAIL; + } + + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[pdev->classId]->IsoINIncomplete != NULL) + { + (void)pdev->pClass[pdev->classId]->IsoINIncomplete(pdev, epnum); + } + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_IsoOUTIncomplete + * Handle iso out incomplete event + * @param pdev: device instance + * @param epnum: Endpoint number + * @retval status + */ +USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, + uint8_t epnum) +{ + if (pdev->pClass[pdev->classId] == NULL) + { + return USBD_FAIL; + } + + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + if (pdev->pClass[pdev->classId]->IsoOUTIncomplete != NULL) + { + (void)pdev->pClass[pdev->classId]->IsoOUTIncomplete(pdev, epnum); + } + } + + return USBD_OK; +} + +/** + * @brief USBD_LL_DevConnected + * Handle device connection event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev) +{ + /* Prevent unused argument compilation warning */ + UNUSED(pdev); + + return USBD_OK; +} + +/** + * @brief USBD_LL_DevDisconnected + * Handle device disconnection event + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev) +{ + USBD_StatusTypeDef ret = USBD_OK; + + /* Free Class Resources */ + pdev->dev_state = USBD_STATE_DEFAULT; + +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + if (pdev->pClass[i] != NULL) + { + pdev->classId = i; + /* Clear configuration and De-initialize the Class process*/ + if (pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) + { + ret = USBD_FAIL; + } + } + } + } +#else + if (pdev->pClass[0] != NULL) + { + if (pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) + { + ret = USBD_FAIL; + } + } +#endif /* USE_USBD_COMPOSITE */ + + return ret; +} + +/** + * @brief USBD_CoreFindIF + * return the class index relative to the selected interface + * @param pdev: device instance + * @param index : selected interface number + * @retval index of the class using the selected interface number. OxFF if no class found. + */ +uint8_t USBD_CoreFindIF(USBD_HandleTypeDef *pdev, uint8_t index) +{ +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + /* Parse all interfaces listed in the current class */ + for (uint32_t j = 0U; j < pdev->tclasslist[i].NumIf; j++) + { + /* Check if requested Interface matches the current class interface */ + if (pdev->tclasslist[i].Ifs[j] == index) + { + if (pdev->pClass[i]->Setup != NULL) + { + return (uint8_t)i; + } + } + } + } + } + + return 0xFFU; +#else + UNUSED(pdev); + UNUSED(index); + + return 0x00U; +#endif /* USE_USBD_COMPOSITE */ +} + +/** + * @brief USBD_CoreFindEP + * return the class index relative to the selected endpoint + * @param pdev: device instance + * @param index : selected endpoint number + * @retval index of the class using the selected endpoint number. 0xFF if no class found. + */ +uint8_t USBD_CoreFindEP(USBD_HandleTypeDef *pdev, uint8_t index) +{ +#ifdef USE_USBD_COMPOSITE + /* Parse the table of classes in use */ + for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) + { + /* Check if current class is in use */ + if ((pdev->tclasslist[i].Active) == 1U) + { + /* Parse all endpoints listed in the current class */ + for (uint32_t j = 0U; j < pdev->tclasslist[i].NumEps; j++) + { + /* Check if requested endpoint matches the current class endpoint */ + if (pdev->tclasslist[i].Eps[j].add == index) + { + if (pdev->pClass[i]->Setup != NULL) + { + return (uint8_t)i; + } + } + } + } + } + + return 0xFFU; +#else + UNUSED(pdev); + UNUSED(index); + + return 0x00U; +#endif /* USE_USBD_COMPOSITE */ +} + +#ifdef USE_USBD_COMPOSITE +/** + * @brief USBD_CoreGetEPAdd + * Get the endpoint address relative to a selected class + * @param pdev: device instance + * @param ep_dir: USBD_EP_IN or USBD_EP_OUT + * @param ep_type: USBD_EP_TYPE_CTRL, USBD_EP_TYPE_ISOC, USBD_EP_TYPE_BULK or USBD_EP_TYPE_INTR + * @param ClassId: The Class ID + * @retval Address of the selected endpoint or 0xFFU if no endpoint found. + */ +uint8_t USBD_CoreGetEPAdd(USBD_HandleTypeDef *pdev, uint8_t ep_dir, uint8_t ep_type, uint8_t ClassId) +{ + uint8_t idx; + + /* Find the EP address in the selected class table */ + for (idx = 0; idx < pdev->tclasslist[ClassId].NumEps; idx++) + { + if (((pdev->tclasslist[ClassId].Eps[idx].add & USBD_EP_IN) == ep_dir) && \ + (pdev->tclasslist[ClassId].Eps[idx].type == ep_type) && \ + (pdev->tclasslist[ClassId].Eps[idx].is_used != 0U)) + { + return (pdev->tclasslist[ClassId].Eps[idx].add); + } + } + + /* If reaching this point, then no endpoint was found */ + return 0xFFU; +} +#endif /* USE_USBD_COMPOSITE */ + +/** + * @brief USBD_GetEpDesc + * This function return the Endpoint descriptor + * @param pdev: device instance + * @param pConfDesc: pointer to Bos descriptor + * @param EpAddr: endpoint address + * @retval pointer to video endpoint descriptor + */ +void *USBD_GetEpDesc(uint8_t *pConfDesc, uint8_t EpAddr) +{ + USBD_DescHeaderTypeDef *pdesc = (USBD_DescHeaderTypeDef *)(void *)pConfDesc; + USBD_ConfigDescTypeDef *desc = (USBD_ConfigDescTypeDef *)(void *)pConfDesc; + USBD_EpDescTypeDef *pEpDesc = NULL; + uint16_t ptr; + + if (desc->wTotalLength > desc->bLength) + { + ptr = desc->bLength; + + while (ptr < desc->wTotalLength) + { + pdesc = USBD_GetNextDesc((uint8_t *)pdesc, &ptr); + + if (pdesc->bDescriptorType == USB_DESC_TYPE_ENDPOINT) + { + pEpDesc = (USBD_EpDescTypeDef *)(void *)pdesc; + + if (pEpDesc->bEndpointAddress == EpAddr) + { + break; + } + else + { + pEpDesc = NULL; + } + } + } + } + + return (void *)pEpDesc; +} + +/** + * @brief USBD_GetNextDesc + * This function return the next descriptor header + * @param buf: Buffer where the descriptor is available + * @param ptr: data pointer inside the descriptor + * @retval next header + */ +USBD_DescHeaderTypeDef *USBD_GetNextDesc(uint8_t *pbuf, uint16_t *ptr) +{ + USBD_DescHeaderTypeDef *pnext = (USBD_DescHeaderTypeDef *)(void *)pbuf; + + *ptr += pnext->bLength; + pnext = (USBD_DescHeaderTypeDef *)(void *)(pbuf + pnext->bLength); + + return (pnext); +} + +/** + * @} + */ + + +/** + * @} + */ + + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c new file mode 100644 index 0000000..814b810 --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c @@ -0,0 +1,1058 @@ +/** + ****************************************************************************** + * @file usbd_req.c + * @author MCD Application Team + * @brief This file provides the standard USB requests following chapter 9. + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_ctlreq.h" +#include "usbd_ioreq.h" + +#ifdef USE_USBD_COMPOSITE +#include "usbd_composite_builder.h" +#endif /* USE_USBD_COMPOSITE */ + +/** @addtogroup STM32_USBD_STATE_DEVICE_LIBRARY + * @{ + */ + + +/** @defgroup USBD_REQ + * @brief USB standard requests module + * @{ + */ + +/** @defgroup USBD_REQ_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_REQ_Private_Defines + * @{ + */ +#ifndef USBD_MAX_STR_DESC_SIZ +#define USBD_MAX_STR_DESC_SIZ 64U +#endif /* USBD_MAX_STR_DESC_SIZ */ +/** + * @} + */ + + +/** @defgroup USBD_REQ_Private_Macros + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_REQ_Private_Variables + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_REQ_Private_FunctionPrototypes + * @{ + */ +static void USBD_GetDescriptor(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static void USBD_SetAddress(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static USBD_StatusTypeDef USBD_SetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static void USBD_GetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static void USBD_GetStatus(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static void USBD_SetFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static void USBD_ClrFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req); +static uint8_t USBD_GetLen(uint8_t *buf); + +/** + * @} + */ + + +/** @defgroup USBD_REQ_Private_Functions + * @{ + */ + + +/** + * @brief USBD_StdDevReq + * Handle standard usb device requests + * @param pdev: device instance + * @param req: usb request + * @retval status + */ +USBD_StatusTypeDef USBD_StdDevReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + USBD_StatusTypeDef ret = USBD_OK; + + switch (req->bmRequest & USB_REQ_TYPE_MASK) + { + case USB_REQ_TYPE_CLASS: + case USB_REQ_TYPE_VENDOR: + ret = (USBD_StatusTypeDef)pdev->pClass[pdev->classId]->Setup(pdev, req); + break; + + case USB_REQ_TYPE_STANDARD: + switch (req->bRequest) + { + case USB_REQ_GET_DESCRIPTOR: + USBD_GetDescriptor(pdev, req); + break; + + case USB_REQ_SET_ADDRESS: + USBD_SetAddress(pdev, req); + break; + + case USB_REQ_SET_CONFIGURATION: + ret = USBD_SetConfig(pdev, req); + break; + + case USB_REQ_GET_CONFIGURATION: + USBD_GetConfig(pdev, req); + break; + + case USB_REQ_GET_STATUS: + USBD_GetStatus(pdev, req); + break; + + case USB_REQ_SET_FEATURE: + USBD_SetFeature(pdev, req); + break; + + case USB_REQ_CLEAR_FEATURE: + USBD_ClrFeature(pdev, req); + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + + return ret; +} + +/** + * @brief USBD_StdItfReq + * Handle standard usb interface requests + * @param pdev: device instance + * @param req: usb request + * @retval status + */ +USBD_StatusTypeDef USBD_StdItfReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + USBD_StatusTypeDef ret = USBD_OK; + uint8_t idx; + + switch (req->bmRequest & USB_REQ_TYPE_MASK) + { + case USB_REQ_TYPE_CLASS: + case USB_REQ_TYPE_VENDOR: + case USB_REQ_TYPE_STANDARD: + switch (pdev->dev_state) + { + case USBD_STATE_DEFAULT: + case USBD_STATE_ADDRESSED: + case USBD_STATE_CONFIGURED: + + if (LOBYTE(req->wIndex) <= USBD_MAX_NUM_INTERFACES) + { + /* Get the class index relative to this interface */ + idx = USBD_CoreFindIF(pdev, LOBYTE(req->wIndex)); + if (((uint8_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) + { + /* Call the class data out function to manage the request */ + if (pdev->pClass[idx]->Setup != NULL) + { + pdev->classId = idx; + ret = (USBD_StatusTypeDef)(pdev->pClass[idx]->Setup(pdev, req)); + } + else + { + /* should never reach this condition */ + ret = USBD_FAIL; + } + } + else + { + /* No relative interface found */ + ret = USBD_FAIL; + } + + if ((req->wLength == 0U) && (ret == USBD_OK)) + { + (void)USBD_CtlSendStatus(pdev); + } + } + else + { + USBD_CtlError(pdev, req); + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + + return ret; +} + +/** + * @brief USBD_StdEPReq + * Handle standard usb endpoint requests + * @param pdev: device instance + * @param req: usb request + * @retval status + */ +USBD_StatusTypeDef USBD_StdEPReq(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + USBD_EndpointTypeDef *pep; + uint8_t ep_addr; + uint8_t idx; + USBD_StatusTypeDef ret = USBD_OK; + + ep_addr = LOBYTE(req->wIndex); + + switch (req->bmRequest & USB_REQ_TYPE_MASK) + { + case USB_REQ_TYPE_CLASS: + case USB_REQ_TYPE_VENDOR: + /* Get the class index relative to this endpoint */ + idx = USBD_CoreFindEP(pdev, ep_addr); + if (((uint8_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) + { + pdev->classId = idx; + /* Call the class data out function to manage the request */ + if (pdev->pClass[idx]->Setup != NULL) + { + ret = (USBD_StatusTypeDef)pdev->pClass[idx]->Setup(pdev, req); + } + } + break; + + case USB_REQ_TYPE_STANDARD: + switch (req->bRequest) + { + case USB_REQ_SET_FEATURE: + switch (pdev->dev_state) + { + case USBD_STATE_ADDRESSED: + if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + { + (void)USBD_LL_StallEP(pdev, ep_addr); + (void)USBD_LL_StallEP(pdev, 0x80U); + } + else + { + USBD_CtlError(pdev, req); + } + break; + + case USBD_STATE_CONFIGURED: + if (req->wValue == USB_FEATURE_EP_HALT) + { + if ((ep_addr != 0x00U) && (ep_addr != 0x80U) && (req->wLength == 0x00U)) + { + (void)USBD_LL_StallEP(pdev, ep_addr); + } + } + (void)USBD_CtlSendStatus(pdev); + + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + case USB_REQ_CLEAR_FEATURE: + + switch (pdev->dev_state) + { + case USBD_STATE_ADDRESSED: + if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + { + (void)USBD_LL_StallEP(pdev, ep_addr); + (void)USBD_LL_StallEP(pdev, 0x80U); + } + else + { + USBD_CtlError(pdev, req); + } + break; + + case USBD_STATE_CONFIGURED: + if (req->wValue == USB_FEATURE_EP_HALT) + { + if ((ep_addr & 0x7FU) != 0x00U) + { + (void)USBD_LL_ClearStallEP(pdev, ep_addr); + } + (void)USBD_CtlSendStatus(pdev); + + /* Get the class index relative to this interface */ + idx = USBD_CoreFindEP(pdev, ep_addr); + if (((uint8_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) + { + pdev->classId = idx; + /* Call the class data out function to manage the request */ + if (pdev->pClass[idx]->Setup != NULL) + { + ret = (USBD_StatusTypeDef)(pdev->pClass[idx]->Setup(pdev, req)); + } + } + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + case USB_REQ_GET_STATUS: + switch (pdev->dev_state) + { + case USBD_STATE_ADDRESSED: + if ((ep_addr != 0x00U) && (ep_addr != 0x80U)) + { + USBD_CtlError(pdev, req); + break; + } + pep = ((ep_addr & 0x80U) == 0x80U) ? &pdev->ep_in[ep_addr & 0x7FU] : \ + &pdev->ep_out[ep_addr & 0x7FU]; + + pep->status = 0x0000U; + + (void)USBD_CtlSendData(pdev, (uint8_t *)&pep->status, 2U); + break; + + case USBD_STATE_CONFIGURED: + if ((ep_addr & 0x80U) == 0x80U) + { + if (pdev->ep_in[ep_addr & 0xFU].is_used == 0U) + { + USBD_CtlError(pdev, req); + break; + } + } + else + { + if (pdev->ep_out[ep_addr & 0xFU].is_used == 0U) + { + USBD_CtlError(pdev, req); + break; + } + } + + pep = ((ep_addr & 0x80U) == 0x80U) ? &pdev->ep_in[ep_addr & 0x7FU] : \ + &pdev->ep_out[ep_addr & 0x7FU]; + + if ((ep_addr == 0x00U) || (ep_addr == 0x80U)) + { + pep->status = 0x0000U; + } + else if (USBD_LL_IsStallEP(pdev, ep_addr) != 0U) + { + pep->status = 0x0001U; + } + else + { + pep->status = 0x0000U; + } + + (void)USBD_CtlSendData(pdev, (uint8_t *)&pep->status, 2U); + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } + + return ret; +} + + +/** + * @brief USBD_GetDescriptor + * Handle Get Descriptor requests + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_GetDescriptor(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + uint16_t len = 0U; + uint8_t *pbuf = NULL; + uint8_t err = 0U; + + switch (req->wValue >> 8) + { +#if ((USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1U)) + case USB_DESC_TYPE_BOS: + if (pdev->pDesc->GetBOSDescriptor != NULL) + { + pbuf = pdev->pDesc->GetBOSDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; +#endif /* (USBD_LPM_ENABLED == 1U) || (USBD_CLASS_BOS_ENABLED == 1U) */ + case USB_DESC_TYPE_DEVICE: + pbuf = pdev->pDesc->GetDeviceDescriptor(pdev->dev_speed, &len); + break; + + case USB_DESC_TYPE_CONFIGURATION: + if (pdev->dev_speed == USBD_SPEED_HIGH) + { +#ifdef USE_USBD_COMPOSITE + if ((uint8_t)(pdev->NumClasses) > 0U) + { + pbuf = (uint8_t *)USBD_CMPSIT.GetHSConfigDescriptor(&len); + } + else +#endif /* USE_USBD_COMPOSITE */ + { + pbuf = (uint8_t *)pdev->pClass[0]->GetHSConfigDescriptor(&len); + } + pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + } + else + { +#ifdef USE_USBD_COMPOSITE + if ((uint8_t)(pdev->NumClasses) > 0U) + { + pbuf = (uint8_t *)USBD_CMPSIT.GetFSConfigDescriptor(&len); + } + else +#endif /* USE_USBD_COMPOSITE */ + { + pbuf = (uint8_t *)pdev->pClass[0]->GetFSConfigDescriptor(&len); + } + pbuf[1] = USB_DESC_TYPE_CONFIGURATION; + } + break; + + case USB_DESC_TYPE_STRING: + switch ((uint8_t)(req->wValue)) + { + case USBD_IDX_LANGID_STR: + if (pdev->pDesc->GetLangIDStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetLangIDStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USBD_IDX_MFC_STR: + if (pdev->pDesc->GetManufacturerStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetManufacturerStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USBD_IDX_PRODUCT_STR: + if (pdev->pDesc->GetProductStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetProductStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USBD_IDX_SERIAL_STR: + if (pdev->pDesc->GetSerialStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetSerialStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USBD_IDX_CONFIG_STR: + if (pdev->pDesc->GetConfigurationStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetConfigurationStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USBD_IDX_INTERFACE_STR: + if (pdev->pDesc->GetInterfaceStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetInterfaceStrDescriptor(pdev->dev_speed, &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + default: +#if (USBD_SUPPORT_USER_STRING_DESC == 1U) + pbuf = NULL; + + for (uint32_t idx = 0U; (idx < pdev->NumClasses); idx++) + { + if (pdev->pClass[idx]->GetUsrStrDescriptor != NULL) + { + pdev->classId = idx; + pbuf = pdev->pClass[idx]->GetUsrStrDescriptor(pdev, LOBYTE(req->wValue), &len); + + if (pbuf == NULL) /* This means that no class recognized the string index */ + { + continue; + } + else + { + break; + } + } + } +#endif /* USBD_SUPPORT_USER_STRING_DESC */ + +#if (USBD_CLASS_USER_STRING_DESC == 1U) + if (pdev->pDesc->GetUserStrDescriptor != NULL) + { + pbuf = pdev->pDesc->GetUserStrDescriptor(pdev->dev_speed, LOBYTE(req->wValue), &len); + } + else + { + USBD_CtlError(pdev, req); + err++; + } +#endif /* USBD_SUPPORT_USER_STRING_DESC */ + +#if ((USBD_CLASS_USER_STRING_DESC == 0U) && (USBD_SUPPORT_USER_STRING_DESC == 0U)) + USBD_CtlError(pdev, req); + err++; +#endif /* (USBD_CLASS_USER_STRING_DESC == 0U) && (USBD_SUPPORT_USER_STRING_DESC == 0U) */ + break; + } + break; + + case USB_DESC_TYPE_DEVICE_QUALIFIER: + if (pdev->dev_speed == USBD_SPEED_HIGH) + { +#ifdef USE_USBD_COMPOSITE + if ((uint8_t)(pdev->NumClasses) > 0U) + { + pbuf = (uint8_t *)USBD_CMPSIT.GetDeviceQualifierDescriptor(&len); + } + else +#endif /* USE_USBD_COMPOSITE */ + { + pbuf = (uint8_t *)pdev->pClass[0]->GetDeviceQualifierDescriptor(&len); + } + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + case USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION: + if (pdev->dev_speed == USBD_SPEED_HIGH) + { +#ifdef USE_USBD_COMPOSITE + if ((uint8_t)(pdev->NumClasses) > 0U) + { + pbuf = (uint8_t *)USBD_CMPSIT.GetOtherSpeedConfigDescriptor(&len); + } + else +#endif /* USE_USBD_COMPOSITE */ + { + pbuf = (uint8_t *)pdev->pClass[0]->GetOtherSpeedConfigDescriptor(&len); + } + pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; + } + else + { + USBD_CtlError(pdev, req); + err++; + } + break; + + default: + USBD_CtlError(pdev, req); + err++; + break; + } + + if (err != 0U) + { + return; + } + + if (req->wLength != 0U) + { + if (len != 0U) + { + len = MIN(len, req->wLength); + (void)USBD_CtlSendData(pdev, pbuf, len); + } + else + { + USBD_CtlError(pdev, req); + } + } + else + { + (void)USBD_CtlSendStatus(pdev); + } +} + + +/** + * @brief USBD_SetAddress + * Set device address + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_SetAddress(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + uint8_t dev_addr; + + if ((req->wIndex == 0U) && (req->wLength == 0U) && (req->wValue < 128U)) + { + dev_addr = (uint8_t)(req->wValue) & 0x7FU; + + if (pdev->dev_state == USBD_STATE_CONFIGURED) + { + USBD_CtlError(pdev, req); + } + else + { + pdev->dev_address = dev_addr; + (void)USBD_LL_SetUSBAddress(pdev, dev_addr); + (void)USBD_CtlSendStatus(pdev); + + if (dev_addr != 0U) + { + pdev->dev_state = USBD_STATE_ADDRESSED; + } + else + { + pdev->dev_state = USBD_STATE_DEFAULT; + } + } + } + else + { + USBD_CtlError(pdev, req); + } +} + +/** + * @brief USBD_SetConfig + * Handle Set device configuration request + * @param pdev: device instance + * @param req: usb request + * @retval status + */ +static USBD_StatusTypeDef USBD_SetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + USBD_StatusTypeDef ret = USBD_OK; + static uint8_t cfgidx; + + cfgidx = (uint8_t)(req->wValue); + + if (cfgidx > USBD_MAX_NUM_CONFIGURATION) + { + USBD_CtlError(pdev, req); + return USBD_FAIL; + } + + switch (pdev->dev_state) + { + case USBD_STATE_ADDRESSED: + if (cfgidx != 0U) + { + pdev->dev_config = cfgidx; + + ret = USBD_SetClassConfig(pdev, cfgidx); + + if (ret != USBD_OK) + { + USBD_CtlError(pdev, req); + pdev->dev_state = USBD_STATE_ADDRESSED; + } + else + { + (void)USBD_CtlSendStatus(pdev); + pdev->dev_state = USBD_STATE_CONFIGURED; + +#if (USBD_USER_REGISTER_CALLBACK == 1U) + if (pdev->DevStateCallback != NULL) + { + pdev->DevStateCallback(USBD_STATE_CONFIGURED, cfgidx); + } +#endif /* USBD_USER_REGISTER_CALLBACK */ + } + } + else + { + (void)USBD_CtlSendStatus(pdev); + } + break; + + case USBD_STATE_CONFIGURED: + if (cfgidx == 0U) + { + pdev->dev_state = USBD_STATE_ADDRESSED; + pdev->dev_config = cfgidx; + (void)USBD_ClrClassConfig(pdev, cfgidx); + (void)USBD_CtlSendStatus(pdev); + } + else if (cfgidx != pdev->dev_config) + { + /* Clear old configuration */ + (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + + /* set new configuration */ + pdev->dev_config = cfgidx; + + ret = USBD_SetClassConfig(pdev, cfgidx); + + if (ret != USBD_OK) + { + USBD_CtlError(pdev, req); + (void)USBD_ClrClassConfig(pdev, (uint8_t)pdev->dev_config); + pdev->dev_state = USBD_STATE_ADDRESSED; + } + else + { + (void)USBD_CtlSendStatus(pdev); + } + } + else + { + (void)USBD_CtlSendStatus(pdev); + } + break; + + default: + USBD_CtlError(pdev, req); + (void)USBD_ClrClassConfig(pdev, cfgidx); + ret = USBD_FAIL; + break; + } + + return ret; +} + +/** + * @brief USBD_GetConfig + * Handle Get device configuration request + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_GetConfig(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + if (req->wLength != 1U) + { + USBD_CtlError(pdev, req); + } + else + { + switch (pdev->dev_state) + { + case USBD_STATE_DEFAULT: + case USBD_STATE_ADDRESSED: + pdev->dev_default_config = 0U; + (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_default_config, 1U); + break; + + case USBD_STATE_CONFIGURED: + (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_config, 1U); + break; + + default: + USBD_CtlError(pdev, req); + break; + } + } +} + +/** + * @brief USBD_GetStatus + * Handle Get Status request + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_GetStatus(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + switch (pdev->dev_state) + { + case USBD_STATE_DEFAULT: + case USBD_STATE_ADDRESSED: + case USBD_STATE_CONFIGURED: + if (req->wLength != 0x2U) + { + USBD_CtlError(pdev, req); + break; + } + +#if (USBD_SELF_POWERED == 1U) + pdev->dev_config_status = USB_CONFIG_SELF_POWERED; +#else + pdev->dev_config_status = 0U; +#endif /* USBD_SELF_POWERED */ + + if (pdev->dev_remote_wakeup != 0U) + { + pdev->dev_config_status |= USB_CONFIG_REMOTE_WAKEUP; + } + + (void)USBD_CtlSendData(pdev, (uint8_t *)&pdev->dev_config_status, 2U); + break; + + default: + USBD_CtlError(pdev, req); + break; + } +} + + +/** + * @brief USBD_SetFeature + * Handle Set device feature request + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_SetFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + { + pdev->dev_remote_wakeup = 1U; + (void)USBD_CtlSendStatus(pdev); + } + else if (req->wValue == USB_FEATURE_TEST_MODE) + { + pdev->dev_test_mode = (uint8_t)(req->wIndex >> 8); + (void)USBD_CtlSendStatus(pdev); + } + else + { + USBD_CtlError(pdev, req); + } +} + + +/** + * @brief USBD_ClrFeature + * Handle clear device feature request + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +static void USBD_ClrFeature(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + switch (pdev->dev_state) + { + case USBD_STATE_DEFAULT: + case USBD_STATE_ADDRESSED: + case USBD_STATE_CONFIGURED: + if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) + { + pdev->dev_remote_wakeup = 0U; + (void)USBD_CtlSendStatus(pdev); + } + break; + + default: + USBD_CtlError(pdev, req); + break; + } +} + + +/** + * @brief USBD_ParseSetupRequest + * Copy buffer into setup structure + * @param req: usb request + * @param pdata: setup data pointer + * @retval None + */ +void USBD_ParseSetupRequest(USBD_SetupReqTypedef *req, uint8_t *pdata) +{ + uint8_t *pbuff = pdata; + + req->bmRequest = *(uint8_t *)(pbuff); + + pbuff++; + req->bRequest = *(uint8_t *)(pbuff); + + pbuff++; + req->wValue = SWAPBYTE(pbuff); + + pbuff++; + pbuff++; + req->wIndex = SWAPBYTE(pbuff); + + pbuff++; + pbuff++; + req->wLength = SWAPBYTE(pbuff); +} + + +/** + * @brief USBD_CtlError + * Handle USB low level Error + * @param pdev: device instance + * @param req: usb request + * @retval None + */ +void USBD_CtlError(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) +{ + UNUSED(req); + + (void)USBD_LL_StallEP(pdev, 0x80U); + (void)USBD_LL_StallEP(pdev, 0U); +} + + +/** + * @brief USBD_GetString + * Convert Ascii string into unicode one + * @param desc : descriptor buffer + * @param unicode : Formatted string buffer (unicode) + * @param len : descriptor length + * @retval None + */ +void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len) +{ + uint8_t idx = 0U; + uint8_t *pdesc; + + if (desc == NULL) + { + return; + } + + pdesc = desc; + *len = MIN(USBD_MAX_STR_DESC_SIZ, ((uint16_t)USBD_GetLen(pdesc) * 2U) + 2U); + + unicode[idx] = *(uint8_t *)len; + idx++; + unicode[idx] = USB_DESC_TYPE_STRING; + idx++; + + while (*pdesc != (uint8_t)'\0') + { + unicode[idx] = *pdesc; + pdesc++; + idx++; + + unicode[idx] = 0U; + idx++; + } +} + + +/** + * @brief USBD_GetLen + * return the string length + * @param buf : pointer to the ascii string buffer + * @retval string length + */ +static uint8_t USBD_GetLen(uint8_t *buf) +{ + uint8_t len = 0U; + uint8_t *pbuff = buf; + + while (*pbuff != (uint8_t)'\0') + { + len++; + pbuff++; + } + + return len; +} +/** + * @} + */ + + +/** + * @} + */ + + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c new file mode 100644 index 0000000..7c8004a --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c @@ -0,0 +1,224 @@ +/** + ****************************************************************************** + * @file usbd_ioreq.c + * @author MCD Application Team + * @brief This file provides the IO requests APIs for control endpoints. + ****************************************************************************** + * @attention + * + * Copyright (c) 2015 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. + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_ioreq.h" + +/** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ + */ + + +/** @defgroup USBD_IOREQ + * @brief control I/O requests module + * @{ + */ + +/** @defgroup USBD_IOREQ_Private_TypesDefinitions + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Private_Defines + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Private_Macros + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Private_Variables + * @{ + */ + +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Private_FunctionPrototypes + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBD_IOREQ_Private_Functions + * @{ + */ + +/** + * @brief USBD_CtlSendData + * send data on the ctl pipe + * @param pdev: device instance + * @param buff: pointer to data buffer + * @param len: length of data to be sent + * @retval status + */ +USBD_StatusTypeDef USBD_CtlSendData(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len) +{ + /* Set EP0 State */ + pdev->ep0_state = USBD_EP0_DATA_IN; + pdev->ep_in[0].total_length = len; + +#ifdef USBD_AVOID_PACKET_SPLIT_MPS + pdev->ep_in[0].rem_length = 0U; +#else + pdev->ep_in[0].rem_length = len; +#endif /* USBD_AVOID_PACKET_SPLIT_MPS */ + + /* Start the transfer */ + (void)USBD_LL_Transmit(pdev, 0x00U, pbuf, len); + + return USBD_OK; +} + +/** + * @brief USBD_CtlContinueSendData + * continue sending data on the ctl pipe + * @param pdev: device instance + * @param buff: pointer to data buffer + * @param len: length of data to be sent + * @retval status + */ +USBD_StatusTypeDef USBD_CtlContinueSendData(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len) +{ + /* Start the next transfer */ + (void)USBD_LL_Transmit(pdev, 0x00U, pbuf, len); + + return USBD_OK; +} + +/** + * @brief USBD_CtlPrepareRx + * receive data on the ctl pipe + * @param pdev: device instance + * @param buff: pointer to data buffer + * @param len: length of data to be received + * @retval status + */ +USBD_StatusTypeDef USBD_CtlPrepareRx(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len) +{ + /* Set EP0 State */ + pdev->ep0_state = USBD_EP0_DATA_OUT; + pdev->ep_out[0].total_length = len; + +#ifdef USBD_AVOID_PACKET_SPLIT_MPS + pdev->ep_out[0].rem_length = 0U; +#else + pdev->ep_out[0].rem_length = len; +#endif /* USBD_AVOID_PACKET_SPLIT_MPS */ + + /* Start the transfer */ + (void)USBD_LL_PrepareReceive(pdev, 0U, pbuf, len); + + return USBD_OK; +} + +/** + * @brief USBD_CtlContinueRx + * continue receive data on the ctl pipe + * @param pdev: device instance + * @param buff: pointer to data buffer + * @param len: length of data to be received + * @retval status + */ +USBD_StatusTypeDef USBD_CtlContinueRx(USBD_HandleTypeDef *pdev, + uint8_t *pbuf, uint32_t len) +{ + (void)USBD_LL_PrepareReceive(pdev, 0U, pbuf, len); + + return USBD_OK; +} + +/** + * @brief USBD_CtlSendStatus + * send zero lzngth packet on the ctl pipe + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_CtlSendStatus(USBD_HandleTypeDef *pdev) +{ + /* Set EP0 State */ + pdev->ep0_state = USBD_EP0_STATUS_IN; + + /* Start the transfer */ + (void)USBD_LL_Transmit(pdev, 0x00U, NULL, 0U); + + return USBD_OK; +} + +/** + * @brief USBD_CtlReceiveStatus + * receive zero lzngth packet on the ctl pipe + * @param pdev: device instance + * @retval status + */ +USBD_StatusTypeDef USBD_CtlReceiveStatus(USBD_HandleTypeDef *pdev) +{ + /* Set EP0 State */ + pdev->ep0_state = USBD_EP0_STATUS_OUT; + + /* Start the transfer */ + (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); + + return USBD_OK; +} + +/** + * @brief USBD_GetRxCount + * returns the received data length + * @param pdev: device instance + * @param ep_addr: endpoint address + * @retval Rx Data blength + */ +uint32_t USBD_GetRxCount(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + return USBD_LL_GetRxDataSize(pdev, ep_addr); +} + +/** + * @} + */ + + +/** + * @} + */ + + +/** + * @} + */ + diff --git a/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt b/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt new file mode 100644 index 0000000..e66295c --- /dev/null +++ b/Middlewares/ST/STM32_USB_Device_Library/LICENSE.txt @@ -0,0 +1,86 @@ +This software component is provided to you as part of a software package and +applicable license terms are in the Package_license file. If you received this +software component outside of a package or without applicable license terms, +the terms of the SLA0044 license shall apply and are fully reproduced below: + +SLA0044 Rev5/February 2018 + +Software license agreement + +ULTIMATE LIBERTY SOFTWARE LICENSE AGREEMENT + +BY INSTALLING, COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THIS SOFTWARE +OR ANY PART THEREOF (AND THE RELATED DOCUMENTATION) FROM STMICROELECTRONICS +INTERNATIONAL N.V, SWISS BRANCH AND/OR ITS AFFILIATED COMPANIES +(STMICROELECTRONICS), THE RECIPIENT, ON BEHALF OF HIMSELF OR HERSELF, OR ON +BEHALF OF ANY ENTITY BY WHICH SUCH RECIPIENT IS EMPLOYED AND/OR ENGAGED AGREES +TO BE BOUND BY THIS SOFTWARE LICENSE AGREEMENT. + +Under STMicroelectronics’ intellectual property rights, the redistribution, +reproduction and use in source and binary forms of the software or any part +thereof, with or without modification, are permitted provided that the following +conditions are met: + +1. Redistribution of source code (modified or not) must retain any copyright +notice, this list of conditions and the disclaimer set forth below as items 10 +and 11. + +2. Redistributions in binary form, except as embedded into microcontroller or +microprocessor device manufactured by or for STMicroelectronics or a software +update for such device, must reproduce any copyright notice provided with the +binary code, this list of conditions, and the disclaimer set forth below as +items 10 and 11, in documentation and/or other materials provided with the +distribution. + +3. Neither the name of STMicroelectronics nor the names of other contributors to +this software may be used to endorse or promote products derived from this +software or part thereof without specific written permission. + +4. This software or any part thereof, including modifications and/or derivative +works of this software, must be used and execute solely and exclusively on or in +combination with a microcontroller or microprocessor device manufactured by or +for STMicroelectronics. + +5. No use, reproduction or redistribution of this software partially or totally +may be done in any manner that would subject this software to any Open Source +Terms. “Open Source Terms” shall mean any open source license which requires as +part of distribution of software that the source code of such software is +distributed therewith or otherwise made available, or open source license that +substantially complies with the Open Source definition specified at +www.opensource.org and any other comparable open source license such as for +example GNU General Public License (GPL), Eclipse Public License (EPL), Apache +Software License, BSD license or MIT license. + +6. STMicroelectronics has no obligation to provide any maintenance, support or +updates for the software. + +7. The software is and will remain the exclusive property of STMicroelectronics +and its licensors. The recipient will not take any action that jeopardizes +STMicroelectronics and its licensors' proprietary rights or acquire any rights +in the software, except the limited rights specified hereunder. + +8. The recipient shall comply with all applicable laws and regulations affecting +the use of the software or any part thereof including any applicable export +control law or regulation. + +9. Redistribution and use of this software or any part thereof other than as +permitted under this license is void and will automatically terminate your +rights under this license. + +10. THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, WHICH ARE +DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT SHALL +STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +11. EXCEPT AS EXPRESSLY PERMITTED HEREUNDER, NO LICENSE OR OTHER RIGHTS, WHETHER +EXPRESS OR IMPLIED, ARE GRANTED UNDER ANY PATENT OR OTHER INTELLECTUAL PROPERTY +RIGHTS OF STMICROELECTRONICS OR ANY THIRD PARTY. + diff --git a/USB_DEVICE/App/usb_device.c b/USB_DEVICE/App/usb_device.c new file mode 100644 index 0000000..c874093 --- /dev/null +++ b/USB_DEVICE/App/usb_device.c @@ -0,0 +1,101 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usb_device.c + * @version : v1.0_Cube + * @brief : This file implements the USB Device + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 "usb_device.h" +#include "usbd_core.h" +#include "usbd_desc.h" +#include "usbd_cdc.h" +#include "usbd_cdc_if.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN PV */ +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE END PV */ + +/* USER CODE BEGIN PFP */ +/* Private function prototypes -----------------------------------------------*/ + +/* USER CODE END PFP */ + +/* USB Device Core handle declaration. */ +USBD_HandleTypeDef hUsbDeviceHS; + +/* + * -- Insert your variables declaration here -- + */ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* + * -- Insert your external function declaration here -- + */ +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Init USB device Library, add supported class and start the library + * @retval None + */ +void MX_USB_DEVICE_Init(void) +{ + /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */ + + /* USER CODE END USB_DEVICE_Init_PreTreatment */ + + /* Init Device Library, add supported class and start the library. */ + if (USBD_Init(&hUsbDeviceHS, &HS_Desc, DEVICE_HS) != USBD_OK) + { + Error_Handler(); + } + if (USBD_RegisterClass(&hUsbDeviceHS, &USBD_CDC) != USBD_OK) + { + Error_Handler(); + } + if (USBD_CDC_RegisterInterface(&hUsbDeviceHS, &USBD_Interface_fops_HS) != USBD_OK) + { + Error_Handler(); + } + if (USBD_Start(&hUsbDeviceHS) != USBD_OK) + { + Error_Handler(); + } + + /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */ + HAL_PWREx_EnableUSBVoltageDetector(); + + /* USER CODE END USB_DEVICE_Init_PostTreatment */ +} + +/** + * @} + */ + +/** + * @} + */ + diff --git a/USB_DEVICE/App/usb_device.h b/USB_DEVICE/App/usb_device.h new file mode 100644 index 0000000..7bba362 --- /dev/null +++ b/USB_DEVICE/App/usb_device.h @@ -0,0 +1,102 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usb_device.h + * @version : v1.0_Cube + * @brief : Header for usb_device.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 __USB_DEVICE__H__ +#define __USB_DEVICE__H__ + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32h7xx.h" +#include "stm32h7xx_hal.h" +#include "usbd_def.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/** @addtogroup USBD_OTG_DRIVER + * @{ + */ + +/** @defgroup USBD_DEVICE USBD_DEVICE + * @brief Device file for Usb otg low level driver. + * @{ + */ + +/** @defgroup USBD_DEVICE_Exported_Variables USBD_DEVICE_Exported_Variables + * @brief Public variables. + * @{ + */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* + * -- Insert your variables declaration here -- + */ +/* USER CODE BEGIN VARIABLES */ + +/* USER CODE END VARIABLES */ +/** + * @} + */ + +/** @defgroup USBD_DEVICE_Exported_FunctionsPrototype USBD_DEVICE_Exported_FunctionsPrototype + * @brief Declaration of public functions for Usb device. + * @{ + */ + +/** USB Device initialization function. */ +void MX_USB_DEVICE_Init(void); + +/* + * -- Insert functions declaration here -- + */ +/* USER CODE BEGIN FD */ + +/* USER CODE END FD */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_DEVICE__H__ */ diff --git a/USB_DEVICE/App/usbd_cdc_if.c b/USB_DEVICE/App/usbd_cdc_if.c new file mode 100644 index 0000000..1d0c9b8 --- /dev/null +++ b/USB_DEVICE/App/usbd_cdc_if.c @@ -0,0 +1,327 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_cdc_if.c + * @version : v1.0_Cube + * @brief : Usb device for Virtual Com Port. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 "usbd_cdc_if.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE END PV */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @brief Usb device library. + * @{ + */ + +/** @addtogroup USBD_CDC_IF + * @{ + */ + +/** @defgroup USBD_CDC_IF_Private_TypesDefinitions USBD_CDC_IF_Private_TypesDefinitions + * @brief Private types. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_TYPES */ + +/* USER CODE END PRIVATE_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Defines USBD_CDC_IF_Private_Defines + * @brief Private defines. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_DEFINES */ +/* USER CODE END PRIVATE_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Macros USBD_CDC_IF_Private_Macros + * @brief Private macros. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_MACRO */ + +/* USER CODE END PRIVATE_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_Variables USBD_CDC_IF_Private_Variables + * @brief Private variables. + * @{ + */ + +/* Create buffer for reception and transmission */ +/* It's up to user to redefine and/or remove those define */ +/** Received data over USB are stored in this buffer */ +uint8_t UserRxBufferHS[APP_RX_DATA_SIZE]; + +/** Data to send over USB CDC are stored in this buffer */ +uint8_t UserTxBufferHS[APP_TX_DATA_SIZE]; + +/* USER CODE BEGIN PRIVATE_VARIABLES */ + +/* USER CODE END PRIVATE_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables + * @brief Public variables. + * @{ + */ + +extern USBD_HandleTypeDef hUsbDeviceHS; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Private_FunctionPrototypes USBD_CDC_IF_Private_FunctionPrototypes + * @brief Private functions declaration. + * @{ + */ + +static int8_t CDC_Init_HS(void); +static int8_t CDC_DeInit_HS(void); +static int8_t CDC_Control_HS(uint8_t cmd, uint8_t* pbuf, uint16_t length); +static int8_t CDC_Receive_HS(uint8_t* pbuf, uint32_t *Len); +static int8_t CDC_TransmitCplt_HS(uint8_t *pbuf, uint32_t *Len, uint8_t epnum); + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ + +/** + * @} + */ + +USBD_CDC_ItfTypeDef USBD_Interface_fops_HS = +{ + CDC_Init_HS, + CDC_DeInit_HS, + CDC_Control_HS, + CDC_Receive_HS, + CDC_TransmitCplt_HS +}; + +/* Private functions ---------------------------------------------------------*/ + +/** + * @brief Initializes the CDC media low layer over the USB HS IP + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_Init_HS(void) +{ + /* USER CODE BEGIN 8 */ + /* Set Application Buffers */ + USBD_CDC_SetTxBuffer(&hUsbDeviceHS, UserTxBufferHS, 0); + USBD_CDC_SetRxBuffer(&hUsbDeviceHS, UserRxBufferHS); + return (USBD_OK); + /* USER CODE END 8 */ +} + +/** + * @brief DeInitializes the CDC media low layer + * @param None + * @retval USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_DeInit_HS(void) +{ + /* USER CODE BEGIN 9 */ + return (USBD_OK); + /* USER CODE END 9 */ +} + +/** + * @brief Manage the CDC class requests + * @param cmd: Command code + * @param pbuf: Buffer containing command data (request parameters) + * @param length: Number of data to be sent (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_Control_HS(uint8_t cmd, uint8_t* pbuf, uint16_t length) +{ + /* USER CODE BEGIN 10 */ + switch(cmd) + { + case CDC_SEND_ENCAPSULATED_COMMAND: + + break; + + case CDC_GET_ENCAPSULATED_RESPONSE: + + break; + + case CDC_SET_COMM_FEATURE: + + break; + + case CDC_GET_COMM_FEATURE: + + break; + + case CDC_CLEAR_COMM_FEATURE: + + break; + + /*******************************************************************************/ + /* Line Coding Structure */ + /*-----------------------------------------------------------------------------*/ + /* Offset | Field | Size | Value | Description */ + /* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/ + /* 4 | bCharFormat | 1 | Number | Stop bits */ + /* 0 - 1 Stop bit */ + /* 1 - 1.5 Stop bits */ + /* 2 - 2 Stop bits */ + /* 5 | bParityType | 1 | Number | Parity */ + /* 0 - None */ + /* 1 - Odd */ + /* 2 - Even */ + /* 3 - Mark */ + /* 4 - Space */ + /* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */ + /*******************************************************************************/ + case CDC_SET_LINE_CODING: + + break; + + case CDC_GET_LINE_CODING: + + break; + + case CDC_SET_CONTROL_LINE_STATE: + + break; + + case CDC_SEND_BREAK: + + break; + + default: + break; + } + + return (USBD_OK); + /* USER CODE END 10 */ +} + +/** + * @brief Data received over USB OUT endpoint are sent over CDC interface + * through this function. + * + * @note + * This function will issue a NAK packet on any OUT packet received on + * USB endpoint until exiting this function. If you exit this function + * before transfer is complete on CDC interface (ie. using DMA controller) + * it will result in receiving more data while previous ones are still + * not sent. + * + * @param Buf: Buffer of data to be received + * @param Len: Number of data received (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAILL + */ +static int8_t CDC_Receive_HS(uint8_t* Buf, uint32_t *Len) +{ + /* USER CODE BEGIN 11 */ + USBD_CDC_SetRxBuffer(&hUsbDeviceHS, &Buf[0]); + USBD_CDC_ReceivePacket(&hUsbDeviceHS); + return (USBD_OK); + /* USER CODE END 11 */ +} + +/** + * @brief Data to send over USB IN endpoint are sent over CDC interface + * through this function. + * @param Buf: Buffer of data to be sent + * @param Len: Number of data to be sent (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY + */ +uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len) +{ + uint8_t result = USBD_OK; + /* USER CODE BEGIN 12 */ + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceHS.pClassData; + if (hcdc->TxState != 0){ + return USBD_BUSY; + } + USBD_CDC_SetTxBuffer(&hUsbDeviceHS, Buf, Len); + result = USBD_CDC_TransmitPacket(&hUsbDeviceHS); + /* USER CODE END 12 */ + return result; +} + +/** + * @brief CDC_TransmitCplt_HS + * Data transmitted callback + * + * @note + * This function is IN transfer complete callback used to inform user that + * the submitted Data is successfully sent over USB. + * + * @param Buf: Buffer of data to be received + * @param Len: Number of data received (in bytes) + * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL + */ +static int8_t CDC_TransmitCplt_HS(uint8_t *Buf, uint32_t *Len, uint8_t epnum) +{ + uint8_t result = USBD_OK; + /* USER CODE BEGIN 14 */ + UNUSED(Buf); + UNUSED(Len); + UNUSED(epnum); + /* USER CODE END 14 */ + return result; +} + +/* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */ + +/** + * @} + */ + +/** + * @} + */ diff --git a/USB_DEVICE/App/usbd_cdc_if.h b/USB_DEVICE/App/usbd_cdc_if.h new file mode 100644 index 0000000..de0d3be --- /dev/null +++ b/USB_DEVICE/App/usbd_cdc_if.h @@ -0,0 +1,131 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_cdc_if.h + * @version : v1.0_Cube + * @brief : Header for usbd_cdc_if.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 __USBD_CDC_IF_H__ +#define __USBD_CDC_IF_H__ + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_cdc.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @brief For Usb device. + * @{ + */ + +/** @defgroup USBD_CDC_IF USBD_CDC_IF + * @brief Usb VCP device module + * @{ + */ + +/** @defgroup USBD_CDC_IF_Exported_Defines USBD_CDC_IF_Exported_Defines + * @brief Defines. + * @{ + */ +/* Define size for the receive and transmit buffer over CDC */ +#define APP_RX_DATA_SIZE 2048 +#define APP_TX_DATA_SIZE 2048 +/* USER CODE BEGIN EXPORTED_DEFINES */ + +/* USER CODE END EXPORTED_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Types USBD_CDC_IF_Exported_Types + * @brief Types. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_TYPES */ + +/* USER CODE END EXPORTED_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Macros USBD_CDC_IF_Exported_Macros + * @brief Aliases. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_MACRO */ + +/* USER CODE END EXPORTED_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables + * @brief Public variables. + * @{ + */ + +/** CDC Interface callback. */ +extern USBD_CDC_ItfTypeDef USBD_Interface_fops_HS; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_CDC_IF_Exported_FunctionsPrototype USBD_CDC_IF_Exported_FunctionsPrototype + * @brief Public functions declaration. + * @{ + */ + +uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len); + +/* USER CODE BEGIN EXPORTED_FUNCTIONS */ + +/* USER CODE END EXPORTED_FUNCTIONS */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_CDC_IF_H__ */ + diff --git a/USB_DEVICE/App/usbd_desc.c b/USB_DEVICE/App/usbd_desc.c new file mode 100644 index 0000000..b02b40b --- /dev/null +++ b/USB_DEVICE/App/usbd_desc.c @@ -0,0 +1,409 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : App/usbd_desc.c + * @version : v1.0_Cube + * @brief : This file implements the USB device descriptors. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 "usbd_core.h" +#include "usbd_desc.h" +#include "usbd_conf.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE END PV */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @{ + */ + +/** @addtogroup USBD_DESC + * @{ + */ + +/** @defgroup USBD_DESC_Private_TypesDefinitions USBD_DESC_Private_TypesDefinitions + * @brief Private types. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_TYPES */ + +/* USER CODE END PRIVATE_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines + * @brief Private defines. + * @{ + */ + +#define USBD_VID 1155 +#define USBD_LANGID_STRING 1033 +#define USBD_MANUFACTURER_STRING "STMicroelectronics" +#define USBD_PID_HS 22336 +#define USBD_PRODUCT_STRING_HS "STM32 Virtual ComPort" +#define USBD_CONFIGURATION_STRING_HS "CDC Config" +#define USBD_INTERFACE_STRING_HS "CDC Interface" + +/* USER CODE BEGIN PRIVATE_DEFINES */ + +/* USER CODE END PRIVATE_DEFINES */ + +/** + * @} + */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** @defgroup USBD_DESC_Private_Macros USBD_DESC_Private_Macros + * @brief Private macros. + * @{ + */ + +/* USER CODE BEGIN PRIVATE_MACRO */ + +/* USER CODE END PRIVATE_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes + * @brief Private functions declaration. + * @{ + */ + +static void Get_SerialNum(void); +static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len); + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes + * @brief Private functions declaration for HS. + * @{ + */ + +uint8_t * USBD_HS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); +uint8_t * USBD_HS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables + * @brief Private variables. + * @{ + */ + +USBD_DescriptorsTypeDef HS_Desc = +{ + USBD_HS_DeviceDescriptor +, USBD_HS_LangIDStrDescriptor +, USBD_HS_ManufacturerStrDescriptor +, USBD_HS_ProductStrDescriptor +, USBD_HS_SerialStrDescriptor +, USBD_HS_ConfigStrDescriptor +, USBD_HS_InterfaceStrDescriptor +}; + +#if defined ( __ICCARM__ ) /* IAR Compiler */ + #pragma data_alignment=4 +#endif /* defined ( __ICCARM__ ) */ +/** USB standard device descriptor. */ +__ALIGN_BEGIN uint8_t USBD_HS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = +{ + 0x12, /*bLength */ + USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ + 0x00, /*bcdUSB */ + + 0x02, + 0x02, /*bDeviceClass*/ + 0x02, /*bDeviceSubClass*/ + 0x00, /*bDeviceProtocol*/ + USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ + LOBYTE(USBD_VID), /*idVendor*/ + HIBYTE(USBD_VID), /*idVendor*/ + LOBYTE(USBD_PID_HS), /*idProduct*/ + HIBYTE(USBD_PID_HS), /*idProduct*/ + 0x00, /*bcdDevice rel. 2.00*/ + 0x02, + USBD_IDX_MFC_STR, /*Index of manufacturer string*/ + USBD_IDX_PRODUCT_STR, /*Index of product string*/ + USBD_IDX_SERIAL_STR, /*Index of serial number string*/ + USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ +}; + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables + * @brief Private variables. + * @{ + */ + +#if defined ( __ICCARM__ ) /* IAR Compiler */ + #pragma data_alignment=4 +#endif /* defined ( __ICCARM__ ) */ + +/** USB lang identifier descriptor. */ +__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = +{ + USB_LEN_LANGID_STR_DESC, + USB_DESC_TYPE_STRING, + LOBYTE(USBD_LANGID_STRING), + HIBYTE(USBD_LANGID_STRING) +}; + +#if defined ( __ICCARM__ ) /* IAR Compiler */ + #pragma data_alignment=4 +#endif /* defined ( __ICCARM__ ) */ +/* Internal string descriptor. */ +__ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; + +#if defined ( __ICCARM__ ) /*!< IAR Compiler */ + #pragma data_alignment=4 +#endif +__ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = { + USB_SIZ_STRING_SERIAL, + USB_DESC_TYPE_STRING, +}; + +/** + * @} + */ + +/** @defgroup USBD_DESC_Private_Functions USBD_DESC_Private_Functions + * @brief Private functions. + * @{ + */ + +/** + * @brief Return the device descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + *length = sizeof(USBD_HS_DeviceDesc); + return USBD_HS_DeviceDesc; +} + +/** + * @brief Return the LangID string descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + *length = sizeof(USBD_LangIDDesc); + return USBD_LangIDDesc; +} + +/** + * @brief Return the product string descriptor + * @param speed : current device speed + * @param length : pointer to data length variable + * @retval pointer to descriptor buffer + */ +uint8_t * USBD_HS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == 0) + { + USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_HS, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_HS, USBD_StrDesc, length); + } + return USBD_StrDesc; +} + +/** + * @brief Return the manufacturer string descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); + return USBD_StrDesc; +} + +/** + * @brief Return the serial number string descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + *length = USB_SIZ_STRING_SERIAL; + + /* Update the serial number string descriptor with the data from the unique + * ID */ + Get_SerialNum(); + /* USER CODE BEGIN USBD_HS_SerialStrDescriptor */ + + /* USER CODE END USBD_HS_SerialStrDescriptor */ + + return (uint8_t *) USBD_StringSerial; +} + +/** + * @brief Return the configuration string descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == USBD_SPEED_HIGH) + { + USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_HS, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_HS, USBD_StrDesc, length); + } + return USBD_StrDesc; +} + +/** + * @brief Return the interface string descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + if(speed == 0) + { + USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_HS, USBD_StrDesc, length); + } + else + { + USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_HS, USBD_StrDesc, length); + } + return USBD_StrDesc; +} + +#if (USBD_LPM_ENABLED == 1) +/** + * @brief Return the BOS descriptor + * @param speed : Current device speed + * @param length : Pointer to data length variable + * @retval Pointer to descriptor buffer + */ +uint8_t * USBD_HS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) +{ + UNUSED(speed); + *length = sizeof(USBD_HS_BOSDesc); + return (uint8_t*)USBD_HS_BOSDesc; +} +#endif /* (USBD_LPM_ENABLED == 1) */ + +/** + * @brief Create the serial number string descriptor + * @param None + * @retval None + */ +static void Get_SerialNum(void) +{ + uint32_t deviceserial0; + uint32_t deviceserial1; + uint32_t deviceserial2; + + deviceserial0 = *(uint32_t *) DEVICE_ID1; + deviceserial1 = *(uint32_t *) DEVICE_ID2; + deviceserial2 = *(uint32_t *) DEVICE_ID3; + + deviceserial0 += deviceserial2; + + if (deviceserial0 != 0) + { + IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8); + IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); + } +} + +/** + * @brief Convert Hex 32Bits value into char + * @param value: value to convert + * @param pbuf: pointer to the buffer + * @param len: buffer length + * @retval None + */ +static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len) +{ + uint8_t idx = 0; + + for (idx = 0; idx < len; idx++) + { + if (((value >> 28)) < 0xA) + { + pbuf[2 * idx] = (value >> 28) + '0'; + } + else + { + pbuf[2 * idx] = (value >> 28) + 'A' - 10; + } + + value = value << 4; + + pbuf[2 * idx + 1] = 0; + } +} +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + diff --git a/USB_DEVICE/App/usbd_desc.h b/USB_DEVICE/App/usbd_desc.h new file mode 100644 index 0000000..5bb3557 --- /dev/null +++ b/USB_DEVICE/App/usbd_desc.h @@ -0,0 +1,143 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_desc.c + * @version : v1.0_Cube + * @brief : Header for usbd_conf.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 __USBD_DESC__C__ +#define __USBD_DESC__C__ + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "usbd_def.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY + * @{ + */ + +/** @defgroup USBD_DESC USBD_DESC + * @brief Usb device descriptors module. + * @{ + */ + +/** @defgroup USBD_DESC_Exported_Constants USBD_DESC_Exported_Constants + * @brief Constants. + * @{ + */ +#define DEVICE_ID1 (UID_BASE) +#define DEVICE_ID2 (UID_BASE + 0x4) +#define DEVICE_ID3 (UID_BASE + 0x8) + +#define USB_SIZ_STRING_SERIAL 0x1A + +/* USER CODE BEGIN EXPORTED_CONSTANTS */ + +/* USER CODE END EXPORTED_CONSTANTS */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Exported_Defines USBD_DESC_Exported_Defines + * @brief Defines. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_DEFINES */ + +/* USER CODE END EXPORTED_DEFINES */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Exported_TypesDefinitions USBD_DESC_Exported_TypesDefinitions + * @brief Types. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_TYPES */ + +/* USER CODE END EXPORTED_TYPES */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Exported_Macros USBD_DESC_Exported_Macros + * @brief Aliases. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_MACRO */ + +/* USER CODE END EXPORTED_MACRO */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Exported_Variables USBD_DESC_Exported_Variables + * @brief Public variables. + * @{ + */ + +/** Descriptor for the Usb device. */ +extern USBD_DescriptorsTypeDef HS_Desc; + +/* USER CODE BEGIN EXPORTED_VARIABLES */ + +/* USER CODE END EXPORTED_VARIABLES */ + +/** + * @} + */ + +/** @defgroup USBD_DESC_Exported_FunctionsPrototype USBD_DESC_Exported_FunctionsPrototype + * @brief Public functions declaration. + * @{ + */ + +/* USER CODE BEGIN EXPORTED_FUNCTIONS */ + +/* USER CODE END EXPORTED_FUNCTIONS */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_DESC__C__ */ + diff --git a/USB_DEVICE/Target/usbd_conf.c b/USB_DEVICE/Target/usbd_conf.c new file mode 100644 index 0000000..58a95d1 --- /dev/null +++ b/USB_DEVICE/Target/usbd_conf.c @@ -0,0 +1,745 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : Target/usbd_conf.c + * @version : v1.0_Cube + * @brief : This file implements the board support package for the USB device library + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 "stm32h7xx.h" +#include "stm32h7xx_hal.h" +#include "usbd_def.h" +#include "usbd_core.h" +#include "usbd_cdc.h" + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +/* Private macro -------------------------------------------------------------*/ + +/* USER CODE BEGIN PV */ +/* Private variables ---------------------------------------------------------*/ + +/* USER CODE END PV */ + +PCD_HandleTypeDef hpcd_USB_OTG_HS; +void Error_Handler(void); + +/* External functions --------------------------------------------------------*/ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* USER CODE BEGIN PFP */ +/* Private function prototypes -----------------------------------------------*/ +USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status); + +/* USER CODE END PFP */ + +/* Private functions ---------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ +/* USER CODE END 1 */ + +/******************************************************************************* + LL Driver Callbacks (PCD -> USB Device Library) +*******************************************************************************/ +/* MSP Init */ + +void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + if(pcdHandle->Instance==USB_OTG_HS) + { + /* USER CODE BEGIN USB_OTG_HS_MspInit 0 */ + + /* USER CODE END USB_OTG_HS_MspInit 0 */ + + /** Initializes the peripherals clock + */ + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB; + PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } + + /** Enable USB Voltage detector + */ + HAL_PWREx_EnableUSBVoltageDetector(); + + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_GPIOB_CLK_ENABLE(); + /**USB_OTG_HS GPIO Configuration + PC0 ------> USB_OTG_HS_ULPI_STP + PC2_C ------> USB_OTG_HS_ULPI_DIR + PC3_C ------> USB_OTG_HS_ULPI_NXT + PA3 ------> USB_OTG_HS_ULPI_D0 + PA5 ------> USB_OTG_HS_ULPI_CK + PB0 ------> USB_OTG_HS_ULPI_D1 + PB1 ------> USB_OTG_HS_ULPI_D2 + PB10 ------> USB_OTG_HS_ULPI_D3 + PB11 ------> USB_OTG_HS_ULPI_D4 + PB12 ------> USB_OTG_HS_ULPI_D5 + PB13 ------> USB_OTG_HS_ULPI_D6 + PB5 ------> USB_OTG_HS_ULPI_D7 + */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF10_OTG2_HS; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF10_OTG2_HS; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF10_OTG2_HS; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_USB_OTG_HS_CLK_ENABLE(); + __HAL_RCC_USB_OTG_HS_ULPI_CLK_ENABLE(); + + /* Peripheral interrupt init */ + HAL_NVIC_SetPriority(OTG_HS_EP1_OUT_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_HS_EP1_OUT_IRQn); + HAL_NVIC_SetPriority(OTG_HS_EP1_IN_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_HS_EP1_IN_IRQn); + HAL_NVIC_SetPriority(OTG_HS_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(OTG_HS_IRQn); + /* USER CODE BEGIN USB_OTG_HS_MspInit 1 */ + + /* USER CODE END USB_OTG_HS_MspInit 1 */ + } +} + +void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle) +{ + if(pcdHandle->Instance==USB_OTG_HS) + { + /* USER CODE BEGIN USB_OTG_HS_MspDeInit 0 */ + + /* USER CODE END USB_OTG_HS_MspDeInit 0 */ + /* Disable Peripheral clock */ + __HAL_RCC_USB_OTG_HS_CLK_DISABLE(); + __HAL_RCC_USB_OTG_HS_ULPI_CLK_DISABLE(); + + /**USB_OTG_HS GPIO Configuration + PC0 ------> USB_OTG_HS_ULPI_STP + PC2_C ------> USB_OTG_HS_ULPI_DIR + PC3_C ------> USB_OTG_HS_ULPI_NXT + PA3 ------> USB_OTG_HS_ULPI_D0 + PA5 ------> USB_OTG_HS_ULPI_CK + PB0 ------> USB_OTG_HS_ULPI_D1 + PB1 ------> USB_OTG_HS_ULPI_D2 + PB10 ------> USB_OTG_HS_ULPI_D3 + PB11 ------> USB_OTG_HS_ULPI_D4 + PB12 ------> USB_OTG_HS_ULPI_D5 + PB13 ------> USB_OTG_HS_ULPI_D6 + PB5 ------> USB_OTG_HS_ULPI_D7 + */ + HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3); + + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3|GPIO_PIN_5); + + HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_5); + + /* Peripheral interrupt Deinit*/ + HAL_NVIC_DisableIRQ(OTG_HS_EP1_OUT_IRQn); + + HAL_NVIC_DisableIRQ(OTG_HS_EP1_IN_IRQn); + + HAL_NVIC_DisableIRQ(OTG_HS_IRQn); + + /* USER CODE BEGIN USB_OTG_HS_MspDeInit 1 */ + + /* USER CODE END USB_OTG_HS_MspDeInit 1 */ + } +} + +/** + * @brief Setup stage callback + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_SetupStage((USBD_HandleTypeDef*)hpcd->pData, (uint8_t *)hpcd->Setup); +} + +/** + * @brief Data Out stage callback. + * @param hpcd: PCD handle + * @param epnum: Endpoint number + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#else +void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_DataOutStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->OUT_ep[epnum].xfer_buff); +} + +/** + * @brief Data In stage callback. + * @param hpcd: PCD handle + * @param epnum: Endpoint number + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#else +void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_DataInStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->IN_ep[epnum].xfer_buff); +} + +/** + * @brief SOF callback. + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_SOFCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData); +} + +/** + * @brief Reset callback. + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_ResetCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_SpeedTypeDef speed = USBD_SPEED_FULL; + + if ( hpcd->Init.speed == PCD_SPEED_HIGH) + { + speed = USBD_SPEED_HIGH; + } + else if ( hpcd->Init.speed == PCD_SPEED_FULL) + { + speed = USBD_SPEED_FULL; + } + else + { + Error_Handler(); + } + /* Set Speed. */ + USBD_LL_SetSpeed((USBD_HandleTypeDef*)hpcd->pData, speed); + + /* Reset Device. */ + USBD_LL_Reset((USBD_HandleTypeDef*)hpcd->pData); +} + +/** + * @brief Suspend callback. + * When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support it) + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + /* Inform USB library that core enters in suspend Mode. */ + USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData); + __HAL_PCD_GATE_PHYCLOCK(hpcd); + /* Enter in STOP mode. */ + /* USER CODE BEGIN 2 */ + if (hpcd->Init.low_power_enable) + { + /* Set SLEEPDEEP bit and SleepOnExit of Cortex System Control Register. */ + SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); + } + /* USER CODE END 2 */ +} + +/** + * @brief Resume callback. + * When Low power mode is enabled the debug cannot be used (IAR, Keil doesn't support it) + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + /* USER CODE BEGIN 3 */ + + /* USER CODE END 3 */ + USBD_LL_Resume((USBD_HandleTypeDef*)hpcd->pData); +} + +/** + * @brief ISOOUTIncomplete callback. + * @param hpcd: PCD handle + * @param epnum: Endpoint number + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#else +void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_IsoOUTIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); +} + +/** + * @brief ISOINIncomplete callback. + * @param hpcd: PCD handle + * @param epnum: Endpoint number + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#else +void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_IsoINIncomplete((USBD_HandleTypeDef*)hpcd->pData, epnum); +} + +/** + * @brief Connect callback. + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_DevConnected((USBD_HandleTypeDef*)hpcd->pData); +} + +/** + * @brief Disconnect callback. + * @param hpcd: PCD handle + * @retval None + */ +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) +static void PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) +#else +void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ +{ + USBD_LL_DevDisconnected((USBD_HandleTypeDef*)hpcd->pData); +} + +/******************************************************************************* + LL Driver Interface (USB Device Library --> PCD) +*******************************************************************************/ + +/** + * @brief Initializes the low level portion of the device driver. + * @param pdev: Device handle + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev) +{ + /* Init USB Ip. */ + if (pdev->id == DEVICE_HS) { + /* Link the driver to the stack. */ + hpcd_USB_OTG_HS.pData = pdev; + pdev->pData = &hpcd_USB_OTG_HS; + + hpcd_USB_OTG_HS.Instance = USB_OTG_HS; + hpcd_USB_OTG_HS.Init.dev_endpoints = 9; + hpcd_USB_OTG_HS.Init.speed = PCD_SPEED_HIGH; + hpcd_USB_OTG_HS.Init.dma_enable = DISABLE; + hpcd_USB_OTG_HS.Init.phy_itface = USB_OTG_ULPI_PHY; + hpcd_USB_OTG_HS.Init.Sof_enable = DISABLE; + hpcd_USB_OTG_HS.Init.low_power_enable = DISABLE; + hpcd_USB_OTG_HS.Init.lpm_enable = DISABLE; + hpcd_USB_OTG_HS.Init.vbus_sensing_enable = DISABLE; + hpcd_USB_OTG_HS.Init.use_dedicated_ep1 = DISABLE; + hpcd_USB_OTG_HS.Init.use_external_vbus = DISABLE; + if (HAL_PCD_Init(&hpcd_USB_OTG_HS) != HAL_OK) + { + Error_Handler( ); + } + +#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U) + /* Register USB PCD CallBacks */ + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_SOF_CB_ID, PCD_SOFCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_SETUPSTAGE_CB_ID, PCD_SetupStageCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_RESET_CB_ID, PCD_ResetCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_SUSPEND_CB_ID, PCD_SuspendCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_RESUME_CB_ID, PCD_ResumeCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_CONNECT_CB_ID, PCD_ConnectCallback); + HAL_PCD_RegisterCallback(&hpcd_USB_OTG_HS, HAL_PCD_DISCONNECT_CB_ID, PCD_DisconnectCallback); + + HAL_PCD_RegisterDataOutStageCallback(&hpcd_USB_OTG_HS, PCD_DataOutStageCallback); + HAL_PCD_RegisterDataInStageCallback(&hpcd_USB_OTG_HS, PCD_DataInStageCallback); + HAL_PCD_RegisterIsoOutIncpltCallback(&hpcd_USB_OTG_HS, PCD_ISOOUTIncompleteCallback); + HAL_PCD_RegisterIsoInIncpltCallback(&hpcd_USB_OTG_HS, PCD_ISOINIncompleteCallback); +#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */ + /* USER CODE BEGIN TxRx_HS_Configuration */ + HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_HS, 0x200); + HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 0, 0x80); + HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_HS, 1, 0x174); + /* USER CODE END TxRx_HS_Configuration */ + } + return USBD_OK; +} + +/** + * @brief De-Initializes the low level portion of the device driver. + * @param pdev: Device handle + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_DeInit(USBD_HandleTypeDef *pdev) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_DeInit(pdev->pData); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Starts the low level portion of the device driver. + * @param pdev: Device handle + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_Start(USBD_HandleTypeDef *pdev) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_Start(pdev->pData); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Stops the low level portion of the device driver. + * @param pdev: Device handle + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_Stop(USBD_HandleTypeDef *pdev) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_Stop(pdev->pData); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Opens an endpoint of the low level driver. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @param ep_type: Endpoint type + * @param ep_mps: Endpoint max packet size + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_Open(pdev->pData, ep_addr, ep_mps, ep_type); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Closes an endpoint of the low level driver. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_Close(pdev->pData, ep_addr); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Flushes an endpoint of the Low Level Driver. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_FlushEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_Flush(pdev->pData, ep_addr); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Sets a Stall condition on an endpoint of the Low Level Driver. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_StallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_SetStall(pdev->pData, ep_addr); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Clears a Stall condition on an endpoint of the Low Level Driver. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_ClearStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Returns Stall condition. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval Stall (1: Yes, 0: No) + */ +uint8_t USBD_LL_IsStallEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData; + + if((ep_addr & 0x80) == 0x80) + { + return hpcd->IN_ep[ep_addr & 0x7F].is_stall; + } + else + { + return hpcd->OUT_ep[ep_addr & 0x7F].is_stall; + } +} + +/** + * @brief Assigns a USB address to the device. + * @param pdev: Device handle + * @param dev_addr: Device address + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_SetUSBAddress(USBD_HandleTypeDef *pdev, uint8_t dev_addr) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_SetAddress(pdev->pData, dev_addr); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Transmits data over an endpoint. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @param pbuf: Pointer to data to be sent + * @param size: Data size + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_Transmit(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t size) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf, size); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Prepares an endpoint for reception. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @param pbuf: Pointer to data to be received + * @param size: Data size + * @retval USBD status + */ +USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t size) +{ + HAL_StatusTypeDef hal_status = HAL_OK; + USBD_StatusTypeDef usb_status = USBD_OK; + + hal_status = HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf, size); + + usb_status = USBD_Get_USB_Status(hal_status); + + return usb_status; +} + +/** + * @brief Returns the last transferred packet size. + * @param pdev: Device handle + * @param ep_addr: Endpoint number + * @retval Received Data Size + */ +uint32_t USBD_LL_GetRxDataSize(USBD_HandleTypeDef *pdev, uint8_t ep_addr) +{ + return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr); +} + +#ifdef USBD_HS_TESTMODE_ENABLE +/** + * @brief Set High speed Test mode. + * @param pdev: Device handle + * @param testmode: test mode + * @retval USBD Status + */ +USBD_StatusTypeDef USBD_LL_SetTestMode(USBD_HandleTypeDef *pdev, uint8_t testmode) +{ + UNUSED(pdev); + UNUSED(testmode); + + return USBD_OK; +} +#endif /* USBD_HS_TESTMODE_ENABLE */ +/** + * @brief Static single allocation. + * @param size: Size of allocated memory + * @retval None + */ +void *USBD_static_malloc(uint32_t size) +{ + UNUSED(size); + static uint32_t mem[(sizeof(USBD_CDC_HandleTypeDef)/4)+1];/* On 32-bit boundary */ + return mem; +} + +/** + * @brief Dummy memory free + * @param p: Pointer to allocated memory address + * @retval None + */ +void USBD_static_free(void *p) +{ + UNUSED(p); +} + +/** + * @brief Delays routine for the USB device library. + * @param Delay: Delay in ms + * @retval None + */ +void USBD_LL_Delay(uint32_t Delay) +{ + HAL_Delay(Delay); +} + +/** + * @brief Returns the USB status depending on the HAL status: + * @param hal_status: HAL status + * @retval USB status + */ +USBD_StatusTypeDef USBD_Get_USB_Status(HAL_StatusTypeDef hal_status) +{ + USBD_StatusTypeDef usb_status = USBD_OK; + + switch (hal_status) + { + case HAL_OK : + usb_status = USBD_OK; + break; + case HAL_ERROR : + usb_status = USBD_FAIL; + break; + case HAL_BUSY : + usb_status = USBD_BUSY; + break; + case HAL_TIMEOUT : + usb_status = USBD_FAIL; + break; + default : + usb_status = USBD_FAIL; + break; + } + return usb_status; +} diff --git a/USB_DEVICE/Target/usbd_conf.h b/USB_DEVICE/Target/usbd_conf.h new file mode 100644 index 0000000..444c2ba --- /dev/null +++ b/USB_DEVICE/Target/usbd_conf.h @@ -0,0 +1,173 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : usbd_conf.h + * @version : v1.0_Cube + * @brief : Header for usbd_conf.c file. + ****************************************************************************** + * @attention + * + * Copyright (c) 2024 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 __USBD_CONF__H__ +#define __USBD_CONF__H__ + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include +#include +#include +#include "main.h" +#include "stm32h7xx.h" +#include "stm32h7xx_hal.h" + +/* USER CODE BEGIN INCLUDE */ + +/* USER CODE END INCLUDE */ + +/** @addtogroup USBD_OTG_DRIVER + * @brief Driver for Usb device. + * @{ + */ + +/** @defgroup USBD_CONF USBD_CONF + * @brief Configuration file for Usb otg low level driver. + * @{ + */ + +/** @defgroup USBD_CONF_Exported_Variables USBD_CONF_Exported_Variables + * @brief Public variables. + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_CONF_Exported_Defines USBD_CONF_Exported_Defines + * @brief Defines for configuration of the Usb device. + * @{ + */ + +/*---------- -----------*/ +#define USBD_MAX_NUM_INTERFACES 1U +/*---------- -----------*/ +#define USBD_MAX_NUM_CONFIGURATION 1U +/*---------- -----------*/ +#define USBD_MAX_STR_DESC_SIZ 512U +/*---------- -----------*/ +#define USBD_DEBUG_LEVEL 0U +/*---------- -----------*/ +#define USBD_LPM_ENABLED 0U +/*---------- -----------*/ +#define USBD_SELF_POWERED 1U + +/****************************************/ +/* #define for FS and HS identification */ +#define DEVICE_FS 0 +#define DEVICE_HS 1 + +/** + * @} + */ + +/** @defgroup USBD_CONF_Exported_Macros USBD_CONF_Exported_Macros + * @brief Aliases. + * @{ + */ +/* Memory management macros make sure to use static memory allocation */ +/** Alias for memory allocation. */ + +#define USBD_malloc (void *)USBD_static_malloc + +/** Alias for memory release. */ +#define USBD_free USBD_static_free + +/** Alias for memory set. */ +#define USBD_memset memset + +/** Alias for memory copy. */ +#define USBD_memcpy memcpy + +/** Alias for delay. */ +#define USBD_Delay HAL_Delay + +/* DEBUG macros */ + +#if (USBD_DEBUG_LEVEL > 0) +#define USBD_UsrLog(...) printf(__VA_ARGS__);\ + printf("\n"); +#else +#define USBD_UsrLog(...) +#endif /* (USBD_DEBUG_LEVEL > 0U) */ + +#if (USBD_DEBUG_LEVEL > 1) + +#define USBD_ErrLog(...) printf("ERROR: ");\ + printf(__VA_ARGS__);\ + printf("\n"); +#else +#define USBD_ErrLog(...) +#endif /* (USBD_DEBUG_LEVEL > 1U) */ + +#if (USBD_DEBUG_LEVEL > 2) +#define USBD_DbgLog(...) printf("DEBUG : ");\ + printf(__VA_ARGS__);\ + printf("\n"); +#else +#define USBD_DbgLog(...) +#endif /* (USBD_DEBUG_LEVEL > 2U) */ + +/** + * @} + */ + +/** @defgroup USBD_CONF_Exported_Types USBD_CONF_Exported_Types + * @brief Types. + * @{ + */ + +/** + * @} + */ + +/** @defgroup USBD_CONF_Exported_FunctionsPrototype USBD_CONF_Exported_FunctionsPrototype + * @brief Declaration of public functions for Usb device. + * @{ + */ + +/* Exported functions -------------------------------------------------------*/ +void *USBD_static_malloc(uint32_t size); +void USBD_static_free(void *p); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __USBD_CONF__H__ */ + diff --git a/cmake-build-debug/.cmake/api/v1/reply/codemodel-v2-1a2d6be2abeda14778e8.json b/cmake-build-debug/.cmake/api/v1/reply/codemodel-v2-1a2d6be2abeda14778e8.json deleted file mode 100644 index 794074e..0000000 --- a/cmake-build-debug/.cmake/api/v1/reply/codemodel-v2-1a2d6be2abeda14778e8.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-d0094a50bb2071803777.json", - "minimumCMakeVersion" : - { - "string" : "3.22" - }, - "projectIndex" : 0, - "source" : ".", - "targetIndexes" : - [ - 0 - ] - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Encoder_Time_Sysn", - "targetIndexes" : - [ - 0 - ] - } - ], - "targets" : - [ - { - "directoryIndex" : 0, - "id" : "Encoder_Time_Sysn.elf::@6890427a1f51a3e7e1df", - "jsonFile" : "target-Encoder_Time_Sysn.elf-Debug-46b275c97fe50eba4e31.json", - "name" : "Encoder_Time_Sysn.elf", - "projectIndex" : 0 - } - ] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "D:/cubecode/Encoder_Time_Sysn/cmake-build-debug", - "source" : "D:/cubecode/Encoder_Time_Sysn" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/cmake-build-debug/.cmake/api/v1/reply/index-2024-04-25T07-38-58-0517.json b/cmake-build-debug/.cmake/api/v1/reply/index-2024-04-25T07-38-58-0517.json deleted file mode 100644 index ea60304..0000000 --- a/cmake-build-debug/.cmake/api/v1/reply/index-2024-04-25T07-38-58-0517.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "MinGW Makefiles" - }, - "paths" : - { - "cmake" : "D:/CLion 2022.1.3/bin/cmake/win/bin/cmake.exe", - "cpack" : "D:/CLion 2022.1.3/bin/cmake/win/bin/cpack.exe", - "ctest" : "D:/CLion 2022.1.3/bin/cmake/win/bin/ctest.exe", - "root" : "D:/CLion 2022.1.3/bin/cmake/win/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 3, - "string" : "3.22.3", - "suffix" : "" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-1a2d6be2abeda14778e8.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-a7a9992668cbd3bdb677.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-112ab1d909883d88c2a8.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - { - "jsonFile" : "toolchains-v1-e0966276c702175d157a.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-a7a9992668cbd3bdb677.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-112ab1d909883d88c2a8.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-1a2d6be2abeda14778e8.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - "toolchains-v1" : - { - "jsonFile" : "toolchains-v1-e0966276c702175d157a.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - } -} diff --git a/cmake-build-debug/.cmake/api/v1/reply/target-Encoder_Time_Sysn.elf-Debug-46b275c97fe50eba4e31.json b/cmake-build-debug/.cmake/api/v1/reply/target-Encoder_Time_Sysn.elf-Debug-46b275c97fe50eba4e31.json deleted file mode 100644 index d4c868d..0000000 --- a/cmake-build-debug/.cmake/api/v1/reply/target-Encoder_Time_Sysn.elf-Debug-46b275c97fe50eba4e31.json +++ /dev/null @@ -1,1080 +0,0 @@ -{ - "artifacts" : - [ - { - "path" : "Encoder_Time_Sysn.elf" - } - ], - "backtrace" : 1, - "backtraceGraph" : - { - "commands" : - [ - "add_executable", - "add_link_options", - "add_compile_options", - "add_definitions", - "include_directories" - ], - "files" : - [ - "CMakeLists.txt" - ], - "nodes" : - [ - { - "file" : 0 - }, - { - "command" : 0, - "file" : 0, - "line" : 64, - "parent" : 0 - }, - { - "command" : 1, - "file" : 0, - "line" : 60, - "parent" : 0 - }, - { - "command" : 1, - "file" : 0, - "line" : 61, - "parent" : 0 - }, - { - "command" : 1, - "file" : 0, - "line" : 62, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 29, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 30, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 36, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 49, - "parent" : 0 - }, - { - "command" : 3, - "file" : 0, - "line" : 54, - "parent" : 0 - }, - { - "command" : 4, - "file" : 0, - "line" : 52, - "parent" : 0 - } - ] - }, - "compileGroups" : - [ - { - "compileCommandFragments" : - [ - { - "fragment" : "-g" - }, - { - "backtrace" : 5, - "fragment" : "-mcpu=cortex-m7" - }, - { - "backtrace" : 5, - "fragment" : "-mthumb" - }, - { - "backtrace" : 5, - "fragment" : "-mthumb-interwork" - }, - { - "backtrace" : 6, - "fragment" : "-ffunction-sections" - }, - { - "backtrace" : 6, - "fragment" : "-fdata-sections" - }, - { - "backtrace" : 6, - "fragment" : "-fno-common" - }, - { - "backtrace" : 6, - "fragment" : "-fmessage-length=0" - }, - { - "backtrace" : 8, - "fragment" : "-Og" - }, - { - "backtrace" : 8, - "fragment" : "-g" - }, - { - "fragment" : "-std=gnu11" - } - ], - "defines" : - [ - { - "backtrace" : 9, - "define" : "DEBUG" - }, - { - "backtrace" : 9, - "define" : "STM32H750xx" - }, - { - "backtrace" : 9, - "define" : "USE_HAL_DRIVER" - } - ], - "includes" : - [ - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Core/Inc" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include" - } - ], - "language" : "C", - "languageStandard" : - { - "backtraces" : - [ - 1 - ], - "standard" : "11" - }, - "sourceIndexes" : - [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "compileCommandFragments" : - [ - { - "fragment" : "-g" - }, - { - "backtrace" : 5, - "fragment" : "-mcpu=cortex-m7" - }, - { - "backtrace" : 5, - "fragment" : "-mthumb" - }, - { - "backtrace" : 5, - "fragment" : "-mthumb-interwork" - }, - { - "backtrace" : 6, - "fragment" : "-ffunction-sections" - }, - { - "backtrace" : 6, - "fragment" : "-fdata-sections" - }, - { - "backtrace" : 6, - "fragment" : "-fno-common" - }, - { - "backtrace" : 6, - "fragment" : "-fmessage-length=0" - }, - { - "backtrace" : 7, - "fragment" : "-x" - }, - { - "backtrace" : 7, - "fragment" : "assembler-with-cpp" - }, - { - "backtrace" : 8, - "fragment" : "-Og" - }, - { - "backtrace" : 8, - "fragment" : "-g" - } - ], - "defines" : - [ - { - "backtrace" : 9, - "define" : "DEBUG" - }, - { - "backtrace" : 9, - "define" : "STM32H750xx" - }, - { - "backtrace" : 9, - "define" : "USE_HAL_DRIVER" - } - ], - "includes" : - [ - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Core/Inc" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include" - }, - { - "backtrace" : 10, - "path" : "D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include" - } - ], - "language" : "ASM", - "sourceIndexes" : - [ - 19 - ] - } - ], - "id" : "Encoder_Time_Sysn.elf::@6890427a1f51a3e7e1df", - "link" : - { - "commandFragments" : - [ - { - "fragment" : "-g", - "role" : "flags" - }, - { - "fragment" : "", - "role" : "flags" - }, - { - "backtrace" : 2, - "fragment" : "-Wl,-gc-sections,--print-memory-usage,-Map=D:/cubecode/Encoder_Time_Sysn/cmake-build-debug/Encoder_Time_Sysn.map", - "role" : "flags" - }, - { - "backtrace" : 3, - "fragment" : "-mcpu=cortex-m7", - "role" : "flags" - }, - { - "backtrace" : 3, - "fragment" : "-mthumb", - "role" : "flags" - }, - { - "backtrace" : 3, - "fragment" : "-mthumb-interwork", - "role" : "flags" - }, - { - "backtrace" : 4, - "fragment" : "-T", - "role" : "flags" - }, - { - "backtrace" : 4, - "fragment" : "D:/cubecode/Encoder_Time_Sysn/STM32H750VBTX_FLASH.ld", - "role" : "flags" - } - ], - "language" : "C" - }, - "name" : "Encoder_Time_Sysn.elf", - "nameOnDisk" : "Encoder_Time_Sysn.elf", - "paths" : - { - "build" : ".", - "source" : "." - }, - "sourceGroups" : - [ - { - "name" : "Header Files", - "sourceIndexes" : - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 20, - 21, - 22, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ] - }, - { - "name" : "Source Files", - "sourceIndexes" : - [ - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "name" : "", - "sourceIndexes" : - [ - 19, - 23, - 48, - 87, - 108 - ] - } - ], - "sources" : - [ - { - "backtrace" : 1, - "path" : "Core/Inc/dma.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/gpio.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/main.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/retarget.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/stm32h7xx_hal_conf.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/stm32h7xx_it.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/tim.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Core/Inc/usart.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/dma.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/gpio.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/main.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/retarget.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/stm32h7xx_hal_msp.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/stm32h7xx_it.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/syscalls.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/sysmem.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/system_stm32h7xx.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/tim.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Core/Src/usart.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 1, - "path" : "Core/Startup/startup_stm32h750vbtx.s", - "sourceGroupIndex" : 2 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Device/ST/STM32H7xx/LICENSE.txt", - "sourceGroupIndex" : 2 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_armcc.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_armclang.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_armclang_ltm.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_compiler.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_gcc.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_iccarm.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/cmsis_version.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_armv81mml.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_armv8mbl.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_armv8mml.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm0.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm0plus.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm1.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm23.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm3.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm33.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm35p.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm4.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_cm7.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_sc000.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/core_sc300.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/mpu_armv7.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/mpu_armv8.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/Include/tz_context.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/CMSIS/LICENSE.txt", - "sourceGroupIndex" : 2 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_bus.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_cortex.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_crs.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dma.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_dmamux.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_exti.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_gpio.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_hsem.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_lpuart.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_pwr.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_rcc.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_system.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_tim.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usart.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_utils.h", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "path" : "Drivers/STM32H7xx_HAL_Driver/LICENSE.txt", - "sourceGroupIndex" : 2 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c", - "sourceGroupIndex" : 1 - }, - { - "backtrace" : 1, - "path" : "STM32H750VBTX_FLASH.ld", - "sourceGroupIndex" : 2 - } - ], - "type" : "EXECUTABLE" -} diff --git a/cmake-build-debug/CMakeFiles/3.22.3/CMakeDetermineCompilerABI_C.bin b/cmake-build-debug/CMakeFiles/3.22.3/CMakeDetermineCompilerABI_C.bin index 8a5c55b67fba2bca7b647cd734d3137eb9eccb94..7d0b2d7d85551c25f2cc2f74975a57845ab4a519 100644 GIT binary patch delta 23 ccmeyt^MhxC9E+Kyq1i;G4ItWdcY$w$9E+Kyq4`9m1~8LjV8( delta 22 ccmcb>cY$w$9E*XuvBgBC1HyB(=%1M7^_LMW3vHcD=?;S5%aa&@tiHt&l(R zgeoJ7%+qW>s;p2&#Z_0Sm+{z-ONHuDHo2v7W9`>Q9%j^|IY~BYNXMQAcSDX#C>bka zT{_kkrJ#ti<_%VI%1*8vo}(0PZBm9&ydY^kQ$QmPhJ^SH@1QDw8`q8l&=wRm;n2*07T zk!C)pv-h`xy$;L7ab{6S85TyAdc24xI>6o~#fnWaD#bWB22fl?;UI3jpBcn(R?>!7 zfFmizlba$=ofRigTos*z8I|l7N*|umjusrZP~SjlJS&6azHFJ5sj9y^il;?KDyBa~ z!(wi+q8V)3|K*ocFLRI6n2C^{xGQ4|*;X}SiaNq9Y3?<({F8A@#of|b)5(ashH8Ki zMu6eN2T&GLU3t`K7WdT}4Fk$WdWF;)D`}_Ez)zLTl1HhqQz2wNRpAPfvI|(I!xu0t zIVM;Pa9z*}a9hSxsq^kLntq1!QxkqDg7~&PGTtHMm}IZykmQ8qoa75ZJm;03Dr zrm#=#Cjhy6emd-7y;!)+$HQK_%fKIFiOR^oAUcA)pxj5xjJyib7v$ZDHX|QITn_Sw zE?8Ebscx?PvnCoh)P;drPjkN35zAPhv>on*+Zj7 z`I5QLg2)9CJ?KLq-joP~NTMG4^Uy=#lY|gOL4}aLWaqd2JluOe=bZ2P9nSr6U!V9i zG8Njf5d&drTNzPkgaEh}CgxzfQnVD+qP4iK*ih(g9$R?)V>PAxWC}+!`ZiRU5U? z5{g*D>mkRwYj#tmZmgQ(9;>LQM7eaQ3cz3?s8Q9vy+;VUlms zSx;rSN~`g-pAGOr27<>(oF-vcMP%(l7^5Wy$wM$h@(f9RTQUSs%M&N@y}eGQCYUk5 z*$;7+!%nBqo1=m-@!4CpY-XLuIev7xeM6l?DzkQSD=?-qQ0XH9lozJIhC4kuio2b* zJfCFU&gey_jdDyiFR=^ek7k9jocSvhW8r=(Yjkf%1RDTG1nCm8GCyPXww$+Ry|lBq zkv7SFlB1I61l<7Rl2;|KOHN4^B}_9)YqaR1hNFoV^&vGr#~XNYB}Y=6+*^9p49oI0}Vpn zz(K;I1IGy^10N)H^&R~RukdX$!j}yEP4(L@^rv*b9>g9(R}*FlZw$Oem}tVMgeOh- USs;YkPQCuS0Z`3o8EISLe}%KEq5uE@ diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj.d b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj.d index 36aedb4..914959f 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj.d +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj.d @@ -52,4 +52,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj: \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim_ex.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart.h \ - D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_ll_usb.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd_ex.h diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj index eaafa50a5060378f7c63c8063e7d33603411af55..64038b09063aa8bc30a29c7cee18fcb55e454eda 100644 GIT binary patch literal 24772 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 Z{0C3H!@IRnq_f literal 23908 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 T=PS05MRLh@r82Gx9J&7h#PEA+ literal 14992 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 H9KHVqPXu$F diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj.d b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj.d index 3a6e9bf..33db35d 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj.d +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj.d @@ -52,4 +52,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj: \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim_ex.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_ll_usb.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd_ex.h \ D:\cubecode\Encoder_Time_Sysn\Core\Inc/stm32h7xx_it.h diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj.d b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj.d index 229ecf8..f69e6fa 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj.d +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj.d @@ -50,4 +50,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj: \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim_ex.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart.h \ - D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_ll_usb.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd_ex.h diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj.d b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj.d index 9cc3900..a7cbc11 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj.d +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj.d @@ -52,4 +52,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj: \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_tim_ex.h \ D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart.h \ - D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_uart_ex.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_ll_usb.h \ + D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc/stm32h7xx_hal_pcd_ex.h diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj index 3f5326fee7b2335d6ea207eec7a3574d516911c2..95f95d46a1491a433044a0acd330d2a8f81fd4b3 100644 GIT binary patch delta 9497 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 OoZ)Gqws6`>rT+tszEaEp delta 10376 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 CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_26) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pcd_ex.c.s + CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_25) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_27) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.i: cmake_force @@ -420,7 +448,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_26) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_28) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_pwr_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.i: cmake_force @@ -434,7 +462,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_27) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_29) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.i: cmake_force @@ -448,7 +476,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_28) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_30) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_rcc_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.i: cmake_force @@ -462,7 +490,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_29) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_31) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.i: cmake_force @@ -476,7 +504,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_30) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_32) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_tim_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.i: cmake_force @@ -490,7 +518,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_31) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_33) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.i: cmake_force @@ -504,7 +532,7 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_32) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_34) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.i: cmake_force @@ -515,6 +543,132 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.s" F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_hal_uart_ex.c.s +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_35) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c.obj -c D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Drivers\STM32H7xx_HAL_Driver\Src\stm32h7xx_ll_usb.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_36) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c.obj -c D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_37) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c.obj -c D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_core.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_38) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c.obj -c D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ctlreq.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_39) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c.obj -c D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\Middlewares\ST\STM32_USB_Device_Library\Core\Src\usbd_ioreq.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj: ../USB_DEVICE/App/usb_device.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_40) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usb_device.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usb_device.c.obj -c D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usb_device.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usb_device.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usb_device.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usb_device.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usb_device.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj: ../USB_DEVICE/App/usbd_cdc_if.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_41) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_cdc_if.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_cdc_if.c.obj -c D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_cdc_if.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_cdc_if.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_cdc_if.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_cdc_if.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_cdc_if.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj: ../USB_DEVICE/App/usbd_desc.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_42) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_desc.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_desc.c.obj -c D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_desc.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_desc.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_desc.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App\usbd_desc.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\App\usbd_desc.c.s + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj: ../USB_DEVICE/Target/usbd_conf.c +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj: CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_43) "Building C object CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -MF CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\Target\usbd_conf.c.obj.d -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\Target\usbd_conf.c.obj -c D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\Target\usbd_conf.c + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.i" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\Target\usbd_conf.c > CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\Target\usbd_conf.c.i + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.s" + F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S D:\cubecode\Encoder_Time_Sysn\USB_DEVICE\Target\usbd_conf.c -o CMakeFiles\Encoder_Time_Sysn.elf.dir\USB_DEVICE\Target\usbd_conf.c.s + # Object files for target Encoder_Time_Sysn.elf Encoder_Time_Sysn_elf_OBJECTS = \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj" \ @@ -541,6 +695,8 @@ Encoder_Time_Sysn_elf_OBJECTS = \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj" \ @@ -548,7 +704,16 @@ Encoder_Time_Sysn_elf_OBJECTS = \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj" \ "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj" \ -"CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj" +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj" \ +"CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj" # External object files for target Encoder_Time_Sysn.elf Encoder_Time_Sysn_elf_EXTERNAL_OBJECTS = @@ -577,6 +742,8 @@ Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HA Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj @@ -585,9 +752,18 @@ Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HA Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj +Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/build.make Encoder_Time_Sysn.elf: CMakeFiles/Encoder_Time_Sysn.elf.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_33) "Linking C executable Encoder_Time_Sysn.elf" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=$(CMAKE_PROGRESS_44) "Linking C executable Encoder_Time_Sysn.elf" $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles\Encoder_Time_Sysn.elf.dir\link.txt --verbose=$(VERBOSE) @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Building D:/cubecode/Encoder_Time_Sysn/cmake-build-debug/Encoder_Time_Sysn.hex" @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "Building D:/cubecode/Encoder_Time_Sysn/cmake-build-debug/Encoder_Time_Sysn.bin" diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/cmake_clean.cmake b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/cmake_clean.cmake index 042e1a3..526802f 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/cmake_clean.cmake +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/cmake_clean.cmake @@ -46,6 +46,10 @@ file(REMOVE_RECURSE "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj.d" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj.d" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj.d" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj" @@ -62,6 +66,24 @@ file(REMOVE_RECURSE "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj.d" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj" "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj.d" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj" + "CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj.d" "Encoder_Time_Sysn.elf" "Encoder_Time_Sysn.elf.manifest" "Encoder_Time_Sysn.elf.pdb" diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.internal b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.internal index d45a0a9..d92d587 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.internal +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.internal @@ -56,6 +56,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/gpio.c @@ -112,6 +115,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/main.c @@ -167,16 +173,18 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h D:/cubecode/Encoder_Time_Sysn/Core/Inc/dma.h D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h D:/cubecode/Encoder_Time_Sysn/Core/Inc/tim.h D:/cubecode/Encoder_Time_Sysn/Core/Inc/usart.h - D:/cubecode/Encoder_Time_Sysn/Core/Inc/gpio.h - D:/cubecode/Encoder_Time_Sysn/Core/Inc/retarget.h - D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usb_device.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h @@ -188,10 +196,27 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/gpio.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_cdc_if.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/retarget.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/retarget.c @@ -268,6 +293,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h @@ -327,6 +355,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/stm32h7xx_it.c @@ -382,6 +413,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_it.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/syscalls.c.obj @@ -504,6 +538,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/tim.c @@ -560,6 +597,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj D:/cubecode/Encoder_Time_Sysn/Core/Src/usart.c @@ -616,20 +656,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c @@ -684,6 +713,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c @@ -738,6 +770,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c @@ -792,6 +827,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c @@ -846,6 +884,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c @@ -900,6 +941,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c @@ -954,6 +998,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c @@ -1008,6 +1055,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c @@ -1062,6 +1112,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c @@ -1116,6 +1169,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c @@ -1170,6 +1226,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c @@ -1224,6 +1283,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c @@ -1278,6 +1340,123 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c @@ -1332,6 +1511,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c @@ -1386,6 +1568,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c @@ -1440,6 +1625,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c @@ -1494,6 +1682,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c @@ -1548,6 +1739,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c @@ -1602,6 +1796,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c @@ -1656,6 +1853,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c @@ -1710,4 +1910,760 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usb_device.c + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usb_device.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_desc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_cdc_if.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_cdc_if.c + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_cdc_if.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_desc.c + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/App/usbd_desc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.c + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/core_cm7.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_version.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_compiler.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/cmsis_gcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Include/mpu_armv7.h + D:/cubecode/Encoder_Time_Sysn/Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/stm32h7xx_hal_conf.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h + D:/cubecode/Encoder_Time_Sysn/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/USB_DEVICE/Target/usbd_conf.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h + D:/cubecode/Encoder_Time_Sysn/Core/Inc/main.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h + D:/cubecode/Encoder_Time_Sysn/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.make b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.make index 0b72817..2dc192d 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.make +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/compiler_depend.make @@ -54,7 +54,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj: ../Core/Src/dma.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj: ../Core/Src/gpio.c \ ../Core/Inc/gpio.h \ @@ -109,7 +112,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj: ../Core/Src/gpio.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj: ../Core/Src/main.c \ ../Core/Inc/main.h \ @@ -164,16 +170,18 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj: ../Core/Src/main.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ ../Core/Inc/dma.h \ ../Core/Inc/main.h \ ../Core/Inc/tim.h \ ../Core/Inc/usart.h \ - ../Core/Inc/gpio.h \ - ../Core/Inc/retarget.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h \ + ../USB_DEVICE/App/usb_device.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ @@ -185,10 +193,27 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj: ../Core/Src/main.c \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/gpio.h \ + ../USB_DEVICE/App/usbd_cdc_if.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../Core/Inc/retarget.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj: ../Core/Src/retarget.c \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ @@ -264,6 +289,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj: ../Core/Src/retarg ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ @@ -321,7 +349,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj: ../Core/S ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj: ../Core/Src/stm32h7xx_it.c \ ../Core/Inc/main.h \ @@ -376,6 +407,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj: ../Core/Src/st ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ ../Core/Inc/stm32h7xx_it.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/syscalls.c.obj: ../Core/Src/syscalls.c \ @@ -494,7 +528,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj: ../Core/Sr ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj: ../Core/Src/tim.c \ ../Core/Inc/tim.h \ @@ -549,7 +586,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj: ../Core/Src/tim.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj: ../Core/Src/usart.c \ ../Core/Inc/usart.h \ @@ -605,20 +645,9 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj: ../Core/Src/usart.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -671,7 +700,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -724,7 +756,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -777,7 +812,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -830,7 +868,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -883,7 +924,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -936,7 +980,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -989,7 +1036,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1042,7 +1092,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1095,7 +1148,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1148,7 +1204,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1201,7 +1260,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1254,7 +1316,122 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1307,7 +1484,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1360,7 +1540,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1413,7 +1596,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1466,7 +1652,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1519,7 +1708,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1572,7 +1764,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1625,7 +1820,10 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ @@ -1678,23 +1876,764 @@ CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c \ + ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj: ../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj: ../USB_DEVICE/App/usb_device.c \ + ../USB_DEVICE/App/usb_device.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../USB_DEVICE/App/usbd_desc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../USB_DEVICE/App/usbd_cdc_if.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj: ../USB_DEVICE/App/usbd_cdc_if.c \ + ../USB_DEVICE/App/usbd_cdc_if.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj: ../USB_DEVICE/App/usbd_desc.c \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../USB_DEVICE/App/usbd_desc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h + +CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj: ../USB_DEVICE/Target/usbd_conf.c \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h \ + ../Drivers/CMSIS/Include/core_cm7.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_newlib_version.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h \ + ../Drivers/CMSIS/Include/cmsis_version.h \ + ../Drivers/CMSIS/Include/cmsis_compiler.h \ + ../Drivers/CMSIS/Include/cmsis_gcc.h \ + ../Drivers/CMSIS/Include/mpu_armv7.h \ + ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/system_stm32h7xx.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h \ + ../Core/Inc/stm32h7xx_hal_conf.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/math.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/reent.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/newlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/ieeefp.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/lock.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/cdefs.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/_ansi.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_mdma.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_cortex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart_ex.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h \ + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../USB_DEVICE/Target/usbd_conf.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timespec.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/sched.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h \ + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h \ + ../Core/Inc/main.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h \ + ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h ../Core/Src/dma.c: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim_ex.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h: - -../Core/Inc/retarget.h: - ../Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h: ../Core/Inc/dma.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h: - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rcc.h: @@ -1745,12 +2684,16 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdint.h: +../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd_ex.h: + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_default_types.h: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_exti.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/features.h: +../USB_DEVICE/Target/usbd_conf.h: + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_intsup.h: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_uart.h: @@ -1773,6 +2716,8 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pwr_ex.h: +../USB_DEVICE/App/usb_device.h: + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_pthreadtypes.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stddef.h: @@ -1787,6 +2732,8 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/config.h: +../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_pcd.h: + ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_types.h: @@ -1805,30 +2752,36 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h: - -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h: - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma_ex.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h: - ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h: ../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_tim.h: +../Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_usb.h: + ../Core/Inc/gpio.h: ../Core/Inc/tim.h: ../Core/Inc/usart.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h: +../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h: +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/types.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/endian.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_endian.h: +../Core/Inc/retarget.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/select.h: + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_sigset.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_timeval.h: @@ -1841,13 +2794,37 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/types.h: +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stat.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdlib.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h: + +../USB_DEVICE/App/usbd_cdc_if.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/string.h: + F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_locale.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/stdio.h: +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/strings.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/lib/gcc/arm-none-eabi/10.3.1/include/stdarg.h: +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/string.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/stdio.h: +../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc/usbd_cdc.h: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/time.h: + +F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/time.h: ../Core/Src/retarget.c: @@ -1867,10 +2844,6 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Core/Inc/stm32h7xx_it.h: -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/stdlib.h: - -F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/alloca.h: - F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/signal.h: F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/signal.h: @@ -1887,6 +2860,8 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c: +../USB_DEVICE/App/usb_device.c: + ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c: @@ -1901,12 +2876,18 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c: +../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c: + +../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c: + ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c: +../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c: + ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c: @@ -1914,3 +2895,19 @@ F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c: ../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c: + +../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c: + +../Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c: + +../USB_DEVICE/App/usbd_desc.h: + +../USB_DEVICE/App/usbd_cdc_if.c: + +../USB_DEVICE/App/usbd_desc.c: + +../USB_DEVICE/Target/usbd_conf.c: diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make index 8281a2b..3abead5 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/flags.make @@ -5,13 +5,13 @@ # compile C with F:/WORK/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc.exe ASM_DEFINES = -DDEBUG -DSTM32H750xx -DUSE_HAL_DRIVER -ASM_INCLUDES = -ID:\cubecode\Encoder_Time_Sysn\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc\Legacy -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Device\ST\STM32H7xx\Include -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Include +ASM_INCLUDES = -ID:\cubecode\Encoder_Time_Sysn\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc\Legacy -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Device\ST\STM32H7xx\Include -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Include -ID:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App -ID:\cubecode\Encoder_Time_Sysn\USB_DEVICE\Target -ID:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc ASM_FLAGS = -g -mcpu=cortex-m7 -mthumb -mthumb-interwork -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 -x assembler-with-cpp -Og -g C_DEFINES = -DDEBUG -DSTM32H750xx -DUSE_HAL_DRIVER -C_INCLUDES = -ID:\cubecode\Encoder_Time_Sysn\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc\Legacy -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Device\ST\STM32H7xx\Include -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Include +C_INCLUDES = -ID:\cubecode\Encoder_Time_Sysn\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc -ID:\cubecode\Encoder_Time_Sysn\Drivers\STM32H7xx_HAL_Driver\Inc\Legacy -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Device\ST\STM32H7xx\Include -ID:\cubecode\Encoder_Time_Sysn\Drivers\CMSIS\Include -ID:\cubecode\Encoder_Time_Sysn\USB_DEVICE\App -ID:\cubecode\Encoder_Time_Sysn\USB_DEVICE\Target -ID:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Core\Inc -ID:\cubecode\Encoder_Time_Sysn\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Inc C_FLAGS = -g -mcpu=cortex-m7 -mthumb -mthumb-interwork -ffunction-sections -fdata-sections -fno-common -fmessage-length=0 -Og -g -std=gnu11 diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/link.txt b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/link.txt index 7fae9f5..3d3364f 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/link.txt +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/link.txt @@ -1 +1 @@ -F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe -g -Wl,-gc-sections,--print-memory-usage,-Map=D:/cubecode/Encoder_Time_Sysn/cmake-build-debug/Encoder_Time_Sysn.map -mcpu=cortex-m7 -mthumb -mthumb-interwork -T D:/cubecode/Encoder_Time_Sysn/STM32H750VBTX_FLASH.ld CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/syscalls.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj -o Encoder_Time_Sysn.elf +F:\WORK\arm-none-eabi-gcc\gcc-arm-none-eabi-10.3-2021.10-win32\gcc-arm-none-eabi-10.3-2021.10\bin\arm-none-eabi-gcc.exe -g -Wl,-gc-sections,--print-memory-usage,-Map=D:/cubecode/Encoder_Time_Sysn/cmake-build-debug/Encoder_Time_Sysn.map -mcpu=cortex-m7 -mthumb -mthumb-interwork -T D:/cubecode/Encoder_Time_Sysn/STM32H750VBTX_FLASH.ld CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/syscalls.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hsem.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -o Encoder_Time_Sysn.elf diff --git a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/progress.make b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/progress.make index cd63c0b..5a239a3 100644 --- a/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/progress.make +++ b/cmake-build-debug/CMakeFiles/Encoder_Time_Sysn.elf.dir/progress.make @@ -31,4 +31,15 @@ CMAKE_PROGRESS_30 = 30 CMAKE_PROGRESS_31 = 31 CMAKE_PROGRESS_32 = 32 CMAKE_PROGRESS_33 = 33 +CMAKE_PROGRESS_34 = 34 +CMAKE_PROGRESS_35 = 35 +CMAKE_PROGRESS_36 = 36 +CMAKE_PROGRESS_37 = 37 +CMAKE_PROGRESS_38 = 38 +CMAKE_PROGRESS_39 = 39 +CMAKE_PROGRESS_40 = 40 +CMAKE_PROGRESS_41 = 41 +CMAKE_PROGRESS_42 = 42 +CMAKE_PROGRESS_43 = 43 +CMAKE_PROGRESS_44 = 44 diff --git a/cmake-build-debug/CMakeFiles/Makefile2 b/cmake-build-debug/CMakeFiles/Makefile2 index e8f0070..95a7376 100644 --- a/cmake-build-debug/CMakeFiles/Makefile2 +++ b/cmake-build-debug/CMakeFiles/Makefile2 @@ -80,12 +80,12 @@ clean: CMakeFiles/Encoder_Time_Sysn.elf.dir/clean CMakeFiles/Encoder_Time_Sysn.elf.dir/all: $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/depend $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33 "Built target Encoder_Time_Sysn.elf" + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 "Built target Encoder_Time_Sysn.elf" .PHONY : CMakeFiles/Encoder_Time_Sysn.elf.dir/all # Build rule for subdir invocation for target. CMakeFiles/Encoder_Time_Sysn.elf.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles 33 + $(CMAKE_COMMAND) -E cmake_progress_start D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles 44 $(MAKE) $(MAKESILENT) -f CMakeFiles\Makefile2 CMakeFiles/Encoder_Time_Sysn.elf.dir/all $(CMAKE_COMMAND) -E cmake_progress_start D:\cubecode\Encoder_Time_Sysn\cmake-build-debug\CMakeFiles 0 .PHONY : CMakeFiles/Encoder_Time_Sysn.elf.dir/rule diff --git a/cmake-build-debug/CMakeFiles/progress.marks b/cmake-build-debug/CMakeFiles/progress.marks index bb95160..c739b42 100644 --- a/cmake-build-debug/CMakeFiles/progress.marks +++ b/cmake-build-debug/CMakeFiles/progress.marks @@ -1 +1 @@ -33 +44 diff --git a/cmake-build-debug/Encoder_Time_Sysn.bin b/cmake-build-debug/Encoder_Time_Sysn.bin index 107e6373aa9578e9711c3b01c8a9b1be6edc0a84..8ff822470b5e5226b5f8aa5d6cb30e15bf1afc7c 100644 GIT binary patch delta 18115 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 + + + + @@ -61,6 +65,10 @@ + + + + @@ -288,6 +296,12 @@ + + + + @@ -354,6 +368,9 @@ + + @@ -396,6 +413,12 @@ + + + + @@ -420,9 +443,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cmake-build-debug/Encoder_Time_Sysn.elf b/cmake-build-debug/Encoder_Time_Sysn.elf index ec8b90d099ebaea5b7049988e3d79735d2373e9c..763ed5757e46a802f9c6ab229969d3019f149e0e 100644 GIT binary patch literal 675856 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 O-g3V7C8G9i#EJsJxXC2s0 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%0A3y1NDk7XiFeR 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 delta 135336 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 N$;$gS$N5Yr`#*9&wmbj; diff --git a/cmake-build-debug/Encoder_Time_Sysn.hex b/cmake-build-debug/Encoder_Time_Sysn.hex index 4792525..a0e005a 100644 --- a/cmake-build-debug/Encoder_Time_Sysn.hex +++ b/cmake-build-debug/Encoder_Time_Sysn.hex @@ -1,50 +1,50 @@ :020000040800F2 -:1000000000000824291300085D0F00085F0F000896 -:10001000610F0008630F0008650F00080000000072 -:10002000000000000000000000000000670F000852 -:10003000690F0008000000006B0F00086D0F00083A -:100040007913000879130008791300087913000860 -:100050007913000879130008791300087913000850 -:10006000750F000879130008810F0008990F000828 -:100070007913000879130008791300087913000830 -:100080007913000879130008791300087913000820 -:100090007913000879130008791300087913000810 -:1000A0007913000879130008791300087913000800 -:1000B000A90F0008791300087913000879130008C4 -:1000C00079130008791300087913000879130008E0 -:1000D00079130008B90F0008791300087913000894 -:1000E0007913000879130008000000007913000854 -:1000F00079130008791300087913000879130008B0 -:10010000791300087913000879130008791300089F -:10011000791300087913000879130008791300088F -:10012000791300087913000879130008791300087F -:10013000791300087913000879130008791300086F +:1000000000000824CD130008F10F0008F30F0008CA +:10001000F50F0008F70F0008F90F000800000000B6 +:10002000000000000000000000000000FB0F0008BE +:10003000FD0F000800000000FF0F0008011000087D +:100040001D1400081D1400081D1400081D140008CC +:100050001D1400081D1400081D14000809100008D4 +:100060001D1400081D140008151000082D100008AC +:100070001D1400081D1400081D1400081D1400089C +:100080001D1400081D1400081D1400081D1400088C +:100090001D1400081D1400081D1400081D1400087C +:1000A0001D1400081D1400081D1400081D1400086C +:1000B0003D1000081D1400081D1400081D14000840 +:1000C0001D1400081D1400081D1400081D1400084C +:1000D0001D1400084D1000081D1400081D14000810 +:1000E0001D1400081D140008000000001D14000865 +:1000F0001D1400081D1400081D1400081D1400081C +:100100001D1400081D1400081D1400081D1400080B +:100110001D1400081D1400081D1400081D140008FB +:100120001D1400081D1400081D1400081D140008EB +:100130001D1400081D1400081D1400081D140008DB :1001400000000000000000000000000000000000AF -:10015000791300087913000879130008791300084F -:10016000791300087913000879130008791300083F -:10017000791300087913000879130008791300082F -:10018000791300087913000879130008791300081F -:10019000791300087913000879130008791300080F -:1001A00079130008791300087913000879130008FF -:1001B00079130008791300087913000879130008EF -:1001C00079130008791300087913000879130008DF -:1001D00079130008791300087913000879130008CF -:1001E00079130008791300087913000879130008BF -:1001F00079130008791300087913000879130008AF -:10020000791300087913000879130008791300089E -:10021000791300087913000879130008791300088E -:100220007913000879130008791300080000000012 -:100230007913000879130008000000007913000802 -:10024000791300087913000879130008791300085E -:10025000791300087913000879130008791300084E -:10026000791300087913000879130008791300083E -:1002700079130008791300087913000800000000C2 -:1002800079130008791300087913000800000000B2 -:080290000000000079130008D2 +:100150001D1400081D1400081D1400081D140008BB +:100160001D1400081D1400085D1000086D10000823 +:100170001D1400087D1000081D1400081D1400083F +:100180001D1400081D1400081D1400081D1400088B +:100190001D1400081D1400081D1400081D1400087B +:1001A0001D1400081D1400081D1400081D1400086B +:1001B0001D1400081D1400081D1400081D1400085B +:1001C0001D1400081D1400081D1400081D1400084B +:1001D0001D1400081D1400081D1400081D1400083B +:1001E0001D1400081D1400081D1400081D1400082B +:1001F0001D1400081D1400081D1400081D1400081B +:100200001D1400081D1400081D1400081D1400080A +:100210001D1400081D1400081D1400081D140008FA +:100220001D1400081D1400081D1400080000000023 +:100230001D1400081D140008000000001D14000813 +:100240001D1400081D1400081D1400081D140008CA +:100250001D1400081D1400081D1400081D140008BA +:100260001D1400081D1400081D1400081D140008AA +:100270001D1400081D1400081D14000800000000D3 +:100280001D1400081D1400081D14000800000000C3 +:08029000000000001D1400082D :1002980010B5054C237833B9044B13B10448AFF3B8 -:1002A80000800123237010BD5408002400000000C2 -:1002B8009C74000808B5034B1BB103490348AFF30E -:1002C800008008BD00000000580800249C74000845 +:1002A80000800123237010BD3C09002400000000D9 +:1002B800689E000808B5034B1BB103490348AFF318 +:1002C800008008BD0000000040090024689E000866 :1002D80080F0004002E000BF81F0004142001FBFF3 :1002E8005FEA410392EA030F7FEA226C7FEA236CFC :1002F8006AD04FEA1262D2EB1363C1BFD2184140F1 @@ -175,1839 +175,2526 @@ :100AC80032E7084609E76444023842E7704700BF46 :100AD80000B583B00B4BD3F8D82042F00102C3F81D :100AE800D820D3F8D83003F001030193019B0022EA -:100AF80011460B2000F0BEFC0B2000F0F1FC03B007 -:100B08005DF804FB0044025810B588B00024039433 -:100B18000494059406940794194BD3F8E02042F006 +:100AF80011460B2000F024FD0B2000F057FD03B039 +:100B08005DF804FB0044025830B58BB0002405940E +:100B18000694079408940994294BD3F8E02042F0EE :100B28008002C3F8E020D3F8E02002F080020192AE -:100B3800019AD3F8E02042F00102C3F8E020D3F88C -:100B4800E03003F001030293029B142303934FF454 -:100B58008813049303A90B4802F0E6F822462146BD -:100B6800082000F087FC082000F0BAFC2246214645 -:100B78000A2000F07FFC0A2000F0B2FC08B010BD8B -:100B88000044025800000258042800D07047084B5F -:100B98001B78002BFAD110B5064C236000F04CFCF2 -:100BA8002060082000F0AAFC014B01221A7010BD39 -:100BB800700800247808002410B584B0002400943C -:100BC80001940294039400F0BFFC01238DF80030D7 -:100BD8008DF801404FF01052019212228DF8082032 -:100BE8008DF809408DF80A4003228DF80B208DF806 -:100BF8000C408DF80D308DF80E308DF80F4068469A -:100C080000F0C0FC042000F0ADFC04B010BD0000F2 -:100C18000E4B1A680E4B1A70C2F307215970C2F3B3 -:100C280007419970120EDA700A4A11681971116831 -:100C3800090A59711168090C99711268120EDA7152 -:100C48000D221A72FF225A72704700BF88080024CA -:100C58007C0800247408002472B6FEE700B59FB033 -:100C68004C2200210BA805F08BFB2022002103A8B1 -:100C780005F086FB022002F07BF900230093384B35 -:100C8800DA6A22F00102DA62DB6A03F001030093F8 -:100C9800344B9A6942F440429A619B6903F4404399 -:100CA8000093009B2F4B9B6913F4005FFAD02E4BE7 -:100CB800D3F8F42042F00202C3F8F420D3F8F43059 -:100CC80003F002030193019B00230293254B9A69C9 -:100CD80042F440429A619B6903F440430293204BDB -:100CE800DA6A42F00102DA62DB6A03F00103029376 -:100CF800029B1C4B9B6913F4005FFAD001230B93F2 -:100D08004FF480330C930223149315931693F02217 -:100D18001792189319931A9308231B9300231C9373 -:100D28001D930BA802F04EF9B0B93F230393032398 -:100D380004930023059308230693402307930893FD -:100D48004FF4806209920A93042103A802F0A0FDDF -:100D580020B91FB05DF804FBFFF77EFFFFF77CFFAB -:100D680000040058004802580044025808B5FFF72C -:100D780023FF364B5B6913F4003F13D1BFF34F8F4A -:100D8800BFF36F8F314B0022C3F85022BFF34F8F50 -:100D9800BFF36F8F5A6942F400325A61BFF34F8F25 -:100DA800BFF36F8F294B5B6913F4803F27D1274B23 -:100DB8000022C3F88420BFF34F8FD3F88040C4F3D8 -:100DC8004E3000E01846C4F3C90243F6E07303EA64 -:100DD800401343EA82731D49C1F860321346013A51 -:100DE800002BF2D1431E0028ECD1BFF34F8F4B6983 -:100DF80043F480334B61BFF34F8FBFF36F8F00F025 -:100E0800E1FAFFF72BFFFFF77FFEFFF761FE00F027 -:100E180059F900F0C9F90E4800F026F83C210D48B0 -:100E280004F017F90B4B1B685A6A0B4B1A6000F059 -:100E380003FB0A4B1B68C01A094B1860FFF7E8FE52 -:100E48000A220849024804F001FAEBE700ED00E045 -:100E580058090024940800248808002478080024ED -:100E6800740800247C08002408B5054B1860054B5D -:100E78001868002302221946806805F0D3FA08BDD5 -:100E88008C0800241000002410B5013801280AD865 -:100E980014464FF0FF3392B20748006805F028F86F -:100EA80040B9204610BD05F041FA092303604FF010 -:100EB800FF30F7E70520F5E78C080024022801D861 -:100EC8000020704708B505F031FA092303604FF098 -:100ED800FF3008BD08B505F029FA092303604FF073 -:100EE800FF3008BD08B548B94FF0FF330122084864 -:100EF800006805F065F840B9012008BD05F016FA4C -:100F0800092303604FF0FF30F7E70520F5E700BF3E -:100F18008C08002408B5022804D84FF400534B600D -:100F2800002008BD05F002FA09230360F8E7000075 -:100F380082B0074BD3F8F42042F00202C3F8F42041 -:100F4800D3F8F43003F002030193019B02B0704719 -:100F580000440258FEE7FEE7FEE7FEE7FEE77047BB -:100F68007047704708B500F05BFA08BD08B5042063 -:100F780001F0EEFF08BD000008B5102001F0E8FF01 -:100F8800024B1B6800225A6208BD00BF9408002467 -:100F980008B5024801F02CFB08BD00BFE00800249A -:100FA80008B5024803F0A1FE08BD00BF940800245C -:100FB80008B5024804F00CFA08BD00BF580900241F -:100FC80010B503460C4A0D490D48006840B10C485D -:100FD80000680344521A934206D8094A136010BDA8 -:100FE8000748084C0460F2E705F0A0F90C230360F9 -:100FF8004FF0FF30F3E700BF0000082400040000B2 -:1010080090080024400A0024244B1B6803F00F03B7 -:10101800062B06D8214A136823F00F0343F0070371 -:1010280013601F4B1A6842F001021A6000221A610D -:1010380019681C4A0A401A60184B1B6813F0080FFD -:1010480006D0164A136823F00F0343F00703136012 -:10105800134B00229A61DA611A62134999621349A3 -:10106800D962134919635A639963DA6319645A6434 -:10107800196821F4802119601A660E4B1A680E4B04 -:101088001340B3F1005F03D20C4B0122C3F80821CF -:101098000B4B43F2D2021A60704700BF0020005287 -:1010A800004402587FEDF6EA000202020000FF0148 -:1010B800800201010010005C0000FFFF0080005169 -:1010C8000040005200B58DB02422002103A805F08D -:1010D80057F9002300930193029312484FF080427E -:1010E80002600322426083604FF0FF31C1600361F8 -:1010F8008361039201230593099303A903F03CFF3D -:1011080050B90023009302936946064804F006F894 -:1011180028B90DB05DF804FBFFF79EFDF1E7FFF776 -:101128009BFDF6E79408002400B589B000230393DB -:1011380004930593069307930368B3F1804F02D095 -:1011480009B05DF804FB164BD3F8E82042F0010221 -:10115800C3F8E820D3F8E82002F001020192019ACE -:10116800D3F8E02042F00102C3F8E020D3F8E030E1 -:1011780003F001030293029B0323039302230493C6 -:101188000123079303A9074801F0CEFD0022114669 -:101198001C2000F06FF91C2000F0A2F9D0E700BF76 -:1011A800004402580000025808B51748174B03605E -:1011B8004FF4E133436000238360C36003610C2272 -:1011C80042618361C36103624362836204F0E8FFA2 -:1011D80070B900210C4805F05FF860B900210A4891 -:1011E80005F07FF850B9084805F037F848B908BD48 -:1011F800FFF732FDEDE7FFF72FFDEFE7FFF72CFDD7 -:10120800F1E7FFF729FDF2E7580900240010014033 -:1012180030B5B9B0044600213391349135913691F7 -:101228003791C02202A805F0ABF822682F4B9A42EA -:1012380001D039B030BD01220023CDE9022302A834 -:1012480002F0C2FD00284AD1294BD3F8F02042F021 -:101258001002C3F8F020D3F8F02002F01002009238 -:10126800009AD3F8E02042F00102C3F8E020D3F856 -:10127800E03003F001030193019B4FF4C063339303 -:10128800022334930025359536950723379333A9E0 -:10129800184801F049FD1848184B03602A23436099 -:1012A80040238360C5604FF48063036145618561B5 -:1012B8004FF48073C3610562456200F0A3FB88B9EF -:1012C8000D4BE3679C6300221146252000F0D2F8FD -:1012D800252000F005F9E06F00F094FBA9E7FFF77F -:1012E800BBFCB1E7FFF7B8FCEAE700BF001001401C -:1012F8000044025800000258E00800241000024090 -:101308000268054B9A4200D07047044B1A680132B4 -:101318001A601B68F8E700BF00100140EC090024C0 -:10132800DFF834D0FFF770FE0C480D490D4A002352 -:1013380002E0D458C4500433C4188C42F9D30A4A82 -:101348000A4C002301E013600432A242FBD304F0EC -:10135800F3FFFFF70BFD704700000824000000248E -:10136800540800240C750008540800243C0A002482 -:10137800FEE70000104B1B780BB90120704710B531 -:1013880004464FF47A70B0FBF3F30C4A1068B0FBD4 -:10139800F3F000F0C5F868B90F2C01D901200AE074 -:1013A800002221464FF0FF3000F064F8044B1C6027 -:1013B800002000E0012010BD0800002400000024E7 -:1013C8000C00002410B5032000F042F802F054F994 -:1013D8000F498B69C3F303230E4AD35C03F01F0341 -:1013E800D8408B6903F00F03D35C03F01F0320FA86 -:1013F80003F3094A1360094B18600F20FFF7BAFF7F -:1014080010B10124204610BD0446FFF791FDF9E70D -:1014180000440258B47400080400002400000024AA -:10142800034B1B78034A11680B441360704700BFD5 -:1014380008000024F0090024014B1868704700BF19 -:10144800F0090024014B1868000C70470010005C7C -:101458000649CB6823F4E0631B041B0C000200F46C -:10146800E0600343024A1A43CA60704700ED00E097 -:101478000000FA0500B5174BDB68C3F30223C3F17C -:10148800070CBCF1040F28BF4FF0040C03F1040E45 -:10149800BEF1060F14D9033B4FF0FF3E0EFA0CFCC9 -:1014A80021EA0C0199400EFA03F322EA03031943D7 -:1014B800002807DB0901C9B2074B19545DF804FB82 -:1014C8000023E9E700F00F000901C9B2034B1954E2 -:1014D800F4E700BF00ED00E000E400E014ED00E0F8 -:1014E800002807DB00F01F02400901239340024A4D -:1014F80042F82030704700BF00E100E000280CDB14 -:1015080000F01F024009012393402030034A42F8AB -:101518002030BFF34F8FBFF36F8F704700E100E0BB -:101528000138B0F1807F0BD24FF0E0235861054AB3 -:10153800F02182F823100020986107221A61704771 -:101548000120704700ED00E0BFF35F8F044B5A6A3B -:1015580022F480325A620022C3F89420704700BFF8 -:1015680000ED00E040F00100054BC3F894005A6A12 -:1015780042F480325A62BFF34F8FBFF36F8F7047C8 -:1015880000ED00E04378144AC2F89830D2F8A03051 -:1015980023F00103C2F8A0304368C2F89C30017BF5 -:1015A800C37A1B0643EA0173817A43EAC143417B4C -:1015B80043EA8143817B43EA4143C17B43EA0143D8 -:1015C800417A43EA0123017A43EA410301780B4354 -:1015D800C2F8A030704700BF00ED00E0F0B4876D9E -:1015E8000468664E664DAC4218BFB44242D0183506 -:1015F800AC423FD01835AC423CD01835AC4239D05B -:101608001835AC4236D01835AC4233D01835AC4218 -:1016180030D005F55675AC422CD01835AC4229D0DF -:101628001835AC4226D01835AC4223D01835AC4218 -:1016380020D01835AC421DD01835AC421AD0183518 -:10164800AC4217D04F4DAC4214D01435AC4211D037 -:101658001435AC420ED01435AC420BD01435AC4224 -:1016680008D01435AC4205D01435AC4202D014353C -:10167800AC4207D1446E856E6560C46E14B1046FC8 -:10168800456F656004683D4E3D4DAC4218BFB4429D -:1016980052D01835AC424FD01835AC424CD0183522 -:1016A800AC4249D01835AC4246D01835AC4243D08C -:1016B8001835AC4240D005F55675AC423CD01835CB -:1016C800AC4239D01835AC4236D01835AC4233D09C -:1016D8001835AC4230D01835AC422DD01835AC4254 -:1016E8002AD01835AC4227D0264E274DAC4218BF19 -:1016F800B44211D0254DAC420ED01435AC420BD0BB -:101708001435AC4208D01435AC4205D01435AC427F -:1017180002D01435AC4224D1C46D04F01F05012455 -:10172800AC407C60046863608368402B20D0036809 -:1017380099600368DA6014E0C46D04F01F0C3F245C -:1017480004FA0CF4BC6005682C6824F480242C602E -:10175800046863608368402B05D003689960036858 -:10176800DA60F0BC704703689A600368D960F8E7EC -:1017780003689A600368D960F3E700BF100002406D -:1017880028000240085402581C5402583054025889 -:1017980003682749274A934218BF8B422FD0183233 -:1017A80093422CD01832934229D01832934226D033 -:1017B8001832934223D01832934220D018329342E1 -:1017C8001DD002F55672934219D01832934216D0A2 -:1017D8001832934213D01832934210D018329342E1 -:1017E8000DD0183293420AD01832934207D01832DB -:1017F800934204D023F0FF038365806D704710B4D3 -:10180800D9B210390C4AA2FB0142C2F302120B4CA6 -:10181800A25CC2655F2906D9094A1A40043282656A -:10182800806D10BC7047064A1A408265F8E700BF11 -:101838001000024028000240ABAAAAAAC4740008FB -:1018480000FCFFFF83699BB9836A012B0AD0022B36 -:1018580002D00BB100207047C36A13F0807F2AD1F1 -:1018680000207047C36AB3F1C07F26D000207047BC -:10187800B3F5005F0AD0836A022B26D9032B26D141 -:10188800C36A13F0807F24D100207047836A032B3A -:1018980003D8DFE803F01404140A00207047C36A71 -:1018A80013F0807F0DD100207047C36AB3F1C07F69 -:1018B80009D000207047012070470120704701209F -:1018C80070470120704701207047012070470020B1 -:1018D800704701207047000003682249224A93425A -:1018E80018BF8B4228D01432934225D01432934229 -:1018F80022D0143293421FD0143293421CD0143297 -:10190800934219D01432934216D0DAB2103A1749DA -:10191800A1FB0212120916491944A8291FD9154B0F -:1019280013449B000366144B436602F01F02012315 -:1019380003FA02F282667047DBB2083B0F4AA2FB49 -:1019480003230F4A02EB1312920002660D4A426605 -:10195800C3F30413012202FA03F3836670470832C3 -:10196800DDE700BF085402581C540258ABAAAAAAC3 -:10197800F0FBFDBF0082001080080240CDCCCCCC2B -:10198800009600168058025801794A1E072A2CD85A -:1019980030B40368154D164CA34218BFAB4218D09B -:1019A8001434A34215D01434A34212D01434A342E1 -:1019B8000FD01434A3420CD01434A34209D01434E9 -:1019C800A34206D00B4B0B449B00C3660A4B03672C -:1019D80005E00A4B0B449B00C366094B03670123D0 -:1019E80003FA02F2426730BC704770470854025845 -:1019F8001C5402583F820010400902403F960016CE -:101A08004059025870B50446FFF716FD002C00F047 -:101A1800B681054623685349534A934218BF8B42FF -:101A28000CBF0122002250D030318B424DD01831EA -:101A38008B424AD018318B4247D018318B4244D060 -:101A480018318B4241D018318B423ED001F5567186 -:101A58008B423AD018318B4237D018318B4234D070 -:101A680018318B4231D018318B422ED018318B422D -:101A78002BD018318B4228D018318B4225D03B49C6 -:101A88003B4A934218BF8B4200F03181394A934256 -:101A980000F02D811432934200F0298114329342D0 -:101AA80000F025811432934200F0218114329342D0 -:101AB80000F01D811432934200F0198140236365C0 -:101AC800032384F8353001204AE0022184F83510D8 -:101AD800002184F834107ABB274A93422CD018325C -:101AE800934229D01832934226D01832934223D0F9 -:101AF8001832934220D0183293421DD002F5567204 -:101B0800934219D01832934216D01832934213D008 -:101B18001832934210D0183293420DD018329342A3 -:101B28000AD01832934207D01832934204D01A6868 -:101B380022F001021A6003E01A6822F001021A601A -:101B480023681A6812F0010F18D0FFF775FC431BC1 -:101B5800052BF5D920236365032384F8353001204C -:101B680070BD00BF1000024028000240085402580F -:101B78001C54025830540258400002401A688148E8 -:101B88001040A168E2680A4321690A4361690A436F -:101B9800A1690A43E1690A43216A0A430243616A67 -:101BA800042900F099807849086878490140B1F122 -:101BB800005F11D36168A1F12905A1F13F00032855 -:101BC80088BF052D06D9A1F14700012802D94F3950 -:101BD800032901D842F480121A602668756925F035 -:101BE8000705636A1D43042B08D1A36A1D43E36AF2 -:101BF80023B12046FFF726FE002872D175612046E2 -:101C0800FFF7C6FDE36D03F01F023F239340836097 -:101C180023685F495F4A934218BF8B4242D018320B -:101C280093423FD0183293423CD01832934239D075 -:101C38001832934236D01832934233D01832934236 -:101C480030D002F5567293422CD01832934229D0E4 -:101C58001832934226D01832934223D01832934236 -:101C680020D0183293421DD0183293421AD018321D -:101C7800934217D0484A934214D01432934211D059 -:101C8800143293420ED0143293420BD01432934242 -:101C980008D01432934205D01432934202D0143241 -:101CA800934213D12046FFF717FEA368802B59D023 -:101CB800236E22791A60636EA26E5A606368013BD4 -:101CC800072B52D90023E36623676367002060650A -:101CD800012384F8353043E7E16A206B01430A4366 -:101CE80061E740236365012084F8350038E7022264 -:101CF80084F83520002284F834201A6827491140D6 -:101D0800A268402A2CD0802A27D00022E06842EA24 -:101D1800D002206942EAD002606942EAD002A06992 -:101D280042EAD002E06942EAD002206A42EA10128E -:101D38000A431A6022681A4B13441A4AA2FB032367 -:101D48001B099B00E3652046FFF722FDE26D02F0C8 -:101D58001F0101228A4042605AE74FF48042D5E7CA -:101D68001022D3E700236360A2E72046FFF70CFEAA -:101D7800E36E00221A60236F626F5A60A6E70120A3 -:101D8800EEE600BF3F8010FE0010005C0000FFFF81 -:101D98001000024028000240085402580F00FEFFBD -:101DA800F8ABFDA7CDCCCCCC002800F03E8170B5B7 -:101DB800044690F83400012800F03981012084F8A5 -:101DC800340094F83500C0B2012807D04FF40063FE -:101DD8006365002384F83430012070BD022084F844 -:101DE8003500002060652068924E934DA84218BFC8 -:101DF800B0422FD01835A8422CD01835A84229D087 -:101E08001835A84226D01835A84223D01835A8423C -:101E180020D01835A8421DD005F55675A84219D00E -:101E28001835A84216D01835A84213D01835A8423C -:101E380010D01835A8420DD01835A8420AD0183548 -:101E4800A84207D01835A84204D0056825F0010536 -:101E5800056003E0056825F0010505602046FFF7E9 -:101E6800BDFB23687349744A934218BF8B4238D02C -:101E78001832934235D01832934232D018329342F6 -:101E88002FD0183293422CD01832934229D01832CE -:101E9800934226D002F55672934222D018329342CA -:101EA8001FD0183293421CD01832934219D01832DE -:101EB800934216D01832934213D01832934210D05E -:101EC800183293420DD01A6822F00E0242F00A022C -:101ED8001A60236C93B12268136843F004031360FB -:101EE8000CE01A6822F01E0242F016021A60236CF7 -:101EF80023B12268136843F00803136023684D492F -:101F08004D4A934218BF8B4242D0183293423FD079 -:101F1800183293423CD01832934239D01832934247 -:101F280036D01832934233D01832934230D002F56B -:101F3800567293422CD01832934229D018329342C9 -:101F480026D01832934223D01832934220D0183228 -:101F580093421DD0183293421AD01832934217D0A8 -:101F6800364A934214D01432934211D01432934219 -:101F78000ED0143293420BD01432934208D014324C -:101F8800934205D01432934202D0143293420ED1B8 -:101F9800236E1A6812F4803F03D01A6842F48072E4 -:101FA8001A60E36E1BB11A6842F480721A602368E3 -:101FB8002049214A934218BF8B4230D018329342AD -:101FC8002DD0183293422AD01832934227D0183293 -:101FD800934224D01832934221D0183293421ED013 -:101FE80002F5567293421AD01832934217D018321B -:101FF800934214D01832934211D0183293420ED023 -:10200800183293420BD01832934208D018329342B8 -:1020180005D01A6842F001021A600020DDE61A684D -:1020280042F001021A600020D7E601207047022022 -:10203800D3E600BF100002402800024008540258AE -:1020480070B50446FFF7F8F9002C00F091810546B9 -:1020580094F83530DBB2022B06D080236365002369 -:1020680084F83430012070BD23688C498C4A93422F -:1020780018BF8B4230D0183293422DD01832934279 -:102088002AD01832934227D01832934224D01832DB -:10209800934221D0183293421ED002F556729342D1 -:1020A8001AD01832934217D01832934214D01832EB -:1020B800934211D0183293420ED0183293420BD06B -:1020C8001832934208D01832934205D01A6822F089 -:1020D8000E021A60266809E01A6822F01E021A60C9 -:1020E8002268536923F080035361266823686B498B -:1020F8006B4A934218BF8B4242D0183293423FD06A -:10210800183293423CD01832934239D01832934255 -:1021180036D01832934233D01832934230D002F579 -:10212800567293422CD01832934229D018329342D7 -:1021380026D01832934223D01832934220D0183236 -:1021480093421DD0183293421AD01832934217D0B6 -:10215800544A934214D01432934211D01432934209 -:102168000ED0143293420BD01432934208D014325A -:10217800934205D01432934202D01432934204D1D0 -:10218800226E136823F48073136023684349444A1A -:10219800934218BF8B422FD0183293422CD018325A -:1021A800934229D01832934226D01832934223D032 -:1021B8001832934220D0183293421DD002F556723D -:1021C800934219D01832934216D01832934213D042 -:1021D8001832934210D0183293420DD018329342DD -:1021E8000AD01832934207D01832934204D01A68A2 -:1021F80022F001021A6003E01A6822F001021A6054 -:10220800336813F0010F0ED0FFF716F9431B052BA7 -:10221800F6D920236365032384F83530002384F836 -:10222800343001201FE723681C491D4A934218BF18 -:102238008B4239D01832934236D01832934233D079 -:102248001832934230D0183293422DD0183293422C -:102258002AD01832934227D002F55672934223D0DF -:102268001832934220D0183293421DD0183293422C -:102278001AD01832934217D01832934214D0183219 -:10228800934211D0183293420ED0A16DE36D03F042 -:102298001F02012393404B600DE000BF1000024075 -:1022A8002800024008540258A16DE36D03F01F0294 -:1022B8003F2393408B6023682E492F4A934218BFCF -:1022C8008B4242D0183293423FD0183293423CD0CE -:1022D8001832934239D01832934236D0183293428A -:1022E80033D01832934230D002F5567293422CD034 -:1022F8001832934229D01832934226D0183293428A -:1023080023D01832934220D0183293421DD018326D -:1023180093421AD01832934217D0184A934214D0D5 -:102328001432934211D0143293420ED01432934295 -:102338000BD01432934208D01432934205D0143291 -:10234800934202D0143293420BD1636EA26E5A604C -:10235800E36E33B11A6822F480721A60236F626FD9 -:102368005A60012384F83530002084F834007AE676 -:10237800012078E610000240280002400854025864 -:10238800002800F0298108B5024690F83530DBB204 -:10239800022B03D080234365012008BD03689048C1 -:1023A80090498B4218BF83420CBF0121002166D09F -:1023B8003030834263D01830834260D01830834273 -:1023C8005DD0183083425AD01830834257D0183025 -:1023D800834254D000F55670834250D0183083425F -:1023E8004DD0183083424AD01830834247D0183035 -:1023F800834244D01830834241D0183083423ED0C3 -:10240800183083423BD0196821F00E011960136817 -:10241800A0F5956073498B4218BF83426AD0724910 -:102428008B4267D018318B4264D018318B4261D00F -:1024380018318B425ED018318B425BD018318B42F9 -:1024480058D001F556718B4254D018318B4251D077 -:1024580018318B424ED018318B424BD018318B42F9 -:1024680048D018318B4245D018318B4242D01831B0 -:102478008B423FD0196821F0010119603EE0042029 -:1024880082F8350081BB584A93422DD018329342C6 -:102498002AD01832934227D01832934224D01832C7 -:1024A800934221D0183293421ED002F556729342BD -:1024B8001AD01832934217D01832934214D01832D7 -:1024C800934211D0183293420ED0183293420BD057 -:1024D8001832934208D01832934205D01A6822F075 -:1024E80001021A60002058E71A6822F001021A60F7 -:1024F800002052E7196821F0010119601368384873 -:1025080038498B4218BF834242D018318B423FD0A2 -:1025180018318B423CD018318B4239D018318B425C -:1025280036D018318B4233D018318B4230D001F578 -:1025380056718B422CD018318B4229D018318B42DE -:1025480026D018318B4223D018318B4220D0183135 -:102558008B421DD018318B421AD018318B4217D0BC -:1025680022498B4214D014318B4211D014318B4242 -:102578000ED014318B420BD014318B4208D0143159 -:102588008B4205D014318B4202D014318B4217D1C3 -:10259800116E0B6823F480730B60906DD36D03F09C -:1025A8001F0101238B404360536E916E5960D36EB7 -:1025B80033B1196821F480711960136F516F596034 -:1025C800012382F83530002382F83430136D2BB1A3 -:1025D800104698470020E0E6012070470020DCE61E -:1025E80010000240280002404000024008540258EF -:1025F800F0B583B00446002301937D4B1D687D4BE5 -:10260800A3FB0535AD0A876D3E68D7F800C003689F -:1026180079497A48834218BF8B420CBF01200020B9 -:1026280061D0774A93425ED0183293425BD0183219 -:10263800934258D01832934255D01832934252D010 -:10264800183293424FD002F5567293424BD018324B -:10265800934248D01832934245D01832934242D020 -:10266800183293423FD0183293423CD018329342EA -:1026780039D01832934236D06249634A934218BF20 -:102688008B4212D0614A93420FD0143293420CD03D -:102698001432934209D01432934206D01432934232 -:1026A80003D01432934240F061821A68E16D01F060 -:1026B8001F010420884010EA0C0F00F0A78212F0D6 -:1026C800040F00F0A382786012F4004F00F05A82E1 -:1026D80012F4803F40F05082A36C002B00F0468239 -:1026E8002046984742E2E26D02F01F0108228A4024 -:1026F800324241D070BB424A93422BD018329342A7 -:1027080028D01832934225D01832934222D018325A -:1027180093421FD0183293421CD002F5567293424E -:1027280018D01832934215D01832934212D018326A -:1027380093420FD0183293420CD01832934209D0EA -:102748001832934206D01832934203D01A68C2F363 -:10275800C00202E01A68C2F380026AB11A6822F065 -:1027680004021A60E36D03F01F0208239340BB6064 -:10277800636D43F001036365E26D02F01F0226FA00 -:1027880002F313F0010F47D023681B481B498B4203 -:1027980018BF83423CD018318B4239D018318B4254 -:1027A80036D018318B4233D018318B4230D01831A3 -:1027B8008B422DD018318B422AD001F556718B42AD -:1027C80026D018318B4223D018318B4220D01831B3 -:1027D8008B421DD018318B421AD018318B4217D03A -:1027E80018318B4214D018318B4211D01B6813E07A -:1027F80000000024B5814E1B100002402800024052 -:1028080040000240085402581C54025830540258E0 -:102818005B6913F0800F3BD1E36D03F01F030422C3 -:1028280002FA03F3334240D02268964896498A4216 -:1028380018BF824235D018318A4232D018318A42C4 -:102848002FD018318A422CD018318A4229D0183119 -:102858008A4226D018318A4223D001F556718A421D -:102868001FD018318A421CD018318A4219D0183129 -:102878008A4216D018318A4213D018318A4210D0B1 -:1028880018318A420DD018318A420AD013680CE0F8 -:10289800012303FA02F2BA60636D43F00203636531 -:1028A800BAE7126812F0020F3DD1E36D03F01F037F -:1028B800102202FA03F333425FD02268714872494A -:1028C8008A4218BF824234D018318A4231D0183136 -:1028D8008A422ED018318A422BD018318A4228D009 -:1028E80018318A4225D018318A4222D001F5567112 -:1028F8008A421ED018318A421BD018318A4218D019 -:1029080018318A4215D018318A4212D018318A42B9 -:102918000FD018318A420CD018318A4209D0126877 -:10292800C2F3800208E0BB60636D43F00403636593 -:10293800BBE71268C2F3C002FAB1BB6023681A6829 -:1029480012F4802F0DD01B6813F4002F04D1236CD0 -:102958009BB12046984710E0A36C73B12046984776 -:102968000BE01A6812F4807F03D11A6822F008027B -:102978001A60236C0BB120469847E36D03F01F03E0 -:10298800202202FA03F3334200F0928022683D4885 -:102998003D498A4218BF82422ED018318A422BD034 -:1029A80018318A4228D018318A4225D018318A42F3 -:1029B80022D018318A421FD018318A421CD001F522 -:1029C80056718A4218D018318A4215D018318A4275 -:1029D80012D018318A420FD018318A420CD01831DF -:1029E8008A4209D018318A4206D018318A4203D067 -:1029F8001268C2F3400202E01268C2F30012002A11 -:102A080056D0BB6094F83530DBB2042B0ED0236867 -:102A18001A6812F4802F39D01B6813F4002F2CD1B8 -:102A2800636C002B44D02046984741E02268136825 -:102A380023F0160313602268536923F0800353615F -:102A4800236CB3B12268136823F008031360E36DA5 -:102A580003F01F023F239340BB60012384F8353005 -:102A6800002384F83430236D002B7FD0204698470C -:102A78007CE0A36C002BE5D1E9E7E36BC3B120460A -:102A8800984715E010000240280002401A6812F426 -:102A9800807F09D11A6822F010021A60012384F895 -:102AA8003530002384F83430E36B0BB12046984767 -:102AB800636D002B5AD0636D13F0010F52D00423BD -:102AC80084F8353023689649964A934218BF8B425A -:102AD8002FD0183293422CD01832934229D0183272 -:102AE800934226D01832934223D01832934220D0F2 -:102AF800183293421DD002F55672934219D01832FB -:102B0800934216D01832934213D01832934210D001 -:102B1800183293420DD0183293420AD01832934299 -:102B280007D01832934204D01A6822F001021A60C2 -:102B380003E01A6822F001021A60019B0133019335 -:102B4800AB4204D823681B6813F0010FF5D1236842 -:102B58001B6813F0010F0BD0032384F835300023D2 -:102B680084F83430E36C0BB12046984703B0F0BDCD -:102B7800012384F83530F2E7236C002BF6D0204689 -:102B88009847F3E712F0200F3AD123686449654A61 -:102B9800934218BF8B422FD0183293422CD0183250 -:102BA800934229D01832934226D01832934223D028 -:102BB8001832934220D0183293421DD002F5567233 -:102BC800934219D01832934216D01832934213D038 -:102BD8001832934210D0183293420DD018329342D3 -:102BE8000AD01832934207D01832934204D01A6898 -:102BF80022F004021A6003E01A6822F008021A6040 -:102C0800236C002BB2D020469847AFE702208840BB -:102C180010EA0C0F60D012F0020F5DD0786012F449 -:102C2800004F0ED012F4803F05D1636C002B9DD06D -:102C3800204698479AE7E36B002B97D020469847A1 -:102C480094E712F0200F40D123683549354A934262 -:102C580018BF8B422FD0183293422CD0183293428F -:102C680029D01832934226D01832934223D01832F2 -:102C7800934220D0183293421DD002F556729342E7 -:102C880019D01832934216D01832934213D0183202 -:102C9800934210D0183293420DD0183293420AD082 -:102CA8001832934207D01832934204D01A6822F09F -:102CB8000A021A6003E01A6822F014021A6001235B -:102CC80084F83530002384F83430E36B002B3FF46C -:102CD8004DAF2046984749E7082000FA01F111EA6C -:102CE8000C0F3FF443AF12F0080F3FF43FAF1A68E0 -:102CF80022F00E021A60E36D03F01F03012202FAAC -:102D080003F37B60626584F83520002384F834304F -:102D1800E36C002B3FF42AAF2046984726E700BF14 -:102D2800100002402800024070B582B000236EE017 -:102D380085685E000324B44025EA0405CC68B440E5 -:102D48002C438460446824EA0C0C4C68C4F30014D7 -:102D58009C4044EA0C0444606CE0DD08083550F8F7 -:102D6800256003F007044FEA840C0F2404FA0CF4DE -:102D780026EA040E0C6904FA0CF444EA0E0440F83E -:102D880025406FE0092400E0002404FA0EF42C43E7 -:102D98000CF1020C6B4D45F82C404FF0B0442568FF -:102DA800D44325EA0206D1F804C01CF4801F01D0E0 -:102DB80042EA05064FF0B0452E606D6804EA050644 -:102DC800D1F804C01CF4001F01D042EA05064FF0F8 -:102DD800B0456E60D5F8845004EA0506D1F804C001 -:102DE8001CF4003F01D042EA05064FF0B045C5F893 -:102DF8008460D5F880502C404E6816F4803F01D08E -:102E080042EA05044FF0B042C2F8804001330A6834 -:102E180032FA03F400F093804FF0010C0CFA03FC33 -:102E28001CEA0202F2D04C6804F00304013C012CB5 -:102E38007FF67EAF4C6804F00304032C0CD0C46802 -:102E48005D004FF0030C0CFA05FC24EA0C0C8C68AE -:102E5800AC4044EA0C04C4604C6804F00304022C3F -:102E68003FF47BAF04684FEA430E4FF0030C0CFAB3 -:102E78000EFC24EA0C0C4C6804F0030404FA0EF46B -:102E880044EA0C0404604C6814F4403FBED02E4C55 -:102E9800D4F8F45045F00205C4F8F450D4F8F440DE -:102EA80004F002040194019C4FEA930C0CF1020512 -:102EB800244C54F8255003F003044FEA840E0F24E1 -:102EC80004FA0EF425EA0405204CA0423FF45CAF56 -:102ED80004F58064A04222D004F58064A04220D08A -:102EE80004F58064A0421ED004F58064A0421CD082 -:102EF80004F58064A0421AD004F58064A04218D07A -:102F080004F58064A04216D004F58064A04214D071 -:102F180004F58064A0423FF435AF0A2435E7012464 -:102F280033E7022431E703242FE704242DE705249F -:102F38002BE7062429E7072427E7082425E702B01A -:102F480070BD00BF00040058004402580000025839 -:102F580008B54FF0B043D3F88830034200D108BD1C -:102F68004FF0B043C3F88800FDF70EFEF7E7000006 -:102F7800134BDB6813F0040F07D1114BDB6803F028 -:102F8800070383421AD00120704710B50C4AD36852 -:102F980023F007031843D060FEF74EFA0446084BA7 -:102FA8005B6813F4005F07D1FEF746FA001BB0F523 -:102FB8007A7FF4D9012000E0002010BD002070477E -:102FC80000480258002800F0398338B504460368E1 -:102FD80013F0010F25D0944A136903F03803926A5D -:102FE800102B15D0182B0FD06368B3F5803F3FD056 -:102FF800002B53D18C4B1A6822F480321A601A685D -:1030080022F480221A6038E002F00302022AEBD18F -:10301800854B1B6813F4003F03D06368002B00F056 -:103028000F83236813F0020F00F0A1807E4A136912 -:10303800926A13F038035AD0182B55D0E368002B46 -:1030480000F0DE8078490A6822F0190213430B6009 -:10305800FEF7F2F90546744B1B6813F0040F40F0B5 -:10306800AD80FEF7E9F9401B0228F4D90320EEE20F -:103078006D4A136843F48033136063682BB3FEF71B -:10308800DBF90546684B1B6813F4003FC9D1FEF70E -:10309800D3F9401B6428F5D90320D8E2B3F5A02F53 -:1030A80009D0614B1A6822F480321A601A6822F437 -:1030B80080221A60E1E75C4B1A6842F480221A60A9 -:1030C8001A6842F480321A60D7E7FEF7B5F9054668 -:1030D800554B1B6813F4003FA3D0FEF7ADF9401B16 -:1030E8006428F5D90320B2E212F0030FA6D14E4BA3 -:1030F8001B6813F0040F03D0E368002B00F0A282D2 -:10310800494A136823F01903E1680B431360FEF77B -:1031180093F90546444B1B6813F0040F06D1FEF7DC -:103128008BF9401B0228F5D9032090E2FEF78AF9B3 -:1031380041F20303984212D82269402A07D03A493B -:103148004B6823F47C3343EA02334B600FE0364A82 -:10315800536823F47C3343F40033536007E0324A66 -:10316800536823F0FE43216943EA016353602368EF -:1031780013F0100F00F088802B4A136903F038030E -:10318800926A082B56D0182B50D0E369002B00F018 -:10319800B880254A136843F080031360FEF74CF9A2 -:1031A8000546214B1B6813F4807F40F08880FEF7AA -:1031B80043F9401B0228F4D9032048E2FEF742F9FC -:1031C80041F20303984212D82269402A07D01649CF -:1031D8004B6823F47C3343EA02334B60C7E7124A57 -:1031E800536823F47C3343F400335360BFE70E4A3B -:1031F800536823F0FE43216943EA01635360B6E74D -:10320800094A136823F001031360FEF715F9054610 -:10321800054B1B6813F0040FA9D0FEF70DF9401BEE -:103228000228F5D9032012E20044025802F00302F2 -:10323800012AAAD1A14B1B6813F4807F03D0E3694C -:10324800802B40F00182FEF7FDF841F2030398421B -:1032580012D8226A202A07D098494B6823F0F843ED -:1032680043EA82634B600FE0944A536823F0F843C3 -:1032780043F08043536007E0904AD36823F07C53BF -:10328800216A43EA0163D360236813F0080F60D012 -:103298006369002B49D0894A536F43F00103536790 -:1032A800FEF7CAF80546854B5B6F13F0020F50D145 -:1032B800FEF7C2F8401B0228F5D90320C7E1FEF744 -:1032C800C1F841F20303984212D8226A202A07D093 -:1032D8007A494B6823F0F84343EA82634B60D3E7AB -:1032E800764A536823F0F84343F080435360CBE7B2 -:1032F800724AD36823F07C53216A43EA0163D3609E -:10330800C2E76E4A136823F080031360FEF794F84F -:1033180005466A4B1B6813F4807FB5D0FEF78CF81E -:10332800401B0228F5D9032091E1644A536F23F02A -:1033380001035367FEF780F80546604B5B6F13F097 -:10334800020F06D0FEF778F8401B0228F5D90320B3 -:103358007DE1236813F0200F29D0A3699BB1574A58 -:10336800136843F480531360FEF766F80546534B21 -:103378001B6813F4005F1AD1FEF75EF8401B0228A1 -:10338800F5D9032063E14D4A136823F48053136091 -:10339800FEF752F80546494B1B6813F4005F06D048 -:1033A800FEF74AF8401B0228F5D903204FE12368AD -:1033B80013F0040F21D1636A002B00F047813F4AC4 -:1033C800126902F03802182A00F0EE80022B79D038 -:1033D8003A4A136823F080731360FEF72DF8044609 -:1033E800364B1B6813F0007F00F0DC80FEF724F8F2 -:1033F800001B0228F4D9032029E1314A136843F459 -:1034080080731360FEF718F805462D4B1B6813F4FC -:10341800807F06D1FEF710F8401B6428F5D90320F9 -:1034280015E1A368012B0AD00BBB244B1A6F22F0BD -:1034380001021A671A6F22F004021A6704E01F4A91 -:10344800136F43F001031367A36833B3FDF7F4FF69 -:1034580005461A4B1B6F13F0020FACD1FDF7ECFFBA -:10346800401B41F288339842F3D90320EFE0052B43 -:1034780009D0124B1A6F22F001021A671A6F22F054 -:1034880004021A67E0E70D4B1A6F42F004021A674C -:103498001A6F42F001021A67D6E7FDF7CDFF05461D -:1034A800064B1B6F13F0020F85D0FDF7C5FF401BBD -:1034B80041F288339842F3D90320C8E00044025807 -:1034C80000480258694A136823F080731360FDF7B7 -:1034D800B3FF0546654B1B6813F0007F06D0FDF768 -:1034E800ABFF401B0228F5D90320B0E05F4B996A77 -:1034F8005F4A0A40A16AE06A41EA00110A439A62F7 -:10350800226B013AC2F30802616B0139490289B2A0 -:103518000A43A16B0139090401F4FE010A43E16B76 -:103528000139090601F0FE410A431A63DA6A22F0FA -:103538000102DA62596B4F4A0A40A16C42EAC102A1 -:103548005A63DA6A22F00C02216C0A43DA62DA6AF8 -:1035580022F00202616C0A43DA62DA6A42F48032CB -:10356800DA62DA6A42F40032DA62DA6A42F4802213 -:10357800DA62DA6A42F00102DA621A6842F08072AC -:103588001A60FDF759FF0446384B1B6813F0007F9B -:1035980006D1FDF751FF001B0228F5D9032056E09C -:1035A800002054E0002052E0304A916A106B012B51 -:1035B8004ED001F00303A26A93424BD1C1F3051127 -:1035C800E36A994248D1C0F30802236B013B9A424F -:1035D80044D1C0F34622636B013B9A4240D1C0F309 -:1035E8000642A36B013B9A423CD1C0F30660E36BF1 -:1035F800013B984238D11D4B5B6BC3F3CC03A26CE3 -:103608009A4201D1002022E0184AD36A23F001032C -:10361800D362FDF711FF0546FDF70EFFA842FBD068 -:10362800124A516B134B0B40A16C43EAC10353631D -:10363800D36A43F00103D362002008E001207047F9 -:10364800012004E0012002E0012000E0002038BD54 -:103658000120FCE70120FAE70120F8E70120F6E75E -:103668000120F4E70120F2E70120F0E700440258C6 -:103678000CFCFFFF0700FFFFF8B57E4B1B6903F04A -:103688003803102B00F0F280182B10D013B17A4CAD -:103698002046F8BD774B1B6813F0200F00F0E88038 -:1036A800744B1868C0F3C100744CC440F0E7714B08 -:1036B8009D6A05F003059C6AC4F30514D86A00F0F6 -:1036C80001005B6BC3F3CC0303FB00F0FCF7B6FE11 -:1036D8000646002CDCD0012D76D0022D00F0A48007 -:1036E8000DB32046FCF7AAFE01466548FCF7B2FF79 -:1036F8000446604B186BC0F30800FCF79FFE0546B4 -:103708004FF064513046FCF7F1FE01462846FCF7BD -:10371800E5FD4FF07E51FCF7E1FD01462046FCF740 -:10372800E5FE044671E0534B1B6813F0200F29D0C7 -:10373800504F3B68C3F3C1035048D840FCF77EFEA6 -:1037480005462046FCF77AFE01462846FCF782FF2C -:103758000446386BC0F30800FCF770FE05464FF0CE -:1037680064513046FCF7C2FE01462846FCF7B6FD18 -:103778004FF07E51FCF7B2FD01462046FCF7B6FE3D -:10378800044642E02046FCF759FE01463D48FCF756 -:1037980061FF0446374B186BC0F30800FCF74EFE78 -:1037A80005464FF064513046FCF7A0FE0146284616 -:1037B800FCF794FD4FF07E51FCF790FD0146204642 -:1037C800FCF794FE044620E02046FCF737FE01464D -:1037D8002B48FCF73FFF0446264B186BC0F3080044 -:1037E800FCF72CFE05464FF064513046FCF77EFE90 -:1037F80001462846FCF772FD4FF07E51FCF76EFD3E -:1038080001462046FCF772FE04461A4B1B6BC3F3B5 -:103818004623581CFCF712FE01462046FCF71AFF07 -:10382800FCF7B4FF044633E72046FCF707FE0146E1 -:103838001548FCF70FFF04460E4B186BC0F3080041 -:10384800FCF7FCFD05464FF064513046FCF74EFE90 -:1038580001462846FCF742FD4FF07E51FCF73EFD3D -:1038680001462046FCF742FE0446CEE7074C0FE728 -:10387800024C0DE70044025800093D000090D003B7 -:103888000024744A0024744C0024F44A00127A007C -:10389800002800F0328170B50D4604469B4B1B682A -:1038A80003F00F038B420BD2984A136823F00F03DF -:1038B8000B431360136803F00F038B4240F01F8122 -:1038C800236813F0040F0CD02269914B9B6903F015 -:1038D80070039A4205D98E498B6923F070031A4305 -:1038E8008A61236813F0080F0CD06269884BDB6982 -:1038F80003F070039A4205D98549CB6923F0700318 -:103908001A43CA61236813F0100F0CD0A269804BC8 -:10391800DB6903F4E0639A4205D97D49CB6923F456 -:10392800E0631A43CA61236813F0200F0CD0E269E0 -:10393800774B1B6A03F070039A4205D974490B6AE6 -:1039480023F070031A430A62236813F0020F0CD0A5 -:10395800E2686F4B9B6903F00F039A4205D96C49E3 -:103968008B6923F00F031A438A61236813F0010F50 -:1039780041D0674A936923F47063A1680B4393614C -:103988006368022B0AD0032B27D0012B2CD0604A66 -:10399800126812F0040F06D10120ADE0126812F48B -:1039A800003F00F0AE805A490A6922F0070213432B -:1039B8000B61FDF741FD0646554B1B6903F03803C3 -:1039C8006268B3EBC20F16D0FDF736FD801B41F2DB -:1039D80088339842F0D903208EE04D4A126812F0DD -:1039E800007FE0D1012087E0494A126812F4807F05 -:1039F800D9D1012080E0236813F0020F0CD0E268CF -:103A0800434B9B6903F00F039A4205D240498B69E7 -:103A180023F00F031A438A613C4B1B6803F00F0322 -:103A2800AB420AD9394A136823F00F032B431360BA -:103A3800136803F00F03AB4265D1236813F0040F3A -:103A48000CD02269324B9B6903F070039A4205D26D -:103A58002F498B6923F070031A438A61236813F096 -:103A6800080F0CD062692A4BDB6903F070039A4295 -:103A780005D22749CB6923F070031A43CA6123682A -:103A880013F0100F0CD0A269214BDB6903F4E0633B -:103A98009A4205D21E49CB6923F4E0631A43CA61EE -:103AA800236813F0200F0CD0E269194B1B6A03F04E -:103AB80070039A4205D216490B6A23F070031A4321 -:103AC8000A62FFF7D9FD12498B69C3F30323114A30 -:103AD800D35C03F01F03D8408B6903F00F03D35C5A -:103AE80003F01F0320FA03F30B4A13600B4B186013 -:103AF8000B4B1868FDF73EFC70BD01207047012094 -:103B0800FAE70120F8E70120F6E700BF002000529D -:103B180000440258B4740008040000240000002483 -:103B28000C00002408B5FFF7A7FD0B4A9369C3F3FF -:103B380003230A49CB5C03F01F0320FA03F39269BD -:103B480002F00F02885C00F01F0023FA00F0044A1C -:103B58001060044A136008BD00440258B474000899 -:103B6800040000240000002408B5FFF7DBFF054B24 -:103B7800DB69C3F30213044AD35C03F01F03D84084 -:103B880008BD00BF00440258B474000808B5FFF728 -:103B9800C9FF054BDB69C3F30223044AD35C03F076 -:103BA8001F03D84008BD00BF00440258B474000881 -:103BB800404B9B6A03F00303032B79D070B505468D -:103BC8000E463C4A136823F080631360FDF734FC0B -:103BD8000446384B1B6813F0006F06D0FDF72CFC29 -:103BE800031B022BF5D9032070BD324B9A6A22F4CD -:103BF8007C32296842EA01329A626A68013AC2F361 -:103C08000802A9680139490289B20A43E9680139F9 -:103C1800090401F4FE010A4329690139090601F082 -:103C2800FE410A439A63DA6A22F0C00269690A43CC -:103C3800DA62DA6A22F02002A9690A43DA62DA6AE9 -:103C480022F01002DA62D96B1B4A0A40E96942EA9B -:103C5800C102DA63DA6A42F01002DA62C6B91A46B9 -:103C6800DB6A43F40023D362124A136843F080638B -:103C78001360FDF7E1FB04460E4B1B6813F0006F61 -:103C880014D1FDF7D9FB001B0228F5D90320ABE7B7 -:103C9800012E05D0074AD36A43F40013D362E3E741 -:103CA800044AD36A43F48013D362DDE700209BE71C -:103CB80001207047004402580700FFFF404B9B6AF1 -:103CC80003F00303032B79D070B505460E463C4A32 -:103CD800136823F080531360FDF7AEFB0446384B9E -:103CE8001B6813F0005F06D0FDF7A6FB031B022B31 -:103CF800F5D9032070BD324B9A6A22F07C7229688C -:103D080042EA01529A626A68013AC2F30802A96853 -:103D18000139490289B20A43E9680139090401F401 -:103D2800FE010A4329690139090601F0FE410A43E7 -:103D38001A64DA6A22F4406269690A43DA62DA6A62 -:103D480022F40072A9690A43DA62DA6A22F48072FC -:103D5800DA62596C1B4A0A40E96942EAC1025A64AC -:103D6800DA6A42F48072DA62C6B91A46DB6A43F448 -:103D78008003D362124A136843F080531360FDF73F -:103D88005BFB04460E4B1B6813F0005F14D1FDF774 -:103D980053FB001B0228F5D90320ABE7012E05D001 -:103DA800074AD36A43F08073D362E3E7044AD36ACD -:103DB80043F40003D362DDE700209BE7012070474E -:103DC800004402580700FFFFF8B50446036813F0E3 -:103DD800006F30D0836EB3F5001F26D00ED8EBB13C -:103DE800B3F5801F07D102210830FFF7E1FE054631 -:103DF80045B12E4621E0012635461EE0B3F5401FA9 -:103E080009D10025984A136D23F44013A16E0B4382 -:103E18001365002611E0012635460EE0924AD36A62 -:103E280043F40033D3620025ECE702212830FFF782 -:103E380045FF0546DCE700263546236813F4807FF6 -:103E480014D0A36D042B32D8DFE803F003232A082B -:103E58000800854AD36A43F40033D36255BB824ACB -:103E6800136D23F00703A16D0B431365236813F447 -:103E7800007F31D0E36D802B4CD020D8002B43D06D -:103E8800402B19D1002104F10800FFF791FE0546E7 -:103E98001AE0002104F10800FFF78AFE0546DDE775 -:103EA800002104F12800FFF709FF0546D6E701269F -:103EB8003546DBE72E46D9E7012635460CE0C02B10 -:103EC80002D0B3F5807F1CD15DBB674A136D23F424 -:103ED800E073E16D0B431365236813F4806F46D0DC -:103EE800D4F8A830B3F5800F39D01FD88BB3B3F509 -:103EF800001F18D1002104F10800FFF759FE0546FC -:103F08001AE001263546E7E7574AD36A43F40033F7 -:103F1800D362D9E7002104F12800FFF7CFFE054658 -:103F2800D2E72E46D8E70126354620E0B3F5C00F84 -:103F380002D0B3F5000F09D1C5B94B4A936D23F4EC -:103F48006003D4F8A8100B43936510E001263546AA -:103F58000DE0454AD36A43F40033D362ECE700210D -:103F680004F12800FFF7AAFE0546E5E72E46236878 -:103F780013F4006F24D0D4F8AC30B3F1007F42D0F2 -:103F88000ED8002B39D0B3F1807F06D1002104F17F -:103F98000800FFF70DFE054608E0012635460FE04C -:103FA800B3F1407F02D0B3F1806F23D1002D31D11E -:103FB8002D4A936D23F0E063D4F8AC100B4393655E -:103FC800236813F0007F2ED0E36C202B40D026D836 -:103FD80033B1102B20D1244AD36A43F40033D3627F -:103FE800002D3CD1204AD36C23F03003E16C0B4305 -:103FF800D36418E001263546E2E71B4AD36A43F446 -:104008000033D362D2E7002104F12800FFF756FEFF -:104018000546CBE72E46D3E70126354603E0302B8D -:10402800DED001263546236813F4805F2DD0236E39 -:10403800B3F5005F4FD019D8002B46D0B3F5805F99 -:104048000FD1002104F10800FFF7B2FD054613E087 -:10405800022104F10800FFF7ABFD0546C0E72E4634 -:10406800E1E70126354610E000440258B3F5405F09 -:1040780002D0B3F5804F25D1002D33D1774A136D87 -:1040880023F4E043216E0B431365236813F4005FA8 -:1040980038D0636EB3F5003F53D028D843B1B3F599 -:1040A800803F21D1012104F10800FFF781FD054679 -:1040B800002D4DD1694A136D23F4E023616E0B4343 -:1040C80013651FE001263546DFE7644AD36A43F4E7 -:1040D8000033D362D0E7002104F12800FFF7EEFD9A -:1040E8000546C9E72E46D0E7012635460AE0B3F56E -:1040F800802FDDD0B3F5A02FDAD0B3F5403FD7D06D -:1041080001263546236813F4804F31D0D4F8B030F7 -:10411800B3F1005F45D020D843B1B3F1805F19D126 -:10412800012104F10800FFF743FD0546002D3FD1AA -:104138004A4A936D23F0E043D4F8B0100B439365DB -:1041480016E0012104F12800FFF7B8FD0546AFE7A6 -:104158002E46D7E7012635460AE0B3F1804FE5D071 -:10416800B3F1A04FE2D0B3F1405FDFD0012635466E -:10417800236813F4004F09D0236FB3F1805F19D07F -:10418800B3F1005F24D0D3B101263546236813F07C -:10419800807F33D0A36C032B5BD8DFE803F02722A2 -:1041A8005327012104F12800FFF788FD0546BDE7E4 -:1041B8002E46DDE7294AD36A43F40033D36275B942 -:1041C800264A136D23F04053216F0B431365DDE737 -:1041D800012104F10800FFF7EBFC0546EFE72E4646 -:1041E800D4E71E4AD36A43F40033D362A5BB1B4A03 -:1041F800D36C23F00303A16C0B43D364236813F43B -:10420800800F2DD1236813F0010F00F0A580E36F14 -:10421800282B00F29F80DFE803F08D9D9D9D9D9DDA -:104228009D9D879D9D9D9D9D9D9D969D9D9D9D9DD3 -:104238009D9D8D9D9D9D9D9D9D9D8D9D9D9D9D9DC6 -:104248009D9D8D00022104F10800FFF7B1FC054691 -:10425800CCE701263546D1E72E46CFE70044025881 -:10426800914A136843F480731360FDF7E5F8074635 -:104278008D4B1B6813F4807F05D1FDF7DDF8C01B5B -:104288006428F5D90325002D4AD1884B1B6FD4F833 -:10429800B420534013F4407F0CD0844B1A6F22F49F -:1042A8004072196F41F480311967196F21F4803118 -:1042B80019671A67D4F8B430B3F5807F15D08DBB71 -:1042C800D4F8B43003F44072B2F5407F1ED0774A78 -:1042D800136923F47C53136174490B6FD4F8B42029 -:1042E800C2F30B0213430B678CE7FDF7A5F80746EB -:1042F8006E4B1B6F13F0020FE1D1FDF79DF8C01B49 -:1043080041F288339842F3D90325D8E76748026910 -:1043180022F47C52664901EA131313430361DBE775 -:104328002E466FE72E466DE7012104F10800FFF7DE -:104338003FFC0546E5B95D4A536D23F03803E16F4C -:104348000B43536508E0012104F12800FFF7B6FC90 -:104358000546EFE701263546236813F0020F17D00C -:10436800A36F052B28D8DFE803F00B05200B0B0BF8 -:104378002E46F1E7012104F10800FFF719FC054674 -:10438800EDB94A4A536D23F00703A16F0B435365F8 -:10439800236813F0040F23D0D4F89430052B45D8A4 -:1043A800DFE803F0150F3D151515012104F128006C -:1043B800FFF784FC0546E3E701263546E8E72E4685 -:1043C800E6E7012104F10800FFF7F2FB054685BB8B -:1043D800364A936D23F00703D4F894100B43936582 -:1043E800236813F0200F34D0D4F89030B3F1005F75 -:1043F8004ED023D843B1B3F1805F1CD1002104F122 -:104408000800FFF7D5FB0546002D48D1274A536D14 -:1044180023F0E043D4F890100B43536519E00121D1 -:1044280004F12800FFF74AFC0546D0E70126354687 -:10443800D6E72E46D4E7012635460AE0B3F1804F89 -:10444800E2D0B3F1A04FDFD0B3F1405FDCD001265A -:104458003546236813F0400F37D0D4F89C30B3F5B5 -:10446800006F53D026D843B1B3F5806F19D100211E -:1044780004F10800FFF79CFB0546002D4DD10B4ABF -:10448800936D23F4E053D4F89C100B4393651CE020 -:10449800022104F12800FFF711FC0546B4E72E4677 -:1044A800D7E70126354610E0004802580044025874 -:1044B800CFFFFF00B3F5805FDFD0B3F5A05FDCD09E -:1044C800B3F5406FD9D001263546236813F0800F25 -:1044D80033D0D4F8A030B3F5804F00F0A38021D8B2 -:1044E80043B1B3F5005F1AD1002104F10800FFF7CA -:1044F8005FFB0546002D40F09C80814A936D23F4B4 -:104508006043D4F8A0100B43936516E0022104F130 -:104518002800FFF7D3FB0546AFE72E46D5E701266F -:1045280035460AE0B3F5004FE4D0B3F5204FE1D0AB -:10453800B3F5C04FDED001263546236813F0080FC7 -:104548000CD0D4F88430B3F5805F74D06C4A536DC6 -:1045580023F44053D4F884100B435365236813F0B5 -:10456800100F0CD0D4F89830B3F5807F6CD0644A23 -:10457800936D23F44073D4F898100B439365236824 -:1045880013F4002F0BD0D4F8A430B3F5803F74D0C7 -:10459800B3F5003F67D0002B5FD00126354623686E -:1045A80013F4802F0CD0D4F88830B3F5001F7CD0DA -:1045B800B3F5401F6FD0B3F5801F67D0012635468D -:1045C800236813F4803F08D0236D002B76D0B3F511 -:1045D800803F00F0818001263546236813F0005F94 -:1045E80040F08380236813F4003F00F08E80D4F8F5 -:1045F8008030B3F5807F00F0EC8040F28380B3F523 -:10460800007F03D0B3F5407F40F0E180002D40F0FB -:10461800E6803B4A536D23F44073D4F880100B4373 -:10462800536572E0022104F12800FFF747FB0546B5 -:1046380060E72E4681E7022104F12800FFF73EFBE0 -:10464800002883D0012681E7022104F12800FFF722 -:1046580035FB00288BD0012689E7002104F10800EA -:10466800FFF7A6FA05467DB9254A936D23F4403332 -:10467800D4F8A4100B43936591E7022104F12800B4 -:10468800FFF71CFB0546EEE72E4688E71C4AD36A6F -:1046980043F40033D3627DB9194A536D23F44013B0 -:1046A800D4F888100B4353658AE7012104F12800E8 -:1046B800FFF704FB0546EEE72E4681E7104AD36A6A -:1046C80043F40033D36275B90D4AD36C23F48033B5 -:1046D800216D0B43D36480E7022104F10800FFF742 -:1046E80067FA0546EFE72E4677E7022104F128002E -:1046F800FFF7E4FA00283FF475AF012672E700BF20 -:1047080000440258002B81D00126236813F4801F2F -:1047180006D04F4A136D23F00043616F0B431365B6 -:10472800236813F0805F07D0494A136923F4804354 -:10473800D4F8B8100B431361236813F4001F06D094 -:10474800434A136D23F08073E16E0B4313652368AE -:1047580013F0804F09D03E4B1A6922F400421A61C7 -:104768001A69D4F8BC100A431A612368002B06DAC8 -:10477800374AD36C23F04053616D0B43D3642368ED -:1047880013F4000F07D0324A536D23F44003D4F8D2 -:104798008C100B435365636813F0010F21D16368D4 -:1047A80013F0020F26D1636813F0040F2BD163684E -:1047B80013F0080F30D1636813F0100F35D1636818 -:1047C80013F0200F3AD106B101263046F8BD012674 -:1047D8009BE71F4AD36A43F40033D36216E72E4699 -:1047E80093E7002104F10800FFF7E2F90028D6D08A -:1047F8000646D4E7012104F10800FFF7D9F900289B -:10480800D1D00646CFE7022104F10800FFF7D0F91E -:104818000028CCD00646CAE7002104F12800FFF79B -:104828004DFA0028C7D00646C5E7012104F1280043 -:10483800FFF744FA0028C2D00646C0E7022104F177 -:104848002800FFF73BFA0028BDD00646BBE700BFAB -:104858000044025808B5FFF765F9054B1B6AC3F316 -:104868000213044AD35C03F01F03D84008BD00BFFD -:1048780000440258B47400082DE9F0410446864B00 -:104888009D6A9E6AC6F30536D86AC0F30010DB6BD2 -:10489800C3F3CC0303FB00F0FBF7D0FD002E00F0C0 -:1048A800F58005F003050746012D79D0022D00F0AB -:1048B800CB800DB33046FBF7C1FD01467748FBF7C7 -:1048C800C9FE0546744B986BC0F30800FBF7B6FDAC -:1048D80006464FF064513846FBF708FE014630465D -:1048E800FBF7FCFC4FF07E51FBF7F8FC014628462D -:1048F800FBF7FCFD054674E0674B1B6813F0200FBF -:104908002CD0DFF89481D8F80030C3F3C103644891 -:10491800D840FBF793FD05463046FBF78FFD01466F -:104928002846FBF797FE0546D8F83800C0F308007C -:10493800FBF784FD06464FF064513846FBF7D6FD79 -:1049480001463046FBF7CAFC4FF07E51FBF7C6FC28 -:1049580001462846FBF7CAFD054642E03046FBF70C -:104968006DFD01464F48FBF775FE05464A4B986BAF -:10497800C0F30800FBF762FD06464FF06451384665 -:10498800FBF7B4FD01463046FBF7A8FC4FF07E511B -:10499800FBF7A4FC01462846FBF7A8FD054620E0E6 -:1049A8003046FBF74BFD01463C48FBF753FE0546F6 -:1049B800394B986BC0F30800FBF740FD06464FF0F3 -:1049C80064513846FBF792FD01463046FBF786FCFA -:1049D8004FF07E51FBF782FC01462846FBF786FD27 -:1049E80005462D4EB06BC0F34620FBF727FD4FF070 -:1049F8007E51FBF773FC01462846FBF72BFEFBF7BD -:104A0800C5FE2060B06BC0F30640FBF717FD4FF002 -:104A18007E51FBF763FC01462846FBF71BFEFBF7BC -:104A2800B5FE6060B06BC0F30660FBF707FD4FF0A2 -:104A38007E51FBF753FC01462846FBF70BFEFBF7BC -:104A4800A5FEA060BDE8F0813046FBF7F7FC014603 -:104A58001548FBF7FFFD05460F4B986BC0F30800A0 -:104A6800FBF7ECFC06464FF064513846FBF73EFD79 -:104A780001463046FBF732FC4FF07E51FBF72EFC27 -:104A880001462846FBF732FD0546AAE700232360C6 -:104A98006360A360D6E700BF004402580024744A4C -:104AA8000090D0030024744C0024F44A2DE9F0410E -:104AB8000446864B9D6A9E6AC6F30556D86AC0F3BB -:104AC80000205B6CC3F3CC0303FB00F0FBF7B6FCE0 -:104AD800002E00F0F58005F003050746012D79D07A -:104AE800022D00F0CB800DB33046FBF7A7FC014642 -:104AF8007748FBF7AFFD0546744B186CC0F3080008 -:104B0800FBF79CFC06464FF064513846FBF7EEFC79 -:104B180001463046FBF7E2FB4FF07E51FBF7DEFB28 -:104B280001462846FBF7E2FC054674E0674B1B6824 -:104B380013F0200F2CD0DFF89481D8F80030C3F39D -:104B4800C1036448D840FBF779FC05463046FBF7BB -:104B580075FC01462846FBF77DFD0546D8F8400060 -:104B6800C0F30800FBF76AFC06464FF0645138466C -:104B7800FBF7BCFC01463046FBF7B0FB4FF07E511B -:104B8800FBF7ACFB01462846FBF7B0FC054642E0C4 -:104B98003046FBF753FC01464F48FBF75BFD0546E3 -:104BA8004A4B186CC0F30800FBF748FC06464FF068 -:104BB80064513846FBF79AFC01463046FBF78EFBFA -:104BC8004FF07E51FBF78AFB01462846FBF78EFC27 -:104BD800054620E03046FBF731FC01463C48FBF730 -:104BE80039FD0546394B186CC0F30800FBF726FC65 -:104BF80006464FF064513846FBF778FC01463046CC -:104C0800FBF76CFB4FF07E51FBF768FB014628462B -:104C1800FBF76CFC05462D4E306CC0F34620FBF7C5 -:104C28000DFC4FF07E51FBF759FB01462846FBF778 -:104C380011FDFBF7ABFD2060306CC0F30640FBF7BD -:104C4800FDFB4FF07E51FBF749FB01462846FBF779 -:104C580001FDFBF79BFD6060306CC0F30660FBF75D -:104C6800EDFB4FF07E51FBF739FB01462846FBF779 -:104C7800F1FCFBF78BFDA060BDE8F0813046FBF747 -:104C8800DDFB01461548FBF7E5FC05460F4B186CA4 -:104C9800C0F30800FBF7D2FB06464FF064513846D4 -:104CA800FBF724FC01463046FBF718FB4FF07E511A -:104CB800FBF714FB01462846FBF718FC0546AAE754 -:104CC800002323606360A360D6E700BF0044025856 -:104CD8000024744A0090D0030024744C0024F44A41 -:104CE8007047704770477047704770B5044603684F -:104CF800DE681D6915F0020F10D016F0020F0DD0F6 -:104D08006FF002021A610123037703689B6913F0AD -:104D1800030F64D0FFF7E6FF0023237715F0040F95 -:104D280012D016F0040F0FD023686FF004021A6136 -:104D38000223237723689B6913F4407F55D02046CC -:104D4800FFF7D0FF0023237715F0080F12D016F0D5 -:104D5800080F0FD023686FF008021A610423237725 -:104D68002368DB6913F0030F46D02046FFF7BAFF2C -:104D78000023237715F0100F12D016F0100F0FD064 -:104D880023686FF010021A61082323772368DB6910 -:104D980013F4407F37D02046FFF7A4FF0023237782 -:104DA80015F0010F02D016F0010F33D115F4025F90 -:104DB80002D016F0800F35D115F4807F02D016F09E -:104DC800800F37D115F0400F02D016F0400F39D1BF -:104DD80015F0200F02D016F0200F3BD170BDFFF761 -:104DE80080FF2046FFF77FFF96E72046FFF779FF11 -:104DF8002046FFF778FFA5E72046FFF772FF204619 -:104E0800FFF771FFB4E72046FFF76BFF2046FFF777 -:104E18006AFFC3E723686FF001021A612046FFF7B3 -:104E28005FFFC3E723686FF402521A61204600F05F -:104E3800C6F9C1E723686FF480721A61204600F052 -:104E4800BFF9BFE723686FF040021A612046FFF7F9 -:104E58004BFFBDE723686FF020021A61204600F07F -:104E6800ADF9BBE730B503683D4A904214BF4FF037 -:104E7800000E4FF0010EB0F1804F14BF72464EF095 -:104E88000102AAB9374CA04214BF00240124364DB0 -:104E9800A8420DD064B904F1804404F58234A042DC -:104EA80014BF0024012405F50065A84200D01CB1F8 -:104EB80023F070034C68234312BB2A4A904214BF64 -:104EC80000220122284CA0421AD0CAB902F180421D -:104ED80002F58232904214BF0022012204F50064D8 -:104EE800A0420DD062B9214A904214BF002201228B -:104EF80004F59A34A04203D012B91D4A904204D155 -:104F080023F4407CCB6843EA0C0323F080034A690E -:104F1800134303608A68C2620A688262154A904233 -:104F280014BF73464EF0010363B9104B984214BF87 -:104F38000023012302F57052904203D013B90C4BA1 -:104F4800984201D10B69036301234361036913F09C -:104F5800010F03D0036923F00103036130BD00BFD3 -:104F680000000140000800400004004000440140E7 -:104F78000048014000040140002852D070B50D4699 -:104F8800044690F83D30002B46D0022384F83D308B -:104F980022689168244B0B409360214651F8040B1A -:104FA800FFF760FF206881688369026A2E680E43F4 -:104FB8001E491940AB68D5F818C043EA0C2343EAE8 -:104FC800010C1B4B0CEA0303E968D5F81CC041EA45 -:104FD8000C2119432B6A1B03D5F810C043EA0C13A4 -:104FE8000B4322F0AA016A686D6942EA05120A4376 -:104FF800866021688B6123681A62012384F848302F -:1050080084F83E3084F83F3084F8443084F84530E2 -:1050180084F83D30002070BD80F83C30FCF784F8FF -:10502800B3E70120704700BFF8BFFEFFFCFCFFFF9D -:105038000303FFFF01F01F01012303FA01FC036AC8 -:1050480023EA0C030362036A02FA01F10B430362C9 -:10505800704738B5044690F83E30DBB290F83F20F0 -:105068005FFA82FC90F84420D0B294F845200D46AF -:10507800B1B9012808BF012B47D1022384F83E307B -:1050880084F844307DB3042D39D0012200212068F2 -:10509800FFF7D0FF012204212068FFF7CBFF27E0AC -:1050A800D2B2042914D0BCF1010F08BF012B30D1B2 -:1050B800013A18BF012201282DD162BB022384F8CE -:1050C8003E3084F83F3084F8443084F84530D9E7DE -:1050D800012A08BFBCF1010F19D1022384F83F301F -:1050E80084F84530CEE7012200212068FFF7A2FFAF -:1050F8002268136843F001031360002038BD0122C1 -:1051080004212068FFF796FFF2E70120F6E7012067 -:10511800F4E70120F2E70120F0E7000090F83C30C6 -:10512800012B45D070B4012380F83C30022380F86D -:105138003D3003685A689C681E4E1F4DAB4218BF2D -:10514800B34203D122F470024D682A4322F0700260 -:105158000D682A435A600368164AB3F1804F18BF96 -:10516800934217D0A2F57C42934213D002F5806295 -:1051780093420FD002F5806293420BD002F5784239 -:10518800934207D0A2F56C42934203D002F59432C1 -:10519800934204D124F080048A6814439C6001235C -:1051A80080F83D30002380F83C30184670BC7047CA -:1051B800022070470000014000040140704770471A -:1051C8007047026852E8003F23F0C00342E800310C -:1051D8000029F6D1026802F1080353E8003F23F4DE -:1051E8000003083242E800310029F3D12023C0F837 -:1051F80088307047026852E8003F23F4907342E811 -:1052080000310029F6D1026802F1080353E8001FB3 -:105218000D4B0B40083242E800310029F3D1C36E30 -:10522800012B06D02023C0F88C300023C3664367C7 -:105238007047026852E8003F23F0100342E800314B -:105248000029F6D1EEE700BFFEFFFFEF1346D0F8C6 -:105258008820202A3DD110B50446002B18BF00290C -:1052680039D00165A0F85430A0F856300022C0F8B3 -:1052780090202122C0F88820C26FCAB11749D16393 -:10528800C26F17491164C26F1649D164C26F0021F9 -:10529800116502682832016DC06FFCF785FD38B1D1 -:1052A8001023C4F890302023C4F8883001200FE080 -:1052B800236840221A62226802F1080353E8003F7B -:1052C80043F08003083242E800310029F3D100207E -:1052D80010BD022070470120FAE700BFF152000814 -:1052E8005D5300086953000808B50346806BDB6905 -:1052F800B3F5807F18D00023A0F85630026802F179 -:10530800080353E8003F23F08003083242E80031E5 -:105318000029F3D1026852E8003F43F0400342E815 -:1053280000310029F6D108BDFBF7EAFFFBE708B515 -:10533800026852E8003F23F0400342E800310029A8 -:10534800F6D12023C0F8883000238367FBF7D8FF05 -:1053580008BD704708B5806BFFF7FBFF08BD7047B5 -:1053680038B5846BD4F88820D4F88C5023689B68AF -:1053780013F0800F01D0212A10D023689B6813F006 -:10538800400F01D0222D10D0D4F8903043F01003F4 -:10539800C4F890302046FFF7E2FF38BD0023A4F898 -:1053A80056302046FFF70DFFE7E70023A4F85E30EC -:1053B8002046FFF71FFFE7E708B5806B0023A0F83A -:1053C8005E30A0F85630FFF7CAFF08BD70470000EE -:1053D80070B504460168CB6908688D6840F60F020D -:1053E8001A4008D113F0200F05D010F0200F34D147 -:1053F80015F0805F31D12AB18B4A2A4033D18B4EC8 -:10540800304230D1E26E012A00F0C68013F4801FCA -:1054180003D015F4800F40F09B8113F0800F07D064 -:1054280010F0800F40F09B8115F4000F40F0978139 -:1054380013F0400F03D010F0400F40F0978113F4A1 -:10544800000F03D010F0804F40F0948113F0807F5C -:1054580002D00028C0F2928170BD636F002BFBD090 -:1054680020469847F8E713F0010F09D010F4807F21 -:1054780006D001260E62D4F890103143C4F890107B -:1054880013F0020F0BD015F0010F08D02168022687 -:105498000E62D4F8901041F00401C4F8901013F093 -:1054A800040F0BD015F0010F08D0216804260E62F6 -:1054B800D4F8901041F00201C4F8901013F0080FCE -:1054C8000BD010F0200F00D13AB1226808211162E8 -:1054D800D4F890200A43C4F8902013F4006F0CD03D -:1054E80010F0806F09D022684FF400611162D4F87F -:1054F800902042F02002C4F89020D4F89020002A8E -:10550800AAD013F0200F09D010F0200F02D115F007 -:10551800805F03D0636F0BB120469847D4F8902082 -:1055280023689B6813F0400F02D112F0280F2CD08B -:105538002046FFF75FFE23689B6813F0400F20D0DA -:10554800226802F1080353E8003F23F040030832C1 -:1055580042E800310029F3D1D4F880306BB1344AE5 -:105568001A65D4F88000FCF70BFF00283FF474AFED -:10557800D4F88000036D98476EE72046FFF7EFFEEA -:105588006AE72046FFF7EBFE66E72046FFF7E7FEEF -:105598000023C4F890305FE713F0100F3FF436AFE4 -:1055A80010F0100F3FF432AF10230B6223689B6892 -:1055B80013F0400F00F09280D4F8802013681D4843 -:1055C8001D498B4218BF834238D018318B4235D0E1 -:1055D80018318B4232D018318B422FD018318B4280 -:1055E8002CD018318B4229D018318B4226D001F5A6 -:1055F80056718B4222D018318B421FD018318B4202 -:105608001CD018318B4219D018318B4216D0183162 -:105618008B4213D018318B4210D018318B420DD0E9 -:105628005B689BB20CE000BF010000102001000481 -:10563800C153000810000240280002405B689BB27A -:10564800002B3FF409AFB4F85C1099427FF604AF21 -:10565800A4F85E30D369B3F5807F32D0226852E86F -:10566800003F23F4807342E800310029F6D1226814 -:1056780002F1080353E8003F23F00103083242E82F -:1056880000310029F3D1226802F1080353E8003FF2 -:1056980023F04003083242E800310029F3D12023E7 -:1056A800C4F88C300023E366226852E8003F23F0F8 -:1056B800100342E800310029F6D1D4F88000FCF745 -:1056C800BFFC02232367B4F85C10B4F85E309BB2C9 -:1056D800C91A89B22046FFF779FEBDE6B4F85C1016 -:1056E800B4F85E309BB2C91A89B2B4F85E309BB286 -:1056F800002B3FF4B1AE00293FF4AEAE226852E869 -:10570800003F23F4907342E800300028F6D1226865 -:1057180002F1080353E8000F1A4B0340083242E82D -:1057280000300028F3D12023C4F88C300023E3662E -:105738006367226852E8003F23F0100342E8003014 -:105748000028F6D1022323672046FFF73FFE83E6B1 -:105758004FF480130B62204600F07CFD7CE6A36FBB -:10576800002B3FF479AE2046984775E62046FFF7B0 -:10577800DEFD71E6204600F06FFD6DE6204600F084 -:105788006AFD69E6FEFFFFEF70B586B00446016862 -:1057980083680269134342691343C2691343086863 -:1057A800884A024013430B602268536823F440532D -:1057B800E1680B435360A1692268834B9A4201D088 -:1057C800236A19439068814B03400B439360226816 -:1057D800D36A23F00F03616A0B43D36222687C4BC0 -:1057E8009A4221D07B4B9A4200F08C807A4B9A42A5 -:1057F80000F0A280794B9A4200F0B580784B9A422B -:1058080000F0C880774B9A4200F0F480764B9A42B9 -:1058180000F01981754B9A4200F02C816A4B9A422C -:1058280000F03F81802333E0714B5B6D03F0380358 -:10583800282B65D8DFE813F02900640064006400B1 -:1058480064006400640064004D0164006400640046 -:1058580064006400640064002B0064006400640059 -:1058680064006400640064005E0064006400640016 -:105878006400640064006400600064006400640004 -:1058880064006400640064006200012300E00823EF -:105898004D498A4200F02F81E069B0F5004F00F0D1 -:1058A800AF81202B00F20782202B00F25182DFE823 -:1058B80013F01E0224024F024F0227024F024F022A -:1058C8004F022C024F024F024F024F024F024F026B -:1058D8004F0231024F024F024F024F024F024F0256 -:1058E8004F024F024F024F024F024F024F024F0228 -:1058F8004F023D021023CBE72023C9E74023C7E727 -:105908008023C5E73A4B5B6D03F00703052B11D8DD -:10591800DFE813F00600E10008000A000C000E00A2 -:105928000023B5E70823B3E71023B1E72023AFE747 -:105938004023ADE78023ABE72D4B5B6D03F00703F6 -:10594800052B0ED8DFE803F003C90507090B002370 -:105958009EE708239CE710239AE7202398E7402333 -:1059680096E7802394E7224B5B6D03F00703052B32 -:105978000ED8DFE803F003B40507090B002387E717 -:10598800082385E7102383E7202381E740237FE767 -:1059980080237DE7164B5B6D03F00703052B0ED8BC -:1059A800DFE803F0039F0507090B002370E70823CE -:1059B8006EE710236CE720236AE7402368E780231B -:1059C80066E700BFF369FFCF000C0058FFF4FF1132 -:1059D800001001400044004000480040004C0040D6 -:1059E800005000400014014000780040007C004056 -:1059F800004402587D4B5B6D03F03803282B20D8F8 -:105A0800DFE803F0151F1F1F1F1F1F1F711F1F1F18 -:105A18001F1F1F1F171F1F1F1F1F1F1F191F1F1F9C -:105A28001F1F1F1F1B1F1F1F1F1F1F1F1D000123BD -:105A38002EE708232CE710232AE7202328E7402312 -:105A480026E7802324E7694B5B6D03F00703052BEA -:105A58000ED8DFE803F0034A0507090B002317E710 -:105A6800082315E7102313E7202311E740230FE746 -:105A780080230DE75D4B5B6D03F00703052B0ED804 -:105A8800DFE803F003350507090B002300E70823C7 -:105A9800FEE61023FCE62023FAE64023F8E68023FE -:105AA800F6E603F50E339B6D03F00703052B0ED8BE -:105AB800DFE803F0031F0507090B0223E8E60823C4 -:105AC800E6E61023E4E62023E2E64023E0E680232E -:105AD800DEE60423DCE60423DAE60423D8E604231E -:105AE800D6E60423D4E60423D2E60423D0E604232E -:105AF800CEE60423CCE6202B27D8022BC0F01A814F -:105B0800023B1E2B00F21881DFE813F0500016014B -:105B180056001601160116015B0016011601160142 -:105B2800160116011601160160001601160116016C -:105B380016011601160116011601160116011601A5 -:105B480016011601160116016C00402B2CD14FF4DA -:105B58000040626A264B33F81220B0FBF2F3656806 -:105B680005EB4501994200F2E980B3EB053F00F2ED -:105B7800E780002633463146FAF728FE090241EA53 -:105B8800106100026B08C0182A46334641F1000133 -:105B9800FAF71CFEA0F54072164B9A4200F2D2802A -:105BA8002368D8603046D4E00120D2E0FEF752FEE8 -:105BB8000028CED10020CCE003A8FEF75DFE0498B3 -:105BC800F6E76846FEF772FF0198F1E7074B1B6896 -:105BD80013F0200F08D0054B1B68C3F3C103064818 -:105BE800D840E5E70548B4E70348B2E7004402585F -:105BF800CC740008FFFC0F000090D00300093D00A2 -:105C0800202B15D8202B00F29F80DFE803F03137D6 -:105C18009D9D3A9D9D9D3F9D9D9D9D9D9D9D449DC6 -:105C28009D9D9D9D9D9D9D9D9D9D9D9D9D9D500086 -:105C3800402B1BD1626A4D4B33F81230B0FBF3F0A6 -:105C48006268530803EB4000B0FBF2F0A0F11002C9 -:105C58004FF6EF739A4279D883B223F00F03C0F35B -:105C6800420018432368D860002072E0012070E0E9 -:105C7800FDF77AFF0028DDD100206AE0FDF786FFF6 -:105C8800F8E703A8FEF7F8FD0498F3E76846FEF77F -:105C98000DFF0198EEE7364B1B6813F0200F08D074 -:105CA800334B1B68C3F3C1033248D840E2E732489C -:105CB800C0E73048BEE7402B17D14FF40040626A76 -:105CC8002A4B33F81230B0FBF3F0636800EB530053 -:105CD800B0FBF3F0A0F110024FF6EF739A4242D8EE -:105CE800236880B2D860002033E0012031E0FDF75E -:105CF8003BFF0028E3D100202BE0FDF747FFF8E742 -:105D080003A8FEF7B9FD0498F3E76846FEF7CEFE50 -:105D18000198EEE7164B1B6813F0200F08D0144BC0 -:105D28001B68C3F3C1031348D840E2E71248C6E72B -:105D38001048C4E701200CE001200AE0012008E037 -:105D4800012006E0012004E0012002E0012000E03B -:105D580001200123A4F86A30A4F86830002363679F -:105D6800A36706B070BD0120F3E700BFCC7400083C -:105D7800004402580090D00300093D00836A13F0E4 -:105D8800080F06D00268536823F40043816B0B4365 -:105D98005360836A13F0010F06D00268536823F436 -:105DA8000033C16A0B435360836A13F0020F06D0B5 -:105DB8000268536823F48033016B0B435360836A92 -:105DC80013F0040F06D00268536823F48023416B54 -:105DD8000B435360836A13F0100F06D00268936870 -:105DE80023F48053C16B0B439360836A13F0200F35 -:105DF80006D00268936823F40053016C0B43936048 -:105E0800836A13F0400F0AD00268536823F48013A2 -:105E1800416C0B435360436CB3F5801F0BD0836A0E -:105E280013F0800F06D00268536823F40023C16C76 -:105E38000B43536070470268536823F4C003816CB6 -:105E48000B435360EBE72DE9F84305460E4617462A -:105E58009946DDF820802C68E46936EA04030CBF13 -:105E68004FF0010C4FF0000CBC453AD1B8F1FF3FA0 -:105E7800F1D0FBF7E1FAA0EB0900404534D8B8F1BE -:105E8800000F33D02B681A6812F0040FE3D0B6F174 -:105E9800400218BF0122802EDDD0002ADBD0DA694B -:105EA80012F0080F11D1DA6912F4006FD3D04FF451 -:105EB80000621A622846FFF79DF92023C5F8903042 -:105EC800002385F8843003200CE008241C6228464F -:105ED800FFF790F9C5F89040002385F88430012039 -:105EE80000E00020BDE8F8830320FBE70320F9E782 -:105EF8002DE9F04182B01E46D0F88830202B5BD1C6 -:105F080004460D469046002A18BF002901D10120F9 -:105F180053E00023C0F890302123C0F88830FBF705 -:105F28008BFA0746A4F85480A4F85680A368B3F502 -:105F3800805F02D04FF0000816E0236943B34FF0AA -:105F4800000811E02023C4F88830032035E038F831 -:105F5800023B2268C3F308039362B4F8562092B256 -:105F6800013A92B2A4F85620B4F856309BB293B1D5 -:105F780000963B46002280212046FFF764FF002858 -:105F8800E0D1002DE3D015F8012B23689A62E4E7ED -:105F9800A8460025E8E700963B4600224021204617 -:105FA800FFF751FF18B92023C4F8883005E02023F3 -:105FB800C4F88830032000E0022002B0BDE8F08178 -:105FC8002DE9F04383B01E46D0F88C30202B7ED1CB -:105FD80004460D469046002A18BF002901D1012029 -:105FE80076E00023C0F890302222C0F88C20C366E7 -:105FF800FBF722FA0746A4F85C80A4F85E80A36841 -:10600800B3F5805F06D0A3B9226972B9FF22A4F85C -:10601800602014E0226922B940F2FF12A4F860203F -:106028000DE0FF22A4F8602009E07F22A4F8602098 -:1060380005E0B3F1805F0AD00022A4F86020B4F82C -:106048006080B3F5805F0CD04FF0000924E022692E -:106058001AB97F22A4F86020F1E73F22A4F8602053 -:10606800EDE7236913B14FF0000915E0A9460025B3 -:1060780012E02023C4F88C30032029E023685A6AF0 -:106088005FFA88F3134005F8013BB4F85E2092B23A -:10609800013A92B2A4F85E20B4F85E309BB28BB19C -:1060A80000963B46002220212046FFF7CCFE002820 -:1060B800DFD1002DE2D123685B6A08EA030329F8DF -:1060C800023BE2E72023C4F88C30002000E00220E5 -:1060D80003B0BDE8F08330B583B004460023C0F8B0 -:1060E8009030FBF7A9F905462268126812F0080FEC -:1060F80010D123681B6813F0040F28D12023C4F89B -:106108008830C4F88C300020E066206784F884006A -:1061180003B030BD6FF07E430093034600224FF476 -:1061280000112046FFF78FFE0028E2D0226852E8CF -:10613800003F23F0800342E800310029F6D12023F4 -:10614800C4F88830002384F884300320E0E76FF037 -:106158007E4300932B4600224FF480012046FFF730 -:1061680072FE0028CAD0226852E8003F23F49073D8 -:1061780042E800310029F6D1226802F1080353E809 -:10618800003F23F00103083242E800310029F3D12F -:106198002023C4F88C30002384F884300320B7E728 -:1061A80078B310B50446D0F888300BB32423C4F86C -:1061B80088302268136823F001031360A36AE3B9E7 -:1061C8002046FFF7E1FA012811D02268536823F42A -:1061D800904353602268936823F02A0393602268EF -:1061E800136843F0010313602046FFF774FF10BDE6 -:1061F80080F88430FBF70CF8D8E72046FFF7BEFD9F -:10620800DEE7012070470000436E2BB90123A0F898 -:106218006A30A0F86830704730B403689A68C2F3EF -:1062280042629968490F094D6B5C1B01084C615C1F -:1062380093FBF1F3A0F86A30AB5C1B01A25C93FB03 -:10624800F2F3A0F8683030BC704700BFEC74000867 -:10625800E474000870477047704790F88430012B49 -:1062680018D0012380F884302423C0F888300368CC -:106278001A68196821F00101196022F00052002300 -:10628800436601680A602022C0F8882080F88430BC -:10629800184670470220704738B590F88430012BB3 -:1062A8001DD00446012380F884302423C0F88830A8 -:1062B80003681D681A6822F001021A600268936870 -:1062C80023F0604319439160FFF79EFF23681D6028 -:1062D8002023C4F88830002084F8840038BD0220C8 -:1062E800FCE738B590F88430012B1DD00446012313 -:1062F80080F884302423C0F8883003681D681A6841 -:1063080022F001021A600268936823F0606319435F -:106318009160FFF779FF23681D602023C4F8883057 -:10632800002084F8840038BD0220FCE7014B18687F -:10633800704700BF1000002470B50D4E0D4D761B40 -:10634800B61006D0002455F8043B01349847A642FD -:10635800F9D1094E094D761B01F09CF8B61006D00C -:10636800002455F8043B01349847A642F9D170BD82 -:106378000075000800750008087500080075000819 -:10638800830730B548D0541E002A3FD0CAB203460E -:1063980001E0013C3AD303F8012B9D07F9D1032C06 -:1063A8002DD9CDB245EA05250F2C45EA054536D944 -:1063B800A4F1100222F00F0C03F1200EE6444FEA7C -:1063C800121C03F1100242E9045542E90255103249 -:1063D8007245F8D10CF1010214F00C0F03EB021214 -:1063E80004F00F0C13D0ACF1040323F003030433BF -:1063F800134442F8045B9342FBD10CF003042CB124 -:10640800CAB21C4403F8012B9C42FBD130BD644640 -:106418001346002CF4D1F9E703461446BFE71A46A1 -:10642800A446E0E72DE9F043694CD4F8008083B036 -:1064380004460E4617461D46B8F1000F03D0D8F89B -:106448003830002B77D0022F05D0012F00F2AC8016 -:10645800002DC0F2A980636EDA0752D52146404666 -:1064680000F058F9216B41B104F14003994202D080 -:10647800404600F07BFA00232363B4F90CC00023E4 -:106488001CF0800FA361636064D12CF44A6C2CF07B -:10649800030C022FA4F80CC06AD001AB6A4621464F -:1064A800404600F095FBA3891843A081002D2FD00A -:1064B800002E2ED0D8F83830002B38D0009B26601C -:1064C800AB42B4F90C301CBF43F40063A381012F25 -:1064D80004BF43F00103A3819AB213F00803C4E98F -:1064E80004652CD0D1075DD56D42A561656E00238A -:1064F80015F00105A36027D00025284603B0BDE8A4 -:10650800F083A3899B05A9D4A06D00F05DFBA5E7E6 -:10651800009D284600F08CFB0646002847D0A3893A -:1065280043F08003A381D8F83830002BC6D1404609 -:1065380000F024F9C2E7404600F020F983E7A360A1 -:10654800656E15F00105D7D1930524D5284603B00B -:10655800BDE8F0832169404600F008FAB4F90CC0A0 -:106568002CF44A6C2CF0030C022FA4F80CC094D124 -:106578000025002204F14303A2600122C4E9043289 -:106588002360636E4CF0020CD807A4F80CC0DDD46D -:106598001CF4007FDAD1A06D00F018FB284603B088 -:1065A800BDE8F083A560CBE74FF0FF35CEE7DDF817 -:1065B8000090A94504D0484600F03AFB064620B9A9 -:1065C800B4F90CC04FF0FF35D3E74D46A7E700BF3D -:1065D80010000024024B13B1024800F005B87047C0 -:1065E80000000000A9680008002301461A46184662 -:1065F80000F050BEB1F90C20F8B50C46110707465B -:1066080042D4636842F40062002BA28159DDA56A76 -:10661800002D54D000233E683B6093B212F48052A0 -:1066280053D1E16901233846A847421C63D0A389A6 -:10663800A56A5B0705D56368C01A236B0BB1E36BCA -:10664800C01AE169024600233846A847411C3ED1DA -:106658003B68002B3BD01D2B01D0162B52D1A389B0 -:106668002269226023F4006300216160A381216B09 -:106678003E6021B304F14003994202D0384600F04D -:1066880075F900202063F8BD2669C6B193B2256864 -:1066980026609A070CBF63690023AD1BA3600CE05A -:1066A800D4F824C0E1692B4632463846E047B0F1B9 -:1066B800000CA5EB0C05664416DD002DF0DC00206F -:1066C800F8BDE36B002BA2DCF9E7206DB1E7B4F964 -:1066D8000C302269226023F40063A3810022DB04CA -:1066E8006260C4D52065C2E7A38943F040034FF038 -:1066F800FF30A381F8BD3B68002B98D01D2B06D036 -:10670800162B04D0A38943F04003A381F8BD3E6053 -:10671800D5E700BF38B50C46054608B1836BA3B171 -:10672800B4F90C00B8B1636EDB0701D4810515D547 -:1067380028462146FFF75EFF636EDA07054602D456 -:10674800A3899B050ED5284638BD00F017F8B4F983 -:106758000C000028E7D10546284638BDA06D00F09A -:1067680033FAE5E7A06D00F031FA284638BD00BFDE -:10677800014900F001BA00BF4D7300082DE9F04748 -:106788008246394800F020FADAF83840002C66D101 -:10679800DAF80450354ACAF83C200323CAE9B8435A -:1067A800DFF8CC90DFF8CC80334F344E04230AF561 -:1067B8003B72CAF8E8222146C5E90243C5E900440C -:1067C800C5E904446C660822AC6105F15C00FFF77A -:1067D800D7FDC5E90759C5E90987EE6205F15800F3 -:1067E80000F0EEF9DAF80850254BEB602146C5E9D0 -:1067F8000044C5E904446C66AC60AC61082205F14C -:106808005C00FFF7BDFDC5E90759C5E90987EE62D8 -:1068180005F1580000F0D4F9DAF80C50194BEB6088 -:106828002146C5E90044C5E904446C66AC60AC6126 -:10683800082205F15C00FFF7A3FD05F15800C5E942 -:106848000759C5E90A76C5F8248000F0B9F901238B -:10685800CAF838300448BDE8F04700F0B7B9BDE8D9 -:10686800F047014800F0B2B9000A0024796700082F -:10687800E571000809720008497200086972000889 -:106888000900010012000200014800F09DB900BF94 -:10689800FC090024014800F099B900BFFC09002454 -:1068A80038B5084B084D5B1B9C1007D0043B1D44B2 -:1068B800013C55F804399847002CF9D1BDE8384017 -:1068C80000F0EEBD0C75000808750008F8B5244FF7 -:1068D8000C46064600F064FCBA685568C4F57E6349 -:1068E8000F3325F003052B4423F47F6323F00F03B4 -:1068F800A3F58054B4F5805F07DB0021304600F033 -:106908005BFCBB682B44984204D0304600F04EFC38 -:106918000020F8BD6142304600F04EFC01300DD039 -:10692800104ABB682D1B45F001055D6013683046B1 -:106938001B1B136000F03AFC0120F8BD0021304613 -:1069480000F03AFCBA68831A0F2BDEDD43F001032E -:106958005360054B03491B68C01A0860D5E700BFA0 -:1069680044040024040A00244C080024002961D0AF -:10697800F8B50C46064600F013FC54F8042C7B4F7F -:10698800A4F1080522F0010105EB010CB868DCF858 -:106998000430604523F0030300F08B80D207CCF865 -:1069A800043032D454F8082CAD1A1144AA6807F1FF -:1069B800080082426AD00CEB0304D4F804E0EC68C7 -:1069C800D4601EF0010FA26000F0978041F001032F -:1069D8006B60CCF80010B1F5007F35D27A68CB082F -:1069E80048090121013381401143796007EBC30253 -:1069F80057F83310083AC5E9021247F83350CD600A -:106A08003046BDE8F84000F0D1BB0CEB03025268F9 -:106A1800D00710D4194407F10800DCF80830834285 -:106A280073D0DCF80C20DA60936041F001036B60EE -:106A38006950D0E7704741F00103B1F5007F44F891 -:106A4800043CCCF80010C9D3B1F5206F4FEA5123AC -:106A580048D28B0903F1390003F13802C300F81852 -:106A6800FB580838984259D05A6822F003028A42E3 -:106A780002D99B689842F7D1D868C5E90230856089 -:106A8800DD603046BDE8F84000F090BB0CEB030237 -:106A98005268D20763D40B44DCE90212CA609160E1 -:106AA80043F001026A603046EB50BDE8F84000F060 -:106AB8007DBB0B44D10707D454F8082CAD1A1344F6 -:106AC800D5E90212CA60916043F001026A60284A5F -:106AD800BD6012689A4293D8264B30461968FFF772 -:106AE800F5FE8DE7142B0AD9542B1FD80B0B03F195 -:106AF8006F0003F16E02C300B1E719448DE703F19B -:106B08005C0003F15B02C300A9E741F00103C7E998 -:106B18000455C5E902006B60695071E77968921005 -:106B2800012404FA02F20A437A60A6E7B3F5AA7FC1 -:106B380006D8CB0B03F1780003F17702C3008EE788 -:106B480040F25452934206D88B0C03F17D0003F1B6 -:106B58007C02C30083E74FF47E737E227FE741F017 -:106B680001036B60CCF800104AE700BF440400241E -:106B780050080024340A00242DE9F84307468846C3 -:106B880000F538764FF00009D6E90154013D11D4DB -:106B9800A389012B05F1FF3508D9B4F90E3001336B -:106BA800214603D03846C04749EA00096B1C04F166 -:106BB8006804EDD13668002EE6D14846BDE8F88372 -:106BC800704700BF704700BF704700BF704700BFE5 -:106BD80070B50C46B1F90E10002996B015461E4640 -:106BE80014DB6A4600F014FC00280FDB019A02F45B -:106BF8007042A2F50052B2FA82F24FF48063520951 -:106C08004FF4006032602B6016B070BDB4F90C1000 -:106C1800002311F08000336004D0402218462A6017 -:106C280016B070BD4FF480632B6016B070BD00BF06 -:106C3800024B0146186800F003B800BF100000249A -:106C48002DE9F04F01F10B06162E83B0044624D827 -:106C5800102900F2BA8000F0A3FA102618220220A8 -:106C6800B54F3A44A2F1080153688B4200F0BA804C -:106C78005A68D96822F003021A449D68E9608D6059 -:106C8800516841F001012046516003F1080500F008 -:106C98008DFA284603B0BDE8F08F36F0070600F1FC -:106CA8009480B14200F2918000F07AFAB6F5FC7F48 -:106CB800C0F09A81730A00F08F80042B00F26F8174 -:106CC800B30903F1390003F1380CC3009A4F3B4470 -:106CD800A3F108055B689D4206D10CE0002980F20B -:106CE8002781DB689D4206D05A6822F00302911B77 -:106CF8000F29F3DD60463D69DFF840C265457CD069 -:106D08006A6822F00302931B0F2B00F37B81002B90 -:106D1800C7E904CC80F26C81B2F5007F80F01A815B -:106D2800D308796801334FEA521E012202FA0EF2A3 -:106D38000A4357F833E0C5F808E007EBC301083900 -:106D4800E9607A6047F83350CEF80C50831001217F -:106D58009940914257D8114206D120F003004900CA -:106D6800114200F10400FAD007EBC0094D468646EF -:106D7800D5F80C80454508D11DE1002B80F224810F -:106D8800D8F80C80454500F01681D8F8042022F088 -:106D98000302931B0F2BF0DD2046D8E9025408EBC1 -:106DA800060146F00106C8F80460EC60A56043F0EF -:106DB8000104C7E90411C1E902CC4C6048F802306B -:106DC80000F0F4F908F1080502E00C23236000251F -:106DD800284603B0BDE8F08F4FF4007340204FF011 -:106DE8003F0C73E7D3689A4208BF02307FF440AF84 -:106DF8003D69DFF848C1654582D17A688310012171 -:106E080099409142A7D9BD686B6823F003094E45A4 -:106E180003D8A9EB06030F2B7ADCDFF824B1494B22 -:106E2800DBF800201B680132334405EB090A00F047 -:106E3800338103F580530F3323F47F6828F00F085C -:106E48004146204600F0B8F9411C024600F0F380A4 -:106E5800824500F2EE803C4B1968414419600846AF -:106E680000F04E81DBF80010019301311BBFA2EB4B -:106E78000A0A5044CBF80020186012F0070B00F003 -:106E88001781CBF108010A44CBF5805190440831B1 -:106E9800A1EB0801C1F30B0A51462046009200F00D -:106EA8008BF9421CDDE9002300F04F81801A00EBCA -:106EB8000A081968BA6048F001005144BD425060A0 -:106EC800196000F02981B9F10F0F40F22781686835 -:106ED800A9F10C0C2CF0070C00F0010040EA0C00A2 -:106EE80068604FF0050E05EB0C00BCF10F0FC0E910 -:106EF80001EE00F2328150681546144B1A688A4236 -:106F080038BF1960124B1A688A4238BF196094E07A -:106F1800AA1943F0010346F001066E602046BA60E4 -:106F2800536000F043F90835284603B0BDE8F08FF8 -:106F3800D9681A44A1E600BF440400244C04002484 -:106F48004C080024340A0024040A00242C0A0024D3 -:106F5800300A0024B2F5206F4FEA522363D3142B72 -:106F680000F2B78003F15C01C9005B3307EB010E47 -:106F78007958AEF1080E8E4500F091804B6823F0E9 -:106F88000303934202D989688E45F7D1D1F80CE002 -:106F98007A68C5E9021ECEF80850CD60D6E6142BF3 -:106FA80059D9542B00F29D80330B03F16F0003F184 -:106FB8006E0CC3008AE60EF1010E1EF0030F05F1F8 -:106FC80008057FF4D5AE51E0424445465368D8F8E9 -:106FD8000C1043F00103536055F8083F2046D96070 -:106FE8008B6000F0E3F8F3E6F00806F1080237E6F4 -:106FF8002A442046536843F001035360083500F0E3 -:10700800D5F8E5E6A919204646F0010643F0010443 -:107018006E60C7E90411C1E902CC4C60AB5000F0C6 -:10702800C5F80835D4E6930903F13901C9003833A6 -:107038009CE7BD425FD0BD68686820F003084645FC -:10704800A8EB060302D80F2B3FF762AF204600F0EB -:10705800ADF80025BCE603F15C0003F15B0CC3004E -:1070680034E659F808394B4540F0968010F0030F84 -:1070780000F1FF30F5D17B6823EA01037B6049000A -:1070880099423FF6C0AE19B9BDE649000EF1040EAB -:107098001942FAD0704667E603F11008D0E69A1054 -:1070A8004FF001087B6808FA02F21A437A6070E729 -:1070B80002EB08014942C1F30B0A514620460092EF -:1070C80000F07AF8431CDDE900237FF4EFAEDA46DE -:1070D800EFE6542B25D8130B03F16F01C9006E336B -:1070E80044E7B3F5AA7F25D8F30B03F1780003F141 -:1070F800770CC300EAE5294B186840441860B1E6EC -:10710800CAF30B0CBCF1000F7FF4ACAEBD68C844E9 -:1071180048F001006860F0E61546EEE6012353608A -:1071280094E7B3F5AA7F23D8D30B03F17801C900FC -:1071380077331BE740F25452934223D8B30C03F140 -:107148007D0003F17C0CC300C0E5ABF1080BD8440B -:10715800A8EB02084FF0000AABE605F1080120464B -:107168000093FFF703FCBD68009B68681968C4E6D4 -:1071780040F254518B420BD8930C03F17D01C900A6 -:107188007C33F3E64FF47E737F204FF07E0C9DE551 -:107198004FF47E717E23E9E67B6870E7040A0024D9 -:1071A8000148FFF711BD00BFF80900240148FFF7A7 -:1071B8000DBD00BFF809002438B5074D002204466C -:1071C80008462A60F9F7FCFE431C00D038BD2B683E -:1071D800002BFBD0236038BD380A002410B50C46BC -:1071E800B1F90E1000F040F9002803DB236D0344C9 -:1071F800236510BDA38923F48053A38110BD00BF6C -:107208002DE9F0410C46B1F90C101F46CB05054697 -:1072180016460BD421F48051A1813B46B4F90E10D7 -:1072280032462846BDE8F04100F01EB8B4F90E1009 -:107238000223002200F002F9B4F90C10EAE700BFBB -:1072480010B50C46B1F90E1000F0F8F8A389421CED -:107258000EBF23F4805343F480532065A38110BDEF -:10726800B1F90E1000F05CB838B50C46084D8446EC -:10727800114620461A4600232B606446F9F704FE9F -:10728800431C00D038BD2B68002BFBD0236038BDD1 -:10729800380A00242DE9F047DFF87CA00646DAF822 -:1072A800000098460F469146FFF78EFC1B4B1B6863 -:1072B800D3F8484124B365681F2D26DC5EB96B1CE2 -:1072C8000235DAF80000636044F82570FFF77EFCA9 -:1072D8000020BDE8F08704EB85010123C1F8889000 -:1072E800D4F88821AB401A43022EC4F88821C1F88B -:1072F8000881E4D1D4F88C211343C4F88C31DEE73B -:1073080003F5A674C3F84841D5E7DAF80000FFF79B -:107318005DFC4FF0FF30DCE740040024F474000803 -:1073280038B5074D0022044608462A60F9F7C6FD1D -:10733800431C00D038BD2B68002BFBD0236038BD20 -:10734800380A002470B500294BD006460C4610B107 -:10735800836B002B48D0636ED80734D5B4F90C3052 -:10736800002B3ED021463046FFF744F9E36A054634 -:1073780033B1E169304698470028B8BF4FF0FF3570 -:10738800A3891A063BD4216B41B104F14003994209 -:1073980002D03046FFF7EAFA00232363616C21B17B -:1073A8003046FFF7E3FA00236364FFF76DFA636E74 -:1073B8000022DB07A28127D5A06DFFF703FCFFF7AA -:1073C80069FA284670BDA3899905CBD4A06DFFF74B -:1073D800FBFBB4F90C30002BC4D1656E15F0010528 -:1073E80008D00025284670BDFFF7C8F9636ED80796 -:1073F800B4D4E8E7A06DFFF7E9FB284670BD216922 -:107408003046FFF7B3FABEE7A06DFFF7DFFBD3E71F -:1074180070B50C46084D03460026204611461C460A -:107428002E60F9F777FD431C00D070BD2B68002B48 -:10743800FBD0236070BD00BF380A002438B50C4665 -:10744800084D8446114620461A4600232B606446A0 -:10745800F9F740FD431C00D038BD2B68002BFBD04A -:10746800236038BD380A002438B50C46084D8446D8 -:10747800114620461A4600232B606446F9F732FD70 -:10748800431C00D038BD2B68002BFBD0236038BDCF -:10749800380A0024F8B500BFF8BC08BC9E467047FF -:0C74A800F8B500BFF8BC08BC9E46704759 -:1074B4000000000001020304010203040607080996 -:1074C4000006101600061016010002000400060053 -:1074D40008000A000C001000200040008000000199 -:1074E400080402040801010101010103070100006D -:0474F4001800002458 -:0874F8000C93FF7F010000006E -:08750000DD650008BD02000872 -:0475080099020008DC -:10750C000090D0030090D003010000001000000098 -:10751C0018000024000000000000000004030024F8 -:10752C006C030024D40300240000000000000000C1 -:10753C00000000000000000000000000000000003F -:10754C00000000000000000000000000000000002F -:10755C00000000000000000000000000000000001F -:10756C00000000000000000000000000000000000F -:10757C0000000000000000000000000000000000FF -:10758C0000000000000000000000000000000000EF -:10759C0000000000000000000000000000000000DF -:1075AC0000000000000000000000000000000000CF -:1075BC0000000000000000000000000000000000BF -:1075CC0001000000000000000E33CDAB34126DE65C -:1075DC00ECDE05000B0000000000000000000000C5 -:1075EC00000000000000000000000000000000008F -:1075FC00000000000000000000000000000000007F -:10760C00000000000000000000000000000000006E -:10761C00000000000000000000000000000000005E -:10762C00000000000000000000000000000000004E -:10763C00000000000000000000000000000000003E -:10764C00000000000000000000000000000000002E -:10765C00000000000000000000000000000000001E -:10766C00000000000000000000000000000000000E -:10767C0000000000000000000000000000000000FE -:10768C0000000000000000000000000000000000EE -:10769C0000000000000000000000000000000000DE -:1076AC0000000000000000000000000000000000CE -:1076BC0000000000000000000000000000000000BE -:1076CC0000000000000000000000000000000000AE -:1076DC00000000000000000000000000000000009E -:1076EC00000000000000000000000000000000008E -:1076FC00000000000000000000000000000000007E -:10770C00000000000000000000000000000000006D -:10771C00000000000000000000000000000000005D -:10772C00000000000000000000000000000000004D -:10773C00000000000000000000000000000000003D -:10774C00000000000000000000000000000000002D -:10775C00000000000000000000000000000000001D -:10776C00000000000000000000000000000000000D -:10777C0000000000000000000000000000000000FD -:10778C0000000000000000000000000000000000ED -:10779C0000000000000000000000000000000000DD -:1077AC0000000000000000000000000000000000CD -:1077BC0000000000000000000000000000000000BD -:1077CC0000000000000000000000000000000000AD -:1077DC00000000000000000000000000000000009D -:1077EC00000000000000000000000000000000008D -:1077FC00000000000000000000000000000000007D -:10780C00000000000000000000000000000000006C -:10781C00000000000000000000000000000000005C -:10782C00000000000000000000000000000000004C -:10783C00000000000000000000000000000000003C -:10784C00000000000000000000000000000000002C -:10785C00000000000000000000000000000000001C -:10786C00000000000000000000000000000000000C -:10787C0000000000000000000000000000000000FC -:10788C0000000000000000000000000000000000EC -:10789C0000000000000000000000000000000000DC -:1078AC0000000000000000000000000000000000CC -:1078BC0000000000000000000000000000000000BC -:1078CC0000000000000000000000000000000000AC -:1078DC00000000000000000000000000000000009C -:1078EC00000000000000000000000000000000008C -:1078FC00000000000000000000000000000000007C -:10790C00000000000000000000000000000000006B -:10791C00000000000000000000000000000000005B -:10792C00000000000000000000000000000000004B -:10793C00000000000000000000000000000000003B -:10794C00F40900240000000000000000440400249E -:10795C00440400244C0400244C040024540400244B -:10796C00540400245C0400245C04002464040024FB -:10797C00640400246C0400246C04002474040024AB -:10798C00740400247C0400247C040024840400245B -:10799C00840400248C0400248C040024940400240B -:1079AC00940400249C0400249C040024A4040024BB -:1079BC00A4040024AC040024AC040024B40400246B -:1079CC00B4040024BC040024BC040024C40400241B -:1079DC00C4040024CC040024CC040024D4040024CB -:1079EC00D4040024DC040024DC040024E40400247B -:1079FC00E4040024EC040024EC040024F40400242B -:107A0C00F4040024FC040024FC04002404050024D9 -:107A1C00040500240C0500240C0500241405002486 -:107A2C00140500241C0500241C0500242405002436 -:107A3C00240500242C0500242C05002434050024E6 -:107A4C00340500243C0500243C0500244405002496 -:107A5C00440500244C0500244C0500245405002446 -:107A6C00540500245C0500245C05002464050024F6 -:107A7C00640500246C0500246C05002474050024A6 -:107A8C00740500247C0500247C0500248405002456 -:107A9C00840500248C0500248C0500249405002406 -:107AAC00940500249C0500249C050024A4050024B6 -:107ABC00A4050024AC050024AC050024B405002466 -:107ACC00B4050024BC050024BC050024C405002416 -:107ADC00C4050024CC050024CC050024D4050024C6 -:107AEC00D4050024DC050024DC050024E405002476 -:107AFC00E4050024EC050024EC050024F405002426 -:107B0C00F4050024FC050024FC05002404060024D4 -:107B1C00040600240C0600240C0600241406002481 -:107B2C00140600241C0600241C0600242406002431 -:107B3C00240600242C0600242C06002434060024E1 -:107B4C00340600243C0600243C0600244406002491 -:107B5C00440600244C0600244C0600245406002441 -:107B6C00540600245C0600245C06002464060024F1 -:107B7C00640600246C0600246C06002474060024A1 -:107B8C00740600247C0600247C0600248406002451 -:107B9C00840600248C0600248C0600249406002401 -:107BAC00940600249C0600249C060024A4060024B1 -:107BBC00A4060024AC060024AC060024B406002461 -:107BCC00B4060024BC060024BC060024C406002411 -:107BDC00C4060024CC060024CC060024D4060024C1 -:107BEC00D4060024DC060024DC060024E406002471 -:107BFC00E4060024EC060024EC060024F406002421 -:107C0C00F4060024FC060024FC06002404070024CF -:107C1C00040700240C0700240C070024140700247C -:107C2C00140700241C0700241C070024240700242C -:107C3C00240700242C0700242C07002434070024DC -:107C4C00340700243C0700243C070024440700248C -:107C5C00440700244C0700244C070024540700243C -:107C6C00540700245C0700245C07002464070024EC -:107C7C00640700246C0700246C070024740700249C -:107C8C00740700247C0700247C070024840700244C -:107C9C00840700248C0700248C07002494070024FC -:107CAC00940700249C0700249C070024A4070024AC -:107CBC00A4070024AC070024AC070024B40700245C -:107CCC00B4070024BC070024BC070024C40700240C -:107CDC00C4070024CC070024CC070024D4070024BC -:107CEC00D4070024DC070024DC070024E40700246C -:107CFC00E4070024EC070024EC070024F40700241C -:107D0C00F4070024FC070024FC07002404080024CA -:107D1C00040800240C0800240C0800241408002477 -:107D2C00140800241C0800241C0800242408002427 -:107D3C00240800242C0800242C08002434080024D7 -:107D4C00340800243C0800243C080024FFFFFFFFFB -:047D5C000000020021 -:0400000508001329B3 +:100B3800019AD3F8E02042F00402C3F8E020D3F889 +:100B4800E02002F004020292029AD3F8E02042F078 +:100B58000102C3F8E020D3F8E02002F0010203927A +:100B6800039AD3F8E02042F00202C3F8E020D3F859 +:100B7800E03003F002030493049B022305934FF42F +:100B88008815069505A90F4801F00EFF1023059357 +:100B98000695079405A90C4801F006FF2246214650 +:100BA800072000F0CDFC072000F000FD224621467A +:100BB8000A2000F0C5FC0A2000F0F8FC0BB030BD9C +:100BC800004402580008025800000258022800D0C9 +:100BD8007047084B1B78002BFAD110B5064C2360E0 +:100BE80000F07CFC2060082000F0EEFC014B0122A4 +:100BF8001A7010BD580900246009002410B584B08B +:100C08000024009401940294039400F003FD01234E +:100C18008DF800308DF801404FF0105201921222E9 +:100C28008DF808208DF809408DF80A4003228DF8C8 +:100C38000B208DF80C408DF80D308DF80E308DF8A6 +:100C48000F40684600F004FD042000F0F1FC04B0F9 +:100C580010BD000010B4164B1A68164B1A54411CEC +:100C6800C2F307245C54811CC2F307445C54C11CC2 +:100C7800120E5A54104A1468011D5C541168090A6E +:100C880000F1050C03F80C101168090C00F1060CB2 +:100C980003F80C101268120EC11D5A5400F1080214 +:100CA8000D2199540930FF221A5410BC704700BF17 +:100CB8004C0D0024640900245C09002472B6FEE788 +:100CC80000B59FB04C2200210BA808F03FF8202265 +:100CD800002103A808F03AF8022002F0F5FD0023ED +:100CE8000093394BDA6A22F00102DA62DB6A03F018 +:100CF80001030093354B9A6942F440429A619B691B +:100D080003F440430093009B304B9B6913F4005F4E +:100D1800FAD02F4BD3F8F42042F00202C3F8F420A3 +:100D2800D3F8F43003F002030193019B00230293EC +:100D3800264B9A6942F440429A619B6903F4404306 +:100D48000293214BDA6A42F00102DA62DB6A03F0AD +:100D580001030293029B1D4B9B6913F4005FFAD0B9 +:100D680021230B934FF480330C9301231193022317 +:100D7800149315931693F0221792189319931A93B4 +:100D880008231B9300231C931D930BA802F0CEFD90 +:100D9800B0B93F2303930323049300230593082347 +:100DA80006934023079308934FF4806209920A93AD +:100DB800042103A803F020FA20B91FB05DF804FB52 +:100DC800FFF77CFFFFF77AFF00040058004802583D +:100DD8000044025810B5FFF711FF404B5B6913F44C +:100DE800003F13D1BFF34F8FBFF36F8F3B4B0022F0 +:100DF800C3F85022BFF34F8FBFF36F8F5A6942F485 +:100E080000325A61BFF34F8FBFF36F8F334B5B696B +:100E180013F4803F27D1314B0022C3F88420BFF35D +:100E28004F8FD3F88000C0F34E3200E01A46C0F36B +:100E3800C90143F6E07303EA421343EA8173274C7E +:100E4800C4F860320B460139002BF2D1531E002A38 +:100E5800ECD1BFF34F8F636943F480336361BFF311 +:100E68004F8FBFF36F8F00F0FFFAFFF729FFFFF7EF +:100E78004BFEFFF72DFE00F087F900F0F7F907F0B9 +:100E880079FC174800F03AF83C21164804F095FD23 +:100E980021E0426A144B1A60134B1B689942F8D040 +:100EA80000F01CFB114B1B68C01A114B1860204640 +:100EB800FFF7D0FE0A34B4F57A7F07DA094B1868D1 +:100EC800416A0C4B1960084B1960E5E74FF47A71D9 +:100ED800094807F0A3FC0024EDE700BF00ED00E09F +:100EE800200E00245C0D00244C0D00246009002411 +:100EF8005C090024500D00246409002408B5054B42 +:100F08001860054B1868002302221946806807F00C +:100F18006FFF08BD540D0024FC00002410B50138F3 +:100F280001280AD814464FF0FF3392B207480068E8 +:100F380005F0D8FB40B9204610BD07F0DDFE0923B7 +:100F480003604FF0FF30F7E70520F5E7540D002464 +:100F5800022801D80020704708B507F0CDFE092304 +:100F680003604FF0FF3008BD08B507F0C5FE092340 +:100F780003604FF0FF3008BD08B548B94FF0FF33A4 +:100F880001220848006805F015FC40B9012008BD99 +:100F980007F0B2FE092303604FF0FF30F7E70520A2 +:100FA800F5E700BF540D002408B5022804D84FF413 +:100FB80000534B60002008BD07F09EFE0923036024 +:100FC800F8E7000082B0074BD3F8F42042F00202A1 +:100FD800C3F8F420D3F8F43003F002030193019B23 +:100FE80002B0704700440258FEE7FEE7FEE7FEE75E +:100FF800FEE770477047704708B500F063FA08BD10 +:1010080008B5022001F0E4FD08BD000008B5102075 +:1010180001F0DEFD024B1B6800225A6208BD00BFCA +:101028005C0D002408B5024801F022F908BD00BF94 +:10103800A80D002408B5024804F00BFB08BD00BF4A +:101048005C0D002408B5024804F0BCFD08BD00BFD3 +:10105800200E002408B5024802F0F7F808BD00BFCA +:101068009823002408B5024802F0EFF808BD00BF35 +:101078009823002408B5024802F0E7F808BD00BF2D +:101088009823002410B503460C4A0D490D48006802 +:1010980040B10C4800680344521A934206D8094AE2 +:1010A800136010BD0748084C0460F2E707F024FEFF +:1010B8000C2303604FF0FF30F3E700BF0000082463 +:1010C80000040000580D0024E82A0024244B1B6863 +:1010D80003F00F03062B06D8214A136823F00F03E9 +:1010E80043F0070313601F4B1A6842F001021A60AD +:1010F80000221A6119681C4A0A401A60184B1B68BA +:1011080013F0080F06D0164A136823F00F0343F0B4 +:1011180007031360134B00229A61DA611A621349BC +:1011280099621349D962134919635A639963DA6357 +:1011380019645A64196821F4802119601A660E4BE3 +:101148001A680E4B1340B3F1005F03D20C4B012217 +:10115800C3F808210B4B43F2D2021A60704700BF54 +:1011680000200052004402587FEDF6EA0002020215 +:101178000000FF01800201010010005C0000FFFF79 +:10118800008000510040005200B58DB0242200219B +:1011980003A807F0DBFD0023009301930293124894 +:1011A8004FF0804202600322426083604FF0FF31BB +:1011B800C16003618361039201230593099303A925 +:1011C80004F08EFB50B90023009302936946064849 +:1011D80004F058FC28B90DB05DF804FBFFF76EFD6C +:1011E800F1E7FFF76BFDF6E75C0D002400B589B069 +:1011F8000023039304930593069307930368B3F1BD +:10120800804F02D009B05DF804FB164BD3F8E820F4 +:1012180042F00102C3F8E820D3F8E82002F0010206 +:101228000192019AD3F8E02042F00102C3F8E020CD +:10123800D3F8E03003F001030293029B03230393E6 +:10124800022304930123079303A9074801F0ACFB89 +:10125800002211461C2000F073F91C2000F0A6F9AA +:10126800D0E700BF004402580000025808B51748EC +:10127800174B03604FF4E133436000238360C3607E +:1012880003610C2242618361C3610362436283622A +:1012980005F080FB70B900210C4805F0F7FB60B938 +:1012A80000210A4805F017FC50B9084805F0CFFBA3 +:1012B80048B908BDFFF702FDEDE7FFF7FFFCEFE7D0 +:1012C800FFF7FCFCF1E7FFF7F9FCF2E7200E00243A +:1012D8000010014030B5B9B0044600213391349173 +:1012E800359136913791C02202A807F02FFD226868 +:1012F8002F4B9A4201D039B030BD01220023CDE9ED +:10130800022302A803F014FA00284AD1294BD3F883 +:10131800F02042F01002C3F8F020D3F8F02002F0D9 +:1013280010020092009AD3F8E02042F00102C3F8BC +:10133800E020D3F8E03003F001030193019B4FF460 +:10134800C0633393022334930025359536950723DC +:10135800379333A9184801F027FB1848184B036046 +:101368002A23436040238360C5604FF48063036190 +:10137800456185614FF48073C3610562456200F081 +:10138800CDFA88B90D4BE3679C63002211462520EE +:1013980000F0D6F8252000F009F9E06F00F0BEFA59 +:1013A800A9E7FFF78BFCB1E7FFF788FCEAE700BF86 +:1013B800001001400044025800000258A80D002403 +:1013C80010000240DFF834D0FFF780FE0C480D49CA +:1013D8000D4A002302E0D458C4500433C4188C4288 +:1013E800F9D30A4A0A4C002301E013600432A242EE +:1013F800FBD307F087FCFFF7EDFC704700000824DB +:10140800000000243C090024209F00083C09002417 +:10141800E42A0024FEE70000104B1B780BB90120DA +:10142800704710B504464FF47A70B0FBF3F30C4ADA +:101438001068B0FBF3F000F0D9F868B90F2C01D9A7 +:1014480001200AE0002221464FF0FF3000F078F832 +:10145800044B1C60002000E0012010BD080000249F +:10146800000000240C00002410B5032000F056F8FA +:1014780002F0B6FD0F498B69C3F303230E4AD35C10 +:1014880003F01F03D8408B6903F00F03D35C03F00C +:101498001F0320FA03F3094A1360094B18600F2051 +:1014A800FFF7BAFF10B10124204610BD0446FFF72C +:1014B80089FDF9E700440258809E000804000024D2 +:1014C80000000024034B1B78034A11680B44136087 +:1014D800704700BF08000024B40E0024014B1868B0 +:1014E800704700BFB40E002438B50446FFF7F6FF76 +:1014F8000546B4F1FF3F02D0044B1B781C44FFF7AC +:10150800EDFF401BA042FAD338BD00BF08000024FD +:10151800014B1868000C70470010005C0649CB6846 +:1015280023F4E0631B041B0C000200F4E060034397 +:10153800024A1A43CA60704700ED00E00000FA054D +:1015480000B5174BDB68C3F30223C3F1070CBCF1EA +:10155800040F28BF4FF0040C03F1040EBEF1060F70 +:1015680014D9033B4FF0FF3E0EFA0CFC21EA0C01A4 +:1015780099400EFA03F322EA03031943002807DB14 +:101588000901C9B2074B19545DF804FB0023E9E7C8 +:1015980000F00F000901C9B2034B1954F4E700BF6A +:1015A80000ED00E000E400E014ED00E0002807DBB7 +:1015B80000F01F02400901239340024A42F82030FC +:1015C800704700BF00E100E000280CDB00F01F02BC +:1015D8004009012393402030034A42F82030BFF3EA +:1015E8004F8FBFF36F8F704700E100E00138B0F113 +:1015F800807F0BD24FF0E0235861054AF02182F832 +:1016080023100020986107221A6170470120704753 +:1016180000ED00E0BFF35F8F044B5A6A22F480327A +:101628005A620022C3F89420704700BF00ED00E022 +:1016380040F00100054BC3F894005A6A42F4803226 +:101648005A62BFF34F8FBFF36F8F704700ED00E012 +:101658004378144AC2F89830D2F8A03023F0010336 +:10166800C2F8A0304368C2F89C30017BC37A1B06DD +:1016780043EA0173817A43EAC143417B43EA8143E8 +:10168800817B43EA4143C17B43EA0143417A43EA10 +:101698000123017A43EA410301780B43C2F8A030E1 +:1016A800704700BF00ED00E003682749274A9342CE +:1016B80018BF8B422FD0183293422CD01832934245 +:1016C80029D01832934226D01832934223D01832A8 +:1016D800934220D0183293421DD002F5567293429D +:1016E80019D01832934216D01832934213D01832B8 +:1016F800934210D0183293420DD0183293420AD038 +:101708001832934207D01832934204D023F0FF03D3 +:101718008365806D704710B4D9B210390C4AA2FBAA +:101728000142C2F302120B4CA25CC2655F2906D9C2 +:10173800094A1A4004328265806D10BC7047064A17 +:101748001A408265F8E700BF1000024028000240F6 +:10175800ABAAAAAA909E000800FCFFFF83699BB968 +:10176800836A012B0AD0022B02D00BB100207047EC +:10177800C36A13F0807F2AD100207047C36AB3F18F +:10178800C07F26D000207047B3F5005F0AD0836A77 +:10179800022B26D9032B26D1C36A13F0807F24D1CC +:1017A80000207047836A032B03D8DFE803F0140492 +:1017B800140A00207047C36A13F0807F0DD10020FF +:1017C8007047C36AB3F1C07F09D000207047012079 +:1017D80070470120704701207047012070470120A1 +:1017E80070470120704700207047012070470000B3 +:1017F80003682249224A934218BF8B4228D01432E8 +:10180800934225D01432934222D0143293421FD0EF +:10181800143293421CD01432934219D0143293429A +:1018280016D0DAB2103A1749A1FB0212120916496A +:101838001944A8291FD9154B13449B000366144B60 +:10184800436602F01F02012303FA02F28266704720 +:10185800DBB2083B0F4AA2FB03230F4A02EB131229 +:10186800920002660D4A4266C3F30413012202FA8B +:1018780003F3836670470832DDE700BF0854025857 +:101888001C540258ABAAAAAAF0FBFDBF00820010A4 +:1018980080080240CDCCCCCC009600168058025867 +:1018A80001794A1E072A2CD830B40368154D164C06 +:1018B800A34218BFAB4218D01434A34215D0143435 +:1018C800A34212D01434A3420FD01434A3420CD034 +:1018D8001434A34209D01434A34206D00B4B0B4452 +:1018E8009B00C3660A4B036705E00A4B0B449B0049 +:1018F800C366094B0367012303FA02F2426730BC4F +:1019080070477047085402581C5402583F82001010 +:10191800400902403F9600164059025870B50446E7 +:10192800FFF7DCFD002C00F0B6810546236853491B +:10193800534A934218BF8B420CBF0122002250D059 +:1019480030318B424DD018318B424AD018318B42FE +:1019580047D018318B4244D018318B4241D01831CE +:101968008B423ED001F556718B423AD018318B42EA +:1019780037D018318B4234D018318B4231D01831DE +:101988008B422ED018318B422BD018318B4228D065 +:1019980018318B4225D03B493B4A934218BF8B42B2 +:1019A80000F03181394A934200F02D81143293427C +:1019B80000F029811432934200F0258114329342B9 +:1019C80000F021811432934200F01D8114329342B9 +:1019D80000F0198140236365032384F83530012022 +:1019E8004AE0022184F83510002184F834107ABBCB +:1019F800274A93422CD01832934229D01832934266 +:101A080026D01832934223D01832934220D018326D +:101A180093421DD002F55672934219D01832934260 +:101A280016D01832934213D01832934210D018327D +:101A380093420DD0183293420AD01832934207D0FD +:101A48001832934204D01A6822F001021A6003E0A7 +:101A58001A6822F001021A6023681A6812F0010F4E +:101A680018D0FFF73BFD431B052BF5D920236365F1 +:101A7800032384F83530012070BD00BF10000240F8 +:101A880028000240085402581C5402583054025886 +:101A9800400002401A6881481040A168E2680A4381 +:101AA80021690A4361690A43A1690A43E1690A4352 +:101AB800216A0A430243616A042900F0998078493F +:101AC800086878490140B1F1005F11D36168A1F15C +:101AD8002905A1F13F00032888BF052D06D9A1F1EA +:101AE8004700012802D94F39032901D842F480124E +:101AF8001A602668756925F00705636A1D43042B7B +:101B080008D1A36A1D43E36A23B12046FFF726FEE6 +:101B1800002872D175612046FFF7C6FDE36D03F01A +:101B28001F023F239340836023685F495F4A9342C3 +:101B380018BF8B4242D0183293423FD0183293429A +:101B48003CD01832934239D01832934236D01832EA +:101B5800934233D01832934230D002F556729342F2 +:101B68002CD01832934229D01832934226D01832FA +:101B7800934223D01832934220D0183293421DD07A +:101B8800183293421AD01832934217D0484A9342D7 +:101B980014D01432934211D0143293420ED014321E +:101BA80093420BD01432934208D01432934205D09A +:101BB8001432934202D01432934213D12046FFF7D5 +:101BC80017FEA368802B59D0236E22791A60636EA2 +:101BD800A26E5A606368013B072B52D90023E36663 +:101BE8002367636700206065012384F8353043E785 +:101BF800E16A206B01430A4361E7402363650120E2 +:101C080084F8350038E7022284F83520002284F869 +:101C180034201A6827491140A268402A2CD0802A0B +:101C280027D00022E06842EAD002206942EAD002C6 +:101C3800606942EAD002A06942EAD002E06942EA59 +:101C4800D002206A42EA10120A431A6022681A4B2C +:101C580013441A4AA2FB03231B099B00E365204691 +:101C6800FFF722FDE26D02F01F0101228A40426067 +:101C78005AE74FF48042D5E71022D3E70023636088 +:101C8800A2E72046FFF70CFEE36E00221A60236FDE +:101C9800626F5A60A6E70120EEE600BF3F8010FEA3 +:101CA8000010005C0000FFFF100002402800024006 +:101CB800085402580F00FEFFF8ABFDA7CDCCCCCCE2 +:101CC80070B50446FFF70AFC002C00F09181054628 +:101CD80094F83530DBB2022B06D0802363650023ED +:101CE80084F83430012070BD23688C498C4A9342B3 +:101CF80018BF8B4230D0183293422DD018329342FD +:101D08002AD01832934227D01832934224D018325E +:101D1800934221D0183293421ED002F55672934254 +:101D28001AD01832934217D01832934214D018326E +:101D3800934211D0183293420ED0183293420BD0EE +:101D48001832934208D01832934205D01A6822F00C +:101D58000E021A60266809E01A6822F01E021A604C +:101D68002268536923F080035361266823686B490E +:101D78006B4A934218BF8B4242D0183293423FD0ED +:101D8800183293423CD01832934239D018329342D9 +:101D980036D01832934233D01832934230D002F5FD +:101DA800567293422CD01832934229D0183293425B +:101DB80026D01832934223D01832934220D01832BA +:101DC80093421DD0183293421AD01832934217D03A +:101DD800544A934214D01432934211D0143293428D +:101DE8000ED0143293420BD01432934208D01432DE +:101DF800934205D01432934202D01432934204D154 +:101E0800226E136823F48073136023684349444A9D +:101E1800934218BF8B422FD0183293422CD01832DD +:101E2800934229D01832934226D01832934223D0B5 +:101E38001832934220D0183293421DD002F55672C0 +:101E4800934219D01832934216D01832934213D0C5 +:101E58001832934210D0183293420DD01832934260 +:101E68000AD01832934207D01832934204D01A6825 +:101E780022F001021A6003E01A6822F001021A60D7 +:101E8800336813F0010F0ED0FFF728FB431B052B17 +:101E9800F6D920236365032384F83530002384F8BA +:101EA800343001201FE723681C491D4A934218BF9C +:101EB8008B4239D01832934236D01832934233D0FD +:101EC8001832934230D0183293422DD018329342B0 +:101ED8002AD01832934227D002F55672934223D063 +:101EE8001832934220D0183293421DD018329342B0 +:101EF8001AD01832934217D01832934214D018329D +:101F0800934211D0183293420ED0A16DE36D03F0C5 +:101F18001F02012393404B600DE000BF10000240F8 +:101F28002800024008540258A16DE36D03F01F0217 +:101F38003F2393408B6023682E492F4A934218BF52 +:101F48008B4242D0183293423FD0183293423CD051 +:101F58001832934239D01832934236D0183293420D +:101F680033D01832934230D002F5567293422CD0B7 +:101F78001832934229D01832934226D0183293420D +:101F880023D01832934220D0183293421DD01832F1 +:101F980093421AD01832934217D0184A934214D059 +:101FA8001432934211D0143293420ED01432934219 +:101FB8000BD01432934208D01432934205D0143215 +:101FC800934202D0143293420BD1636EA26E5A60D0 +:101FD800E36E33B11A6822F480721A60236F626F5D +:101FE8005A60012384F83530002084F834007AE6FA +:101FF800012078E6100002402800024008540258E8 +:10200800002800F0298108B5024690F83530DBB287 +:10201800022B03D080234365012008BD0368904844 +:1020280090498B4218BF83420CBF0121002166D022 +:102038003030834263D01830834260D018308342F6 +:102048005DD0183083425AD01830834257D01830A8 +:10205800834254D000F55670834250D018308342E2 +:102068004DD0183083424AD01830834247D01830B8 +:10207800834244D01830834241D0183083423ED046 +:10208800183083423BD0196821F00E01196013689B +:10209800A0F5956073498B4218BF83426AD0724994 +:1020A8008B4267D018318B4264D018318B4261D093 +:1020B80018318B425ED018318B425BD018318B427D +:1020C80058D001F556718B4254D018318B4251D0FB +:1020D80018318B424ED018318B424BD018318B427D +:1020E80048D018318B4245D018318B4242D0183134 +:1020F8008B423FD0196821F0010119603EE00420AD +:1021080082F8350081BB584A93422DD01832934249 +:102118002AD01832934227D01832934224D018324A +:10212800934221D0183293421ED002F55672934240 +:102138001AD01832934217D01832934214D018325A +:10214800934211D0183293420ED0183293420BD0DA +:102158001832934208D01832934205D01A6822F0F8 +:1021680001021A60002058E71A6822F001021A607A +:10217800002052E7196821F00101196013683848F6 +:1021880038498B4218BF834242D018318B423FD026 +:1021980018318B423CD018318B4239D018318B42E0 +:1021A80036D018318B4233D018318B4230D001F5FC +:1021B80056718B422CD018318B4229D018318B4262 +:1021C80026D018318B4223D018318B4220D01831B9 +:1021D8008B421DD018318B421AD018318B4217D040 +:1021E80022498B4214D014318B4211D014318B42C6 +:1021F8000ED014318B420BD014318B4208D01431DD +:102208008B4205D014318B4202D014318B4217D146 +:10221800116E0B6823F480730B60906DD36D03F01F +:102228001F0101238B404360536E916E5960D36E3A +:1022380033B1196821F480711960136F516F5960B7 +:10224800012382F83530002382F83430136D2BB126 +:10225800104698470020E0E6012070470020DCE6A1 +:102268001000024028000240400002400854025872 +:10227800F0B583B00446002301937D4B1D687D4B68 +:10228800A3FB0535AD0A876D3E68D7F800C0036823 +:1022980079497A48834218BF8B420CBF012000203D +:1022A80061D0774A93425ED0183293425BD018329D +:1022B800934258D01832934255D01832934252D094 +:1022C800183293424FD002F5567293424BD01832CF +:1022D800934248D01832934245D01832934242D0A4 +:1022E800183293423FD0183293423CD0183293426E +:1022F80039D01832934236D06249634A934218BFA4 +:102308008B4212D0614A93420FD0143293420CD0C0 +:102318001432934209D01432934206D014329342B5 +:1023280003D01432934240F061821A68E16D01F0E3 +:102338001F010420884010EA0C0F00F0A78212F059 +:10234800040F00F0A382786012F4004F00F05A8264 +:1023580012F4803F40F05082A36C002B00F04682BC +:102368002046984742E2E26D02F01F0108228A40A7 +:10237800324241D070BB424A93422BD0183293422A +:1023880028D01832934225D01832934222D01832DE +:1023980093421FD0183293421CD002F556729342D2 +:1023A80018D01832934215D01832934212D01832EE +:1023B80093420FD0183293420CD01832934209D06E +:1023C8001832934206D01832934203D01A68C2F3E7 +:1023D800C00202E01A68C2F380026AB11A6822F0E9 +:1023E80004021A60E36D03F01F0208239340BB60E8 +:1023F800636D43F001036365E26D02F01F0226FA84 +:1024080002F313F0010F47D023681B481B498B4286 +:1024180018BF83423CD018318B4239D018318B42D7 +:1024280036D018318B4233D018318B4230D0183126 +:102438008B422DD018318B422AD001F556718B4230 +:1024480026D018318B4223D018318B4220D0183136 +:102458008B421DD018318B421AD018318B4217D0BD +:1024680018318B4214D018318B4211D01B6813E0FD +:1024780000000024B5814E1B1000024028000240D5 +:1024880040000240085402581C5402583054025864 +:102498005B6913F0800F3BD1E36D03F01F03042247 +:1024A80002FA03F3334240D02268964896498A429A +:1024B80018BF824235D018318A4232D018318A4248 +:1024C8002FD018318A422CD018318A4229D018319D +:1024D8008A4226D018318A4223D001F556718A42A1 +:1024E8001FD018318A421CD018318A4219D01831AD +:1024F8008A4216D018318A4213D018318A4210D035 +:1025080018318A420DD018318A420AD013680CE07B +:10251800012303FA02F2BA60636D43F002036365B4 +:10252800BAE7126812F0020F3DD1E36D03F01F0302 +:10253800102202FA03F333425FD0226871487249CD +:102548008A4218BF824234D018318A4231D01831B9 +:102558008A422ED018318A422BD018318A4228D08C +:1025680018318A4225D018318A4222D001F5567195 +:102578008A421ED018318A421BD018318A4218D09C +:1025880018318A4215D018318A4212D018318A423D +:102598000FD018318A420CD018318A4209D01268FB +:1025A800C2F3800208E0BB60636D43F00403636517 +:1025B800BBE71268C2F3C002FAB1BB6023681A68AD +:1025C80012F4802F0DD01B6813F4002F04D1236C54 +:1025D8009BB12046984710E0A36C73B120469847FA +:1025E8000BE01A6812F4807F03D11A6822F00802FF +:1025F8001A60236C0BB120469847E36D03F01F0364 +:10260800202202FA03F3334200F0928022683D4808 +:102618003D498A4218BF82422ED018318A422BD0B7 +:1026280018318A4228D018318A4225D018318A4276 +:1026380022D018318A421FD018318A421CD001F5A5 +:1026480056718A4218D018318A4215D018318A42F8 +:1026580012D018318A420FD018318A420CD0183162 +:102668008A4209D018318A4206D018318A4203D0EA +:102678001268C2F3400202E01268C2F30012002A94 +:1026880056D0BB6094F83530DBB2042B0ED02368EB +:102698001A6812F4802F39D01B6813F4002F2CD13C +:1026A800636C002B44D02046984741E022681368A9 +:1026B80023F0160313602268536923F080035361E3 +:1026C800236CB3B12268136823F008031360E36D29 +:1026D80003F01F023F239340BB60012384F8353089 +:1026E800002384F83430236D002B7FD02046984790 +:1026F8007CE0A36C002BE5D1E9E7E36BC3B120468E +:10270800984715E010000240280002401A6812F4A9 +:10271800807F09D11A6822F010021A60012384F818 +:102728003530002384F83430E36B0BB120469847EA +:10273800636D002B5AD0636D13F0010F52D0042340 +:1027480084F8353023689649964A934218BF8B42DD +:102758002FD0183293422CD01832934229D01832F5 +:10276800934226D01832934223D01832934220D075 +:10277800183293421DD002F55672934219D018327E +:10278800934216D01832934213D01832934210D085 +:10279800183293420DD0183293420AD0183293421D +:1027A80007D01832934204D01A6822F001021A6046 +:1027B80003E01A6822F001021A60019B01330193B9 +:1027C800AB4204D823681B6813F0010FF5D12368C6 +:1027D8001B6813F0010F0BD0032384F83530002356 +:1027E80084F83430E36C0BB12046984703B0F0BD51 +:1027F800012384F83530F2E7236C002BF6D020460D +:102808009847F3E712F0200F3AD123686449654AE4 +:10281800934218BF8B422FD0183293422CD01832D3 +:10282800934229D01832934226D01832934223D0AB +:102838001832934220D0183293421DD002F55672B6 +:10284800934219D01832934216D01832934213D0BB +:102858001832934210D0183293420DD01832934256 +:102868000AD01832934207D01832934204D01A681B +:1028780022F004021A6003E01A6822F008021A60C3 +:10288800236C002BB2D020469847AFE7022088403F +:1028980010EA0C0F60D012F0020F5DD0786012F4CD +:1028A800004F0ED012F4803F05D1636C002B9DD0F1 +:1028B800204698479AE7E36B002B97D02046984725 +:1028C80094E712F0200F40D123683549354A9342E6 +:1028D80018BF8B422FD0183293422CD01832934213 +:1028E80029D01832934226D01832934223D0183276 +:1028F800934220D0183293421DD002F5567293426B +:1029080019D01832934216D01832934213D0183285 +:10291800934210D0183293420DD0183293420AD005 +:102928001832934207D01832934204D01A6822F022 +:102938000A021A6003E01A6822F014021A600123DE +:1029480084F83530002384F83430E36B002B3FF4EF +:102958004DAF2046984749E7082000FA01F111EAEF +:102968000C0F3FF443AF12F0080F3FF43FAF1A6863 +:1029780022F00E021A60E36D03F01F03012202FA2F +:1029880003F37B60626584F83520002384F83430D3 +:10299800E36C002B3FF42AAF2046984726E700BF98 +:1029A800100002402800024070B582B000236EE09B +:1029B80085685E000324B44025EA0405CC68B44069 +:1029C8002C438460446824EA0C0C4C68C4F300145B +:1029D8009C4044EA0C0444606CE0DD08083550F87B +:1029E800256003F007044FEA840C0F2404FA0CF462 +:1029F80026EA040E0C6904FA0CF444EA0E0440F8C2 +:102A080025406FE0092400E0002404FA0EF42C436A +:102A18000CF1020C6B4D45F82C404FF0B044256882 +:102A2800D44325EA0206D1F804C01CF4801F01D063 +:102A380042EA05064FF0B0452E606D6804EA0506C7 +:102A4800D1F804C01CF4001F01D042EA05064FF07B +:102A5800B0456E60D5F8845004EA0506D1F804C084 +:102A68001CF4003F01D042EA05064FF0B045C5F816 +:102A78008460D5F880502C404E6816F4803F01D011 +:102A880042EA05044FF0B042C2F8804001330A68B8 +:102A980032FA03F400F093804FF0010C0CFA03FCB7 +:102AA8001CEA0202F2D04C6804F00304013C012C39 +:102AB8007FF67EAF4C6804F00304032C0CD0C46886 +:102AC8005D004FF0030C0CFA05FC24EA0C0C8C6832 +:102AD800AC4044EA0C04C4604C6804F00304022CC3 +:102AE8003FF47BAF04684FEA430E4FF0030C0CFA37 +:102AF8000EFC24EA0C0C4C6804F0030404FA0EF4EF +:102B080044EA0C0404604C6814F4403FBED02E4CD8 +:102B1800D4F8F45045F00205C4F8F450D4F8F44061 +:102B280004F002040194019C4FEA930C0CF1020595 +:102B3800244C54F8255003F003044FEA840E0F2464 +:102B480004FA0EF425EA0405204CA0423FF45CAFD9 +:102B580004F58064A04222D004F58064A04220D00D +:102B680004F58064A0421ED004F58064A0421CD005 +:102B780004F58064A0421AD004F58064A04218D0FD +:102B880004F58064A04216D004F58064A04214D0F5 +:102B980004F58064A0423FF435AF0A2435E70124E8 +:102BA80033E7022431E703242FE704242DE7052423 +:102BB8002BE7062429E7072427E7082425E702B09E +:102BC80070BD00BF000400580044025800000258BD +:102BD80008B54FF0B043D3F88830034200D108BDA0 +:102BE8004FF0B043C3F88800FDF7F0FFF7E72DE991 +:102BF800F04383B0D0F8008001EBC10300EB8303FE +:102C08009A6A5B6A9A4254D807460C469B1A01EBAB +:102C1800C10200EB8202D2699A4200D31A4602F13D +:102C280003094FEA990915E006F103094FEA9909E2 +:102C3800BB7904EBC40507EB8505296A0093B3B299 +:102C4800E2B2404604F0A4FA2B6A33442B62AB6A22 +:102C58003344AB6208EB441303F510639B699BB2E2 +:102C68004B4512D304EBC40207EB8202916A536A04 +:102C780099420AD24BB15B1A04EBC40207EB8202F9 +:102C8800D6699E42D0D31E46CEE704EBC40007EBBC +:102C980080077A6ABB6A9A420FD804F00F040123AE +:102CA800A340D8F8344824EA0304C8F8344800207C +:102CB80000E0012003B0BDE8F0830020FAE730B55A +:102CC80083B000287AD0044690F89534ABB103233A +:102CD80084F89534206804F013F8237C8DF80030CC +:102CE800231D0ECB206803F041FF58B1022384F85E +:102CF80095340125284603B030BD80F8943405F09A +:102D08003DFEE4E70021206804F05DFC024608B9B6 +:102D1800034617E0022384F895340125EAE703EB1C +:102D2800C30104EB8101012048750B75CB85002098 +:102D38000876C861086203EBC30104EB81014862AD +:102D48000133DBB220799842E9D816E002EBC203DE +:102D580004EB8303002183F8551283F8542283F887 +:102D68005812C3F85C12C3F8601202EBC20304EBFA +:102D78008303C3F864120132D2B29042E6D8237CAE +:102D88008DF80030231D0ECB206804F00FF805469F +:102D980058B900236374012384F89534237B012BED +:102DA80008D0206804F0CDFBA4E7022384F895340A +:102DB80001259FE7204600F071FDF2E7012599E71C +:102DC800036890F89424012A1AD010B50446012209 +:102DD80080F89424DA6812F0400F02D0427B012A6E +:102DE80009D0206803F086FF206804F09CFB0020CF +:102DF80084F8940410BD9A6B42F480329A63F0E729 +:102E08000220704770B504460D460068066C00EB5A +:102E1800411303F530639A68A179012911D0384923 +:102E28008E4256D03DB905EBC50304EB8303D3F8B6 +:102E38006432002B5ED0E9B2204605F04FFE002038 +:102E480070BD12F0080F09D02E498E42F7D912F43E +:102E5800004FF4D04FF400429A60F0E712F0200FD0 +:102E680002D020229A60EAE712F0280FE7D125491C +:102E78008E4206D912F4004F03D04FF400429A60F4 +:102E8800DDE705EBC50204EB8202D2F874121B6978 +:102E9800C3F31203CB1AC2F868327DB905EBC50239 +:102EA80004EB8202D2F864226AB105EBC50204EB96 +:102EB8008202D2F860120B44C2F86032E9B22046AE +:102EC80005F00CFEBBE704F29C42012104F0BCFBB8 +:102ED800F4E712F4004F03D04FF400429A60AEE7D3 +:102EE80012F0200F01D020229A60E9B2204605F0A6 +:102EF800F5FDA4E704F29C42002104F0A5FB9AE743 +:102F08000A31544F0A30544F38B5044603681D6CD3 +:102F180003EB4113D3F8081B0E4A954207D903F572 +:102F2800306311F4004F02D04FF400429A602046FB +:102F380005F0CCFD074B9D4202D9A379012B01D0A6 +:102F4800002038BD04F29C420121206804F07CFB7B +:102F5800F6E700BF0A30544F90F89434012B0CD098 +:102F680010B50446012380F894344174006804F0D5 +:102F7800CAFA002084F8940410BD0220704738B5BE +:102F880005468C4611F0800F29D101F00F0E0EEB8B +:102F9800CE04A40004F514740444211D0EEBCE0ED7 +:102FA80000EB8E0E00208EF855020CF00F0C81F805 +:102FB80000C08A600B714A780AB1A1F81AC0022BC6 +:102FC8001CD095F89434012B1BD0012385F8943438 +:102FD800286803F0C1FF002085F8940438BD01F08B +:102FE8000F0000EBC001890010312944043100EBC7 +:102FF800C00005EB800001244475D6E700234B711F +:10300800DFE70220EAE710B504460A4611F0800F10 +:1030180020D101F00F0000EBC0039B0003F51473EF +:103028002344191D00EBC00004EB8000002380F846 +:10303800553202F00F020A7094F89434012B18D01C +:10304800012384F89434206803F0D4FF002084F826 +:10305800940410BD01F00F0000EBC0039B00103377 +:103068002344191D00EBC00004EB800001234375C5 +:10307800DFE70220EDE710B5144601F00F0C0CEB6A +:10308800CC01890001F51471014404310CEBCC0E1C +:1030980000EB8E0ECEF86022CEF864320023CEF814 +:1030A80068328EF855328EF854C28279012A04D0DB +:1030B800006804F085F8002010BDCEF87042F7E7EC +:1030C80001F00F0101EBC10100EB8101D1F86802A9 +:1030D800704710B5144601F00F0C0CEBCC018900B9 +:1030E8001031014404310CEBCC0E00EB8E0ECEF8FF +:1030F8002020CEF824300023CEF8283001238EF883 +:1031080015308EF814C082799A4204D0006804F011 +:1031180057F8002010BDCEF83040F7E738B501F079 +:103128000F050279AA4238D304460B4611F0800FE6 +:103138001FD101EBC101890001F51471014404316B +:1031480003EBC30300EB8303002283F8552201231A +:103158008B700D7094F89434012B20D0012384F8DF +:103168009434206804F074F985B1002084F894043C +:1031780038BD05EBC501890010310144043105EB68 +:10318800C50300EB830301225A75E0E704F29C4271 +:10319800A179206804F058FAE7E70120E8E702205F +:1031A800E6E701F00F0302799A4230D310B50446DE +:1031B80011F0800F1ED103EBC301890001F51471D2 +:1031C8000144043103EBC30200EB8202002082F8C1 +:1031D800550200228A700B7094F89434012B18D091 +:1031E800012384F89434206804F05FF9002084F8FF +:1031F800940410BD03EBC30189001031014404316C +:1032080003EBC30200EB820201205075E1E70120C5 +:1032180070470220EDE708B511F0800F0CD101F0DE +:103228000F0101EBC101890001F51471014404315A +:10323800006803F04FFF08BD01F00F0101EBC10169 +:103248008900103101440431F2E72DE9F04F83B0D1 +:1032580004460568284604F0B2F910B103B0BDE889 +:10326800F08F0646206804F07AF90028F6D005F5B4 +:103278000067BB68C3F30D23C4F8D434206804F096 +:103288006EF910F0020F04D02268536903F00203AC +:103298005361206804F063F910F0100F14D022680D +:1032A800936923F010039361D5F8208008F00F0983 +:1032B800C8F34343022B69D0062B00F08D802268A7 +:1032C800936943F010039361206804F048F910F4FF +:1032D800002F40F09380206804F041F910F4802F0B +:1032E80040F0FC80206804F03AF90028C0F27D81A3 +:1032F800206804F034F910F4006F09D0BB6813F0AB +:10330800010F40F08A812268536903F40063536116 +:10331800206804F024F910F0006F15D02268536972 +:1033280003F00063536194F8CC34002B40F07981AA +:10333800012184F8CC1423685B6DC3F38303C4F8BC +:10334800D034204600F0BEFA206804F008F910F4E2 +:10335800805F40F06A81206804F001F910F4005F92 +:1033680040F0B681206804F0FAF810F0080F40F039 +:10337800C781206804F0F3F810F0800F00F0DA81BC +:10338800AB6923F08003AB610126C3E147F6F07314 +:1033980018EA030F93D04FEA181B4FEAC9030193A9 +:1033A80009EBC90A04EB8A0AC8F30A12DAF86012B0 +:1033B800284604F023F8CBF30A0BDAF860325B44B2 +:1033C800CAF86032019B4B4404EB8303D3F868329C +:1033D8005B44CAF8683272E7082204F29C41284626 +:1033E80004F00CF8C8F30A1809EBC90204EB8202CE +:1033F800D2F868324344C2F8683260E7206804F0C3 +:10340800B2F88046B14635E005EB49130122C3F80E +:10341800082B49462046FFF7F5FC3CE005EB49132D +:103428000822C3F8082B49462046FFF76DFD35E012 +:1034380009EBC90304EB830393F85732012B41D0FE +:1034480005EB49130222C3F8082B1AF0200F04D009 +:1034580005EB49132022C3F8082B1AF4005F05D0A6 +:1034680005EB49134FF40052C3F8082B09F1010981 +:103478004FEA5808B8F1000F3FF42DAF18F0010FCC +:10348800F4D05FFA89FB5946206804F07CF882463C +:1034980010F0010FB8D11AF0080FBFD11AF0100FB1 +:1034A80004D005EB49131022C3F8082B1AF0020FB9 +:1034B800CBD06B6913F0800FBAD07B6843F480637C +:1034C8007B60B5E709EBC90304EB8303002283F8AB +:1034D80057225946204605F051FBB1E7206804F011 +:1034E8004AF88046B14625E05946204605F002FBD9 +:1034F8001AF0080F04D005EB49130822C3F808296D +:103508001AF0100F04D005EB49131022C3F808294C +:103518001AF0400F04D005EB49134022C3F80829DC +:103528001AF0020F40D11AF0800F59D109F10109A0 +:103538004FEA5808B8F1000F3FF4D4AE18F0010F65 +:10354800F4D05FFA89FB5946206804F025F88246D2 +:1035580010F0010FCCD009F00F03012101FA03F29A +:103568007B6B23EA02037B6305EB4913C3F8081955 +:10357800A3798B42B8D109EBC90304EB8303D9695A +:103588001A6A0A441A62B9F1000FADD109EBC903EE +:1035980004EB83035B6A002BA6D104F29C42012151 +:1035A800206804F051F89FE74946284603F0AEFB2F +:1035B80009EBC90304EB8303DB7D012B05D005EB85 +:1035C80049130222C3F80829ADE709EBC90304EB44 +:1035D80083030022DA755946204605F0D5FAEEE74E +:1035E80049462046FFF703FBA0E77B6823F0010369 +:1035F8007B6094F8CC34012B08D0204605F0B8FA4B +:103608002268536903F00043536171E6002184F88E +:10361800CC14204600F056F9F2E7204605F090FA5F +:1036280071E6204605F08CFA8EE67B6823F00103EC +:103638007B601021206803F069FB1AE005EB461354 +:103648004FF67F31C3F80819D3F8002922F4001285 +:10365800C3F80029C3F8081BD3F8002B22F4001282 +:10366800C3F8002BD3F8002B42F00062C3F8002BFC +:1036780001362379B342E1D8FB6943F00113FB61BA +:10368800E37BDBB1D7F8843043F00B03C7F8843011 +:103698007B6C43F00B037B64D5F8003823F4FE639E +:1036A800C5F8003804F29C42A179206803F0CCFFE9 +:1036B8002268536903F4805353614CE67A6942F2F5 +:1036C8002B0313437B613B6943F00B033B61E3E747 +:1036D800206803F0A9FF206803F02EFCE07126683B +:1036E80000F0D4FE0146E279304603F091FA204614 +:1036F80005F011FA2268536903F40053536131E667 +:10370800204605F002FA2268536903F00803536162 +:103718002FE601362379B3420CD906EBC60304EB36 +:10372800830393F85732012BF3D1F1B22046FFF708 +:1037380072FDEEE7206803F012FF10F4801F25D118 +:10374800206803F00CFF10F4001F59D0012326E075 +:1037580001362379B3421BD905EB4613D3F8002968 +:1037680006EBC60304EB83031B7E012BF0D1002A72 +:10377800EEDA06EBC60304EB83030122DA7566F082 +:103788007F01C9B22046FFF746FDE1E70126E0E7E1 +:103798002268536903F480135361D1E70133227916 +:1037A8009A4228D905EB4312D2F8001B03EBC30257 +:1037B80004EB820292F85822012AEFD10029EDDAAF +:1037C80001F48031D4F8D42402F001029142E5D109 +:1037D80003EBC30204EB8202012182F85712AA69A3 +:1037E80042F08002AA616A6912F0800FD6D17B6824 +:1037F80043F400737B602268536903F40013536138 +:10380800206803F0ACFE10F0804F10D1206803F060 +:10381800A6FE10F0040F3FF421AD23685D6815F093 +:10382800040F0DD1226853682B43536016E52046D8 +:1038380005F0B0F92268536903F080435361E5E766 +:10384800204605F0ADF9EDE710B40468606A29B9BF +:1038580040EA0240A062002010BC70478C46A36A70 +:1038680000EB1340002308E003F1400104EB810161 +:10387800496800EB11400133DBB20CF1FF318B4298 +:10388800F2D340EA02400CF13F0104EB81014860A9 +:10389800E1E70368596200207047000003460268A8 +:1038A8000121C0F8D814002083F8CC04936943F0B0 +:1038B80000639361516D024B0B435365704700BF22 +:1038C8000300001070470000134BDB6813F0040F6F +:1038D80007D1114BDB6803F0070383421AD001209C +:1038E800704710B50C4AD36823F007031843D0601B +:1038F800FDF7F4FD0446084B5B6813F4005F07D13D +:10390800FDF7ECFD001BB0F57A7FF4D9012000E04B +:10391800002010BD0020704700480258024AD368B2 +:1039280043F08073D360704700480258002800F0C5 +:10393800398338B50446036813F0010F25D0944A3B +:10394800136903F03803926A102B15D0182B0FD087 +:103958006368B3F5803F3FD0002B53D18C4B1A6876 +:1039680022F480321A601A6822F480221A6038E041 +:1039780002F00302022AEBD1854B1B6813F4003FC7 +:1039880003D06368002B00F00F83236813F0020F45 +:1039980000F0A1807E4A1369926A13F038035AD066 +:1039A800182B55D0E368002B00F0DE8078490A68B0 +:1039B80022F0190213430B60FDF790FD0546744B86 +:1039C8001B6813F0040F40F0AD80FDF787FD401B26 +:1039D8000228F4D90320EEE26D4A136843F48033D9 +:1039E800136063682BB3FDF779FD0546684B1B68C8 +:1039F80013F4003FC9D1FDF771FD401B6428F5D9C8 +:103A08000320D8E2B3F5A02F09D0614B1A6822F43D +:103A180080321A601A6822F480221A60E1E75C4B4F +:103A28001A6842F480221A601A6842F480321A60D6 +:103A3800D7E7FDF753FD0546554B1B6813F4003FC8 +:103A4800A3D0FDF74BFD401B6428F5D90320B2E253 +:103A580012F0030FA6D14E4B1B6813F0040F03D0CE +:103A6800E368002B00F0A282494A136823F0190387 +:103A7800E1680B431360FDF731FD0546444B1B68B5 +:103A880013F0040F06D1FDF729FD401B0228F5D9D4 +:103A9800032090E2FDF73CFD41F20303984212D85F +:103AA8002269402A07D03A494B6823F47C3343EA19 +:103AB80002334B600FE0364A536823F47C3343F4F7 +:103AC8000033536007E0324A536823F0FE4321690C +:103AD80043EA01635360236813F0100F00F08880F5 +:103AE8002B4A136903F03803926A082B56D0182B17 +:103AF80050D0E369002B00F0B880254A136843F0E2 +:103B080080031360FDF7EAFC0546214B1B6813F49C +:103B1800807F40F08880FDF7E1FC401B0228F4D943 +:103B2800032048E2FDF7F4FC41F20303984212D85F +:103B38002269402A07D016494B6823F47C3343EAAC +:103B480002334B60C7E7124A536823F47C3343F4CB +:103B580000335360BFE70E4A536823F0FE432169E0 +:103B680043EA01635360B6E7094A136823F0010387 +:103B78001360FDF7B3FC0546054B1B6813F0040FF3 +:103B8800A9D0FDF7ABFC401B0228F5D9032012E2AF +:103B98000044025802F00302012AAAD1A14B1B6873 +:103BA80013F4807F03D0E369802B40F00182FDF796 +:103BB800AFFC41F20303984212D8226A202A07D0A8 +:103BC80098494B6823F0F84343EA82634B600FE05F +:103BD800944A536823F0F84343F08043536007E066 +:103BE800904AD36823F07C53216A43EA0163D36087 +:103BF800236813F0080F60D06369002B49D0894A05 +:103C0800536F43F001035367FDF768FC0546854B86 +:103C18005B6F13F0020F50D1FDF760FC401B0228C8 +:103C2800F5D90320C7E1FDF773FC41F2030398427D +:103C380012D8226A202A07D07A494B6823F0F84321 +:103C480043EA82634B60D3E7764A536823F0F8432C +:103C580043F080435360CBE7724AD36823F07C5328 +:103C6800216A43EA0163D360C2E76E4A136823F00E +:103C780080031360FDF732FC05466A4B1B6813F49A +:103C8800807FB5D0FDF72AFC401B0228F5D9032018 +:103C980091E1644A536F23F001035367FDF71EFC5B +:103CA8000546604B5B6F13F0020F06D0FDF716FC5C +:103CB800401B0228F5D903207DE1236813F0200F6B +:103CC80029D0A3699BB1574A136843F48053136002 +:103CD800FDF704FC0546534B1B6813F4005F1AD12B +:103CE800FDF7FCFB401B0228F5D9032063E14D4A90 +:103CF800136823F480531360FDF7F0FB0546494B26 +:103D08001B6813F4005F06D0FDF7E8FB401B022890 +:103D1800F5D903204FE1236813F0040F21D1636A1A +:103D2800002B00F047813F4A126902F03802182A36 +:103D380000F0EE80022B79D03A4A136823F08073A2 +:103D48001360FDF7CBFB0446364B1B6813F0007F6E +:103D580000F0DC80FDF7C2FB001B0228F4D9032029 +:103D680029E1314A136843F480731360FDF7B6FB09 +:103D780005462D4B1B6813F4807F06D1FDF7AEFB7B +:103D8800401B6428F5D9032015E1A368012B0AD04C +:103D98000BBB244B1A6F22F001021A671A6F22F02C +:103DA80004021A6704E01F4A136F43F00103136704 +:103DB800A36833B3FDF792FB05461A4B1B6F13F04C +:103DC800020FACD1FDF78AFB401B41F288339842C1 +:103DD800F3D90320EFE0052B09D0124B1A6F22F01C +:103DE80001021A671A6F22F004021A67E0E70D4B06 +:103DF8001A6F42F004021A671A6F42F001021A673A +:103E0800D6E7FDF76BFB0546064B1B6F13F0020F59 +:103E180085D0FDF763FB401B41F288339842F3D904 +:103E28000320C8E00044025800480258694A136851 +:103E380023F080731360FDF751FB0546654B1B6843 +:103E480013F0007F06D0FDF749FB401B0228F5D987 +:103E58000320B0E05F4B996A5F4A0A40A16AE06AB2 +:103E680041EA00110A439A62226B013AC2F308023E +:103E7800616B0139490289B20A43A16B013909040E +:103E880001F4FE010A43E16B0139090601F0FE4124 +:103E98000A431A63DA6A22F00102DA62596B4F4A5E +:103EA8000A40A16C42EAC1025A63DA6A22F00C02A3 +:103EB800216C0A43DA62DA6A22F00202616C0A4370 +:103EC800DA62DA6A42F48032DA62DA6A42F400329A +:103ED800DA62DA6A42F48022DA62DA6A42F00102CD +:103EE800DA621A6842F080721A60FDF7F7FA04463F +:103EF800384B1B6813F0007F06D1FDF7EFFA001B63 +:103F08000228F5D9032056E0002054E0002052E0B2 +:103F1800304A916A106B012B4ED001F00303A26A5C +:103F280093424BD1C1F30511E36A994248D1C0F3DA +:103F38000802236B013B9A4244D1C0F34622636BCB +:103F4800013B9A4240D1C0F30642A36B013B9A421F +:103F58003CD1C0F30660E36B013B984238D11D4B5E +:103F68005B6BC3F3CC03A26C9A4201D1002022E020 +:103F7800184AD36A23F00103D362FDF7AFFA054666 +:103F8800FDF7ACFAA842FBD0124A516B134B0B4019 +:103F9800A16C43EAC1035363D36A43F00103D362BC +:103FA800002008E001207047012004E0012002E021 +:103FB800012000E0002038BD0120FCE70120FAE7DD +:103FC8000120F8E70120F6E70120F4E70120F2E7F5 +:103FD8000120F0E7004402580CFCFFFF0700FFFF38 +:103FE800F8B57E4B1B6903F03803102B00F0F28004 +:103FF800182B10D013B17A4C2046F8BD774B1B68AC +:1040080013F0200F00F0E880744B1868C0F3C1006B +:10401800744CC440F0E7714B9D6A05F003059C6A37 +:10402800C4F30514D86A00F001005B6BC3F3CC033A +:1040380003FB00F0FCF702FA0646002CDCD0012D49 +:1040480076D0022D00F0A4800DB32046FCF7F6F9D7 +:1040580001466548FCF7FEFA0446604B186BC0F34E +:104068000800FCF7EBF905464FF064513046FCF7C1 +:104078003DFA01462846FCF731F94FF07E51FCF72E +:104088002DF901462046FCF731FA044671E0534BFE +:104098001B6813F0200F29D0504F3B68C3F3C103AE +:1040A8005048D840FCF7CAF905462046FCF7C6F93F +:1040B80001462846FCF7CEFA0446386BC0F30800E0 +:1040C800FCF7BCF905464FF064513046FCF70EFA90 +:1040D80001462846FCF702F94FF07E51FCF7FEF83E +:1040E80001462046FCF702FA044642E02046FCF767 +:1040F800A5F901463D48FCF7ADFA0446374B186B65 +:10410800C0F30800FCF79AF905464FF064513046B1 +:10411800FCF7ECF901462846FCF7E0F84FF07E5131 +:10412800FCF7DCF801462046FCF7E0F9044620E0FD +:104138002046FCF783F901462B48FCF78BFA044626 +:10414800264B186BC0F30800FCF778F905464FF0CA +:1041580064513046FCF7CAF901462846FCF7BEF818 +:104168004FF07E51FCF7BAF801462046FCF7BEF93D +:1041780004461A4B1B6BC3F34623581CFCF75EF925 +:1041880001462046FCF766FAFCF700FB044633E7D5 +:104198002046FCF753F901461548FCF75BFA04463C +:1041A8000E4B186BC0F30800FCF748F905464FF0B2 +:1041B80064513046FCF79AF901462846FCF78EF818 +:1041C8004FF07E51FCF78AF801462046FCF78EF93D +:1041D8000446CEE7074C0FE7024C0DE700440258AF +:1041E80000093D000090D0030024744A0024744C58 +:1041F8000024F44A00127A00002800F0328170B5D9 +:104208000D4604469B4B1B6803F00F038B420BD2F1 +:10421800984A136823F00F030B431360136803F0E5 +:104228000F038B4240F01F81236813F0040F0CD05A +:104238002269914B9B6903F070039A4205D98E4914 +:104248008B6923F070031A438A61236813F0080FFF +:104258000CD06269884BDB6903F070039A4205D978 +:104268008549CB6923F070031A43CA61236813F0A8 +:10427800100F0CD0A269804BDB6903F4E0639A420B +:1042880005D97D49CB6923F4E0631A43CA612368E1 +:1042980013F0200F0CD0E269774B1B6A03F0700310 +:1042A8009A4205D974490B6A23F070031A430A62CB +:1042B800236813F0020F0CD0E2686F4B9B6903F080 +:1042C8000F039A4205D96C498B6923F00F031A43EF +:1042D8008A61236813F0010F41D0674A936923F478 +:1042E8007063A1680B4393616368022B0AD0032BA8 +:1042F80027D0012B2CD0604A126812F0040F06D187 +:104308000120ADE0126812F4003F00F0AE805A4977 +:104318000A6922F0070213430B61FDF7DFF806462E +:10432800554B1B6903F038036268B3EBC20F16D014 +:10433800FDF7D4F8801B41F288339842F0D9032066 +:104348008EE04D4A126812F0007FE0D1012087E02C +:10435800494A126812F4807FD9D1012080E023688D +:1043680013F0020F0CD0E268434B9B6903F00F0374 +:104378009A4205D240498B6923F00F031A438A6198 +:104388003C4B1B6803F00F03AB420AD9394A136848 +:1043980023F00F032B431360136803F00F03AB42A2 +:1043A80065D1236813F0040F0CD02269324B9B6946 +:1043B80003F070039A4205D22F498B6923F07003EA +:1043C8001A438A61236813F0080F0CD062692A4BDC +:1043D800DB6903F070039A4205D22749CB6923F0C1 +:1043E80070031A43CA61236813F0100F0CD0A26936 +:1043F800214BDB6903F4E0639A4205D21E49CB697D +:1044080023F4E0631A43CA61236813F0200F0CD029 +:10441800E269194B1B6A03F070039A4205D21649E8 +:104428000B6A23F070031A430A62FFF7D9FD124999 +:104438008B69C3F30323114AD35C03F01F03D840ED +:104448008B6903F00F03D35C03F01F0320FA03F317 +:104458000B4A13600B4B18600B4B1868FCF7DCFF1A +:1044680070BD012070470120FAE70120F8E701201C +:10447800F6E700BF0020005200440258809E000862 +:1044880004000024000000240C00002408B5FFF7F5 +:10449800A7FD0B4A9369C3F303230A49CB5C03F0D6 +:1044A8001F0320FA03F3926902F00F02885C00F000 +:1044B8001F0023FA00F0044A1060044A136008BD84 +:1044C80000440258809E00080400002400000024D4 +:1044D80008B5FFF7DBFF054BDB69C3F30213044A9A +:1044E800D35C03F01F03D84008BD00BF0044025846 +:1044F800809E000808B5FFF7C9FF054BDB69C3F3C9 +:104508000223044AD35C03F01F03D84008BD00BF50 +:1045180000440258809E0008404B9B6A03F0030346 +:10452800032B79D070B505460E463C4A136823F034 +:1045380080631360FCF7D2FF0446384B1B6813F006 +:10454800006F06D0FCF7CAFF031B022BF5D9032026 +:1045580070BD324B9A6A22F47C32296842EA0132F1 +:104568009A626A68013AC2F30802A96801394902E5 +:1045780089B20A43E9680139090401F4FE010A43D2 +:1045880029690139090601F0FE410A439A63DA6A8A +:1045980022F0C00269690A43DA62DA6A22F020026C +:1045A800A9690A43DA62DA6A22F01002DA62D96B80 +:1045B8001B4A0A40E96942EAC102DA63DA6A42F050 +:1045C8001002DA62C6B91A46DB6A43F40023D362E2 +:1045D800124A136843F080631360FCF77FFF0446B8 +:1045E8000E4B1B6813F0006F14D1FCF777FF001B0C +:1045F8000228F5D90320ABE7012E05D0074AD36A74 +:1046080043F40013D362E3E7044AD36A43F4801304 +:10461800D362DDE700209BE7012070470044025881 +:104628000700FFFF404B9B6A03F00303032B79D07D +:1046380070B505460E463C4A136823F08053136054 +:10464800FCF74CFF0446384B1B6813F0005F06D09C +:10465800FCF744FF031B022BF5D9032070BD324B36 +:104668009A6A22F07C72296842EA01529A626A6860 +:10467800013AC2F30802A9680139490289B20A431A +:10468800E9680139090401F4FE010A43296901397D +:10469800090601F0FE410A431A64DA6A22F440620C +:1046A80069690A43DA62DA6A22F40072A9690A437C +:1046B800DA62DA6A22F48072DA62596C1B4A0A40BA +:1046C800E96942EAC1025A64DA6A42F48072DA623B +:1046D800C6B91A46DB6A43F48003D362124A1368E8 +:1046E80043F080531360FCF7F9FE04460E4B1B6839 +:1046F80013F0005F14D1FCF7F1FE001B0228F5D976 +:104708000320ABE7012E05D0074AD36A43F0807334 +:10471800D362E3E7044AD36A43F40003D362DDE7D4 +:1047280000209BE701207047004402580700FFFF64 +:10473800F8B50446036813F0006F30D0836EB3F504 +:10474800001F26D00ED8EBB1B3F5801F07D1022188 +:104758000830FFF7E1FE054645B12E4621E0012667 +:1047680035461EE0B3F5401F09D10025984A136D60 +:1047780023F44013A16E0B431365002611E00126B4 +:1047880035460EE0924AD36A43F40033D3620025DB +:10479800ECE702212830FFF745FF0546DCE7002655 +:1047A8003546236813F4807F14D0A36D042B32D8C8 +:1047B800DFE803F003232A080800854AD36A43F494 +:1047C8000033D36255BB824A136D23F00703A16DF2 +:1047D8000B431365236813F4007F31D0E36D802BFE +:1047E8004CD020D8002B43D0402B19D1002104F104 +:1047F8000800FFF791FE05461AE0002104F10800C1 +:10480800FFF78AFE0546DDE7002104F12800FFF7DF +:1048180009FF0546D6E701263546DBE72E46D9E7E8 +:10482800012635460CE0C02B02D0B3F5807F1CD1A1 +:104838005DBB674A136D23F4E073E16D0B431365A9 +:10484800236813F4806F46D0D4F8A830B3F5800FEE +:1048580039D01FD88BB3B3F5001F18D1002104F14C +:104868000800FFF759FE05461AE001263546E7E736 +:10487800574AD36A43F40033D362D9E7002104F1DD +:104888002800FFF7CFFE0546D2E72E46D8E70126D7 +:10489800354620E0B3F5C00F02D0B3F5000F09D1BB +:1048A800C5B94B4A936D23F46003D4F8A8100B43A1 +:1048B800936510E0012635460DE0454AD36A43F476 +:1048C8000033D362ECE7002104F12800FFF7AAFEC9 +:1048D8000546E5E72E46236813F4006F24D0D4F884 +:1048E800AC30B3F1007F42D00ED8002B39D0B3F1F1 +:1048F800807F06D1002104F10800FFF70DFE054670 +:1049080008E0012635460FE0B3F1407F02D0B3F14D +:10491800806F23D1002D31D12D4A936D23F0E063B0 +:10492800D4F8AC100B439365236813F0007F2ED0A6 +:10493800E36C202B40D026D833B1102B20D1244A49 +:10494800D36A43F40033D362002D3CD1204AD36CA0 +:1049580023F03003E16C0B43D36418E0012635469D +:10496800E2E71B4AD36A43F40033D362D2E700215B +:1049780004F12800FFF756FE0546CBE72E46D3E79D +:104988000126354603E0302BDED001263546236864 +:1049980013F4805F2DD0236EB3F5005F4FD019D884 +:1049A800002B46D0B3F5805F0FD1002104F1080039 +:1049B800FFF7B2FD054613E0022104F10800FFF7F6 +:1049C800ABFD0546C0E72E46E1E70126354610E077 +:1049D80000440258B3F5405F02D0B3F5804F25D1AB +:1049E800002D33D1774A136D23F4E043216E0B4336 +:1049F8001365236813F4005F38D0636EB3F5003F86 +:104A080053D028D843B1B3F5803F21D1012104F117 +:104A18000800FFF781FD0546002D4DD1694A136D49 +:104A280023F4E023616E0B4313651FE0012635462E +:104A3800DFE7644AD36A43F40033D362D0E7002146 +:104A480004F12800FFF7EEFD0546C9E72E46D0E73A +:104A5800012635460AE0B3F5802FDDD0B3F5A02F47 +:104A6800DAD0B3F5403FD7D001263546236813F492 +:104A7800804F31D0D4F8B030B3F1005F45D020D8A2 +:104A880043B1B3F1805F19D1012104F10800FFF7A8 +:104A980043FD0546002D3FD14A4A936D23F0E0437C +:104AA800D4F8B0100B43936516E0012104F12800F7 +:104AB800FFF7B8FD0546AFE72E46D7E7012635468E +:104AC8000AE0B3F1804FE5D0B3F1A04FE2D0B3F1E3 +:104AD800405FDFD001263546236813F4004F09D024 +:104AE800236FB3F1805F19D0B3F1005F24D0D3B145 +:104AF80001263546236813F0807F33D0A36C032B3F +:104B08005BD8DFE803F027225327012104F12800AE +:104B1800FFF788FD0546BDE72E46DDE7294AD36A3B +:104B280043F40033D36275B9264A136D23F040531A +:104B3800216F0B431365DDE7012104F10800FFF73E +:104B4800EBFC0546EFE72E46D4E71E4AD36A43F44A +:104B58000033D362A5BB1B4AD36C23F00303A16CBB +:104B68000B43D364236813F4800F2DD1236813F00B +:104B7800010F00F0A580E36F282B00F29F80DFE88B +:104B880003F08D9D9D9D9D9D9D9D879D9D9D9D9DBA +:104B98009D9D969D9D9D9D9D9D9D8D9D9D9D9D9D54 +:104BA8009D9D8D9D9D9D9D9D9D9D8D00022104F146 +:104BB8000800FFF7B1FC0546CCE701263546D1E7EA +:104BC8002E46CFE700440258914A136843F4807395 +:104BD8001360FCF783FC07468D4B1B6813F4807F3A +:104BE80005D1FCF77BFCC01B6428F5D90325002DF3 +:104BF8004AD1884B1B6FD4F8B420534013F4407F3C +:104C08000CD0844B1A6F22F44072196F41F4803132 +:104C18001967196F21F4803119671A67D4F8B4300D +:104C2800B3F5807F15D08DBBD4F8B43003F440724F +:104C3800B2F5407F1ED0774A136923F47C53136181 +:104C480074490B6FD4F8B420C2F30B0213430B67FB +:104C58008CE7FCF743FC07466E4B1B6F13F0020F03 +:104C6800E1D1FCF73BFCC01B41F288339842F3D9F1 +:104C78000325D8E76748026922F47C52664901EAAD +:104C8800131313430361DBE72E466FE72E466DE7E8 +:104C9800012104F10800FFF73FFC0546E5B95D4A2C +:104CA800536D23F03803E16F0B43536508E001218E +:104CB80004F12800FFF7B6FC0546EFE70126354664 +:104CC800236813F0020F17D0A36F052B28D8DFE84D +:104CD80003F00B05200B0B0B2E46F1E7012104F125 +:104CE8000800FFF719FC0546EDB94A4A536D23F051 +:104CF8000703A16F0B435365236813F0040F23D0F8 +:104D0800D4F89430052B45D8DFE803F0150F3D158E +:104D18001515012104F12800FFF784FC0546E3E797 +:104D280001263546E8E72E46E6E7012104F10800AA +:104D3800FFF7F2FB054685BB364A936D23F0070360 +:104D4800D4F894100B439365236813F0200F34D0E4 +:104D5800D4F89030B3F1005F4ED023D843B1B3F10B +:104D6800805F1CD1002104F10800FFF7D5FB054640 +:104D7800002D48D1274A536D23F0E043D4F8901012 +:104D88000B43536519E0012104F12800FFF74AFCA1 +:104D98000546D0E701263546D6E72E46D4E7012654 +:104DA80035460AE0B3F1804FE2D0B3F1A04FDFD02F +:104DB800B3F1405FDCD001263546236813F0400F7D +:104DC80037D0D4F89C30B3F5006F53D026D843B110 +:104DD800B3F5806F19D1002104F10800FFF79CFB9F +:104DE8000546002D4DD10B4A936D23F4E053D4F8BA +:104DF8009C100B4393651CE0022104F12800FFF787 +:104E080011FC0546B4E72E46D7E70126354610E0E3 +:104E18000048025800440258CFFFFF00B3F5805FF6 +:104E2800DFD0B3F5A05FDCD0B3F5406FD9D0012651 +:104E38003546236813F0800F33D0D4F8A030B3F58B +:104E4800804F00F0A38021D843B1B3F5005F1AD199 +:104E5800002104F10800FFF75FFB0546002D40F034 +:104E68009C80814A936D23F46043D4F8A0100B43CF +:104E7800936516E0022104F12800FFF7D3FB0546ED +:104E8800AFE72E46D5E7012635460AE0B3F5004FD1 +:104E9800E4D0B3F5204FE1D0B3F5C04FDED0012602 +:104EA8003546236813F0080F0CD0D4F88430B3F5D6 +:104EB800805F74D06C4A536D23F44053D4F8841047 +:104EC8000B435365236813F0100F0CD0D4F89830B7 +:104ED800B3F5807F6CD0644A936D23F44073D4F8A3 +:104EE80098100B439365236813F4002F0BD0D4F864 +:104EF800A430B3F5803F74D0B3F5003F67D0002BE2 +:104F08005FD001263546236813F4802F0CD0D4F8DF +:104F18008830B3F5001F7CD0B3F5401F6FD0B3F5D0 +:104F2800801F67D001263546236813F4803F08D0D8 +:104F3800236D002B76D0B3F5803F00F081800126E9 +:104F48003546236813F0005F40F08380236813F42C +:104F5800003F00F08E80D4F88030B3F5807F00F0F9 +:104F6800EC8040F28380B3F5007F03D0B3F5407F37 +:104F780040F0E180002D40F0E6803B4A536D23F479 +:104F88004073D4F880100B43536572E0022104F19A +:104F98002800FFF747FB054660E72E4681E7022118 +:104FA80004F12800FFF73EFB002883D0012681E7A3 +:104FB800022104F12800FFF735FB00288BD00126D9 +:104FC80089E7002104F10800FFF7A6FA05467DB934 +:104FD800254A936D23F44033D4F8A4100B4393650A +:104FE80091E7022104F12800FFF71CFB0546EEE7D4 +:104FF8002E4688E71C4AD36A43F40033D3627DB94E +:10500800194A536D23F44013D4F888100B435365A1 +:105018008AE7012104F12800FFF704FB0546EEE7C3 +:105028002E4681E7104AD36A43F40033D36275B938 +:105038000D4AD36C23F48033216D0B43D36480E78E +:10504800022104F10800FFF767FA0546EFE72E464C +:1050580077E7022104F12800FFF7E4FA00283FF47B +:1050680075AF012672E700BF00440258002B81D0BB +:105078000126236813F4801F06D04F4A136D23F0CE +:105088000043616F0B431365236813F0805F07D0FB +:10509800494A136923F48043D4F8B8100B431361C9 +:1050A800236813F4001F06D0434A136D23F080735E +:1050B800E16E0B431365236813F0804F09D03E4B14 +:1050C8001A6922F400421A611A69D4F8BC100A431A +:1050D8001A612368002B06DA374AD36C23F0405351 +:1050E800616D0B43D364236813F4000F07D0324A71 +:1050F800536D23F44003D4F88C100B435365636855 +:1051080013F0010F21D1636813F0020F26D16368F1 +:1051180013F0040F2BD1636813F0080F30D16368C4 +:1051280013F0100F35D1636813F0200F3AD106B190 +:1051380001263046F8BD01269BE71F4AD36A43F48F +:105148000033D36216E72E4693E7002104F10800E6 +:10515800FFF7E2F90028D6D00646D4E7012104F18A +:105168000800FFF7D9F90028D1D00646CFE7022179 +:1051780004F10800FFF7D0F90028CCD00646CAE7AA +:10518800002104F12800FFF74DFA0028C7D0064691 +:10519800C5E7012104F12800FFF744FA0028C2D02E +:1051A8000646C0E7022104F12800FFF73BFA002871 +:1051B800BDD00646BBE700BF0044025808B5FFF75C +:1051C80065F9054B1B6AC3F30213044AD35C03F069 +:1051D8001F03D84008BD00BF00440258809E000845 +:1051E8002DE9F0410446864B9D6A9E6AC6F3053652 +:1051F800D86AC0F30010DB6BC3F3CC0303FB00F0E9 +:10520800FBF71CF9002E00F0F58005F003050746B2 +:10521800012D79D0022D00F0CB800DB33046FBF77D +:105228000DF901467748FBF715FA0546744B986B5C +:10523800C0F30800FBF702F906464FF06451384600 +:10524800FBF754F901463046FBF748F84FF07E511A +:10525800FBF744F801462846FBF748F9054674E091 +:10526800674B1B6813F0200F2CD0DFF89481D8F817 +:105278000030C3F3C1036448D840FBF7DFF80546A4 +:105288003046FBF7DBF801462846FBF7E3F905460D +:10529800D8F83800C0F30800FBF7D0F806464FF0FE +:1052A80064513846FBF722F901463046FBF716F8F9 +:1052B8004FF07E51FBF712F801462846FBF716F926 +:1052C800054642E03046FBF7B9F801464F48FBF780 +:1052D800C1F905464A4B986BC0F30800FBF7AEF8D6 +:1052E80006464FF064513846FBF700F90146304650 +:1052F800FAF7F4FF4FF07E51FAF7F0FF014628461F +:10530800FBF7F4F8054620E03046FBF797F801462E +:105318003C48FBF79FF90546394B986BC0F30800EA +:10532800FBF78CF806464FF064513846FBF7DEF879 +:1053380001463046FAF7D2FF4FF07E51FAF7CEFF1A +:1053480001462846FBF7D2F805462D4EB06BC0F350 +:105358004620FBF773F84FF07E51FAF7BFFF01467E +:105368002846FBF777F9FBF711FA2060B06BC0F31A +:105378000640FBF763F84FF07E51FAF7AFFF01469E +:105388002846FBF767F9FBF701FA6060B06BC0F3DA +:105398000660FBF753F84FF07E51FAF79FFF01467E +:1053A8002846FBF757F9FBF7F1F9A060BDE8F08153 +:1053B8003046FBF743F801461548FBF74BF905461D +:1053C8000F4B986BC0F30800FBF738F806464FF010 +:1053D80064513846FBF78AF801463046FAF77EFFF3 +:1053E8004FF07E51FAF77AFF01462846FBF77EF820 +:1053F8000546AAE7002323606360A360D6E700BFE1 +:10540800004402580024744A0090D0030024744CCD +:105418000024F44A2DE9F0410446864B9D6A9E6AB1 +:10542800C6F30556D86AC0F300205B6CC3F3CC03FF +:1054380003FB00F0FBF702F8002E00F0F58005F002 +:1054480003050746012D79D0022D00F0CB800DB35E +:105458003046FAF7F3FF01467748FBF7FBF80546B5 +:10546800744B186CC0F30800FAF7E8FF06464FF0D3 +:1054780064513846FBF73AF801463046FAF72EFFF2 +:105488004FF07E51FAF72AFF01462846FBF72EF81F +:10549800054674E0674B1B6813F0200F2CD0DFF82B +:1054A8009481D8F80030C3F3C1036448D840FAF7B0 +:1054B800C5FF05463046FAF7C1FF01462846FBF707 +:1054C800C9F80546D8F84000C0F30800FAF7B6FF57 +:1054D80006464FF064513846FBF708F80146304657 +:1054E800FAF7FCFE4FF07E51FAF7F8FE014628461F +:1054F800FAF7FCFF054642E03046FAF79FFF0146FF +:105508004F48FBF7A7F805464A4B186CC0F308004C +:10551800FAF794FF06464FF064513846FAF7E6FF6B +:1055280001463046FAF7DAFE4FF07E51FAF7D6FE1A +:1055380001462846FAF7DAFF054620E03046FAF732 +:105548007DFF01463C48FBF785F80546394B186C4A +:10555800C0F30800FAF772FF06464FF06451384668 +:10556800FAF7C4FF01463046FAF7B8FE4FF07E510D +:10557800FAF7B4FE01462846FAF7B8FF05462D4E5D +:10558800306CC0F34620FAF759FF4FF07E51FAF716 +:10559800A5FE01462846FBF75DF8FBF7F7F8206003 +:1055A800306CC0F30640FAF749FF4FF07E51FAF726 +:1055B80095FE01462846FBF74DF8FBF7E7F86060D3 +:1055C800306CC0F30660FAF739FF4FF07E51FAF7F6 +:1055D80085FE01462846FBF73DF8FBF7D7F8A060A3 +:1055E800BDE8F0813046FAF729FF01461548FBF778 +:1055F80031F805460F4B186CC0F30800FAF71EFF88 +:1056080006464FF064513846FAF770FF01463046B7 +:10561800FAF764FE4FF07E51FAF760FE014628461D +:10562800FAF764FF0546AAE7002323606360A360D6 +:10563800D6E700BF004402580024744A0090D00303 +:105648000024744C0024F44A704770477047704730 +:10565800704770B504460368DE681D6915F0020FCF +:1056680010D016F0020F0DD06FF002021A6101235C +:10567800037703689B6913F0030F64D0FFF7E6FF15 +:105688000023237715F0040F12D016F0040F0FD063 +:1056980023686FF004021A610223237723689B6949 +:1056A80013F4407F55D02046FFF7D0FF002323771F +:1056B80015F0080F12D016F0080F0FD023686FF0FE +:1056C80008021A61042323772368DB6913F0030FA8 +:1056D80046D02046FFF7BAFF0023237715F0100FB6 +:1056E80012D016F0100F0FD023686FF010021A6155 +:1056F800082323772368DB6913F4407F37D02046DB +:10570800FFF7A4FF0023237715F0010F02D016F04E +:10571800010F33D115F4025F02D016F0800F35D196 +:1057280015F4807F02D016F0800F37D115F0400FA6 +:1057380002D016F0400F39D115F0200F02D016F024 +:10574800200F3BD170BDFFF780FF2046FFF77FFF9A +:1057580096E72046FFF779FF2046FFF778FFA5E791 +:105768002046FFF772FF2046FFF771FFB4E7204697 +:10577800FFF76BFF2046FFF76AFFC3E723686FF068 +:1057880001021A612046FFF75FFFC3E723686FF441 +:1057980002521A61204600F0C6F9C1E723686FF487 +:1057A80080721A61204600F0BFF9BFE723686FF0E6 +:1057B80040021A612046FFF74BFFBDE723686FF0F0 +:1057C80020021A61204600F0ADF9BBE730B5036846 +:1057D8003D4A904214BF4FF0000E4FF0010EB0F159 +:1057E800804F14BF72464EF00102AAB9374CA0424E +:1057F80014BF00240124364DA8420DD064B904F129 +:10580800804404F58234A04214BF0024012405F525 +:105818000065A84200D01CB123F070034C682343F4 +:1058280012BB2A4A904214BF00220122284CA042EF +:105838001AD0CAB902F1804202F58232904214BFEE +:105848000022012204F50064A0420DD062B9214A69 +:10585800904214BF0022012204F59A34A04203D0DA +:1058680012B91D4A904204D123F4407CCB6843EA24 +:105878000C0323F080034A69134303608A68C262F9 +:105888000A688262154A904214BF73464EF00103BB +:1058980063B9104B984214BF0023012302F57052DC +:1058A800904203D013B90C4B984201D10B690363A2 +:1058B80001234361036913F0010F03D0036923F047 +:1058C8000103036130BD00BF000001400008004033 +:1058D8000004004000440140004801400004014029 +:1058E800002852D070B50D46044690F83D30002B84 +:1058F80046D0022384F83D3022689168244B0B403F +:105908009360214651F8040BFFF760FF2068816817 +:105918008369026A2E680E431E491940AB68D5F8A0 +:1059280018C043EA0C2343EA010C1B4B0CEA03039F +:10593800E968D5F81CC041EA0C2119432B6A1B03FE +:10594800D5F810C043EA0C130B4322F0AA016A6889 +:105958006D6942EA05120A43866021688B612368F3 +:105968001A62012384F8483084F83E3084F83F30C6 +:1059780084F8443084F8453084F83D30002070BD08 +:1059880080F83C30FBF732FCB3E70120704700BFDA +:10599800F8BFFEFFFCFCFFFF0303FFFF01F01F0140 +:1059A800012303FA01FC036A23EA0C030362036A76 +:1059B80002FA01F10B430362704738B5044690F8C8 +:1059C8003E30DBB290F83F205FFA82FC90F844202A +:1059D800D0B294F845200D46B1B9012808BF012B73 +:1059E80047D1022384F83E3084F844307DB3042D37 +:1059F80039D0012200212068FFF7D0FF01220421BD +:105A08002068FFF7CBFF27E0D2B2042914D0BCF1FD +:105A1800010F08BF012B30D1013A18BF012201281C +:105A28002DD162BB022384F83E3084F83F3084F8DD +:105A3800443084F84530D9E7012A08BFBCF1010F8A +:105A480019D1022384F83F3084F84530CEE701228B +:105A580000212068FFF7A2FF2268136843F00103C2 +:105A68001360002038BD012204212068FFF796FF4B +:105A7800F2E70120F6E70120F4E70120F2E7012030 +:105A8800F0E7000090F83C30012B45D070B40123BA +:105A980080F83C30022380F83D3003685A689C68DF +:105AA8001E4E1F4DAB4218BFB34203D122F4700201 +:105AB8004D682A4322F070020D682A435A60036831 +:105AC800164AB3F1804F18BF934217D0A2F57C4213 +:105AD800934213D002F5806293420FD002F58062A0 +:105AE80093420BD002F57842934207D0A2F56C425C +:105AF800934203D002F59432934204D124F08004F7 +:105B08008A6814439C60012380F83D30002380F8A4 +:105B18003C30184670BC70470220704700000140B6 +:105B2800000401407047704770470000026852E85F +:105B3800003F23F4907342E800310029F6D102684F +:105B480002F1080353E8001F0D4B0B40083242E8EE +:105B580000310029F3D1C36E012B06D02023C0F8F1 +:105B68008C300023C36643677047026852E8003FE1 +:105B780023F0100342E800310029F6D1EEE700BF18 +:105B8800FEFFFFEF704708B5026852E8003F23F0B8 +:105B9800400342E800310029F6D12023C0F88830BC +:105BA80000238367FFF7EEFF08BD704708B5806BD9 +:105BB8000023A0F85E30A0F85630FFF7F6FF08BDC6 +:105BC8007047000070B504460168CB6908688D68A5 +:105BD80040F60F021A4008D113F0200F05D010F03C +:105BE800200F34D115F0805F31D12AB18B4A2A4079 +:105BF80033D18B4E304230D1E26E012A00F0C6809C +:105C080013F4801F03D015F4800F40F09B8113F02C +:105C1800800F07D010F0800F40F09B8115F4000F23 +:105C280040F0978113F0400F03D010F0400F40F080 +:105C3800978113F4000F03D010F0804F40F0948147 +:105C480013F0807F02D00028C0F2928170BD636F8C +:105C5800002BFBD020469847F8E713F0010F09D036 +:105C680010F4807F06D001260E62D4F890103143DC +:105C7800C4F8901013F0020F0BD015F0010F08D0E4 +:105C8800216802260E62D4F8901041F00401C4F88D +:105C9800901013F0040F0BD015F0010F08D02168F5 +:105CA80004260E62D4F8901041F00201C4F8901056 +:105CB80013F0080F0BD010F0200F00D13AB1226872 +:105CC80008211162D4F890200A43C4F8902013F4F4 +:105CD800006F0CD010F0806F09D022684FF400617B +:105CE8001162D4F8902042F02002C4F89020D4F831 +:105CF8009020002AAAD013F0200F09D010F0200F0E +:105D080002D115F0805F03D0636F0BB1204698472E +:105D1800D4F8902023689B6813F0400F02D112F04A +:105D2800280F2CD02046FFF701FF23689B6813F04B +:105D3800400F20D0226802F1080353E8003F23F007 +:105D48004003083242E800310029F3D1D4F880300A +:105D58006BB1344A1A65D4F88000FCF751F9002871 +:105D68003FF474AFD4F88000036D98476EE720467F +:105D7800FFF71BFF6AE72046FFF717FF66E7204695 +:105D8800FFF713FF0023C4F890305FE713F0100FFC +:105D98003FF436AF10F0100F3FF432AF10230B6210 +:105DA80023689B6813F0400F00F09280D4F880209D +:105DB80013681D481D498B4218BF834238D01831DB +:105DC8008B4235D018318B4232D018318B422FD0CC +:105DD80018318B422CD018318B4229D018318B4284 +:105DE80026D001F556718B4222D018318B421FD034 +:105DF80018318B421CD018318B4219D018318B4284 +:105E080016D018318B4213D018318B4210D018316C +:105E18008B420DD05B689BB20CE000BF0100001004 +:105E280020010004B55B0008100002402800024071 +:105E38005B689BB2002B3FF409AFB4F85C10994241 +:105E48007FF604AFA4F85E30D369B3F5807F32D013 +:105E5800226852E8003F23F4807342E800310029A9 +:105E6800F6D1226802F1080353E8003F23F001034A +:105E7800083242E800310029F3D1226802F1080310 +:105E880053E8003F23F04003083242E8003100297C +:105E9800F3D12023C4F88C300023E366226852E84B +:105EA800003F23F0100342E800310029F6D1D4F86E +:105EB8008000FBF705FF02232367B4F85C10B4F8F1 +:105EC8005E309BB2C91A89B22046FFF779FEBDE65B +:105ED800B4F85C10B4F85E309BB2C91A89B2B4F851 +:105EE8005E309BB2002B3FF4B1AE00293FF4AEAE5A +:105EF800226852E8003F23F4907342E800300028FB +:105F0800F6D1226802F1080353E8000F1A4B034048 +:105F1800083242E800300028F3D12023C4F88C303E +:105F28000023E3666367226852E8003F23F010030A +:105F380042E800300028F6D1022323672046FFF705 +:105F48003FFE83E64FF480130B62204600F07CFD91 +:105F58007CE6A36F002B3FF479AE2046984775E6A0 +:105F68002046FFF710FE71E6204600F06FFD6DE653 +:105F7800204600F06AFD69E6FEFFFFEF70B586B0C7 +:105F88000446016883680269134342691343C2697E +:105F980013430868884A024013430B602268536819 +:105FA80023F44053E1680B435360A1692268834B93 +:105FB8009A4201D0236A19439068814B03400B43EE +:105FC80093602268D36A23F00F03616A0B43D3629C +:105FD80022687C4B9A4221D07B4B9A4200F08C80FD +:105FE8007A4B9A4200F0A280794B9A4200F0B58031 +:105FF800784B9A4200F0C880774B9A4200F0F480C0 +:10600800764B9A4200F01981754B9A4200F02C8128 +:106018006A4B9A4200F03F81802333E0714B5B6DFD +:1060280003F03803282B65D8DFE813F02900640053 +:106038006400640064006400640064004D0164004E +:106048006400640064006400640064002B00640061 +:106058006400640064006400640064005E0064001E +:10606800640064006400640064006400600064000C +:10607800640064006400640064006400620001233A +:1060880000E008234D498A4200F02F81E069B0F50D +:10609800004F00F0AF81202B00F20782202B00F286 +:1060A8005182DFE813F01E0224024F024F0227023A +:1060B8004F024F024F022C024F024F024F024F0273 +:1060C8004F024F024F0231024F024F024F024F025E +:1060D8004F024F024F024F024F024F024F024F0230 +:1060E8004F024F024F023D021023CBE72023C9E79E +:1060F8004023C7E78023C5E73A4B5B6D03F00703EE +:10610800052B11D8DFE813F00600E10008000A00AB +:106118000C000E000023B5E70823B3E71023B1E70E +:106128002023AFE74023ADE78023ABE72D4B5B6D22 +:1061380003F00703052B0ED8DFE803F003C90507B2 +:10614800090B00239EE708239CE710239AE72023E6 +:1061580098E7402396E7802394E7224B5B6D03F092 +:106168000703052B0ED8DFE803F003B40507090B76 +:10617800002387E7082385E7102383E7202381E7A7 +:1061880040237FE780237DE7164B5B6D03F0070311 +:10619800052B0ED8DFE803F0039F0507090B002342 +:1061A80070E708236EE710236CE720236AE7402393 +:1061B80068E7802366E700BFF369FFCF000C00584B +:1061C800FFF4FF1100100140004400400048004067 +:1061D800004C00400050004000140140007800408E +:1061E800007C0040004402587D4B5B6D03F038038F +:1061F800282B20D8DFE803F0151F1F1F1F1F1F1FA4 +:10620800711F1F1F1F1F1F1F171F1F1F1F1F1F1F4C +:10621800191F1F1F1F1F1F1F1B1F1F1F1F1F1F1F90 +:106228001D0001232EE708232CE710232AE720234B +:1062380028E7402326E7802324E7694B5B6D03F0BA +:106248000703052B0ED8DFE803F0034A0507090BFF +:10625800002317E7082315E7102313E7202311E786 +:1062680040230FE780230DE75D4B5B6D03F00703C9 +:10627800052B0ED8DFE803F003350507090B0023CB +:1062880000E70823FEE61023FCE62023FAE6402375 +:10629800F8E68023F6E603F50E339B6D03F007035B +:1062A800052B0ED8DFE803F0031F0507090B0223AF +:1062B800E8E60823E6E61023E4E62023E2E64023A6 +:1062C800E0E68023DEE60423DCE60423DAE60423A2 +:1062D800D8E60423D6E60423D4E60423D2E604232E +:1062E800D0E60423CEE60423CCE6202B27D8022BC5 +:1062F800C0F01A81023B1E2B00F21881DFE813F070 +:106308005000160156001601160116015B00160111 +:106318001601160116011601160116016000160174 +:1063280016011601160116011601160116011601AD +:106338001601160116011601160116016C00402BF4 +:106348002CD14FF40040626A264B33F81220B0FB80 +:10635800F2F3656805EB4501994200F2E980B3EB79 +:10636800053F00F2E780002633463146FAF72EFA59 +:10637800090241EA106100026B08C0182A46334638 +:1063880041F10001FAF722FAA0F54072164B9A4241 +:1063980000F2D2802368D8603046D4E00120D2E0F1 +:1063A800FEF70CFF0028CED10020CCE003A8FEF7B2 +:1063B80017FF0498F6E76846FFF72CF80198F1E70D +:1063C800074B1B6813F0200F08D0054B1B68C3F35D +:1063D800C1030648D840E5E70548B4E70348B2E7F3 +:1063E80000440258989E0008FFFC0F000090D0035C +:1063F80000093D00202B15D8202B00F29F80DFE8F4 +:1064080003F031379D9D3A9D9D9D3F9D9D9D9D9D8E +:106418009D9D449D9D9D9D9D9D9D9D9D9D9D9D9DFD +:106428009D9D5000402B1BD1626A4D4B33F81230B2 +:10643800B0FBF3F06268530803EB4000B0FBF2F0E6 +:10644800A0F110024FF6EF739A4279D883B223F085 +:106458000F03C0F3420018432368D860002072E09D +:10646800012070E0FEF734F80028DDD100206AE052 +:10647800FEF740F8F8E703A8FEF7B2FE0498F3E742 +:106488006846FEF7C7FF0198EEE7364B1B6813F026 +:10649800200F08D0334B1B68C3F3C1033248D840E0 +:1064A800E2E73248C0E73048BEE7402B17D14FF447 +:1064B8000040626A2A4B33F81230B0FBF3F063688D +:1064C80000EB5300B0FBF3F0A0F110024FF6EF73AE +:1064D8009A4242D8236880B2D860002033E0012075 +:1064E80031E0FDF7F5FF0028E3D100202BE0FEF7AF +:1064F80001F8F8E703A8FEF773FE0498F3E7684687 +:10650800FEF788FF0198EEE7164B1B6813F0200F83 +:1065180008D0144B1B68C3F3C1031348D840E2E703 +:106528001248C6E71048C4E701200CE001200AE041 +:10653800012008E0012006E0012004E0012002E03B +:10654800012000E001200123A4F86A30A4F8683093 +:1065580000236367A36706B070BD0120F3E700BF9F +:10656800989E0008004402580090D00300093D009E +:10657800836A13F0080F06D00268536823F40043B7 +:10658800816B0B435360836A13F0010F06D00268D6 +:10659800536823F40033C16A0B435360836A13F0D2 +:1065A800020F06D00268536823F48033016B0B4353 +:1065B8005360836A13F0040F06D00268536823F40B +:1065C8008023416B0B435360836A13F0100F06D08E +:1065D8000268936823F48053C16B0B439360836A0A +:1065E80013F0200F06D00268936823F40053016C5F +:1065F8000B439360836A13F0400F0AD00268536814 +:1066080023F48013416C0B435360436CB3F5801F34 +:106618000BD0836A13F0800F06D00268536823F406 +:106628000023C16C0B43536070470268536823F41E +:10663800C003816C0B435360EBE72DE9F843054633 +:106648000E4617469946DDF820802C68E46936EA3C +:1066580004030CBF4FF0010C4FF0000CBC453AD1BD +:10666800B8F1FF3FF1D0FAF739FFA0EB0900404538 +:1066780034D8B8F1000F33D02B681A6812F0040F21 +:10668800E3D0B6F1400218BF0122802EDDD0002AE7 +:10669800DBD0DA6912F0080F11D1DA6912F4006F51 +:1066A800D3D04FF400621A622846FFF73FFA20233E +:1066B800C5F89030002385F8843003200CE00824C6 +:1066C8001C622846FFF732FAC5F89040002385F887 +:1066D8008430012000E00020BDE8F8830320FBE7B8 +:1066E8000320F9E72DE9F04182B01E46D0F8883042 +:1066F800202B5BD104460D469046002A18BF00297E +:1067080001D1012053E00023C0F890302123C0F8C4 +:106718008830FAF7E3FE0746A4F85480A4F85680B8 +:10672800A368B3F5805F02D04FF0000816E0236934 +:1067380043B34FF0000811E02023C4F88830032049 +:1067480035E038F8023B2268C3F308039362B4F8D3 +:10675800562092B2013A92B2A4F85620B4F85630B4 +:106768009BB293B100963B46002280212046FFF75A +:1067780064FF0028E0D1002DE3D015F8012B236831 +:106788009A62E4E7A8460025E8E700963B4600221F +:1067980040212046FFF751FF18B92023C4F888305C +:1067A80005E02023C4F88830032000E0022002B06E +:1067B800BDE8F0812DE9F04383B01E46D0F88C3057 +:1067C800202B7ED104460D469046002A18BF00298A +:1067D80001D1012076E00023C0F890302222C0F8D1 +:1067E8008C20C366FAF77AFE0746A4F85C80A4F802 +:1067F8005E80A368B3F5805F06D0A3B9226972B939 +:10680800FF22A4F8602014E0226922B940F2FF12A6 +:10681800A4F860200DE0FF22A4F8602009E07F22A0 +:10682800A4F8602005E0B3F1805F0AD00022A4F844 +:106838006020B4F86080B3F5805F0CD04FF0000999 +:1068480024E022691AB97F22A4F86020F1E73F22E8 +:10685800A4F86020EDE7236913B14FF0000915E0B3 +:10686800A946002512E02023C4F88C30032029E033 +:1068780023685A6A5FFA88F3134005F8013BB4F8B5 +:106888005E2092B2013A92B2A4F85E20B4F85E306B +:106898009BB28BB100963B46002220212046FFF791 +:1068A800CCFE0028DFD1002DE2D123685B6A08EA1C +:1068B800030329F8023BE2E72023C4F88C300020C8 +:1068C80000E0022003B0BDE8F08330B583B0044691 +:1068D8000023C0F89030FAF701FE054622681268D6 +:1068E80012F0080F10D123681B6813F0040F28D189 +:1068F8002023C4F88830C4F88C300020E066206774 +:1069080084F8840003B030BD6FF07E4300930346E3 +:1069180000224FF400112046FFF78FFE0028E2D036 +:10692800226852E8003F23F0800342E80031002942 +:10693800F6D12023C4F88830002384F8843003205B +:10694800E0E76FF07E4300932B4600224FF480016E +:106958002046FFF772FE0028CAD0226852E8003F9E +:1069680023F4907342E800310029F6D1226802F13D +:10697800080353E8003F23F00103083242E80031DE +:106988000029F3D12023C4F88C30002384F8843004 +:106998000320B7E778B310B50446D0F888300BB3B6 +:1069A8002423C4F888302268136823F00103136095 +:1069B800A36AE3B92046FFF7E1FA012811D022685B +:1069C800536823F4904353602268936823F02A03A2 +:1069D80093602268136843F0010313602046FFF7B1 +:1069E80074FF10BD80F88430FAF774FCD8E72046AD +:1069F800FFF7BEFDDEE7012070470000436E2BB9AC +:106A08000123A0F86A30A0F86830704730B40368F2 +:106A18009A68C2F342629968490F094D6B5C1B0181 +:106A2800084C615C93FBF1F3A0F86A30AB5C1B0186 +:106A3800A25C93FBF2F3A0F8683030BC704700BF4B +:106A4800B89E0008B09E000870477047704790F8DD +:106A58008430012B18D0012380F884302423C0F817 +:106A6800883003681A68196821F00101196022F05A +:106A780000520023436601680A602022C0F888207B +:106A880080F88430184670470220704738B590F86F +:106A98008430012B1DD00446012380F88430242340 +:106AA800C0F8883003681D681A6822F001021A606D +:106AB8000268936823F0604319439160FFF79EFFD3 +:106AC80023681D602023C4F88830002084F88400DF +:106AD80038BD0220FCE738B590F88430012B1DD072 +:106AE8000446012380F884302423C0F888300368E2 +:106AF8001D681A6822F001021A600268936823F080 +:106B0800606319439160FFF779FF23681D602023B4 +:106B1800C4F88830002084F8840038BD0220FCE7DF +:106B280082B000230193019B01330193019BB3F1D0 +:106B3800706F15D80369002BF5DA002301930369F8 +:106B480043F001030361019B01330193019BB3F1FE +:106B5800706F08D8036913F0010FF4D1002000E02A +:106B6800032002B070470320FBE7000084B010B593 +:106B7800044603A880E80E009DF81130012B1FD1B0 +:106B8800A36B23F48033A363E2681F4B1340E360D5 +:106B9800E36823F44013E3609DF81830012B0AD012 +:106BA8002046FFF7BDFF9DF80E30012B1CD0BDE835 +:106BB800104004B07047E36843F48013E360EFE7E4 +:106BC800E36843F04003E3602046FFF7A9FF9DF820 +:106BD800153023B9A36B43F48033A363E3E7A36BB6 +:106BE80023F48033A363DEE7E36D9BB2E365E26DD4 +:106BF800064B1343E365A36843F00603A360A36849 +:106C080043F02003A360D2E7BFFFBDFF0000EE03FF +:106C1800022A0AD00921C26822F47052C260C368ED +:106C280043EA8123C36000207047204B0B44204A6D +:106C3800934229D91F4B0B441F4A934226D91F4B15 +:106C48000B441F4A934223D91E4B0B441E4A9342BE +:106C580020D31E4B0B441E4A93421DD91D4B0B4497 +:106C68001D4A93421AD31D4B0B441D4A934217D316 +:106C78001C4B0B441C4A934214D31C4B0B441C4A18 +:106C8800934211D20721C6E70F21C4E70E21C2E7BC +:106C98000D21C0E70C21BEE70B21BCE70A21BAE7AA +:106CA8000921B8E70821B6E70621B4E7405327FFD2 +:106CB800FF340C00401E1BFF3F420F0000DC0BFF9F +:106CC8007F4F1200808CF9FE20D6130060B6E5FED7 +:106CD8005FE3160000D3CEFE40771B00C05BB3FE17 +:106CE800C091210000CA91FE20753800E05459FE79 +:106CF800E09C4100836843F00103836000207047F3 +:106D0800836823F0010383600020704782B000236A +:106D18000193019B01330193019BB3F1706F15D867 +:106D28000369002BF5DA00230193890141F0200162 +:106D38000161019B01330193019BB3F1706F08D886 +:106D4800036913F0200FF4D1002000E0032002B003 +:106D580070470320FBE782B000230193019B0133B6 +:106D68000193019BB3F1706F13D80369002BF5DA17 +:106D78000023019310230361019B01330193019BBD +:106D8800B3F1706F08D8036913F0100FF4D1002025 +:106D980000E0032002B070470320FBE7D0F800387A +:106DA8001943C0F8001800207047000084B0F8B5F7 +:106DB800044607A880E80E00002306E003F140021D +:106DC80004EB82020021516001330E2BF6D99DF8A5 +:106DD800266006BBD4F8043843F00203C4F804382C +:106DE800A36B23F40013A363236843F040032360D9 +:106DF800236843F0800323600023C4F8003E9DF815 +:106E08002130012B11D19DF81F304BB900212046AC +:106E1800FFF7C4FF0DE0A36B43F40013A363EBE794 +:106E280001212046FFF7BAFF03E003212046FFF7C0 +:106E3800B5FF10212046FFF769FF054600B101257F +:106E48002046FFF788FF00B1012504F5006C0023F8 +:106E5800CCF81030CCF81430CCF81C300AE0CBB9A0 +:106E68004FF00060C2F8000900220A614FF67F3235 +:106E78008A6001339DF81C10994210D904EB431223 +:106E880002F51061D2F800090028E8DB0020C2F8FA +:106E98000009E9E74FF09040C2F80009E4E7002351 +:106EA8000AE0BBB14FF09047C2F8007B00220261B4 +:106EB8004FF67F3282600133994210D904EB4312B6 +:106EC80002F53060D2F8007B002FEADB0027C2F819 +:106ED800007BEBE74FF00067C2F8007BE6E7DCF8E1 +:106EE800103023F48073CCF810300023A3616FF0C6 +:106EF800804363619DF81E301BB9A36943F01003FA +:106F0800A361A2690A4B1343A3619DF822301BB108 +:106F1800A36943F00803A361012E04D02846BDE805 +:106F2800F84004B07047A269024B1343A361F5E728 +:106F380000383C8004000040D0F8083813F00603FD +:106F480005D0062B18BF022B03D102207047002062 +:106F580070470F207047000010B591F800C04B78BB +:106F6800012B21D000F5006ED0F81C380CF00F046E +:106F78000122A24043EA0243C0F81C3800EB4C103F +:106F8800D0F8003B13F4004F0CD1D0F8002B8B68DD +:106F9800C3F30A03097943EA81431343144A1A43A2 +:106FA800C0F8002B002010BDD0F81C280CF00F0EE4 +:106FB80003FA0EF39BB21343C0F81C3800EB4C10D5 +:106FC800D0F8003913F4004FECD1D0F800298B68C1 +:106FD800C3F30A03097943EA814343EA8C5C42EA32 +:106FE8000C0C034B4CEA0303C0F80039DAE700BF86 +:106FF8000080001030B40B784A78012A26D000EBC4 +:107008004313D3F8002B002A52DBD0F83C480A7807 +:1070180002F00F024FF0010C0CFA02F224EA0242CD +:10702800C0F83C28D0F81C28097801F00F010CFAA8 +:1070380001FC22EA0C42C0F81C28D3F8001B234AA2 +:107048000A40C3F8002B002030BC704700EB431304 +:10705800D3F80029002A1EDBD0F83C580A7802F041 +:107068000F02012404FA02F292B225EA0202C0F8E1 +:107078003C28D0F81C28097801F00F018C40A4B2F4 +:1070880022EA0404C0F81C48D3F80019104A0A4040 +:10709800C3F80029D7E7D3F8002942F00062C3F803 +:1070A8000029D3F8002942F08042C3F80029D3E729 +:1070B800D3F8002B42F00062C3F8002BD3F8002B62 +:1070C80042F08042C3F8002B9FE700BF0078F3EF3F +:1070D800007833EC10B483B002460023019348785B +:1070E80001280AD00B7802EB4313D3F8000B0028D1 +:1070F8002CDB002003B010BC70470B7802EB431365 +:10710800D3F80049002C01DB0020F3E7D3F800494D +:1071180044F00064C3F800490B7802EB4313D3F83A +:10712800004944F08044C3F80049019B01330193AE +:10713800019C42F210739C42DCD80B7802EB43139B +:10714800D3F80039002BF0DB0020D3E7D3F8000B8D +:1071580040F00060C3F8000B0B7802EB4313D3F840 +:10716800000B40F08040C3F8000B019B01330193F2 +:10717800019842F21073984208D80B7802EB431337 +:10718800D3F8003B002BF0DB0020B3E70120B1E788 +:1071980010B59DF8084084B903334FEA930E4FF0B9 +:1071A800000C08E000EB023303F5805351F8044B60 +:1071B8001C600CF1010CF445F4D3002010BD000054 +:1071C800F0B583B00C784B78012B2DD000EB441C24 +:1071D8000CF530631E69864D35401D611E69854D6D +:1071E80035401D61002C40F0C7800C690CB18C68DB +:1071F8000C618C680C621D69C4F312042C431C6179 +:107208001C6944F400241C61012A00F0D8800B7921 +:10721800012B00F0DA80DCF8003B43F00443CCF8A3 +:10722800003B002003B0F0BD0B6973BB00EB4413B7 +:10723800D3F810696F4D3540C3F81059D3F8105979 +:1072480045F40025C3F81059D3F81069684D354046 +:10725800C3F81059012A4DD000EB4414D4F8003972 +:1072680043F00443C4F800390B79012B6BD00B6948 +:10727800002BD6D0D0F834380A7802F00F0101225A +:107288008A401343C0F83438CBE700EB441303F5C6 +:1072980010631E69564D35401D611E69554D3540B8 +:1072A8001D61D4B90E698D68AE4200D90D611D69A2 +:1072B80045F400251D611D690E69C6F312063543A4 +:1072C8001D610D79012DC5D11D6925F0C0451D61D0 +:1072D8001D6945F000551D61BCE71E690D698F6881 +:1072E8003D44013DB5FBF7F5434F07EAC545354336 +:1072F8001D61E0E7CB691BB100EB4412C2F81439F9 +:107308000B79012B08D000EB4410D0F8003943F07A +:107318000443C0F8003984E7D0F8083813F4807FB4 +:1073280008D100EB4412D2F8003943F00053C2F8F8 +:107338000039E8E700EB4412D2F8003943F08053F3 +:10734800C2F80039DFE7D0F8083813F4807F0CD191 +:10735800D4F8003943F00053C4F8003900920B8A7E +:107368000A78C968FFF714FF5BE7D4F8003943F0DF +:107378008053C4F80039F1E70C6954B91C698D6869 +:10738800C5F312052C431C611C6944F400241C61DC +:107398003AE78D682C44013CB4FBF5F4A4B204FB35 +:1073A80005F50D621D69144E06EAC4442C431C61A0 +:1073B8001C690D6AC5F312052C431C6124E7CA68D1 +:1073C800002A3FF424AF5A6121E7D0F8083813F4B3 +:1073D800807F06D1DCF8003B43F00053CCF8003B3B +:1073E80019E7DCF8003B43F08053CCF8003B12E788 +:1073F8000000F8FFFFFF07E00000F81F00B583B0AA +:10740800844608464FEA920E02F00302002305E084 +:107418000CF58051096840F8041B01337345F7D314 +:107428009AB10CF5805CDCF8003001934FF0000C49 +:107438005FFA8CF3D900019BCB4000F8013B0CF1BB +:10744800010C013A92B2002AF2D103B05DF804FBB4 +:107458000B784A78012A14D000EB4310D0F8002B9F +:10746800002A06DB2BB1D0F8003B23F08043C0F89C +:10747800003BD0F8003B43F40013C0F8003B002069 +:10748800704700EB4310D0F80029002A06DB2BB127 +:10749800D0F8003923F08043C0F80039D0F800391B +:1074A80043F40013C0F80039E9E70B784A78012A59 +:1074B8000ED000EB4310D0F8003B23F40013C0F8C3 +:1074C800003B0B79023BDBB2012B15D9002070473A +:1074D80000EB4310D0F8003923F40013C0F800394A +:1074E8000B79023BDBB2012BF0D8D0F8003943F01E +:1074F8008053C0F80039E9E7D0F8003B43F08053E7 +:10750800C0F8003BE2E7D0F8003823F4FE63C0F887 +:107518000038D0F80038090101F4FE611943C0F8B9 +:10752800001800207047D0F8003E23F00303C0F88D +:10753800003ED0F8043823F00203C0F804380020D5 +:107548007047D0F8003E23F00303C0F8003ED0F89F +:10755800043843F00203C0F8043800207047426939 +:10756800806910407047D0F8183800F50060C0698D +:107578001840000C7047D0F8183800F50060C06952 +:10758800184080B2704700EB4111D1F8082B00F584 +:10759800006040691040704710B4D0F81048D0F827 +:1075A800343801F00F02D340DB01DBB2234300EB98 +:1075B800411000F510608068184010BC70474069A1 +:1075C80000F00100704738B50546C36823F0C04392 +:1075D800C360012913D019BBC36843F08043C3605B +:1075E80000240A20F9F780FF0A342846FFF7E7FF4E +:1075F80008B1C72CF5D9C82C14D0002038BDC368F1 +:1076080043F00053C36000240A20F9F76DFF0A34E1 +:107618002846FFF7D4FF0128EDD0C72CF4D9EAE7B4 +:107628000120EBE70120E9E7D0F80029054B1340DA +:10763800C0F80039D0F8043843F48073C0F804382F +:107648000020704700F8FFFF10B4046C144B9C42F4 +:1076580003D9D0F8003B002B16DB0024C0F8104BF0 +:10766800D0F8104B44F40024C0F8104BD0F8104B5D +:1076780044F01804C0F8104BD0F8104B44F0C04444 +:10768800C0F8104B012902D0002010BC7047C0F888 +:10769800142BD0F8003B43F08023C0F8003BF3E7FD +:1076A8000A30544F10B5D0F8D43203F1B00250F874 +:1076B80022408CB100EB820043687BB194F8000251 +:1076C800FF280DD09B6894F8012221469847FF2394 +:1076D80084F80032002010BD0320FCE70020FAE700 +:1076E8000020F8E70A230380004870478C00002434 +:1076F800F8B506460F4F8221384600F041FC054692 +:107708000121384600F03CFC04468121384600F04F +:1077180037FC0DB11022AA711CB14022227100223F +:10772800627118B1402202710022427143233380F2 +:107738000048F8BD48000024F8B506460F4F8221DE +:10774800384600F01DFC05460121384600F018FCBB +:1077580004468121384600F013FC0DB11022AA71AD +:107768001CB1402222710022627118B140220271BC +:1077780000224271432333800048F8BD48000024AA +:10778800F8B506460F4F8221384600F0F9FB05464A +:107798000121384600F0F4FB04468121384600F008 +:1077A800EFFB0DB11022AA711CB100222271022236 +:1077B800627118B1002202710222427143233380A0 +:1077C8000048F8BD4800002438B5D0F8D432B033AA +:1077D80050F8235095B1044601F036FAC5F80C026A +:1077E800D4F8D432B03304EB83046368DB6805F55E +:1077F8000371D5F804029847002038BD0320FCE740 +:1078080038B5D0F8C852D0F8D432B03350F8234045 +:1078180084B301F00F0303EB830200EB8202926949 +:107828004AB103EBC30C05EB8C05ED69B2FBF5FC23 +:1078380005FB1C2292B10023C4F81432D0F8D432CC +:10784800B03300EB830043681B69ABB10A4604F50B +:107858000471D4F808029847002038BD03EB83036D +:1078680000EB830300249C612346224601F034FA8E +:107878002046F2E70320F0E70020EEE7F0B583B0FA +:10788800D0F8D43203F1B00250F8227000228DF8FB +:107898000720ADF80420002F7BD004460D46097858 +:1078A80011F0600634D0202E6CD1EA882AB311F08A +:1078B800800F07D16B7887F80032EA883F2A13D8FF +:1078C800D2B212E0B03300EB83035B689B683946A1 +:1078D80068789847EA88072A28BF07223946204649 +:1078E80000F005FF002651E0402287F801223946C2 +:1078F800204600F011FF002648E0B03300EB830477 +:1079080063689B68002229466878984700263DE00E +:107918006F780B2F31D8DFE807F006393030303078 +:1079280030303030162690F89C32DBB2032B04D06E +:10793800294600F062FB032628E0022201A900F094 +:10794800D6FE3E4622E090F89C32DBB2032B04D0F0 +:10795800294600F052FB032618E001220DF1070129 +:1079680000F0C5FE12E090F89C32DBB2032B0DD07C +:10797800294600F042FB032608E0294600F03DFBBB +:10798800032603E0294600F038FB0326304603B0FF +:10799800F0BD0326FAE738B50446812101F07CF9E9 +:1079A800002525870121204601F076F9A4F87851B1 +:1079B8008221204601F070F9A4F84C50A4F84E50EA +:1079C800D4F8D43203F1B00254F822209AB1B0337B +:1079D80004EB83035B685B689847D4F8D432B03310 +:1079E80054F8230001F03AF9D4F8D432B03344F80B +:1079F8002350C4F8BC52002038BD70B504464FF47B +:107A0800077001F027F9002849D005464FF407729E +:107A1800002101F09BF9D4F8D432B03344F8235054 +:107A2800C4F8BC52237C002B41D14FF400730222CE +:107A38008121204601F025F9012626874FF400739D +:107A480002223146204601F01CF9A4F8786110237F +:107A5800A4F84E30082303228221204601F011F9B0 +:107A68000123A4F84C300026C5F80462D4F8D432B7 +:107A7800B03304EB83035B681B689847C5F814624E +:107A8800C5F81862D5F8042262B3257C1DBB4FF4F3 +:107A980000730121204601F027F9284670BDD4F86B +:107AA800D432B033002244F823200225F5E74023DE +:107AB80002228121204601F0E4F80126268740238E +:107AC80002223146204601F0DCF8A4F87861102340 +:107AD800A4F84E30BEE740230121204601F004F906 +:107AE8000025DAE70225D8E739B1D0F8D432B03327 +:107AF80000EB830041600020704703207047D0F8F6 +:107B0800D432B03350F823302BB1C3F80812C3F87D +:107B180010220020704703207047D0F8D432B033C9 +:107B280050F823301BB1C3F804120020704703201B +:107B3800704708B5D0F8D432B03350F823209AB142 +:107B4800D2F814320BB1012008BD0123C2F8143257 +:107B5800D2F81032C362D2F81032D2F8082281214A +:107B680001F0BAF80020EFE70320EDE710B5D0F8F0 +:107B7800D432B03350F8232092B1047C44B94FF486 +:107B88000073D2F80422012101F0AEF8204610BD9E +:107B98004023D2F80422012101F0A6F80024F5E7D9 +:107BA8000324F3E798B108B503460020C3F8B802E8 +:107BB800C3F8C402C3F8D00209B1C3F8B412012152 +:107BC80083F89C121A70184600F0F0FF08BD0320D5 +:107BD800704710B582B00023ADF8063089B104466D +:107BE800C0F8B812CB6A23B10DF106009847C4F863 +:107BF800D002D4F8D8320133C4F8D832002002B009 +:107C080010BD0320FBE708B501F033F808BD08B53F +:107C1800D0F8B83213B11B68984708BD0020FCE7BC +:107C280008B5D0F8B8325B68984700B908BD03209A +:107C3800FCE738B5044600F2AA25284600F0C9F941 +:107C48000123C4F89432B4F8B032C4F8983294F8E6 +:107C5800AA1201F01F03012B0DD0022B10D02BB15B +:107C680001F08001204601F01FF803E02946204674 +:107C780000F084FB38BD2946204600F0BAFBF9E73E +:107C88002946204600F0F7FBF4E7F8B5044601233F +:107C980080F89C320023C0F894324360C0F8A432C4 +:107CA80080F8A032D0F8B832DBB15B68DBB10021D4 +:107CB80098470746C8B9402300221146204600F0DD +:107CC800E0FF0126A4F864614025C4F860512B4602 +:107CD80000228021204600F0D4FFA6842562384681 +:107CE800F8BD0027E7E70027E5E70327E3E7017486 +:107CF8000020704790F89C32DBB2042B04D090F837 +:107D08009C32DBB280F89D32042380F89C3200203C +:107D1800704790F89C32DBB2042B01D000207047EA +:107D280090F89D32DBB280F89C32F7E708B590F8FE +:107D38009C32DBB2032B01D0002008BDD0F8B8324A +:107D4800002BF9D0DB69002BF6D09847F4E708B58B +:107D5800D0F8D432AE3350F823205AB190F89C3280 +:107D6800DBB2032B01D0002008BD136A23B198476A +:107D78000020F9E70320F7E70020F5E708B5D0F879 +:107D8800D432AE3350F823205AB190F89C32DBB28B +:107D9800032B01D0002008BD536A23B19847002067 +:107DA800F9E70320F7E70020F5E70020704708B55A +:107DB800012380F89C32D0F8B83223B15B6801798E +:107DC800984710B908BD0020FCE70320FAE7002017 +:107DD80070470020704738B504460D46002943D146 +:107DE8001346D0F89422032A01D0084638BDD0F8AB +:107DF8005C11D0F86021914212D890F8AA3203F0B1 +:107E08001F03012B17D0022B1CD0284694F89C3254 +:107E1800DBB2032B1BD0204600F095FC2846E5E793 +:107E2800891AC0F85C118A4228BF0A46194600F030 +:107E380082FC2846DAE790F8AE12FFF7C8FF002860 +:107E4800E9D1E3E790F8AE12FFF7C3FFF7E700F1D7 +:107E5800AE0354F823301A69002ADCD0C4F8D402DF +:107E68001B6920469847D6E701F07F01FFF7B1FF6D +:107E780090B994F89C32DBB2032BB7D100F1AE0372 +:107E880054F823309A69002AB0D0C4F8D4029B6908 +:107E9800294620469847A9E70020A7E738B50446B1 +:107EA8000D4600294BD11346D0F89422022A07D058 +:107EB80094F8A00218B1002384F8A032284638BDEF +:107EC800C269016A8A420ED88A4218D094F89C3254 +:107ED800DBB2032B27D08021204600F0E5FE2046A8 +:107EE80000F03CFCE4E7521AC261194600F00CFCB1 +:107EF80000231A461946204600F0F6FED8E78369A3 +:107F08009942E3D8D0F898229342DFD20022114652 +:107F180000F0FAFB0021C4F898120B460A462046E6 +:107F280000F0E2FEC4E7D4F8B832DA68002AD2D00A +:107F38000022C4F8D422DB6820469847CBE741F0FA +:107F48008001FFF746FF90B994F89C32DBB2032B0F +:107F5800B5D100F1AE0354F823305A69002AAED0E7 +:107F6800C4F8D4025B69294620469847A7E7002051 +:107F7800A5E703780A8813440B80037818447047F0 +:107F8800428803789A4218D930B583B004460D4622 +:107F9800ADF806306288BDF806309A420AD90DF16C +:107FA8000601FFF7E6FF4378052BF3D18378AB4250 +:107FB800F0D100E0002003B030BD00207047034638 +:107FC800002002E00130C0B201331A78002AF9D14A +:107FD80070470B7803704B7843708B78CA7843EA04 +:107FE800022343800B794A7943EA022383808B7901 +:107FF800CA7943EA0223C380704710B5044680213A +:1080080000F052FE0021204600F04EFE10BD30B5B3 +:1080180083B004460D460023ADF806304A88130A9B +:10802800013B062B00F2AB80DFE803F0041F33A905 +:10803800A98D9A00D0F8B4321B680DF10601007CB6 +:108048009847EA88002A00F0A380BDF80630002B84 +:1080580000F099809A4228BF1A46ADF806200146DA +:10806800204600F044FB03B030BD037C43B9D0F890 +:10807800B8329B6A0DF10600984702234370E0E787 +:10808800D0F8B832DB6A0DF1060098470223437036 +:10809800D7E7D2B2052A52D8DFE802F003101D2A2A +:1080A8003744D0F8B4325B6823B10DF10601007C87 +:1080B8009847C6E72946FFF7A0FFD4E7D0F8B432BF +:1080C8009B6823B10DF10601007C9847B9E7294662 +:1080D800FFF793FFC7E7D0F8B432DB6823B10DF19F +:1080E8000601007C9847ACE72946FFF786FFBAE708 +:1080F800D0F8B4321B6923B10DF10601007C984712 +:108108009FE72946FFF779FFADE7D0F8B4325B69FE +:1081180023B10DF10601007C984792E72946FFF745 +:108128006CFFA0E7D0F8B4329B6923B10DF10601CA +:10813800007C984785E72946FFF75FFF93E72946C4 +:10814800FFF75BFF8FE7037C33B9D0F8B8325B6B7E +:108158000DF10600984774E72946FFF74EFF82E7BE +:10816800037C43B9D0F8B8321B6B0DF10600984771 +:108178000723437065E72946FFF73FFF73E7294662 +:10818800FFF73BFF6FE729462046FFF736FF6AE710 +:10819800204600F0D8FA66E738B504468B88FBB964 +:1081A800CB88EBB94B887F2B1AD803F07F0590F862 +:1081B8009C32DBB2032B0CD080F89E52294600F08B +:1081C80083FD204600F0BFFA35B1022384F89C32C3 +:1081D80009E0FFF712FF06E0012384F89C3202E071 +:1081E8002046FFF70AFF38BD70B504460E468D7865 +:1081F8002F4B1D70012D10D890F89C32DBB2022B4A +:108208000FD0032B26D0FFF7F8FE294B197820460C +:10821800FFF706FD0325284670BDFFF7EEFE032590 +:10822800F9E7A5B145602946FFF7F1FC054638B1E5 +:1082380031462046FFF7E1FE022384F89C32EAE744 +:10824800204600F080FA032384F89C32E3E700F02C +:108258007AFAE0E7CDB141688D4225D0C9B2FFF77F +:10826800DFFC134B197861602046FFF7D0FC054608 +:10827800B0B131462046FFF7C0FE21792046FFF70E +:10828800CFFC022384F89C32C5E7022380F89C3295 +:1082980045602946FFF7C4FC204600F054FABAE7C7 +:1082A800204600F050FAB6E700F04DFA0025B2E794 +:1082B800B80E002408B5CB88012B0BD190F89C325E +:1082C800DBB2022B09D9032B09D10122011D00F0D1 +:1082D8000EFA01E0FFF791FE08BD5BB213B9FFF794 +:1082E8008CFEF9E70146002341F8083F012200F01F +:1082F800FEF9F1E708B590F89C32013B022B12D841 +:10830800CB88022B0CD10123C360D0F8A4320BB167 +:108318000323C360022200F10C0100F0E8F908BD54 +:10832800FFF76BFEFBE7FFF768FEF8E708B54B8839 +:10833800012B04D0022B07D0FFF75FFE08BDC0F861 +:10834800A43200F000FAF9E78B881B0A80F8A03203 +:1083580000F0F9F9F2E708B590F89C32013B022BDE +:1083680009D84B88012B00D008BD0023C0F8A432DF +:1083780000F0E9F9F8E7FFF740FEF5E738B50C78C3 +:1083880004F06004202C06D0402C04D06CB1FFF718 +:1083980034FE002407E0D0F8D432AE3350F823304E +:1083A8009B6898470446204638BD4D78092D1DD84E +:1083B800DFE805F012191C161C08051C0F0BFFF747 +:1083C80026FEF0E7FFF7E8FEEDE7FFF70DFF0446AE +:1083D800E9E7FFF76FFFE6E7FFF78CFF2C46E2E7D8 +:1083E800FFF7A4FFDFE7FFF7B6FFDCE7FFF705FEBF +:1083F800D9E770B505460C460B7803F06003202BCF +:1084080007D0402B05D023B1FFF7F7FD00263046F3 +:1084180070BD95F89C32013B022B26D821790129A1 +:1084280005D921462846FFF7E8FD0026EFE728464C +:10843800FFF7CDFC68B900F1AE0255F8222091682B +:1084480089B1C5F8D402936821462846984706465C +:1084580000E00326E388002BD9D1002ED7D1284687 +:1084680000F071F9D3E70326F4E721462846FFF721 +:10847800C4FD0026CBE72DE9F04106460D468B8862 +:10848800DFB20C7804F06004202C08D0402C06D011 +:10849800DCB1FFF7B2FD00242046BDE8F081394683 +:1084A8003046FFF796FC0446002840F0F980C6F8ED +:1084B800D40200F1AE0356F823309B68002BEBD0B2 +:1084C8002946304698470446E6E791F80180B8F116 +:1084D800010F31D0B8F1030F05D0B8F1000F66D005 +:1084E800FFF78BFDD8E790F89C32DBB2022B04D063 +:1084F800032B11D0FFF781FDCEE7002F18BF802F87 +:1085080007D0394600F0D0FB8021304600F0CCFB84 +:10851800C2E7FFF772FDBFE74B882BB9002F18BFE2 +:10852800802F01D0CB881BB1304600F00CF9B3E79F +:10853800394600F0B9FBF7E790F89C32DBB2022B22 +:1085480004D0032B11D0FFF758FDA5E7002F18BF63 +:10855800802F07D0394600F0A7FB8021304600F075 +:10856800A3FB99E7FFF749FD96E74B88002B93D1CA +:1085780017F07F0F17D1304600F0E5F8394630463E +:10858800FFF727FC002887D1C6F8D40200F1AE0215 +:1085980056F822209268002A00F084802946304646 +:1085A8009047044678E7394600F086FBE3E790F801 +:1085B8009C22D2B2022A05D0032A28D0FFF71DFD3B +:1085C800444669E7002F18BF802F13D113F0800F9E +:1085D80014D107F07F0707EB8707B90001F5A871E9 +:1085E8000144043100230B600222304600F07FF87A +:1085F800444651E7FFF701FD44464DE707F07F0782 +:1086080007EB8707B900103101440431EAE75BB290 +:10861800002B20DB07F00F0202EB820200EB820244 +:10862800B2F8642122B3002B26DB07F07F0303EBAB +:1086380083039C0004F5A87434440434802F18BFC5 +:10864800002F22D10023236002222146304600F069 +:108658004EF8444620E707F00F0202EB820200EBD7 +:108668008202928C002ADED1FFF7C7FC444613E74A +:10867800FFF7C3FC44460FE707F07F0303EB8303D0 +:108688009C00103434440434D8E73946304600F0AE +:10869800C5FA10B101232360D6E700232360D3E78E +:1086A8000024F9E60446F7E600B370B50D46164611 +:1086B8000446FFF784FC01304300B3F5007F06D879 +:1086C8009BB233802B7003236B7002230AE04FF4B4 +:1086D8000073F6E7EA5401345A1CD2B20021A954B7 +:1086E8000233DBB22278002AF4D170BD704708B596 +:1086F80013460222C0F894228361C3610A4600210E +:1087080000F0EAFA002008BD08B513460A46002121 +:1087180000F0E2FA002008BD08B513460322C0F8AD +:108728009422C0F85831C0F85C310A46002100F0A4 +:10873800DBFA002008BD08B513460A46002100F000 +:10874800D3FA002008BD08B50422C0F894220023FB +:108758001A46194600F0C0FA002008BD08B50522DF +:10876800C0F8942200231A46194600F0BDFA0020EA +:1087780008BD000008B5012210491148FFF712FA98 +:1087880080B910490E48FFF724FA70B90E490C4811 +:10879800FFF7AAF960B90A48FFF735FA58B9FBF7A5 +:1087A800BDF808BDF8F78AFAEBE7F8F787FAEDE7BE +:1087B800F8F784FAEFE7F8F781FAF0E7AC0000245D +:1087C800BC0E0024100000249800002400207047EC +:1087D800002070470020704710B50146044C204621 +:1087E800FFF79BF92046FFF7C1F9002010BD00BF35 +:1087F800BC0E002410B5064C002206492046FFF79F +:108808007EF905492046FFF788F9002010BD00BF12 +:10881800BC0E00249819002498110024094BD3F8A1 +:10882800BC32D3F814320BB10120704710B5054C97 +:108838000A4601462046FFF762F92046FFF779F914 +:1088480010BD00BFBC0E002412230B8000487047E7 +:10885800C800002404230B8000487047DC00002473 +:10886800002393421ED200B510E00CF1370C01F83A +:1088780013C000014FEA430C0CF1010C4FF0000E3D +:1088880001F80CE00133DBB2934209D24FEA107CC5 +:10889800B0F1204FE9D20CF1300C01F813C0E8E731 +:1088A8005DF804FB7047000038B50B4BD3F800089F +:1088B800D3F80448D3F80838C01800D138BD074D9C +:1088C8000822A91CFFF7CCFF042205F1120120465B +:1088D800FFF7C6FFF2E700BF00E0F11FE000002449 +:1088E80008B51A230B80FFF7DFFF014808BD00BF5A +:1088F800E000002408B50A4628B905490548FFF7ED +:10890800D3FE034808BD02490248FFF7CDFEF8E749 +:1089180098210024C09E000810B50A46034C214641 +:108928000348FFF7C1FE204610BD00BF9821002470 +:10893800D89E000808B50A4628B905490548FFF732 +:10894800B3FE034808BD02490248FFF7ADFEF8E749 +:1089580098210024EC9E000808B50A4628B9054964 +:108968000548FFF7A1FE034808BD02490248FFF782 +:108978009BFEF8E798210024F89E0008F0B5BDB0EA +:10898800044600213791389139913A913B91C022A0 +:1089980006A800F0DBF92268474B9A4201D03DB0A7 +:1089A800F0BD4FF480220023CDE906234FF4401395 +:1089B800289306A8FBF7BCFE002879D1FAF7AEFF8A +:1089C8003E4CD4F8E03043F00403C4F8E030D4F867 +:1089D800E03003F004030193019BD4F8E03043F046 +:1089E8000103C4F8E030D4F8E03003F00103029347 +:1089F800029BD4F8E03043F00203C4F8E030D4F826 +:108A0800E03003F002030393039B0D233793022600 +:108A18003896002539953A960A273B9737A928486A +:108A2800F9F7C2FF28233793389639953A963B973A +:108A380037A92448F9F7B8FF43F623433793389604 +:108A480039953A963B9737A91F48F9F7ADFFD4F8FF +:108A5800D83043F00073C4F8D830D4F8D83003F0D5 +:108A680000730493049BD4F8D83043F08063C4F8AF +:108A7800D830D4F8D83003F080630593059B2A4694 +:108A880029464A20F8F75CFD4A20F8F78FFD2A4668 +:108A980029464B20F8F754FD4B20F8F787FD2A4666 +:108AA80029464D20F8F74CFD4D20F8F77FFD76E775 +:108AB800F8F704F982E700BF0000044000440258B8 +:108AC80000080258000002580004025808B500F2D5 +:108AD8009C41D0F8E004FFF7ACF808BD08B501EBFD +:108AE800C10300EB8303D3F86022D0F8E004FFF75A +:108AF80072F908BD08B501EBC10300EB83031A6ADC +:108B0800D0F8E004FFF7CAF908BD08B5D0F8E004CA +:108B1800FFF70CF908BD10B50446C17911B1022957 +:108B280009D10121D4F8E004FFF7E1F8D4F8E00412 +:108B3800FFF7ABF810BDF8F7C1F80121F2E7000024 +:108B480010B50446D0F8E004FFF7D4F82268D2F84C +:108B5800003E43F00103C2F8003EE37A23B1034A22 +:108B6800136943F00603136110BD00BF00ED00E078 +:108B780008B5D0F8E004FFF7CCF808BD08B5D0F880 +:108B8800E004FFF7FBF808BD08B5D0F8E004FFF7EC +:108B9800DEF808BD08B5D0F8E004FFF706F908BD0F +:108BA80008B5D0F8E004FFF702F908BD0378012BF7 +:108BB80001D00020704710B5164BC3F8E004C0F888 +:108BC800C832154A1A6009221A710022DA719A719C +:108BD800012159729A72DA721A739A73DA731A74D3 +:108BE8001846FAF76CF890B90A4C4FF40071204611 +:108BF800FAF74FFE802200212046FAF725FE4FF4AF +:108C0800BA7201212046FAF71FFE002010BDF8F7BE +:108C180055F8E9E79823002400000440D0F8C8324A +:108C280011F0800F08D101F07F0101EBC10103EBC6 +:108C3800810191F85602704701F07F0101EBC101F3 +:108C480003EB8101887D704708B5D0F8C802FAF7B0 +:108C580037FA08BD004870477C280024704703286D +:108C680005D8DFE800F0050402050120704703205D +:108C7800704708B5D0F8C802FAF7A2F8FFF7EFFF77 +:108C880008BD08B594461A466346D0F8C802FAF7F4 +:108C980076F9FFF7E4FF08BD08B5D0F8C802FAF77F +:108CA800B2F9FFF7DCFF08BD08B5D0F8C802FAF73B +:108CB80035FAFFF7D4FF08BD08B5D0F8C802FAF7AF +:108CC80070FAFFF7CCFF08BD08B5D0F8C802FAF76C +:108CD80043F9FFF7C4FF08BD08B5D0F8C802FAF792 +:108CE800F8F9FFF7BCFF08BD08B5D0F8C802FAF7D5 +:108CF800C2F9FFF7B4FF08BD014B1868704700BF01 +:108D0800FC00002470B50D4E0D4D761BB61006D034 +:108D1800002455F8043B01349847A642F9D1094E7E +:108D2800094D761B01F09CF8B61006D0002455F8C2 +:108D3800043B01349847A642F9D170BD149F00083E +:108D4800149F00081C9F0008149F0008830730B573 +:108D580048D0541E002A3FD0CAB2034601E0013C65 +:108D68003AD303F8012B9D07F9D1032C2DD9CDB2A5 +:108D780045EA05250F2C45EA054536D9A4F1100228 +:108D880022F00F0C03F1200EE6444FEA121C03F107 +:108D9800100242E9045542E9025510327245F8D1F1 +:108DA8000CF1010214F00C0F03EB021204F00F0C8B +:108DB80013D0ACF1040323F003030433134442F843 +:108DC800045B9342FBD10CF003042CB1CAB21C44DF +:108DD80003F8012B9C42FBD130BD64461346002C9E +:108DE800F4D1F9E703461446BFE71A46A446E0E77C +:108DF8002DE9F043694CD4F8008083B004460E4650 +:108E080017461D46B8F1000F03D0D8F83830002BAC +:108E180077D0022F05D0012F00F2AC80002DC0F2D0 +:108E2800A980636EDA0752D52146404600F058F90A +:108E3800216B41B104F14003994202D0404600F051 +:108E48007BFA00232363B4F90CC000231CF0800FC5 +:108E5800A361636064D12CF44A6C2CF0030C022FDC +:108E6800A4F80CC06AD001AB6A462146404600F01F +:108E780095FBA3891843A081002D2FD0002E2ED05A +:108E8800D8F83830002B38D0009B2660AB42B4F9B4 +:108E98000C301CBF43F40063A381012F04BF43F0CF +:108EA8000103A3819AB213F00803C4E904652CD026 +:108EB800D1075DD56D42A561656E002315F00105EA +:108EC800A36027D00025284603B0BDE8F083A38916 +:108ED8009B05A9D4A06D00F05DFBA5E7009D284681 +:108EE80000F08CFB0646002847D0A38943F0800396 +:108EF800A381D8F83830002BC6D1404600F024F9B9 +:108F0800C2E7404600F020F983E7A360656E15F0DC +:108F18000105D7D1930524D5284603B0BDE8F083D1 +:108F28002169404600F008FAB4F90CC02CF44A6CE8 +:108F38002CF0030C022FA4F80CC094D100250022B9 +:108F480004F14303A2600122C4E904322360636E82 +:108F58004CF0020CD807A4F80CC0DDD41CF4007F38 +:108F6800DAD1A06D00F018FB284603B0BDE8F08305 +:108F7800A560CBE74FF0FF35CEE7DDF80090A945B7 +:108F880004D0484600F03AFB064620B9B4F90CC0B4 +:108F98004FF0FF35D3E74D46A7E700BFFC0000249C +:108FA800024B13B1024800F005B8704700000000FA +:108FB80075920008002301461A46184600F050BE74 +:108FC800B1F90C20F8B50C461107074642D463687E +:108FD80042F40062002BA28159DDA56A002D54D00D +:108FE80000233E683B6093B212F4805253D1E1698A +:108FF80001233846A847421C63D0A389A56A5B07AA +:1090080005D56368C01A236B0BB1E36BC01AE1691D +:10901800024600233846A847411C3ED13B68002B36 +:109028003BD01D2B01D0162B52D1A3892269226077 +:1090380023F4006300216160A381216B3E6021B3AA +:1090480004F14003994202D0384600F075F9002037 +:109058002063F8BD2669C6B193B2256826609A07D1 +:109068000CBF63690023AD1BA3600CE0D4F824C0D7 +:10907800E1692B4632463846E047B0F1000CA5EBD3 +:109088000C05664416DD002DF0DC0020F8BDE36B0E +:10909800002BA2DCF9E7206DB1E7B4F90C302269A6 +:1090A800226023F40063A3810022DB046260C4D53C +:1090B8002065C2E7A38943F040034FF0FF30A38146 +:1090C800F8BD3B68002B98D01D2B06D0162B04D07A +:1090D800A38943F04003A381F8BD3E60D5E700BFF4 +:1090E80038B50C46054608B1836BA3B1B4F90C003A +:1090F800B8B1636EDB0701D4810515D52846214632 +:10910800FFF75EFF636EDA07054602D4A3899B0565 +:109118000ED5284638BD00F017F8B4F90C00002821 +:10912800E7D10546284638BDA06D00F033FAE5E7DB +:10913800A06D00F031FA284638BD00BF014900F0A3 +:1091480001BA00BF199D00082DE9F0478246394849 +:1091580000F020FADAF83840002C66D1DAF804502A +:10916800354ACAF83C200323CAE9B843DFF8CC9053 +:10917800DFF8CC80334F344E04230AF53B72CAF82B +:10918800E8222146C5E90243C5E90044C5E904448B +:109198006C660822AC6105F15C00FFF7D7FDC5E9F4 +:1091A8000759C5E90987EE6205F1580000F0EEF9A4 +:1091B800DAF80850254BEB602146C5E90044C5E9BB +:1091C80004446C66AC60AC61082205F15C00FFF7F2 +:1091D800BDFDC5E90759C5E90987EE6205F15800E3 +:1091E80000F0D4F9DAF80C50194BEB602146C5E9C8 +:1091F8000044C5E904446C66AC60AC61082205F122 +:109208005C00FFF7A3FD05F15800C5E90759C5E95A +:109218000A76C5F8248000F0B9F90123CAF8383075 +:109228000448BDE8F04700F0B7B9BDE8F047014889 +:1092380000F0B2B9A82A002445910008B19B0008A3 +:10924800D59B0008159C0008359C00080900010002 +:1092580012000200014800F09DB900BFA42A0024B2 +:10926800014800F099B900BFA42A002438B5084B7A +:10927800084D5B1B9C1007D0043B1D44013C55F86E +:1092880004399847002CF9D1BDE8384000F0EEBD0C +:10929800209F00081C9F0008F8B5244F0C4606467E +:1092A80000F064FCBA685568C4F57E630F3325F096 +:1092B80003052B4423F47F6323F00F03A3F58054A5 +:1092C800B4F5805F07DB0021304600F05BFCBB682B +:1092D8002B44984204D0304600F04EFC0020F8BDE4 +:1092E8006142304600F04EFC01300DD0104ABB6898 +:1092F8002D1B45F001055D60136830461B1B13608C +:1093080000F03AFC0120F8BD0021304600F03AFC9C +:10931800BA68831A0F2BDEDD43F001035360054B57 +:1093280003491B68C01A0860D5E700BF2C05002454 +:10933800AC2A002434090024002961D0F8B50C4671 +:10934800064600F013FC54F8042C7B4FA4F10805E2 +:1093580022F0010105EB010CB868DCF80430604527 +:1093680023F0030300F08B80D207CCF8043032D40A +:1093780054F8082CAD1A1144AA6807F10800824273 +:109388006AD00CEB0304D4F804E0EC68D4601EF057 +:10939800010FA26000F0978041F001036B60CCF8E8 +:1093A8000010B1F5007F35D27A68CB084809012151 +:1093B800013381401143796007EBC30257F833103A +:1093C800083AC5E9021247F83350CD603046BDE887 +:1093D800F84000F0D1BB0CEB03025268D00710D460 +:1093E800194407F10800DCF80830834273D0DCF830 +:1093F8000C20DA60936041F001036B606950D0E79C +:10940800704741F00103B1F5007F44F8043CCCF803 +:109418000010C9D3B1F5206F4FEA512348D28B0908 +:1094280003F1390003F13802C300F818FB58083873 +:10943800984259D05A6822F003028A4202D99B689E +:109448009842F7D1D868C5E902308560DD603046BA +:10945800BDE8F84000F090BB0CEB03025268D2075D +:1094680063D40B44DCE90212CA60916043F0010244 +:109478006A603046EB50BDE8F84000F07DBB0B4415 +:10948800D10707D454F8082CAD1A1344D5E90212B1 +:10949800CA60916043F001026A60284ABD601268A0 +:1094A8009A4293D8264B30461968FFF7F5FE8DE7A8 +:1094B800142B0AD9542B1FD80B0B03F16F0003F19F +:1094C8006E02C300B1E719448DE703F15C0003F1B4 +:1094D8005B02C300A9E741F00103C7E90455C5E9E8 +:1094E80002006B60695071E779689210012404FAF0 +:1094F80002F20A437A60A6E7B3F5AA7F06D8CB0B37 +:1095080003F1780003F17702C3008EE740F254526A +:10951800934206D88B0C03F17D0003F17C02C30053 +:1095280083E74FF47E737E227FE741F001036B608F +:10953800CCF800104AE700BF2C05002438090024A5 +:10954800DC2A00242DE9F8430746884600F53876DA +:109558004FF00009D6E90154013D11D4A389012B2C +:1095680005F1FF3508D9B4F90E300133214603D08F +:109578003846C04749EA00096B1C04F16804EDD17C +:109588003668002EE6D14846BDE8F883704700BF2C +:10959800704700BF704700BF704700BF70B50C46EA +:1095A800B1F90E10002996B015461E4614DB6A461E +:1095B80000F014FC00280FDB019A02F47042A2F5B7 +:1095C8000052B2FA82F24FF4806352094FF40060FD +:1095D80032602B6016B070BDB4F90C10002311F086 +:1095E8008000336004D0402218462A6016B070BD4F +:1095F8004FF480632B6016B070BD00BF024B01466C +:10960800186800F003B800BFFC0000242DE9F04FF3 +:1096180001F10B06162E83B0044624D8102900F257 +:10962800BA8000F0A3FA102618220220B54F3A4457 +:10963800A2F1080153688B4200F0BA805A68D968D1 +:1096480022F003021A449D68E9608D60516841F078 +:1096580001012046516003F1080500F08DFA284603 +:1096680003B0BDE8F08F36F0070600F19480B142F0 +:1096780000F2918000F07AFAB6F5FC7FC0F09A818A +:10968800730A00F08F80042B00F26F81B30903F195 +:10969800390003F1380CC3009A4F3B44A3F1080585 +:1096A8005B689D4206D10CE0002980F22781DB68C7 +:1096B8009D4206D05A6822F00302911B0F29F3DD60 +:1096C80060463D69DFF840C265457CD06A6822F093 +:1096D8000302931B0F2B00F37B81002BC7E904CCFB +:1096E80080F26C81B2F5007F80F01A81D308796826 +:1096F80001334FEA521E012202FA0EF20A4357F8CA +:1097080033E0C5F808E007EBC3010839E9607A607F +:1097180047F83350CEF80C508310012199409142FC +:1097280057D8114206D120F003004900114200F138 +:109738000400FAD007EBC0094D468646D5F80C80E0 +:10974800454508D11DE1002B80F22481D8F80C8012 +:10975800454500F01681D8F8042022F00302931B37 +:109768000F2BF0DD2046D8E9025408EB060146F03D +:109778000106C8F80460EC60A56043F00104C7E97D +:109788000411C1E902CC4C6048F8023000F0F4F949 +:1097980008F1080502E00C2323600025284603B0E1 +:1097A800BDE8F08F4FF4007340204FF03F0C73E793 +:1097B800D3689A4208BF02307FF440AF3D69DFF8B2 +:1097C80048C1654582D17A68831001219940914248 +:1097D800A7D9BD686B6823F003094E4503D8A9EBE8 +:1097E80006030F2B7ADCDFF824B1494BDBF80020A5 +:1097F8001B680132334405EB090A00F0338103F595 +:1098080080530F3323F47F6828F00F084146204621 +:1098180000F0B8F9411C024600F0F380824500F2DE +:10982800EE803C4B196841441960084600F04E81AF +:10983800DBF80010019301311BBFA2EB0A0A504468 +:10984800CBF80020186012F0070B00F01781CBF15D +:1098580008010A44CBF5805190440831A1EB080176 +:10986800C1F30B0A51462046009200F08BF9421CC6 +:10987800DDE9002300F04F81801A00EB0A0819681F +:10988800BA6048F001005144BD425060196000F0D0 +:109898002981B9F10F0F40F227816868A9F10C0CF2 +:1098A8002CF0070C00F0010040EA0C0068604FF053 +:1098B800050E05EB0C00BCF10F0FC0E901EE00F23C +:1098C800328150681546144B1A688A4238BF1960AD +:1098D800124B1A688A4238BF196094E0AA1943F0FB +:1098E800010346F001066E602046BA60536000F03E +:1098F80043F90835284603B0BDE8F08FD9681A4403 +:10990800A1E600BF2C0500243405002434090024F6 +:10991800DC2A0024AC2A0024D42A0024D82A0024D3 +:10992800B2F5206F4FEA522363D3142B00F2B780AD +:1099380003F15C01C9005B3307EB010E7958AEF106 +:10994800080E8E4500F091804B6823F00303934284 +:1099580002D989688E45F7D1D1F80CE07A68C5E953 +:10996800021ECEF80850CD60D6E6142B59D9542BD8 +:1099780000F29D80330B03F16F0003F16E0CC300FE +:109988008AE60EF1010E1EF0030F05F108057FF4BB +:10999800D5AE51E0424445465368D8F80C1043F020 +:1099A8000103536055F8083F2046D9608B6000F0EA +:1099B800E3F8F3E6F00806F1080237E62A44204601 +:1099C800536843F001035360083500F0D5F8E5E625 +:1099D800A919204646F0010643F001046E60C7E964 +:1099E8000411C1E902CC4C60AB5000F0C5F8083551 +:1099F800D4E6930903F13901C90038339CE7BD4225 +:109A08005FD0BD68686820F003084645A8EB0603E8 +:109A180002D80F2B3FF762AF204600F0ADF80025C3 +:109A2800BCE603F15C0003F15B0CC30034E659F8B3 +:109A380008394B4540F0968010F0030F00F1FF30D5 +:109A4800F5D17B6823EA01037B60490099423FF620 +:109A5800C0AE19B9BDE649000EF1040E1942FAD09C +:109A6800704667E603F11008D0E69A104FF0010837 +:109A78007B6808FA02F21A437A6070E702EB080181 +:109A88004942C1F30B0A51462046009200F07AF889 +:109A9800431CDDE900237FF4EFAEDA46EFE6542BF2 +:109AA80025D8130B03F16F01C9006E3344E7B3F5F2 +:109AB800AA7F25D8F30B03F1780003F1770CC300D4 +:109AC800EAE5294B186840441860B1E6CAF30B0C64 +:109AD800BCF1000F7FF4ACAEBD68C84448F001008B +:109AE8006860F0E61546EEE60123536094E7B3F5A7 +:109AF800AA7F23D8D30B03F17801C90077331BE77A +:109B080040F25452934223D8B30C03F17D0003F181 +:109B18007C0CC300C0E5ABF1080BD844A8EB0208E5 +:109B28004FF0000AABE605F1080120460093FFF765 +:109B380003FCBD68009B68681968C4E640F254518C +:109B48008B420BD8930C03F17D01C9007C33F3E6FB +:109B58004FF47E737F204FF07E0C9DE54FF47E71AD +:109B68007E23E9E67B6870E7AC2A00240148FFF70A +:109B780011BD00BFA02A00240148FFF70DBD00BF9A +:109B8800A02A002438B5074D0022044608462A605A +:109B9800F7F778FA431C00D038BD2B68002BFBD0B0 +:109BA800236038BDE02A002410B50C46B1F90E1028 +:109BB80000F040F9002803DB236D0344236510BD42 +:109BC800A38923F48053A38110BD00BF2DE9F04180 +:109BD8000C46B1F90C101F46CB05054616460BD4AA +:109BE80021F48051A1813B46B4F90E103246284633 +:109BF800BDE8F04100F01EB8B4F90E1002230022AF +:109C080000F002F9B4F90C10EAE700BF10B50C46F1 +:109C1800B1F90E1000F0F8F8A389421C0EBF23F426 +:109C2800805343F480532065A38110BDB1F90E1011 +:109C380000F05CB838B50C46084D844611462046FD +:109C48001A4600232B606446F7F768F9431C00D0D6 +:109C580038BD2B68002BFBD0236038BDE02A0024D8 +:109C68002DE9F047DFF87CA00646DAF800009846B0 +:109C78000F469146FFF78EFC1B4B1B68D3F84841F3 +:109C880024B365681F2D26DC5EB96B1C0235DAF833 +:109C98000000636044F82570FFF77EFC0020BDE8F3 +:109CA800F08704EB85010123C1F88890D4F8882156 +:109CB800AB401A43022EC4F88821C1F80881E4D1C8 +:109CC800D4F88C211343C4F88C31DEE703F5A6746D +:109CD800C3F84841D5E7DAF80000FFF75DFC4FF01C +:109CE800FF30DCE728050024089F000838B5074D39 +:109CF8000022044608462A60F7F72AF9431C00D0D8 +:109D080038BD2B68002BFBD0236038BDE02A002427 +:109D180070B500294BD006460C4610B1836B002B5A +:109D280048D0636ED80734D5B4F90C30002B3ED038 +:109D380021463046FFF744F9E36A054633B1E16945 +:109D4800304698470028B8BF4FF0FF35A3891A0658 +:109D58003BD4216B41B104F14003994202D0304613 +:109D6800FFF7EAFA00232363616C21B13046FFF75D +:109D7800E3FA00236364FFF76DFA636E0022DB07E2 +:109D8800A28127D5A06DFFF703FCFFF769FA2846E3 +:109D980070BDA3899905CBD4A06DFFF7FBFBB4F97F +:109DA8000C30002BC4D1656E15F0010508D00025D4 +:109DB800284670BDFFF7C8F9636ED807B4D4E8E742 +:109DC800A06DFFF7E9FB284670BD21693046FFF713 +:109DD800B3FABEE7A06DFFF7DFFBD3E770B50C461B +:109DE800084D03460026204611461C462E60F7F70C +:109DF800DBF8431C00D070BD2B68002BFBD0236020 +:109E080070BD00BFE02A002438B50C46084D8446D2 +:109E1800114620461A4600232B606446F7F7A4F83B +:109E2800431C00D038BD2B68002BFBD0236038BD05 +:109E3800E02A002438B50C46084D844611462046D1 +:109E48001A4600232B606446F7F796F8431C00D0A7 +:109E580038BD2B68002BFBD0236038BDE02A0024D6 +:109E6800F8B500BFF8BC08BC9E467047F8B500BFFF +:089E7800F8BC08BC9E467047CF +:109E800000000000010203040102030406070809A0 +:109E9000000610160006101601000200040006005D +:109EA00008000A000C0010002000400080000001A3 +:109EB0000804020408010101010101030701000077 +:109EC00053544D3332205669727475616C20436F60 +:109ED0006D506F727400000053544D6963726F656A +:109EE0006C656374726F6E69637300004344432052 +:109EF000436F6E666967000043444320496E746592 +:0C9F00007266616365000000000100242F +:089F0C00F868FF7F010000006E +:089F1400A98F0008BD0200083E +:049F1C00990200089E +:109F20000090D0030090D00301000000100000005A +:109F3000037A00089F790008857800080000000077 +:109F4000AD76000809780008D1770008000000000D +:109F50000000000000000000897700084177000839 +:109F6000F9760008ED76000809024300020100C0FE +:109F7000320904000001020201000524001001055D +:109F800024010001042402020524060001070582C1 +:109F90000308001009040100020A0000000705017F +:109FA0000240000007058102400000000A0600028E +:109FB0000000004001000000FD870008D587000870 +:109FC000D9870008E1870008DD870008518800086C +:109FD0005D88000821890008FD880008E9880008DC +:109FE0003D89000861890008120100020202004058 +:109FF0008304405700020102030100000403090426 +:10A000001A03000000000000000000000000000033 +:10A01000000000000000000000000000000100241B +:10A0200000000000EC03002454040024BC040024BD +:10A030000000000000000000000000000000000020 +:10A040000000000000000000000000000000000010 +:10A050000000000000000000000000000000000000 +:10A0600000000000000000000000000000000000F0 +:10A0700000000000000000000000000000000000E0 +:10A0800000000000000000000000000000000000D0 +:10A0900000000000000000000000000000000000C0 +:10A0A00000000000000000000000000000000000B0 +:10A0B00000000000000000000000000000000000A0 +:10A0C000000000000000000001000000000000008F +:10A0D0000E33CDAB34126DE6ECDE05000B00000054 +:10A0E0000000000000000000000000000000000070 +:10A0F0000000000000000000000000000000000060 +:10A10000000000000000000000000000000000004F +:10A11000000000000000000000000000000000003F +:10A12000000000000000000000000000000000002F +:10A13000000000000000000000000000000000001F +:10A14000000000000000000000000000000000000F +:10A1500000000000000000000000000000000000FF +:10A1600000000000000000000000000000000000EF +:10A1700000000000000000000000000000000000DF +:10A1800000000000000000000000000000000000CF +:10A1900000000000000000000000000000000000BF +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C000000000000000000000000000000000008F +:10A1D000000000000000000000000000000000007F +:10A1E000000000000000000000000000000000006F +:10A1F000000000000000000000000000000000005F +:10A20000000000000000000000000000000000004E +:10A21000000000000000000000000000000000003E +:10A22000000000000000000000000000000000002E +:10A23000000000000000000000000000000000001E +:10A24000000000000000000000000000000000000E +:10A2500000000000000000000000000000000000FE +:10A2600000000000000000000000000000000000EE +:10A2700000000000000000000000000000000000DE +:10A2800000000000000000000000000000000000CE +:10A2900000000000000000000000000000000000BE +:10A2A00000000000000000000000000000000000AE +:10A2B000000000000000000000000000000000009E +:10A2C000000000000000000000000000000000008E +:10A2D000000000000000000000000000000000007E +:10A2E000000000000000000000000000000000006E +:10A2F000000000000000000000000000000000005E +:10A30000000000000000000000000000000000004D +:10A31000000000000000000000000000000000003D +:10A32000000000000000000000000000000000002D +:10A33000000000000000000000000000000000001D +:10A34000000000000000000000000000000000000D +:10A3500000000000000000000000000000000000FD +:10A3600000000000000000000000000000000000ED +:10A3700000000000000000000000000000000000DD +:10A3800000000000000000000000000000000000CD +:10A3900000000000000000000000000000000000BD +:10A3A00000000000000000000000000000000000AD +:10A3B000000000000000000000000000000000009D +:10A3C000000000000000000000000000000000008D +:10A3D000000000000000000000000000000000007D +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A4400000000000000000009C2A00240000000022 +:10A45000000000002C0500242C05002434050024F5 +:10A46000340500243C0500243C0500244405002458 +:10A47000440500244C0500244C0500245405002408 +:10A48000540500245C0500245C05002464050024B8 +:10A49000640500246C0500246C0500247405002468 +:10A4A000740500247C0500247C0500248405002418 +:10A4B000840500248C0500248C05002494050024C8 +:10A4C000940500249C0500249C050024A405002478 +:10A4D000A4050024AC050024AC050024B405002428 +:10A4E000B4050024BC050024BC050024C4050024D8 +:10A4F000C4050024CC050024CC050024D405002488 +:10A50000D4050024DC050024DC050024E405002437 +:10A51000E4050024EC050024EC050024F4050024E7 +:10A52000F4050024FC050024FC0500240406002496 +:10A53000040600240C0600240C0600241406002443 +:10A54000140600241C0600241C06002424060024F3 +:10A55000240600242C0600242C06002434060024A3 +:10A56000340600243C0600243C0600244406002453 +:10A57000440600244C0600244C0600245406002403 +:10A58000540600245C0600245C06002464060024B3 +:10A59000640600246C0600246C0600247406002463 +:10A5A000740600247C0600247C0600248406002413 +:10A5B000840600248C0600248C06002494060024C3 +:10A5C000940600249C0600249C060024A406002473 +:10A5D000A4060024AC060024AC060024B406002423 +:10A5E000B4060024BC060024BC060024C4060024D3 +:10A5F000C4060024CC060024CC060024D406002483 +:10A60000D4060024DC060024DC060024E406002432 +:10A61000E4060024EC060024EC060024F4060024E2 +:10A62000F4060024FC060024FC0600240407002491 +:10A63000040700240C0700240C070024140700243E +:10A64000140700241C0700241C07002424070024EE +:10A65000240700242C0700242C070024340700249E +:10A66000340700243C0700243C070024440700244E +:10A67000440700244C0700244C07002454070024FE +:10A68000540700245C0700245C07002464070024AE +:10A69000640700246C0700246C070024740700245E +:10A6A000740700247C0700247C070024840700240E +:10A6B000840700248C0700248C07002494070024BE +:10A6C000940700249C0700249C070024A40700246E +:10A6D000A4070024AC070024AC070024B40700241E +:10A6E000B4070024BC070024BC070024C4070024CE +:10A6F000C4070024CC070024CC070024D40700247E +:10A70000D4070024DC070024DC070024E40700242D +:10A71000E4070024EC070024EC070024F4070024DD +:10A72000F4070024FC070024FC070024040800248C +:10A73000040800240C0800240C0800241408002439 +:10A74000140800241C0800241C08002424080024E9 +:10A75000240800242C0800242C0800243408002499 +:10A76000340800243C0800243C0800244408002449 +:10A77000440800244C0800244C08002454080024F9 +:10A78000540800245C0800245C08002464080024A9 +:10A79000640800246C0800246C0800247408002459 +:10A7A000740800247C0800247C0800248408002409 +:10A7B000840800248C0800248C08002494080024B9 +:10A7C000940800249C0800249C080024A408002469 +:10A7D000A4080024AC080024AC080024B408002419 +:10A7E000B4080024BC080024BC080024C4080024C9 +:10A7F000C4080024CC080024CC080024D408002479 +:10A80000D4080024DC080024DC080024E408002428 +:10A81000E4080024EC080024EC080024F4080024D8 +:10A82000F4080024FC080024FC0800240409002487 +:10A83000040900240C0900240C0900241409002434 +:10A84000140900241C0900241C09002424090024E4 +:0CA8500024090024FFFFFFFF00000200AD +:04000005080013CD0F :00000001FF diff --git a/cmake-build-debug/Encoder_Time_Sysn.map b/cmake-build-debug/Encoder_Time_Sysn.map index 79b6b93..a4e9b2c 100644 --- a/cmake-build-debug/Encoder_Time_Sysn.map +++ b/cmake-build-debug/Encoder_Time_Sysn.map @@ -156,7 +156,6 @@ Discarded input sections .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj .text.HAL_UART_MspDeInit 0x00000000 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .data.data 0x00000000 0x1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj .text 0x00000000 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj @@ -175,8 +174,6 @@ Discarded input sections 0x00000000 0x2c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj .text.HAL_GetTickFreq 0x00000000 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .text.HAL_Delay - 0x00000000 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj .text.HAL_SuspendTick 0x00000000 0xe CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj .text.HAL_ResumeTick @@ -281,10 +278,14 @@ Discarded input sections .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .text.DMA_SetConfig + 0x00000000 0x1b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.HAL_DMA_DeInit 0x00000000 0x1d4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.HAL_DMA_Start 0x00000000 0x148 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .text.HAL_DMA_Start_IT + 0x00000000 0x298 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.HAL_DMA_PollForTransfer 0x00000000 0x450 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.HAL_DMA_RegisterCallback @@ -785,6 +786,66 @@ Discarded input sections .debug_frame 0x00000000 0x264 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj .ARM.attributes 0x00000000 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_MspInit + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_MspDeInit + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DeInit + 0x00000000 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_Stop + 0x00000000 0x4c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DataOutStageCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DataInStageCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_SetupStageCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_SOFCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ResetCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_SuspendCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ResumeCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ISOOUTIncompleteCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ISOINIncompleteCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ConnectCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DisconnectCallback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DevConnect + 0x00000000 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DevDisconnect + 0x00000000 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_EP_Flush + 0x00000000 0x36 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_ActivateRemoteWakeup + 0x00000000 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_DeActivateRemoteWakeup + 0x00000000 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_GetState + 0x00000000 0x6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_SetTestMode + 0x00000000 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .text.HAL_PCDEx_DeActivateLPM + 0x00000000 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .text.HAL_PCDEx_ActivateBCD + 0x00000000 0x2c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .text.HAL_PCDEx_DeActivateBCD + 0x00000000 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .text.HAL_PCDEx_BCD_Callback + 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .text.HAL_PCDEx_BCD_VBUSDetect + 0x00000000 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj @@ -889,8 +950,6 @@ Discarded input sections 0x00000000 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .text.HAL_PWREx_DisableUSBReg 0x00000000 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .text.HAL_PWREx_EnableUSBVoltageDetector - 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .text.HAL_PWREx_DisableUSBVoltageDetector 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .text.HAL_PWREx_EnableBatteryCharging @@ -1296,6 +1355,8 @@ Discarded input sections .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.UART_EndTxTransfer + 0x00000000 0x32 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.UART_TxISR_8BIT 0x00000000 0x56 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.UART_TxISR_16BIT @@ -1312,6 +1373,8 @@ Discarded input sections 0x00000000 0x44 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_Transmit_IT 0x00000000 0xa8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.HAL_UART_Transmit_DMA + 0x00000000 0x9c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_DMAPause 0x00000000 0x8a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_DMAResume @@ -1324,12 +1387,18 @@ Discarded input sections 0x00000000 0x98 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_AbortReceive 0x00000000 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .text.HAL_UART_TxCpltCallback + .text.UART_DMATransmitCplt + 0x00000000 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.HAL_UART_TxHalfCpltCallback 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.UART_DMATxHalfCplt + 0x00000000 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_RxCpltCallback 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_RxHalfCpltCallback 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.UART_DMAError + 0x00000000 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_AbortCpltCallback 0x00000000 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_Abort_IT @@ -1423,6 +1492,89 @@ Discarded input sections 0x00000000 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj .text.HAL_UARTEx_GetRxEventType 0x00000000 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_ActivateDedicatedEndpoint + 0x00000000 0x9c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_DeactivateDedicatedEndpoint + 0x00000000 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_StopDevice + 0x00000000 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_ReadChInterrupts + 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_ClearInterrupts + 0x00000000 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_HostInit + 0x00000000 0xd8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_InitFSLSPClkSel + 0x00000000 0x42 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_ResetPort + 0x00000000 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_DriveVbus + 0x00000000 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_GetHostSpeed + 0x00000000 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_GetCurrentFrame + 0x00000000 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_HC_Init + 0x00000000 0x12a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_HC_ReadInterrupt + 0x00000000 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_HC_Halt + 0x00000000 0xfc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_DoPing + 0x00000000 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_HC_StartXfer + 0x00000000 0x2a4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_StopHost + 0x00000000 0x92 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_ActivateRemoteWakeup + 0x00000000 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text.USB_DeActivateRemoteWakeup + 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .text.USBD_DeInit + 0x00000000 0x32 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .text.USBD_Stop + 0x00000000 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .text.USBD_RunTestMode + 0x00000000 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .text.USBD_GetRxCount + 0x00000000 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .text 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .data 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .bss 0x00000000 0x0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .text.HAL_PCD_MspDeInit + 0x00000000 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .text.USBD_LL_Delay + 0x00000000 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .text.USBD_LL_DeInit + 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .text.USBD_LL_Stop + 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .text.USBD_LL_FlushEP + 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj .text 0x00000000 0x168 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_mulsf3.o) .data 0x00000000 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_mulsf3.o) .bss 0x00000000 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_mulsf3.o) @@ -1642,6 +1794,8 @@ LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32 LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj @@ -1650,6 +1804,15 @@ LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32 LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj +LOAD CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj START GROUP LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a @@ -1668,7 +1831,7 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none 0x08000000 g_pfnVectors 0x08000298 . = ALIGN (0x4) -.text 0x08000298 0x721c +.text 0x08000298 0x9be8 0x08000298 . = ALIGN (0x4) *(.text) .text 0x08000298 0x40 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o @@ -1706,652 +1869,1079 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none 0x08000ad8 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj 0x08000ad8 MX_DMA_Init .text.MX_GPIO_Init - 0x08000b10 0x80 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + 0x08000b10 0xc4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj 0x08000b10 MX_GPIO_Init .text.HAL_GPIO_EXTI_Callback - 0x08000b90 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - 0x08000b90 HAL_GPIO_EXTI_Callback + 0x08000bd4 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + 0x08000bd4 HAL_GPIO_EXTI_Callback .text.MPU_Config - 0x08000bc0 0x56 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - *fill* 0x08000c16 0x2 + 0x08000c04 0x56 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + *fill* 0x08000c5a 0x2 .text.data_shift - 0x08000c18 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x08000c18 data_shift + 0x08000c5c 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x08000c5c data_shift .text.Error_Handler - 0x08000c60 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x08000c60 Error_Handler + 0x08000cc4 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x08000cc4 Error_Handler .text.SystemClock_Config - 0x08000c64 0x110 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x08000c64 SystemClock_Config - .text.main 0x08000d74 0xfc CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x08000d74 main + 0x08000cc8 0x114 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x08000cc8 SystemClock_Config + .text.main 0x08000ddc 0x128 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x08000ddc main .text.RetargetInit - 0x08000e70 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000e70 RetargetInit - .text._write 0x08000e90 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000e90 _write - .text._close 0x08000ec4 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000ec4 _close - .text._lseek 0x08000edc 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000edc _lseek - .text._read 0x08000eec 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000eec _read - .text._fstat 0x08000f1c 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x08000f1c _fstat - *fill* 0x08000f36 0x2 + 0x08000f04 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000f04 RetargetInit + .text._write 0x08000f24 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000f24 _write + .text._close 0x08000f58 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000f58 _close + .text._lseek 0x08000f70 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000f70 _lseek + .text._read 0x08000f80 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000f80 _read + .text._fstat 0x08000fb0 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x08000fb0 _fstat + *fill* 0x08000fca 0x2 .text.HAL_MspInit - 0x08000f38 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - 0x08000f38 HAL_MspInit + 0x08000fcc 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + 0x08000fcc HAL_MspInit .text.NMI_Handler - 0x08000f5c 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f5c NMI_Handler + 0x08000ff0 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ff0 NMI_Handler .text.HardFault_Handler - 0x08000f5e 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f5e HardFault_Handler + 0x08000ff2 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ff2 HardFault_Handler .text.MemManage_Handler - 0x08000f60 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f60 MemManage_Handler + 0x08000ff4 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ff4 MemManage_Handler .text.BusFault_Handler - 0x08000f62 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f62 BusFault_Handler + 0x08000ff6 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ff6 BusFault_Handler .text.UsageFault_Handler - 0x08000f64 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f64 UsageFault_Handler + 0x08000ff8 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ff8 UsageFault_Handler .text.SVC_Handler - 0x08000f66 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f66 SVC_Handler + 0x08000ffa 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ffa SVC_Handler .text.DebugMon_Handler - 0x08000f68 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f68 DebugMon_Handler + 0x08000ffc 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ffc DebugMon_Handler .text.PendSV_Handler - 0x08000f6a 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f6a PendSV_Handler + 0x08000ffe 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08000ffe PendSV_Handler .text.SysTick_Handler - 0x08000f6c 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f6c SysTick_Handler - .text.EXTI2_IRQHandler - 0x08000f74 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f74 EXTI2_IRQHandler - *fill* 0x08000f7e 0x2 + 0x08001000 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08001000 SysTick_Handler + .text.EXTI1_IRQHandler + 0x08001008 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08001008 EXTI1_IRQHandler + *fill* 0x08001012 0x2 .text.EXTI4_IRQHandler - 0x08000f80 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f80 EXTI4_IRQHandler + 0x08001014 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x08001014 EXTI4_IRQHandler .text.DMA1_Stream0_IRQHandler - 0x08000f98 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000f98 DMA1_Stream0_IRQHandler + 0x0800102c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800102c DMA1_Stream0_IRQHandler .text.TIM2_IRQHandler - 0x08000fa8 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000fa8 TIM2_IRQHandler + 0x0800103c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800103c TIM2_IRQHandler .text.USART1_IRQHandler - 0x08000fb8 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0x08000fb8 USART1_IRQHandler - .text._sbrk 0x08000fc8 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - 0x08000fc8 _sbrk + 0x0800104c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800104c USART1_IRQHandler + .text.OTG_HS_EP1_OUT_IRQHandler + 0x0800105c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800105c OTG_HS_EP1_OUT_IRQHandler + .text.OTG_HS_EP1_IN_IRQHandler + 0x0800106c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800106c OTG_HS_EP1_IN_IRQHandler + .text.OTG_HS_IRQHandler + 0x0800107c 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x0800107c OTG_HS_IRQHandler + .text._sbrk 0x0800108c 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + 0x0800108c _sbrk .text.SystemInit - 0x08001010 0xbc CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - 0x08001010 SystemInit + 0x080010d4 0xbc CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + 0x080010d4 SystemInit .text.MX_TIM2_Init - 0x080010cc 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - 0x080010cc MX_TIM2_Init + 0x08001190 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + 0x08001190 MX_TIM2_Init .text.HAL_TIM_Encoder_MspInit - 0x08001130 0x80 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - 0x08001130 HAL_TIM_Encoder_MspInit + 0x080011f4 0x80 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + 0x080011f4 HAL_TIM_Encoder_MspInit .text.MX_USART1_UART_Init - 0x080011b0 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x080011b0 MX_USART1_UART_Init + 0x08001274 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x08001274 MX_USART1_UART_Init .text.HAL_UART_MspInit - 0x08001218 0xf0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x08001218 HAL_UART_MspInit - .text.HAL_UART_TxCpltCallback - 0x08001308 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x08001308 HAL_UART_TxCpltCallback + 0x080012dc 0xf0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x080012dc HAL_UART_MspInit .text.Reset_Handler - 0x08001328 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - 0x08001328 Reset_Handler + 0x080013cc 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + 0x080013cc Reset_Handler .text.Default_Handler - 0x08001378 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - 0x08001378 RTC_Alarm_IRQHandler - 0x08001378 HASH_RNG_IRQHandler - 0x08001378 TIM8_CC_IRQHandler - 0x08001378 HRTIM1_Master_IRQHandler - 0x08001378 UART8_IRQHandler - 0x08001378 SPI4_IRQHandler - 0x08001378 TIM1_CC_IRQHandler - 0x08001378 BDMA_Channel6_IRQHandler - 0x08001378 DMA2_Stream5_IRQHandler - 0x08001378 HRTIM1_FLT_IRQHandler - 0x08001378 JPEG_IRQHandler - 0x08001378 DMA1_Stream5_IRQHandler - 0x08001378 BDMA_Channel1_IRQHandler - 0x08001378 HRTIM1_TIMD_IRQHandler - 0x08001378 TAMP_STAMP_IRQHandler - 0x08001378 EXTI3_IRQHandler - 0x08001378 LPTIM4_IRQHandler - 0x08001378 TIM8_TRG_COM_TIM14_IRQHandler - 0x08001378 LPTIM2_IRQHandler - 0x08001378 DFSDM1_FLT1_IRQHandler - 0x08001378 DMAMUX2_OVR_IRQHandler - 0x08001378 TIM8_UP_TIM13_IRQHandler - 0x08001378 I2C3_ER_IRQHandler - 0x08001378 DFSDM1_FLT2_IRQHandler - 0x08001378 MDMA_IRQHandler - 0x08001378 LPTIM3_IRQHandler - 0x08001378 HSEM1_IRQHandler - 0x08001378 EXTI0_IRQHandler - 0x08001378 I2C2_EV_IRQHandler - 0x08001378 DMA1_Stream2_IRQHandler - 0x08001378 FPU_IRQHandler - 0x08001378 OTG_HS_WKUP_IRQHandler - 0x08001378 FDCAN1_IT1_IRQHandler - 0x08001378 LTDC_ER_IRQHandler - 0x08001378 DMA2_Stream2_IRQHandler - 0x08001378 HRTIM1_TIME_IRQHandler - 0x08001378 SPI1_IRQHandler - 0x08001378 TIM6_DAC_IRQHandler - 0x08001378 DCMI_IRQHandler - 0x08001378 HRTIM1_TIMC_IRQHandler - 0x08001378 DMA2_Stream3_IRQHandler - 0x08001378 SAI2_IRQHandler - 0x08001378 DFSDM1_FLT3_IRQHandler - 0x08001378 USART6_IRQHandler - 0x08001378 TIM17_IRQHandler - 0x08001378 USART3_IRQHandler - 0x08001378 BDMA_Channel7_IRQHandler - 0x08001378 CRYP_IRQHandler - 0x08001378 LPTIM5_IRQHandler - 0x08001378 UART5_IRQHandler - 0x08001378 ADC3_IRQHandler - 0x08001378 DMA2_Stream0_IRQHandler - 0x08001378 TIM4_IRQHandler - 0x08001378 BDMA_Channel2_IRQHandler - 0x08001378 QUADSPI_IRQHandler - 0x08001378 I2C1_EV_IRQHandler - 0x08001378 DMA1_Stream6_IRQHandler - 0x08001378 DMAMUX1_OVR_IRQHandler - 0x08001378 DMA1_Stream1_IRQHandler - 0x08001378 TIM16_IRQHandler - 0x08001378 UART4_IRQHandler - 0x08001378 BDMA_Channel5_IRQHandler - 0x08001378 TIM3_IRQHandler - 0x08001378 RCC_IRQHandler - 0x08001378 TIM8_BRK_TIM12_IRQHandler - 0x08001378 TIM1_TRG_COM_IRQHandler - 0x08001378 Default_Handler - 0x08001378 ECC_IRQHandler - 0x08001378 CEC_IRQHandler - 0x08001378 EXTI15_10_IRQHandler - 0x08001378 BDMA_Channel0_IRQHandler - 0x08001378 ADC_IRQHandler - 0x08001378 DMA1_Stream7_IRQHandler - 0x08001378 HRTIM1_TIMA_IRQHandler - 0x08001378 SPI5_IRQHandler - 0x08001378 TIM7_IRQHandler - 0x08001378 SDMMC1_IRQHandler - 0x08001378 TIM5_IRQHandler - 0x08001378 DMA2_Stream7_IRQHandler - 0x08001378 TIM15_IRQHandler - 0x08001378 PVD_AVD_IRQHandler - 0x08001378 I2C3_EV_IRQHandler - 0x08001378 EXTI9_5_IRQHandler - 0x08001378 RTC_WKUP_IRQHandler - 0x08001378 LTDC_IRQHandler - 0x08001378 SAI3_IRQHandler - 0x08001378 ETH_WKUP_IRQHandler - 0x08001378 SPDIF_RX_IRQHandler - 0x08001378 SPI2_IRQHandler - 0x08001378 OTG_HS_EP1_IN_IRQHandler - 0x08001378 CRS_IRQHandler - 0x08001378 HRTIM1_TIMB_IRQHandler - 0x08001378 FDCAN2_IT1_IRQHandler - 0x08001378 ETH_IRQHandler - 0x08001378 TIM1_UP_IRQHandler - 0x08001378 BDMA_Channel4_IRQHandler - 0x08001378 OTG_HS_EP1_OUT_IRQHandler - 0x08001378 WWDG_IRQHandler - 0x08001378 SPI6_IRQHandler - 0x08001378 MDIOS_IRQHandler - 0x08001378 I2C4_EV_IRQHandler - 0x08001378 FDCAN2_IT0_IRQHandler - 0x08001378 LPUART1_IRQHandler - 0x08001378 FDCAN1_IT0_IRQHandler - 0x08001378 OTG_FS_WKUP_IRQHandler - 0x08001378 OTG_HS_IRQHandler - 0x08001378 DMA2D_IRQHandler - 0x08001378 TIM1_BRK_IRQHandler - 0x08001378 EXTI1_IRQHandler - 0x08001378 SDMMC2_IRQHandler - 0x08001378 OTG_FS_EP1_OUT_IRQHandler - 0x08001378 BDMA_Channel3_IRQHandler - 0x08001378 UART7_IRQHandler - 0x08001378 MDIOS_WKUP_IRQHandler - 0x08001378 USART2_IRQHandler - 0x08001378 DFSDM1_FLT0_IRQHandler - 0x08001378 SAI4_IRQHandler - 0x08001378 I2C2_ER_IRQHandler - 0x08001378 DMA2_Stream1_IRQHandler - 0x08001378 FLASH_IRQHandler - 0x08001378 DMA2_Stream4_IRQHandler - 0x08001378 OTG_FS_IRQHandler - 0x08001378 SPI3_IRQHandler - 0x08001378 WAKEUP_PIN_IRQHandler - 0x08001378 DMA1_Stream4_IRQHandler - 0x08001378 OTG_FS_EP1_IN_IRQHandler - 0x08001378 I2C1_ER_IRQHandler - 0x08001378 FMC_IRQHandler - 0x08001378 FDCAN_CAL_IRQHandler - 0x08001378 SWPMI1_IRQHandler - 0x08001378 COMP1_IRQHandler - 0x08001378 LPTIM1_IRQHandler - 0x08001378 I2C4_ER_IRQHandler - 0x08001378 DMA2_Stream6_IRQHandler - 0x08001378 SAI1_IRQHandler - 0x08001378 DMA1_Stream3_IRQHandler - *fill* 0x0800137a 0x2 + 0x0800141c 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + 0x0800141c RTC_Alarm_IRQHandler + 0x0800141c HASH_RNG_IRQHandler + 0x0800141c EXTI2_IRQHandler + 0x0800141c TIM8_CC_IRQHandler + 0x0800141c HRTIM1_Master_IRQHandler + 0x0800141c UART8_IRQHandler + 0x0800141c SPI4_IRQHandler + 0x0800141c TIM1_CC_IRQHandler + 0x0800141c BDMA_Channel6_IRQHandler + 0x0800141c DMA2_Stream5_IRQHandler + 0x0800141c HRTIM1_FLT_IRQHandler + 0x0800141c JPEG_IRQHandler + 0x0800141c DMA1_Stream5_IRQHandler + 0x0800141c BDMA_Channel1_IRQHandler + 0x0800141c HRTIM1_TIMD_IRQHandler + 0x0800141c TAMP_STAMP_IRQHandler + 0x0800141c EXTI3_IRQHandler + 0x0800141c LPTIM4_IRQHandler + 0x0800141c TIM8_TRG_COM_TIM14_IRQHandler + 0x0800141c LPTIM2_IRQHandler + 0x0800141c DFSDM1_FLT1_IRQHandler + 0x0800141c DMAMUX2_OVR_IRQHandler + 0x0800141c TIM8_UP_TIM13_IRQHandler + 0x0800141c I2C3_ER_IRQHandler + 0x0800141c DFSDM1_FLT2_IRQHandler + 0x0800141c MDMA_IRQHandler + 0x0800141c LPTIM3_IRQHandler + 0x0800141c HSEM1_IRQHandler + 0x0800141c EXTI0_IRQHandler + 0x0800141c I2C2_EV_IRQHandler + 0x0800141c DMA1_Stream2_IRQHandler + 0x0800141c FPU_IRQHandler + 0x0800141c OTG_HS_WKUP_IRQHandler + 0x0800141c FDCAN1_IT1_IRQHandler + 0x0800141c LTDC_ER_IRQHandler + 0x0800141c DMA2_Stream2_IRQHandler + 0x0800141c HRTIM1_TIME_IRQHandler + 0x0800141c SPI1_IRQHandler + 0x0800141c TIM6_DAC_IRQHandler + 0x0800141c DCMI_IRQHandler + 0x0800141c HRTIM1_TIMC_IRQHandler + 0x0800141c DMA2_Stream3_IRQHandler + 0x0800141c SAI2_IRQHandler + 0x0800141c DFSDM1_FLT3_IRQHandler + 0x0800141c USART6_IRQHandler + 0x0800141c TIM17_IRQHandler + 0x0800141c USART3_IRQHandler + 0x0800141c BDMA_Channel7_IRQHandler + 0x0800141c CRYP_IRQHandler + 0x0800141c LPTIM5_IRQHandler + 0x0800141c UART5_IRQHandler + 0x0800141c ADC3_IRQHandler + 0x0800141c DMA2_Stream0_IRQHandler + 0x0800141c TIM4_IRQHandler + 0x0800141c BDMA_Channel2_IRQHandler + 0x0800141c QUADSPI_IRQHandler + 0x0800141c I2C1_EV_IRQHandler + 0x0800141c DMA1_Stream6_IRQHandler + 0x0800141c DMAMUX1_OVR_IRQHandler + 0x0800141c DMA1_Stream1_IRQHandler + 0x0800141c TIM16_IRQHandler + 0x0800141c UART4_IRQHandler + 0x0800141c BDMA_Channel5_IRQHandler + 0x0800141c TIM3_IRQHandler + 0x0800141c RCC_IRQHandler + 0x0800141c TIM8_BRK_TIM12_IRQHandler + 0x0800141c TIM1_TRG_COM_IRQHandler + 0x0800141c Default_Handler + 0x0800141c ECC_IRQHandler + 0x0800141c CEC_IRQHandler + 0x0800141c EXTI15_10_IRQHandler + 0x0800141c BDMA_Channel0_IRQHandler + 0x0800141c ADC_IRQHandler + 0x0800141c DMA1_Stream7_IRQHandler + 0x0800141c HRTIM1_TIMA_IRQHandler + 0x0800141c SPI5_IRQHandler + 0x0800141c TIM7_IRQHandler + 0x0800141c SDMMC1_IRQHandler + 0x0800141c TIM5_IRQHandler + 0x0800141c DMA2_Stream7_IRQHandler + 0x0800141c TIM15_IRQHandler + 0x0800141c PVD_AVD_IRQHandler + 0x0800141c I2C3_EV_IRQHandler + 0x0800141c EXTI9_5_IRQHandler + 0x0800141c RTC_WKUP_IRQHandler + 0x0800141c LTDC_IRQHandler + 0x0800141c SAI3_IRQHandler + 0x0800141c ETH_WKUP_IRQHandler + 0x0800141c SPDIF_RX_IRQHandler + 0x0800141c SPI2_IRQHandler + 0x0800141c CRS_IRQHandler + 0x0800141c HRTIM1_TIMB_IRQHandler + 0x0800141c FDCAN2_IT1_IRQHandler + 0x0800141c ETH_IRQHandler + 0x0800141c TIM1_UP_IRQHandler + 0x0800141c BDMA_Channel4_IRQHandler + 0x0800141c WWDG_IRQHandler + 0x0800141c SPI6_IRQHandler + 0x0800141c MDIOS_IRQHandler + 0x0800141c I2C4_EV_IRQHandler + 0x0800141c FDCAN2_IT0_IRQHandler + 0x0800141c LPUART1_IRQHandler + 0x0800141c FDCAN1_IT0_IRQHandler + 0x0800141c OTG_FS_WKUP_IRQHandler + 0x0800141c DMA2D_IRQHandler + 0x0800141c TIM1_BRK_IRQHandler + 0x0800141c SDMMC2_IRQHandler + 0x0800141c OTG_FS_EP1_OUT_IRQHandler + 0x0800141c BDMA_Channel3_IRQHandler + 0x0800141c UART7_IRQHandler + 0x0800141c MDIOS_WKUP_IRQHandler + 0x0800141c USART2_IRQHandler + 0x0800141c DFSDM1_FLT0_IRQHandler + 0x0800141c SAI4_IRQHandler + 0x0800141c I2C2_ER_IRQHandler + 0x0800141c DMA2_Stream1_IRQHandler + 0x0800141c FLASH_IRQHandler + 0x0800141c DMA2_Stream4_IRQHandler + 0x0800141c OTG_FS_IRQHandler + 0x0800141c SPI3_IRQHandler + 0x0800141c WAKEUP_PIN_IRQHandler + 0x0800141c DMA1_Stream4_IRQHandler + 0x0800141c OTG_FS_EP1_IN_IRQHandler + 0x0800141c I2C1_ER_IRQHandler + 0x0800141c FMC_IRQHandler + 0x0800141c FDCAN_CAL_IRQHandler + 0x0800141c SWPMI1_IRQHandler + 0x0800141c COMP1_IRQHandler + 0x0800141c LPTIM1_IRQHandler + 0x0800141c I2C4_ER_IRQHandler + 0x0800141c DMA2_Stream6_IRQHandler + 0x0800141c SAI1_IRQHandler + 0x0800141c DMA1_Stream3_IRQHandler + *fill* 0x0800141e 0x2 .text.HAL_InitTick - 0x0800137c 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x0800137c HAL_InitTick + 0x08001420 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x08001420 HAL_InitTick .text.HAL_Init - 0x080013cc 0x5c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x080013cc HAL_Init + 0x08001470 0x5c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x08001470 HAL_Init .text.HAL_IncTick - 0x08001428 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x08001428 HAL_IncTick + 0x080014cc 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x080014cc HAL_IncTick .text.HAL_GetTick - 0x08001440 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x08001440 HAL_GetTick + 0x080014e4 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x080014e4 HAL_GetTick + .text.HAL_Delay + 0x080014f0 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x080014f0 HAL_Delay .text.HAL_GetREVID - 0x0800144c 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x0800144c HAL_GetREVID + 0x08001518 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x08001518 HAL_GetREVID .text.HAL_NVIC_SetPriorityGrouping - 0x08001458 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x08001458 HAL_NVIC_SetPriorityGrouping + 0x08001524 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x08001524 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x0800147c 0x6c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x0800147c HAL_NVIC_SetPriority + 0x08001548 0x6c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x08001548 HAL_NVIC_SetPriority .text.HAL_NVIC_EnableIRQ - 0x080014e8 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x080014e8 HAL_NVIC_EnableIRQ + 0x080015b4 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x080015b4 HAL_NVIC_EnableIRQ .text.HAL_NVIC_DisableIRQ - 0x08001504 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x08001504 HAL_NVIC_DisableIRQ + 0x080015d0 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x080015d0 HAL_NVIC_DisableIRQ .text.HAL_SYSTICK_Config - 0x08001528 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x08001528 HAL_SYSTICK_Config + 0x080015f4 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x080015f4 HAL_SYSTICK_Config .text.HAL_MPU_Disable - 0x08001550 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x08001550 HAL_MPU_Disable + 0x0800161c 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x0800161c HAL_MPU_Disable .text.HAL_MPU_Enable - 0x0800156c 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x0800156c HAL_MPU_Enable + 0x08001638 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x08001638 HAL_MPU_Enable .text.HAL_MPU_ConfigRegion - 0x0800158c 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - 0x0800158c HAL_MPU_ConfigRegion - .text.DMA_SetConfig - 0x080015e4 0x1b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08001658 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x08001658 HAL_MPU_ConfigRegion .text.DMA_CalcBaseAndBitshift - 0x08001798 0xb4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x080016b0 0xb4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.DMA_CheckFifoParam - 0x0800184c 0x92 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - *fill* 0x080018de 0x2 + 0x08001764 0x92 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + *fill* 0x080017f6 0x2 .text.DMA_CalcDMAMUXChannelBaseAndMask - 0x080018e0 0xb0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x080017f8 0xb0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.DMA_CalcDMAMUXRequestGenBaseAndMask - 0x08001990 0x7c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x080018a8 0x7c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .text.HAL_DMA_Init - 0x08001a0c 0x3a4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - 0x08001a0c HAL_DMA_Init - .text.HAL_DMA_Start_IT - 0x08001db0 0x298 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - 0x08001db0 HAL_DMA_Start_IT + 0x08001924 0x3a4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08001924 HAL_DMA_Init .text.HAL_DMA_Abort - 0x08002048 0x340 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - 0x08002048 HAL_DMA_Abort + 0x08001cc8 0x340 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08001cc8 HAL_DMA_Abort .text.HAL_DMA_Abort_IT - 0x08002388 0x270 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - 0x08002388 HAL_DMA_Abort_IT + 0x08002008 0x270 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08002008 HAL_DMA_Abort_IT .text.HAL_DMA_IRQHandler - 0x080025f8 0x738 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - 0x080025f8 HAL_DMA_IRQHandler + 0x08002278 0x738 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08002278 HAL_DMA_IRQHandler .text.HAL_GPIO_Init - 0x08002d30 0x228 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - 0x08002d30 HAL_GPIO_Init + 0x080029b0 0x228 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + 0x080029b0 HAL_GPIO_Init .text.HAL_GPIO_EXTI_IRQHandler - 0x08002f58 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - 0x08002f58 HAL_GPIO_EXTI_IRQHandler - *fill* 0x08002f76 0x2 + 0x08002bd8 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + 0x08002bd8 HAL_GPIO_EXTI_IRQHandler + .text.PCD_WriteEmptyTxFifo + 0x08002bf6 0xd0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_Init + 0x08002cc6 0x102 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08002cc6 HAL_PCD_Init + .text.HAL_PCD_Start + 0x08002dc8 0x44 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08002dc8 HAL_PCD_Start + .text.PCD_EP_OutXfrComplete_int + 0x08002e0c 0x104 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.PCD_EP_OutSetupPacket_int + 0x08002f10 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .text.HAL_PCD_SetAddress + 0x08002f60 0x26 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08002f60 HAL_PCD_SetAddress + .text.HAL_PCD_EP_Open + 0x08002f86 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08002f86 HAL_PCD_EP_Open + .text.HAL_PCD_EP_Close + 0x0800300e 0x70 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x0800300e HAL_PCD_EP_Close + .text.HAL_PCD_EP_Receive + 0x0800307e 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x0800307e HAL_PCD_EP_Receive + .text.HAL_PCD_EP_GetRxCount + 0x080030c8 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x080030c8 HAL_PCD_EP_GetRxCount + .text.HAL_PCD_EP_Transmit + 0x080030da 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x080030da HAL_PCD_EP_Transmit + .text.HAL_PCD_EP_SetStall + 0x08003124 0x86 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08003124 HAL_PCD_EP_SetStall + .text.HAL_PCD_EP_ClrStall + 0x080031aa 0x74 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x080031aa HAL_PCD_EP_ClrStall + .text.HAL_PCD_EP_Abort + 0x0800321e 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x0800321e HAL_PCD_EP_Abort + .text.HAL_PCD_IRQHandler + 0x08003252 0x5fe CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0x08003252 HAL_PCD_IRQHandler + .text.HAL_PCDEx_SetTxFiFo + 0x08003850 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + 0x08003850 HAL_PCDEx_SetTxFiFo + .text.HAL_PCDEx_SetRxFiFo + 0x0800389a 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + 0x0800389a HAL_PCDEx_SetRxFiFo + *fill* 0x080038a2 0x2 + .text.HAL_PCDEx_ActivateLPM + 0x080038a4 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + 0x080038a4 HAL_PCDEx_ActivateLPM + .text.HAL_PCDEx_LPM_Callback + 0x080038cc 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + 0x080038cc HAL_PCDEx_LPM_Callback + *fill* 0x080038ce 0x2 .text.HAL_PWREx_ConfigSupply - 0x08002f78 0x54 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - 0x08002f78 HAL_PWREx_ConfigSupply + 0x080038d0 0x54 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + 0x080038d0 HAL_PWREx_ConfigSupply + .text.HAL_PWREx_EnableUSBVoltageDetector + 0x08003924 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + 0x08003924 HAL_PWREx_EnableUSBVoltageDetector .text.HAL_RCC_OscConfig - 0x08002fcc 0x6b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08002fcc HAL_RCC_OscConfig + 0x08003934 0x6b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x08003934 HAL_RCC_OscConfig .text.HAL_RCC_GetSysClockFreq - 0x08003680 0x218 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08003680 HAL_RCC_GetSysClockFreq + 0x08003fe8 0x218 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x08003fe8 HAL_RCC_GetSysClockFreq .text.HAL_RCC_ClockConfig - 0x08003898 0x294 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08003898 HAL_RCC_ClockConfig + 0x08004200 0x294 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x08004200 HAL_RCC_ClockConfig .text.HAL_RCC_GetHCLKFreq - 0x08003b2c 0x44 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08003b2c HAL_RCC_GetHCLKFreq + 0x08004494 0x44 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x08004494 HAL_RCC_GetHCLKFreq .text.HAL_RCC_GetPCLK1Freq - 0x08003b70 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08003b70 HAL_RCC_GetPCLK1Freq + 0x080044d8 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x080044d8 HAL_RCC_GetPCLK1Freq .text.HAL_RCC_GetPCLK2Freq - 0x08003b94 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - 0x08003b94 HAL_RCC_GetPCLK2Freq + 0x080044fc 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x080044fc HAL_RCC_GetPCLK2Freq .text.RCCEx_PLL2_Config - 0x08003bb8 0x10c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x08004520 0x10c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj .text.RCCEx_PLL3_Config - 0x08003cc4 0x10c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x0800462c 0x10c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj .text.HAL_RCCEx_PeriphCLKConfig - 0x08003dd0 0xa8c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - 0x08003dd0 HAL_RCCEx_PeriphCLKConfig + 0x08004738 0xa8c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x08004738 HAL_RCCEx_PeriphCLKConfig .text.HAL_RCCEx_GetD3PCLK1Freq - 0x0800485c 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - 0x0800485c HAL_RCCEx_GetD3PCLK1Freq + 0x080051c4 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x080051c4 HAL_RCCEx_GetD3PCLK1Freq .text.HAL_RCCEx_GetPLL2ClockFreq - 0x08004880 0x234 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - 0x08004880 HAL_RCCEx_GetPLL2ClockFreq + 0x080051e8 0x234 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x080051e8 HAL_RCCEx_GetPLL2ClockFreq .text.HAL_RCCEx_GetPLL3ClockFreq - 0x08004ab4 0x234 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - 0x08004ab4 HAL_RCCEx_GetPLL3ClockFreq + 0x0800541c 0x234 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x0800541c HAL_RCCEx_GetPLL3ClockFreq .text.HAL_TIM_PeriodElapsedCallback - 0x08004ce8 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004ce8 HAL_TIM_PeriodElapsedCallback + 0x08005650 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x08005650 HAL_TIM_PeriodElapsedCallback .text.HAL_TIM_OC_DelayElapsedCallback - 0x08004cea 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004cea HAL_TIM_OC_DelayElapsedCallback + 0x08005652 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x08005652 HAL_TIM_OC_DelayElapsedCallback .text.HAL_TIM_IC_CaptureCallback - 0x08004cec 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004cec HAL_TIM_IC_CaptureCallback + 0x08005654 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x08005654 HAL_TIM_IC_CaptureCallback .text.HAL_TIM_PWM_PulseFinishedCallback - 0x08004cee 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004cee HAL_TIM_PWM_PulseFinishedCallback + 0x08005656 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x08005656 HAL_TIM_PWM_PulseFinishedCallback .text.HAL_TIM_TriggerCallback - 0x08004cf0 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004cf0 HAL_TIM_TriggerCallback + 0x08005658 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x08005658 HAL_TIM_TriggerCallback .text.HAL_TIM_IRQHandler - 0x08004cf2 0x17a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004cf2 HAL_TIM_IRQHandler + 0x0800565a 0x17a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x0800565a HAL_TIM_IRQHandler .text.TIM_Base_SetConfig - 0x08004e6c 0x114 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004e6c TIM_Base_SetConfig + 0x080057d4 0x114 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x080057d4 TIM_Base_SetConfig .text.HAL_TIM_Encoder_Init - 0x08004f80 0xbc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x08004f80 HAL_TIM_Encoder_Init + 0x080058e8 0xbc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x080058e8 HAL_TIM_Encoder_Init .text.TIM_CCxChannelCmd - 0x0800503c 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x0800503c TIM_CCxChannelCmd + 0x080059a4 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x080059a4 TIM_CCxChannelCmd .text.HAL_TIM_Encoder_Start - 0x0800505a 0xc8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - 0x0800505a HAL_TIM_Encoder_Start - *fill* 0x08005122 0x2 + 0x080059c2 0xc8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x080059c2 HAL_TIM_Encoder_Start + *fill* 0x08005a8a 0x2 .text.HAL_TIMEx_MasterConfigSynchronization - 0x08005124 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - 0x08005124 HAL_TIMEx_MasterConfigSynchronization + 0x08005a8c 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x08005a8c HAL_TIMEx_MasterConfigSynchronization .text.HAL_TIMEx_CommutCallback - 0x080051c4 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - 0x080051c4 HAL_TIMEx_CommutCallback + 0x08005b2c 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x08005b2c HAL_TIMEx_CommutCallback .text.HAL_TIMEx_BreakCallback - 0x080051c6 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - 0x080051c6 HAL_TIMEx_BreakCallback + 0x08005b2e 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x08005b2e HAL_TIMEx_BreakCallback .text.HAL_TIMEx_Break2Callback - 0x080051c8 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - 0x080051c8 HAL_TIMEx_Break2Callback - .text.UART_EndTxTransfer - 0x080051ca 0x32 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005b30 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x08005b30 HAL_TIMEx_Break2Callback + *fill* 0x08005b32 0x2 .text.UART_EndRxTransfer - 0x080051fc 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .text.HAL_UART_Transmit_DMA - 0x08005254 0x9c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005254 HAL_UART_Transmit_DMA - .text.UART_DMATransmitCplt - 0x080052f0 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005b34 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .text.HAL_UART_TxCpltCallback + 0x08005b8c 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005b8c HAL_UART_TxCpltCallback .text.UART_EndTransmit_IT - 0x08005336 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .text.HAL_UART_TxHalfCpltCallback - 0x0800535a 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x0800535a HAL_UART_TxHalfCpltCallback - .text.UART_DMATxHalfCplt - 0x0800535c 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005b8e 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UART_ErrorCallback - 0x08005366 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005366 HAL_UART_ErrorCallback - .text.UART_DMAError - 0x08005368 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005bb2 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005bb2 HAL_UART_ErrorCallback .text.UART_DMAAbortOnError - 0x080053c0 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005bb4 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .text.HAL_UARTEx_RxEventCallback - 0x080053d4 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x080053d4 HAL_UARTEx_RxEventCallback - *fill* 0x080053d6 0x2 + 0x08005bc8 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005bc8 HAL_UARTEx_RxEventCallback + *fill* 0x08005bca 0x2 .text.HAL_UART_IRQHandler - 0x080053d8 0x3b8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x080053d8 HAL_UART_IRQHandler + 0x08005bcc 0x3b8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005bcc HAL_UART_IRQHandler .text.UART_SetConfig - 0x08005790 0x5f4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005790 UART_SetConfig + 0x08005f84 0x5f4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08005f84 UART_SetConfig .text.UART_AdvFeatureConfig - 0x08005d84 0xca CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005d84 UART_AdvFeatureConfig + 0x08006578 0xca CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08006578 UART_AdvFeatureConfig .text.UART_WaitOnFlagUntilTimeout - 0x08005e4e 0xaa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005e4e UART_WaitOnFlagUntilTimeout + 0x08006642 0xaa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08006642 UART_WaitOnFlagUntilTimeout .text.HAL_UART_Transmit - 0x08005ef8 0xd0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005ef8 HAL_UART_Transmit + 0x080066ec 0xd0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x080066ec HAL_UART_Transmit .text.HAL_UART_Receive - 0x08005fc8 0x116 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x08005fc8 HAL_UART_Receive + 0x080067bc 0x116 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x080067bc HAL_UART_Receive .text.UART_CheckIdleState - 0x080060de 0xca CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x080060de UART_CheckIdleState + 0x080068d2 0xca CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x080068d2 UART_CheckIdleState .text.HAL_UART_Init - 0x080061a8 0x66 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x080061a8 HAL_UART_Init - *fill* 0x0800620e 0x2 + 0x0800699c 0x66 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x0800699c HAL_UART_Init + *fill* 0x08006a02 0x2 .text.UARTEx_SetNbDataToProcess - 0x08006210 0x4c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a04 0x4c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj .text.HAL_UARTEx_WakeupCallback - 0x0800625c 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x0800625c HAL_UARTEx_WakeupCallback + 0x08006a50 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a50 HAL_UARTEx_WakeupCallback .text.HAL_UARTEx_RxFifoFullCallback - 0x0800625e 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x0800625e HAL_UARTEx_RxFifoFullCallback + 0x08006a52 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a52 HAL_UARTEx_RxFifoFullCallback .text.HAL_UARTEx_TxFifoEmptyCallback - 0x08006260 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x08006260 HAL_UARTEx_TxFifoEmptyCallback + 0x08006a54 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a54 HAL_UARTEx_TxFifoEmptyCallback .text.HAL_UARTEx_DisableFifoMode - 0x08006262 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x08006262 HAL_UARTEx_DisableFifoMode + 0x08006a56 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a56 HAL_UARTEx_DisableFifoMode .text.HAL_UARTEx_SetTxFifoThreshold - 0x080062a0 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x080062a0 HAL_UARTEx_SetTxFifoThreshold + 0x08006a94 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006a94 HAL_UARTEx_SetTxFifoThreshold .text.HAL_UARTEx_SetRxFifoThreshold - 0x080062ea 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - 0x080062ea HAL_UARTEx_SetRxFifoThreshold - .text.__errno 0x08006334 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) - 0x08006334 __errno + 0x08006ade 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08006ade HAL_UARTEx_SetRxFifoThreshold + .text.USB_CoreReset + 0x08006b28 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + *fill* 0x08006b72 0x2 + .text.USB_CoreInit + 0x08006b74 0xa4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006b74 USB_CoreInit + .text.USB_SetTurnaroundTime + 0x08006c18 0xe4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006c18 USB_SetTurnaroundTime + .text.USB_EnableGlobalInt + 0x08006cfc 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006cfc USB_EnableGlobalInt + .text.USB_DisableGlobalInt + 0x08006d08 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006d08 USB_DisableGlobalInt + .text.USB_FlushTxFifo + 0x08006d14 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006d14 USB_FlushTxFifo + .text.USB_FlushRxFifo + 0x08006d5e 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006d5e USB_FlushRxFifo + .text.USB_SetDevSpeed + 0x08006da4 0xe CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006da4 USB_SetDevSpeed + *fill* 0x08006db2 0x2 + .text.USB_DevInit + 0x08006db4 0x18c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006db4 USB_DevInit + .text.USB_GetDevSpeed + 0x08006f40 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006f40 USB_GetDevSpeed + *fill* 0x08006f5e 0x2 + .text.USB_ActivateEndpoint + 0x08006f60 0x9c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006f60 USB_ActivateEndpoint + .text.USB_DeactivateEndpoint + 0x08006ffc 0xe0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08006ffc USB_DeactivateEndpoint + .text.USB_EPStopXfer + 0x080070dc 0xbc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080070dc USB_EPStopXfer + .text.USB_WritePacket + 0x08007198 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007198 USB_WritePacket + *fill* 0x080071c6 0x2 + .text.USB_EPStartXfer + 0x080071c8 0x23c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080071c8 USB_EPStartXfer + .text.USB_ReadPacket + 0x08007404 0x54 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007404 USB_ReadPacket + .text.USB_EPSetStall + 0x08007458 0x5a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007458 USB_EPSetStall + .text.USB_EPClearStall + 0x080074b2 0x5c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080074b2 USB_EPClearStall + .text.USB_SetDevAddress + 0x0800750e 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800750e USB_SetDevAddress + .text.USB_DevConnect + 0x0800752e 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800752e USB_DevConnect + .text.USB_DevDisconnect + 0x0800754a 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800754a USB_DevDisconnect + .text.USB_ReadInterrupts + 0x08007566 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007566 USB_ReadInterrupts + .text.USB_ReadDevAllOutEpInterrupt + 0x0800756e 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800756e USB_ReadDevAllOutEpInterrupt + .text.USB_ReadDevAllInEpInterrupt + 0x0800757e 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800757e USB_ReadDevAllInEpInterrupt + .text.USB_ReadDevOutEPInterrupt + 0x0800758e 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x0800758e USB_ReadDevOutEPInterrupt + .text.USB_ReadDevInEPInterrupt + 0x080075a0 0x26 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080075a0 USB_ReadDevInEPInterrupt + .text.USB_GetMode + 0x080075c6 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080075c6 USB_GetMode + .text.USB_SetCurrentMode + 0x080075ce 0x62 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x080075ce USB_SetCurrentMode + .text.USB_ActivateSetup + 0x08007630 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007630 USB_ActivateSetup + .text.USB_EP0_OutStart + 0x08007650 0x5c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0x08007650 USB_EP0_OutStart + .text.USBD_CDC_EP0_RxReady + 0x080076ac 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_GetDeviceQualifierDescriptor + 0x080076ec 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x080076ec USBD_CDC_GetDeviceQualifierDescriptor + .text.USBD_CDC_GetOtherSpeedCfgDesc + 0x080076f8 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_GetFSCfgDesc + 0x08007740 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_GetHSCfgDesc + 0x08007788 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_DataOut + 0x080077d0 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_DataIn + 0x08007808 0x7c CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_Setup + 0x08007884 0x11a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_DeInit + 0x0800799e 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_Init + 0x08007a02 0xee CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .text.USBD_CDC_RegisterInterface + 0x08007af0 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x08007af0 USBD_CDC_RegisterInterface + .text.USBD_CDC_SetTxBuffer + 0x08007b06 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x08007b06 USBD_CDC_SetTxBuffer + .text.USBD_CDC_SetRxBuffer + 0x08007b22 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x08007b22 USBD_CDC_SetRxBuffer + .text.USBD_CDC_TransmitPacket + 0x08007b3a 0x3a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x08007b3a USBD_CDC_TransmitPacket + .text.USBD_CDC_ReceivePacket + 0x08007b74 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x08007b74 USBD_CDC_ReceivePacket + .text.USBD_Init + 0x08007bac 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007bac USBD_Init + .text.USBD_RegisterClass + 0x08007bda 0x34 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007bda USBD_RegisterClass + .text.USBD_Start + 0x08007c0e 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007c0e USBD_Start + .text.USBD_SetClassConfig + 0x08007c16 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007c16 USBD_SetClassConfig + .text.USBD_ClrClassConfig + 0x08007c28 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007c28 USBD_ClrClassConfig + .text.USBD_LL_SetupStage + 0x08007c3a 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007c3a USBD_LL_SetupStage + .text.USBD_LL_Reset + 0x08007c92 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007c92 USBD_LL_Reset + .text.USBD_LL_SetSpeed + 0x08007cf6 0x6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007cf6 USBD_LL_SetSpeed + .text.USBD_LL_Suspend + 0x08007cfc 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007cfc USBD_LL_Suspend + .text.USBD_LL_Resume + 0x08007d1a 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007d1a USBD_LL_Resume + .text.USBD_LL_SOF + 0x08007d34 0x22 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007d34 USBD_LL_SOF + .text.USBD_LL_IsoINIncomplete + 0x08007d56 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007d56 USBD_LL_IsoINIncomplete + .text.USBD_LL_IsoOUTIncomplete + 0x08007d84 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007d84 USBD_LL_IsoOUTIncomplete + .text.USBD_LL_DevConnected + 0x08007db2 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007db2 USBD_LL_DevConnected + .text.USBD_LL_DevDisconnected + 0x08007db6 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007db6 USBD_LL_DevDisconnected + .text.USBD_CoreFindIF + 0x08007dd6 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007dd6 USBD_CoreFindIF + .text.USBD_CoreFindEP + 0x08007dda 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007dda USBD_CoreFindEP + .text.USBD_LL_DataOutStage + 0x08007dde 0xc6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007dde USBD_LL_DataOutStage + .text.USBD_LL_DataInStage + 0x08007ea4 0xd6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007ea4 USBD_LL_DataInStage + .text.USBD_GetNextDesc + 0x08007f7a 0xe CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007f7a USBD_GetNextDesc + .text.USBD_GetEpDesc + 0x08007f88 0x3e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0x08007f88 USBD_GetEpDesc + .text.USBD_GetLen + 0x08007fc6 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_ParseSetupRequest + 0x08007fda 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x08007fda USBD_ParseSetupRequest + .text.USBD_CtlError + 0x08008002 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x08008002 USBD_CtlError + .text.USBD_GetDescriptor + 0x08008016 0x18a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_SetAddress + 0x080081a0 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_SetConfig + 0x080081f0 0xcc CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_GetConfig + 0x080082bc 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_GetStatus + 0x080082fc 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_SetFeature + 0x08008334 0x2a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_ClrFeature + 0x0800835e 0x26 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .text.USBD_StdDevReq + 0x08008384 0x76 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x08008384 USBD_StdDevReq + .text.USBD_StdItfReq + 0x080083fa 0x84 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x080083fa USBD_StdItfReq + .text.USBD_StdEPReq + 0x0800847e 0x232 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x0800847e USBD_StdEPReq + .text.USBD_GetString + 0x080086b0 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x080086b0 USBD_GetString + .text.USBD_CtlSendData + 0x080086f6 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x080086f6 USBD_CtlSendData + .text.USBD_CtlContinueSendData + 0x08008710 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x08008710 USBD_CtlContinueSendData + .text.USBD_CtlPrepareRx + 0x08008720 0x1e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x08008720 USBD_CtlPrepareRx + .text.USBD_CtlContinueRx + 0x0800873e 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x0800873e USBD_CtlContinueRx + .text.USBD_CtlSendStatus + 0x0800874e 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x0800874e USBD_CtlSendStatus + .text.USBD_CtlReceiveStatus + 0x08008764 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x08008764 USBD_CtlReceiveStatus + *fill* 0x0800877a 0x2 + .text.MX_USB_DEVICE_Init + 0x0800877c 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + 0x0800877c MX_USB_DEVICE_Init + .text.CDC_DeInit_HS + 0x080087d4 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text.CDC_Control_HS + 0x080087d8 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text.CDC_TransmitCplt_HS + 0x080087dc 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text.CDC_Receive_HS + 0x080087e0 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text.CDC_Init_HS + 0x080087fc 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .text.CDC_Transmit_HS + 0x08008824 0x2c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + 0x08008824 CDC_Transmit_HS + .text.USBD_HS_DeviceDescriptor + 0x08008850 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x08008850 USBD_HS_DeviceDescriptor + .text.USBD_HS_LangIDStrDescriptor + 0x0800885c 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x0800885c USBD_HS_LangIDStrDescriptor + .text.IntToUnicode + 0x08008868 0x46 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + *fill* 0x080088ae 0x2 + .text.Get_SerialNum + 0x080088b0 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .text.USBD_HS_SerialStrDescriptor + 0x080088e8 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x080088e8 USBD_HS_SerialStrDescriptor + .text.USBD_HS_ProductStrDescriptor + 0x080088fc 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x080088fc USBD_HS_ProductStrDescriptor + .text.USBD_HS_ManufacturerStrDescriptor + 0x08008920 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x08008920 USBD_HS_ManufacturerStrDescriptor + .text.USBD_HS_ConfigStrDescriptor + 0x0800893c 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x0800893c USBD_HS_ConfigStrDescriptor + .text.USBD_HS_InterfaceStrDescriptor + 0x08008960 0x24 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x08008960 USBD_HS_InterfaceStrDescriptor + .text.HAL_PCD_MspInit + 0x08008984 0x150 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008984 HAL_PCD_MspInit + .text.HAL_PCD_SetupStageCallback + 0x08008ad4 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008ad4 HAL_PCD_SetupStageCallback + .text.HAL_PCD_DataOutStageCallback + 0x08008ae4 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008ae4 HAL_PCD_DataOutStageCallback + .text.HAL_PCD_DataInStageCallback + 0x08008afc 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008afc HAL_PCD_DataInStageCallback + .text.HAL_PCD_SOFCallback + 0x08008b12 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b12 HAL_PCD_SOFCallback + .text.HAL_PCD_ResetCallback + 0x08008b1e 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b1e HAL_PCD_ResetCallback + *fill* 0x08008b46 0x2 + .text.HAL_PCD_SuspendCallback + 0x08008b48 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b48 HAL_PCD_SuspendCallback + .text.HAL_PCD_ResumeCallback + 0x08008b78 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b78 HAL_PCD_ResumeCallback + .text.HAL_PCD_ISOOUTIncompleteCallback + 0x08008b84 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b84 HAL_PCD_ISOOUTIncompleteCallback + .text.HAL_PCD_ISOINIncompleteCallback + 0x08008b90 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b90 HAL_PCD_ISOINIncompleteCallback + .text.HAL_PCD_ConnectCallback + 0x08008b9c 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008b9c HAL_PCD_ConnectCallback + .text.HAL_PCD_DisconnectCallback + 0x08008ba8 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008ba8 HAL_PCD_DisconnectCallback + .text.USBD_LL_Init + 0x08008bb4 0x70 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008bb4 USBD_LL_Init + .text.USBD_LL_IsStallEP + 0x08008c24 0x2c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c24 USBD_LL_IsStallEP + .text.USBD_LL_GetRxDataSize + 0x08008c50 0xc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c50 USBD_LL_GetRxDataSize + .text.USBD_static_malloc + 0x08008c5c 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c5c USBD_static_malloc + .text.USBD_static_free + 0x08008c64 0x2 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c64 USBD_static_free + .text.USBD_Get_USB_Status + 0x08008c66 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c66 USBD_Get_USB_Status + .text.USBD_LL_Start + 0x08008c7a 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c7a USBD_LL_Start + .text.USBD_LL_OpenEP + 0x08008c8a 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008c8a USBD_LL_OpenEP + .text.USBD_LL_CloseEP + 0x08008ca0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008ca0 USBD_LL_CloseEP + .text.USBD_LL_StallEP + 0x08008cb0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008cb0 USBD_LL_StallEP + .text.USBD_LL_ClearStallEP + 0x08008cc0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008cc0 USBD_LL_ClearStallEP + .text.USBD_LL_SetUSBAddress + 0x08008cd0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008cd0 USBD_LL_SetUSBAddress + .text.USBD_LL_Transmit + 0x08008ce0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008ce0 USBD_LL_Transmit + .text.USBD_LL_PrepareReceive + 0x08008cf0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x08008cf0 USBD_LL_PrepareReceive + .text.__errno 0x08008d00 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) + 0x08008d00 __errno .text.__libc_init_array - 0x08006340 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) - 0x08006340 __libc_init_array - .text.memset 0x08006388 0xa4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) - 0x08006388 memset - .text.setvbuf 0x0800642c 0x1b0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) - 0x0800642c setvbuf + 0x08008d0c 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) + 0x08008d0c __libc_init_array + .text.memset 0x08008d54 0xa4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) + 0x08008d54 memset + .text.setvbuf 0x08008df8 0x1b0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) + 0x08008df8 setvbuf .text.startup.register_fini - 0x080065dc 0x14 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) - .text.atexit 0x080065f0 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) - 0x080065f0 atexit + 0x08008fa8 0x14 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) + .text.atexit 0x08008fbc 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) + 0x08008fbc atexit .text.__sflush_r - 0x080065fc 0x120 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) - 0x080065fc __sflush_r + 0x08008fc8 0x120 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) + 0x08008fc8 __sflush_r .text._fflush_r - 0x0800671c 0x5c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) - 0x0800671c _fflush_r + 0x080090e8 0x5c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) + 0x080090e8 _fflush_r .text._cleanup_r - 0x08006778 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) - 0x08006778 _cleanup_r - .text.__sinit 0x08006784 0x10c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) - 0x08006784 __sinit + 0x08009144 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + 0x08009144 _cleanup_r + .text.__sinit 0x08009150 0x10c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + 0x08009150 __sinit .text.__sfp_lock_acquire - 0x08006890 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) - 0x08006890 __sfp_lock_acquire + 0x0800925c 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + 0x0800925c __sfp_lock_acquire .text.__sfp_lock_release - 0x0800689c 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) - 0x0800689c __sfp_lock_release + 0x08009268 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + 0x08009268 __sfp_lock_release .text.__libc_fini_array - 0x080068a8 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) - 0x080068a8 __libc_fini_array + 0x08009274 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) + 0x08009274 __libc_fini_array .text._malloc_trim_r - 0x080068d4 0xa0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) - 0x080068d4 _malloc_trim_r - .text._free_r 0x08006974 0x20c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) - 0x08006974 _free_r + 0x080092a0 0xa0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) + 0x080092a0 _malloc_trim_r + .text._free_r 0x08009340 0x20c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) + 0x08009340 _free_r .text._fwalk_reent - 0x08006b80 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) - 0x08006b80 _fwalk_reent + 0x0800954c 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) + 0x0800954c _fwalk_reent .text.__retarget_lock_init_recursive - 0x08006bc8 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x08006bc8 __retarget_lock_init_recursive + 0x08009594 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x08009594 __retarget_lock_init_recursive .text.__retarget_lock_close_recursive - 0x08006bcc 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x08006bcc __retarget_lock_close_recursive + 0x08009598 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x08009598 __retarget_lock_close_recursive .text.__retarget_lock_acquire_recursive - 0x08006bd0 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x08006bd0 __retarget_lock_acquire_recursive + 0x0800959c 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x0800959c __retarget_lock_acquire_recursive .text.__retarget_lock_release_recursive - 0x08006bd4 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x08006bd4 __retarget_lock_release_recursive + 0x080095a0 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x080095a0 __retarget_lock_release_recursive .text.__swhatbuf_r - 0x08006bd8 0x60 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) - 0x08006bd8 __swhatbuf_r - .text.malloc 0x08006c38 0x10 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) - 0x08006c38 malloc + 0x080095a4 0x60 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) + 0x080095a4 __swhatbuf_r + .text.malloc 0x08009604 0x10 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) + 0x08009604 malloc .text._malloc_r - 0x08006c48 0x560 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x08006c48 _malloc_r + 0x08009614 0x560 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x08009614 _malloc_r .text.__malloc_lock - 0x080071a8 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) - 0x080071a8 __malloc_lock + 0x08009b74 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) + 0x08009b74 __malloc_lock .text.__malloc_unlock - 0x080071b4 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) - 0x080071b4 __malloc_unlock - .text._sbrk_r 0x080071c0 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) - 0x080071c0 _sbrk_r - .text.__sread 0x080071e4 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) - 0x080071e4 __sread + 0x08009b80 0xc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) + 0x08009b80 __malloc_unlock + .text._sbrk_r 0x08009b8c 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) + 0x08009b8c _sbrk_r + .text.__sread 0x08009bb0 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + 0x08009bb0 __sread .text.__swrite - 0x08007208 0x40 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) - 0x08007208 __swrite - .text.__sseek 0x08007248 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) - 0x08007248 __sseek + 0x08009bd4 0x40 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + 0x08009bd4 __swrite + .text.__sseek 0x08009c14 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + 0x08009c14 __sseek .text.__sclose - 0x08007268 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) - 0x08007268 __sclose + 0x08009c34 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + 0x08009c34 __sclose .text._write_r - 0x08007270 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) - 0x08007270 _write_r + 0x08009c3c 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) + 0x08009c3c _write_r .text.__register_exitproc - 0x0800729c 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) - 0x0800729c __register_exitproc + 0x08009c68 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) + 0x08009c68 __register_exitproc .text._close_r - 0x08007328 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) - 0x08007328 _close_r + 0x08009cf4 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) + 0x08009cf4 _close_r .text._fclose_r - 0x0800734c 0xcc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) - 0x0800734c _fclose_r + 0x08009d18 0xcc f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) + 0x08009d18 _fclose_r .text._fstat_r - 0x08007418 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) - 0x08007418 _fstat_r + 0x08009de4 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) + 0x08009de4 _fstat_r .text._lseek_r - 0x08007444 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) - 0x08007444 _lseek_r - .text._read_r 0x08007470 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) - 0x08007470 _read_r + 0x08009e10 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) + 0x08009e10 _lseek_r + .text._read_r 0x08009e3c 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) + 0x08009e3c _read_r *(.glue_7) - .glue_7 0x0800749c 0x0 linker stubs + .glue_7 0x08009e68 0x0 linker stubs *(.glue_7t) - .glue_7t 0x0800749c 0x0 linker stubs + .glue_7t 0x08009e68 0x0 linker stubs *(.eh_frame) - .eh_frame 0x0800749c 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o + .eh_frame 0x08009e68 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o *(.init) - .init 0x0800749c 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crti.o - 0x0800749c _init - .init 0x080074a0 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o + .init 0x08009e68 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crti.o + 0x08009e68 _init + .init 0x08009e6c 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o *(.fini) - .fini 0x080074a8 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crti.o - 0x080074a8 _fini - .fini 0x080074ac 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o - 0x080074b4 . = ALIGN (0x4) - 0x080074b4 _etext = . + .fini 0x08009e74 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crti.o + 0x08009e74 _fini + .fini 0x08009e78 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o + 0x08009e80 . = ALIGN (0x4) + 0x08009e80 _etext = . -.vfp11_veneer 0x080074b4 0x0 - .vfp11_veneer 0x080074b4 0x0 linker stubs +.vfp11_veneer 0x08009e80 0x0 + .vfp11_veneer 0x08009e80 0x0 linker stubs -.v4_bx 0x080074b4 0x0 - .v4_bx 0x080074b4 0x0 linker stubs +.v4_bx 0x08009e80 0x0 + .v4_bx 0x08009e80 0x0 linker stubs -.iplt 0x080074b4 0x0 - .iplt 0x080074b4 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o +.iplt 0x08009e80 0x0 + .iplt 0x08009e80 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o -.rodata 0x080074b4 0x44 - 0x080074b4 . = ALIGN (0x4) +.rodata 0x08009e80 0x8c + 0x08009e80 . = ALIGN (0x4) *(.rodata) *(.rodata*) .rodata.D1CorePrescTable - 0x080074b4 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - 0x080074b4 D1CorePrescTable + 0x08009e80 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + 0x08009e80 D1CorePrescTable .rodata.flagBitshiftOffset.0 - 0x080074c4 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x08009e90 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .rodata.UARTPrescTable - 0x080074cc 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - 0x080074cc UARTPrescTable + 0x08009e98 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x08009e98 UARTPrescTable .rodata.denominator.0 - 0x080074e4 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08009eb0 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj .rodata.numerator.1 - 0x080074ec 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x08009eb8 0x8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .rodata.USBD_HS_ProductStrDescriptor.str1.4 + 0x08009ec0 0x16 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + *fill* 0x08009ed6 0x2 + .rodata.USBD_HS_ManufacturerStrDescriptor.str1.4 + 0x08009ed8 0x13 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + *fill* 0x08009eeb 0x1 + .rodata.USBD_HS_ConfigStrDescriptor.str1.4 + 0x08009eec 0xb CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + *fill* 0x08009ef7 0x1 + .rodata.USBD_HS_InterfaceStrDescriptor.str1.4 + 0x08009ef8 0xe CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + *fill* 0x08009f06 0x2 .rodata._global_impure_ptr - 0x080074f4 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) - 0x080074f4 _global_impure_ptr - 0x080074f8 . = ALIGN (0x4) + 0x08009f08 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) + 0x08009f08 _global_impure_ptr + 0x08009f0c . = ALIGN (0x4) .ARM.extab *(.ARM.extab* .gnu.linkonce.armextab.*) -.ARM 0x080074f8 0x8 - 0x080074f8 __exidx_start = . +.ARM 0x08009f0c 0x8 + 0x08009f0c __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x080074f8 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) - 0x08007500 __exidx_end = . + .ARM.exidx 0x08009f0c 0x8 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) + 0x08009f14 __exidx_end = . -.rel.dyn 0x08007500 0x0 - .rel.iplt 0x08007500 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o +.rel.dyn 0x08009f14 0x0 + .rel.iplt 0x08009f14 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o -.preinit_array 0x08007500 0x0 - 0x08007500 PROVIDE (__preinit_array_start = .) +.preinit_array 0x08009f14 0x0 + 0x08009f14 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x08007500 PROVIDE (__preinit_array_end = .) + 0x08009f14 PROVIDE (__preinit_array_end = .) -.init_array 0x08007500 0x8 - 0x08007500 PROVIDE (__init_array_start = .) +.init_array 0x08009f14 0x8 + 0x08009f14 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) .init_array.00000 - 0x08007500 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) + 0x08009f14 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) *(.init_array*) - .init_array 0x08007504 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o - 0x08007508 PROVIDE (__init_array_end = .) + .init_array 0x08009f18 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o + 0x08009f1c PROVIDE (__init_array_end = .) -.fini_array 0x08007508 0x4 - 0x08007508 PROVIDE (__fini_array_start = .) +.fini_array 0x08009f1c 0x4 + 0x08009f1c PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x08007508 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o - 0x0800750c PROVIDE (__fini_array_end = .) - 0x0800750c _sidata = LOADADDR (.data) + .fini_array 0x08009f1c 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o + 0x08009f20 PROVIDE (__fini_array_end = .) + 0x08009f20 _sidata = LOADADDR (.data) -.data 0x24000000 0x854 load address 0x0800750c +.data 0x24000000 0x93c load address 0x08009f20 0x24000000 . = ALIGN (0x4) 0x24000000 _sdata = . *(.data) @@ -2369,116 +2959,156 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none .data.uwTickPrio 0x2400000c 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj 0x2400000c uwTickPrio + .data.USBD_CDC + 0x24000010 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0x24000010 USBD_CDC + .data.USBD_CDC_CfgDesc + 0x24000048 0x43 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + *fill* 0x2400008b 0x1 + .data.USBD_CDC_DeviceQualifierDesc + 0x2400008c 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + *fill* 0x24000096 0x2 + .data.USBD_Interface_fops_HS + 0x24000098 0x14 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + 0x24000098 USBD_Interface_fops_HS + .data.HS_Desc 0x240000ac 0x1c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x240000ac HS_Desc + .data.USBD_HS_DeviceDesc + 0x240000c8 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x240000c8 USBD_HS_DeviceDesc + *fill* 0x240000da 0x2 + .data.USBD_LangIDDesc + 0x240000dc 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x240000dc USBD_LangIDDesc + .data.USBD_StringSerial + 0x240000e0 0x1a CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x240000e0 USBD_StringSerial + *fill* 0x240000fa 0x2 .data._impure_ptr - 0x24000010 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) - 0x24000010 _impure_ptr - *fill* 0x24000014 0x4 + 0x240000fc 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) + 0x240000fc _impure_ptr .data.impure_data - 0x24000018 0x428 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) + 0x24000100 0x428 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) .data.__atexit_recursive_mutex - 0x24000440 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) - 0x24000440 __atexit_recursive_mutex + 0x24000528 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) + 0x24000528 __atexit_recursive_mutex .data.__malloc_av_ - 0x24000444 0x408 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000444 __malloc_av_ + 0x2400052c 0x408 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x2400052c __malloc_av_ .data.__malloc_sbrk_base - 0x2400084c 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x2400084c __malloc_sbrk_base + 0x24000934 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24000934 __malloc_sbrk_base .data.__malloc_trim_threshold - 0x24000850 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000850 __malloc_trim_threshold + 0x24000938 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24000938 __malloc_trim_threshold *(.RamFunc) *(.RamFunc*) - 0x24000854 . = ALIGN (0x4) - 0x24000854 _edata = . + 0x2400093c . = ALIGN (0x4) + 0x2400093c _edata = . -.igot.plt 0x24000854 0x0 load address 0x08007d60 - .igot.plt 0x24000854 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o - 0x24000854 . = ALIGN (0x4) +.igot.plt 0x2400093c 0x0 load address 0x0800a85c + .igot.plt 0x2400093c 0x0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o + 0x2400093c . = ALIGN (0x4) -.bss 0x24000854 0x1e8 load address 0x08007d60 - 0x24000854 _sbss = . - 0x24000854 __bss_start__ = _sbss +.bss 0x2400093c 0x21a8 load address 0x0800a85c + 0x2400093c _sbss = . + 0x2400093c __bss_start__ = _sbss *(.bss) - .bss 0x24000854 0x1c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o + .bss 0x2400093c 0x1c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtbegin.o *(.bss*) .bss.captureFlag - 0x24000870 0x1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - 0x24000870 captureFlag - *fill* 0x24000871 0x3 + 0x24000958 0x1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + 0x24000958 captureFlag + *fill* 0x24000959 0x3 .bss.G_CurrentMillis - 0x24000874 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x24000874 G_CurrentMillis + 0x2400095c 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x2400095c G_CurrentMillis .bss.G_StartMillis - 0x24000878 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x24000878 G_StartMillis - .bss.buf 0x2400087c 0xa CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x2400087c buf - *fill* 0x24000886 0x2 - .bss.enc 0x24000888 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x24000888 enc - .bss.gHuart 0x2400088c 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - 0x2400088c gHuart + 0x24000960 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x24000960 G_StartMillis + .bss.buf 0x24000964 0x3e8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x24000964 buf + .bss.enc 0x24000d4c 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x24000d4c enc + .bss.enc_old 0x24000d50 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x24000d50 enc_old + .bss.gHuart 0x24000d54 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + 0x24000d54 gHuart .bss.__sbrk_heap_end - 0x24000890 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .bss.htim2 0x24000894 0x4c CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - 0x24000894 htim2 + 0x24000d58 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .bss.htim2 0x24000d5c 0x4c CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + 0x24000d5c htim2 .bss.hdma_usart1_tx - 0x240008e0 0x78 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x240008e0 hdma_usart1_tx - .bss.huart1 0x24000958 0x94 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x24000958 huart1 - .bss.sendCount - 0x240009ec 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x240009ec sendCount - .bss.uwTick 0x240009f0 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - 0x240009f0 uwTick + 0x24000da8 0x78 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x24000da8 hdma_usart1_tx + .bss.huart1 0x24000e20 0x94 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x24000e20 huart1 + .bss.uwTick 0x24000eb4 0x4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x24000eb4 uwTick + .bss.cfgidx.0 0x24000eb8 0x1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + *fill* 0x24000eb9 0x3 + .bss.hUsbDeviceHS + 0x24000ebc 0x2dc CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + 0x24000ebc hUsbDeviceHS + .bss.UserRxBufferHS + 0x24001198 0x800 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + 0x24001198 UserRxBufferHS + .bss.UserTxBufferHS + 0x24001998 0x800 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + 0x24001998 UserTxBufferHS + .bss.USBD_StrDesc + 0x24002198 0x200 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x24002198 USBD_StrDesc + .bss.hpcd_USB_OTG_HS + 0x24002398 0x4e4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x24002398 hpcd_USB_OTG_HS + .bss.mem.0 0x2400287c 0x220 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj .bss.__lock___atexit_recursive_mutex - 0x240009f4 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x240009f4 __lock___atexit_recursive_mutex - *fill* 0x240009f5 0x3 + 0x24002a9c 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x24002a9c __lock___atexit_recursive_mutex + *fill* 0x24002a9d 0x3 .bss.__lock___malloc_recursive_mutex - 0x240009f8 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x240009f8 __lock___malloc_recursive_mutex - *fill* 0x240009f9 0x3 + 0x24002aa0 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x24002aa0 __lock___malloc_recursive_mutex + *fill* 0x24002aa1 0x3 .bss.__lock___sfp_recursive_mutex - 0x240009fc 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x240009fc __lock___sfp_recursive_mutex - *fill* 0x240009fd 0x3 + 0x24002aa4 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x24002aa4 __lock___sfp_recursive_mutex + *fill* 0x24002aa5 0x3 .bss.__lock___sinit_recursive_mutex - 0x24000a00 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - 0x24000a00 __lock___sinit_recursive_mutex - *fill* 0x24000a01 0x3 + 0x24002aa8 0x1 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x24002aa8 __lock___sinit_recursive_mutex + *fill* 0x24002aa9 0x3 .bss.__malloc_current_mallinfo - 0x24000a04 0x28 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000a04 __malloc_current_mallinfo + 0x24002aac 0x28 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24002aac __malloc_current_mallinfo .bss.__malloc_max_sbrked_mem - 0x24000a2c 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000a2c __malloc_max_sbrked_mem + 0x24002ad4 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24002ad4 __malloc_max_sbrked_mem .bss.__malloc_max_total_mem - 0x24000a30 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000a30 __malloc_max_total_mem + 0x24002ad8 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24002ad8 __malloc_max_total_mem .bss.__malloc_top_pad - 0x24000a34 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - 0x24000a34 __malloc_top_pad - .bss.errno 0x24000a38 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) - 0x24000a38 errno + 0x24002adc 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x24002adc __malloc_top_pad + .bss.errno 0x24002ae0 0x4 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) + 0x24002ae0 errno *(COMMON) - 0x24000a3c . = ALIGN (0x4) - 0x24000a3c _ebss = . - 0x24000a3c __bss_end__ = _ebss + 0x24002ae4 . = ALIGN (0x4) + 0x24002ae4 _ebss = . + 0x24002ae4 __bss_end__ = _ebss ._user_heap_stack - 0x24000a3c 0x804 load address 0x08007d60 - 0x24000a40 . = ALIGN (0x8) - *fill* 0x24000a3c 0x4 + 0x24002ae4 0x804 load address 0x0800a85c + 0x24002ae8 . = ALIGN (0x8) + *fill* 0x24002ae4 0x4 [!provide] PROVIDE (end = .) - 0x24000a40 PROVIDE (_end = .) - 0x24000e40 . = (. + _Min_Heap_Size) - *fill* 0x24000a40 0x400 - 0x24001240 . = (. + _Min_Stack_Size) - *fill* 0x24000e40 0x400 - 0x24001240 . = ALIGN (0x8) + 0x24002ae8 PROVIDE (_end = .) + 0x24002ee8 . = (. + _Min_Heap_Size) + *fill* 0x24002ae8 0x400 + 0x240032e8 . = (. + _Min_Stack_Size) + *fill* 0x24002ee8 0x400 + 0x240032e8 . = ALIGN (0x8) /DISCARD/ libc.a(*) @@ -2523,142 +3153,186 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none .ARM.attributes 0x000002c3 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj .ARM.attributes - 0x000002f1 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + 0x000002f1 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj .ARM.attributes - 0x0000031f 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x0000031f 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj .ARM.attributes - 0x0000034d 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x0000034d 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .ARM.attributes - 0x0000037b 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x0000037b 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj .ARM.attributes - 0x000003a9 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x000003a9 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj .ARM.attributes - 0x000003d7 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x000003d7 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj .ARM.attributes - 0x00000405 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x00000405 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj .ARM.attributes - 0x00000433 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_addsubsf3.o) + 0x00000433 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .ARM.attributes - 0x00000451 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_muldivsf3.o) + 0x00000461 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj .ARM.attributes - 0x0000046f 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_fixunssfsi.o) + 0x0000048f 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj .ARM.attributes - 0x0000048d 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_aeabi_uldivmod.o) + 0x000004bd 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj .ARM.attributes - 0x000004ab 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) + 0x000004eb 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj .ARM.attributes - 0x000004d9 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_dvmd_tls.o) + 0x00000519 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj .ARM.attributes - 0x000004f7 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) + 0x00000547 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj .ARM.attributes - 0x00000525 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) + 0x00000575 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj .ARM.attributes - 0x00000553 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) + 0x000005a3 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj .ARM.attributes - 0x00000581 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) + 0x000005d1 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj .ARM.attributes - 0x000005af 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) + 0x000005ff 0x2e CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj .ARM.attributes - 0x000005dd 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) + 0x0000062d 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_addsubsf3.o) .ARM.attributes - 0x0000060b 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) + 0x0000064b 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_muldivsf3.o) .ARM.attributes - 0x00000639 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) + 0x00000669 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_fixunssfsi.o) .ARM.attributes - 0x00000667 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + 0x00000687 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_aeabi_uldivmod.o) .ARM.attributes - 0x00000695 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) + 0x000006a5 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) .ARM.attributes - 0x000006c3 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) + 0x000006d3 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_dvmd_tls.o) .ARM.attributes - 0x000006f1 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) + 0x000006f1 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) .ARM.attributes - 0x0000071f 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + 0x0000071f 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-impure.o) .ARM.attributes - 0x0000074d 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) + 0x0000074d 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) .ARM.attributes - 0x0000077b 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) + 0x0000077b 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) .ARM.attributes - 0x000007a9 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + 0x000007a9 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) .ARM.attributes - 0x000007d7 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) + 0x000007d7 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) .ARM.attributes - 0x00000805 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) + 0x00000805 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) .ARM.attributes - 0x00000833 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + 0x00000833 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) .ARM.attributes - 0x00000861 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) + 0x00000861 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) .ARM.attributes - 0x0000088f 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) + 0x0000088f 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) .ARM.attributes - 0x000008bd 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) + 0x000008bd 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) .ARM.attributes - 0x000008eb 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) + 0x000008eb 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) .ARM.attributes - 0x00000919 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) + 0x00000919 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) .ARM.attributes - 0x00000947 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) + 0x00000947 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) .ARM.attributes - 0x00000975 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) + 0x00000975 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) .ARM.attributes - 0x000009a3 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) + 0x000009a3 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) .ARM.attributes - 0x000009d1 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o + 0x000009d1 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) + .ARM.attributes + 0x000009ff 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) + .ARM.attributes + 0x00000a2d 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + .ARM.attributes + 0x00000a5b 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) + .ARM.attributes + 0x00000a89 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) + .ARM.attributes + 0x00000ab7 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) + .ARM.attributes + 0x00000ae5 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) + .ARM.attributes + 0x00000b13 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) + .ARM.attributes + 0x00000b41 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) + .ARM.attributes + 0x00000b6f 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) + .ARM.attributes + 0x00000b9d 0x2e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) + .ARM.attributes + 0x00000bcb 0x1e f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp/crtn.o OUTPUT(Encoder_Time_Sysn.elf elf32-littlearm) LOAD linker stubs LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libc.a LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libm.a LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a -.debug_info 0x00000000 0x1f41d +.debug_info 0x00000000 0x2c913 .debug_info 0x00000000 0x87b CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj - .debug_info 0x0000087b 0xab6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_info 0x00001331 0x1d03 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_info 0x00003034 0x1503 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_info 0x00004537 0x4a0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - .debug_info 0x000049d7 0xd07 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - .debug_info 0x000056de 0x174 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_info 0x00005852 0xaf5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_info 0x00006347 0x1340 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_info 0x00007687 0x16c5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_info 0x00008d4c 0x22 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - .debug_info 0x00008d6e 0x16a6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_info 0x0000a414 0x143e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_info 0x0000b852 0xfeb CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_info 0x0000c83d 0xd66 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_info 0x0000d5a3 0x122e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_info 0x0000e7d1 0x13c5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_info 0x0000fb96 0x2034 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_info 0x00011bca 0x4032 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_info 0x00015bfc 0x1e7d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_info 0x00017a79 0x674e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_info 0x0001e1c7 0x1256 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_info 0x0000087b 0xb0d CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + .debug_info 0x00001388 0x1d68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_info 0x000030f0 0x1503 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_info 0x000045f3 0x4a0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_info 0x00004a93 0x1295 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + .debug_info 0x00005d28 0x174 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_info 0x00005e9c 0xaf5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_info 0x00006991 0x1340 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_info 0x00007cd1 0x167c CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_info 0x0000934d 0x22 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + .debug_info 0x0000936f 0x16a6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_info 0x0000aa15 0x143e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_info 0x0000be53 0xfeb CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_info 0x0000ce3e 0xd66 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_info 0x0000dba4 0x1b84 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_info 0x0000f728 0xa79 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_info 0x000101a1 0x122e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_info 0x000113cf 0x13c5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_info 0x00012794 0x2034 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_info 0x000147c8 0x4032 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_info 0x000187fa 0x1e7d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_info 0x0001a677 0x674e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_info 0x00020dc5 0x1256 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_info 0x0002201b 0x20d3 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_info 0x000240ee 0x177e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_info 0x0002586c 0x1231 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_info 0x00026a9d 0x13e5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_info 0x00027e82 0x8d8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_info 0x0002875a 0x7c3 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_info 0x00028f1d 0x9f4 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_info 0x00029911 0x604 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_info 0x00029f15 0x29fe CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_abbrev 0x00000000 0x2f0c +.debug_abbrev 0x00000000 0x4af3 .debug_abbrev 0x00000000 0x137 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj .debug_abbrev 0x00000137 0x1cf CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_abbrev 0x00000306 0x316 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_abbrev 0x0000061c 0x2b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_abbrev 0x000008d0 0xd7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - .debug_abbrev 0x000009a7 0x1b3 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - .debug_abbrev 0x00000b5a 0xe7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_abbrev 0x00000c41 0x162 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_abbrev 0x00000da3 0x220 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_abbrev 0x00000fc3 0x238 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_abbrev 0x000011fb 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - .debug_abbrev 0x0000120d 0x264 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_abbrev 0x00001471 0x37d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_abbrev 0x000017ee 0x298 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_abbrev 0x00001a86 0x239 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_abbrev 0x00001cbf 0x29b CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_abbrev 0x00001f5a 0x28c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_abbrev 0x000021e6 0x285 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_abbrev 0x0000246b 0x232 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_abbrev 0x0000269d 0x248 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_abbrev 0x000028e5 0x337 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_abbrev 0x00002c1c 0x2f0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_abbrev 0x00000306 0x33e CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_abbrev 0x00000644 0x2b4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_abbrev 0x000008f8 0xd7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_abbrev 0x000009cf 0x204 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + .debug_abbrev 0x00000bd3 0xe7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_abbrev 0x00000cba 0x162 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_abbrev 0x00000e1c 0x220 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_abbrev 0x0000103c 0x227 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_abbrev 0x00001263 0x12 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + .debug_abbrev 0x00001275 0x264 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_abbrev 0x000014d9 0x37d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_abbrev 0x00001856 0x298 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_abbrev 0x00001aee 0x239 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_abbrev 0x00001d27 0x2a8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_abbrev 0x00001fcf 0x26d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_abbrev 0x0000223c 0x29b CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_abbrev 0x000024d7 0x28c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_abbrev 0x00002763 0x285 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_abbrev 0x000029e8 0x232 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_abbrev 0x00002c1a 0x248 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_abbrev 0x00002e62 0x337 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_abbrev 0x00003199 0x2f0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_abbrev 0x00003489 0x2d2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_abbrev 0x0000375b 0x317 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_abbrev 0x00003a72 0x2a8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_abbrev 0x00003d1a 0x32e CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_abbrev 0x00004048 0x184 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_abbrev 0x000041cc 0x1a9 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_abbrev 0x00004375 0x2a2 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_abbrev 0x00004617 0x20d CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_abbrev 0x00004824 0x2cf CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_aranges 0x00000000 0x10d8 +.debug_aranges 0x00000000 0x1840 .debug_aranges 0x00000000 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj .debug_aranges @@ -2670,133 +3344,199 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none .debug_aranges 0x000000d8 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj .debug_aranges - 0x000000f8 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x000000f8 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj .debug_aranges - 0x00000180 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + 0x00000198 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj .debug_aranges - 0x000001a0 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + 0x000001b8 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj .debug_aranges - 0x000001c8 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + 0x000001e0 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj .debug_aranges - 0x000001f8 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x00000210 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj .debug_aranges - 0x00000230 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + 0x00000240 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj .debug_aranges - 0x00000258 0x198 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + 0x00000268 0x198 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj .debug_aranges - 0x000003f0 0xc0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + 0x00000400 0xc0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj .debug_aranges - 0x000004b0 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + 0x000004c0 0xa0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .debug_aranges - 0x00000550 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + 0x00000560 0x58 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj .debug_aranges - 0x000005a8 0x158 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + 0x000005b8 0x140 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj .debug_aranges - 0x00000700 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + 0x000006f8 0x60 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj .debug_aranges - 0x00000788 0xf8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + 0x00000758 0x158 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .debug_aranges - 0x00000880 0x3e0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + 0x000008b0 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj .debug_aranges - 0x00000c60 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + 0x00000938 0xf8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj .debug_aranges - 0x00000de8 0x248 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + 0x00000a30 0x3e0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj .debug_aranges - 0x00001030 0xa8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + 0x00000e10 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_aranges + 0x00000f98 0x248 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_aranges + 0x000011e0 0xa8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_aranges + 0x00001288 0x1a0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_aranges + 0x00001428 0x90 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_aranges + 0x000014b8 0xd8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_aranges + 0x00001590 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_aranges + 0x00001618 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_aranges + 0x00001668 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_aranges + 0x00001688 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_aranges + 0x000016d0 0x60 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_aranges + 0x00001730 0x110 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_ranges 0x00000000 0x10e0 +.debug_ranges 0x00000000 0x17b0 .debug_ranges 0x00000000 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj .debug_ranges 0x00000010 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_ranges 0x00000028 0x30 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_ranges 0x00000058 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_ranges 0x00000098 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - .debug_ranges 0x000000a8 0x78 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - .debug_ranges 0x00000120 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_ranges 0x00000130 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_ranges 0x00000148 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_ranges 0x00000168 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_ranges 0x00000190 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - .debug_ranges 0x000001b0 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_ranges 0x00000338 0x110 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_ranges 0x00000448 0xa8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_ranges 0x000004f0 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_ranges 0x00000538 0x1a8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_ranges 0x000006e0 0xe8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_ranges 0x000007c8 0xe8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_ranges 0x000008b0 0x3d0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_ranges 0x00000c80 0x178 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_ranges 0x00000df8 0x238 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_ranges 0x00001030 0xb0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_ranges 0x00000028 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_ranges 0x00000070 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_ranges 0x000000b0 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_ranges 0x000000c0 0x90 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + .debug_ranges 0x00000150 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_ranges 0x00000160 0x18 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_ranges 0x00000178 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_ranges 0x00000198 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_ranges 0x000001b8 0x20 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + .debug_ranges 0x000001d8 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_ranges 0x00000360 0x110 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_ranges 0x00000470 0xa8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_ranges 0x00000518 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_ranges 0x00000560 0x130 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_ranges 0x00000690 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_ranges 0x000006e0 0x1a8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_ranges 0x00000888 0xe8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_ranges 0x00000970 0xe8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_ranges 0x00000a58 0x3d0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_ranges 0x00000e28 0x178 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_ranges 0x00000fa0 0x238 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_ranges 0x000011d8 0xb0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_ranges 0x00001288 0x190 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_ranges 0x00001418 0x80 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_ranges 0x00001498 0xc8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_ranges 0x00001560 0x78 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_ranges 0x000015d8 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_ranges 0x00001618 0x10 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_ranges 0x00001628 0x38 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_ranges 0x00001660 0x50 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_ranges 0x000016b0 0x100 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_line 0x00000000 0x18b5f +.debug_line 0x00000000 0x20200 .debug_line 0x00000000 0x233 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj - .debug_line 0x00000233 0x2c7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_line 0x000004fa 0x79c CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_line 0x00000c96 0x538 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_line 0x000011ce 0x1e6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - .debug_line 0x000013b4 0x416 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - .debug_line 0x000017ca 0x261 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_line 0x00001a2b 0x4bd CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_line 0x00001ee8 0x409 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_line 0x000022f1 0x4f6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_line 0x000027e7 0xa3 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj - .debug_line 0x0000288a 0x98a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_line 0x00003214 0x87f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_line 0x00003a93 0x24e7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_line 0x00005f7a 0x763 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_line 0x000066dd 0xb5f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_line 0x0000723c 0x137a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_line 0x000085b6 0x2034 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_line 0x0000a5ea 0x5102 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_line 0x0000f6ec 0x1fae CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_line 0x0001169a 0x678f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_line 0x00017e29 0xd36 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_line 0x00000233 0x2ec CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + .debug_line 0x0000051f 0x857 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_line 0x00000d76 0x538 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_line 0x000012ae 0x1e6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_line 0x00001494 0x48e CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + .debug_line 0x00001922 0x261 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_line 0x00001b83 0x4bd CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_line 0x00002040 0x409 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_line 0x00002449 0x4bb CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_line 0x00002904 0xa3 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + .debug_line 0x000029a7 0x98a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_line 0x00003331 0x87f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_line 0x00003bb0 0x24e7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_line 0x00006097 0x763 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_line 0x000067fa 0x15e1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_line 0x00007ddb 0x53f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_line 0x0000831a 0xb5f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_line 0x00008e79 0x137a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_line 0x0000a1f3 0x2034 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_line 0x0000c227 0x5102 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_line 0x00011329 0x1fae CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_line 0x000132d7 0x678f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_line 0x00019a66 0xd36 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_line 0x0001a79c 0x1fad CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_line 0x0001c749 0xb02 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_line 0x0001d24b 0xa65 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_line 0x0001dcb0 0xde7 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_line 0x0001ea97 0x33c CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_line 0x0001edd3 0x335 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_line 0x0001f108 0x314 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_line 0x0001f41c 0x3f1 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_line 0x0001f80d 0x9f3 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_str 0x00000000 0x6758 +.debug_str 0x00000000 0x89ae .debug_str 0x00000000 0xbec CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj 0xc62 (size before relaxing) - .debug_str 0x00000bec 0x11b CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj + .debug_str 0x00000bec 0x115 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj 0xd5f (size before relaxing) - .debug_str 0x00000d07 0xd80 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - 0x1286 (size before relaxing) - .debug_str 0x00001a87 0x531 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_str 0x00000d01 0xd8d CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + 0x129b (size before relaxing) + .debug_str 0x00001a8e 0x529 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj 0xd23 (size before relaxing) - .debug_str 0x00001fb8 0x47 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_str 0x00001fb7 0x47 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj 0x41c (size before relaxing) - .debug_str 0x00001fff 0x190 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - 0xc17 (size before relaxing) - .debug_str 0x0000218f 0x90 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_str 0x00001ffe 0x5a5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + 0x1043 (size before relaxing) + .debug_str 0x000025a3 0x90 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj 0x24d (size before relaxing) - .debug_str 0x0000221f 0x294 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_str 0x00002633 0x294 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj 0x692 (size before relaxing) - .debug_str 0x000024b3 0x19f CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_str 0x000028c7 0x19f CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj 0x1513 (size before relaxing) - .debug_str 0x00002652 0x474 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - 0x177a (size before relaxing) - .debug_str 0x00002ac6 0x51 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj + .debug_str 0x00002a66 0x452 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + 0x174d (size before relaxing) + .debug_str 0x00002eb8 0x51 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Startup/startup_stm32h750vbtx.s.obj 0x81 (size before relaxing) - .debug_str 0x00002b17 0x73b CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_str 0x00002f09 0x73b CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj 0x14e9 (size before relaxing) - .debug_str 0x00003252 0x3d2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_str 0x00003644 0x3d2 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj 0x10b9 (size before relaxing) - .debug_str 0x00003624 0x3d1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_str 0x00003a16 0x3d1 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj 0x9f5 (size before relaxing) - .debug_str 0x000039f5 0xf8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_str 0x00003de7 0xf8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj 0x6fe (size before relaxing) - .debug_str 0x00003aed 0x568 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_str 0x00003edf 0x80c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + 0xe3f (size before relaxing) + .debug_str 0x000046eb 0x1ca CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + 0x862 (size before relaxing) + .debug_str 0x000048b5 0x568 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj 0xa73 (size before relaxing) - .debug_str 0x00004055 0x1ad CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_str 0x00004e1d 0x199 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj 0xa86 (size before relaxing) - .debug_str 0x00004202 0x5e0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_str 0x00004fb6 0x5e0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj 0xf91 (size before relaxing) - .debug_str 0x000047e2 0xe71 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_str 0x00005596 0xe6b CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj 0x185d (size before relaxing) - .debug_str 0x00005653 0x63c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_str 0x00006401 0x63c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj 0x116a (size before relaxing) - .debug_str 0x00005c8f 0x86c CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_str 0x00006a3d 0x895 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj 0x14dd (size before relaxing) - .debug_str 0x000064fb 0x25d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_str 0x000072d2 0x25d CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj 0xbc6 (size before relaxing) + .debug_str 0x0000752f 0x4ef CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + 0xdbe (size before relaxing) + .debug_str 0x00007a1e 0x729 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + 0xe10 (size before relaxing) + .debug_str 0x00008147 0x383 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + 0xa0c (size before relaxing) + .debug_str 0x000084ca 0x154 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + 0x837 (size before relaxing) + .debug_str 0x0000861e 0x6c CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + 0x70c (size before relaxing) + .debug_str 0x0000868a 0x66 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + 0x70a (size before relaxing) + .debug_str 0x000086f0 0xa5 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + 0x7c8 (size before relaxing) + .debug_str 0x00008795 0x18b CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + 0x493 (size before relaxing) + .debug_str 0x00008920 0x8e CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + 0x1f26 (size before relaxing) .comment 0x00000000 0x49 .comment 0x00000000 0x49 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj @@ -2814,6 +3554,8 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj @@ -2821,77 +3563,107 @@ LOAD f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .comment 0x00000049 0x4a CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj -.debug_frame 0x00000000 0x3464 +.debug_frame 0x00000000 0x4800 .debug_frame 0x00000000 0x2c CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/dma.c.obj .debug_frame 0x0000002c 0x48 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_frame 0x00000074 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_frame 0x000000fc 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_frame 0x000001b4 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj - .debug_frame 0x000001dc 0x120 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj - .debug_frame 0x000002fc 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_frame 0x00000324 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_frame 0x00000364 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_frame 0x000003cc 0x74 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_frame 0x00000440 0x360 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_frame 0x000007a0 0x178 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_frame 0x00000918 0x1fc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_frame 0x00000b14 0xd0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_frame 0x00000be4 0x2f4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_frame 0x00000ed8 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_frame 0x00001060 0x284 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_frame 0x000012e4 0xb68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_frame 0x00001e4c 0x480 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_frame 0x000022cc 0x680 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_frame 0x0000294c 0x1c8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj - .debug_frame 0x00002b14 0x4c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_addsubsf3.o) - .debug_frame 0x00002b60 0x38 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_muldivsf3.o) - .debug_frame 0x00002b98 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_fixunssfsi.o) - .debug_frame 0x00002bbc 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x00002be8 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) - .debug_frame 0x00002c1c 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) - .debug_frame 0x00002c3c 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) - .debug_frame 0x00002c68 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) - .debug_frame 0x00002c94 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) - .debug_frame 0x00002cdc 0x5c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) - .debug_frame 0x00002d38 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) - .debug_frame 0x00002d58 0x70 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) - .debug_frame 0x00002dc8 0x154 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) - .debug_frame 0x00002f1c 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) - .debug_frame 0x00002f50 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) - .debug_frame 0x00002fdc 0x54 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) - .debug_frame 0x00003030 0xb0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) - .debug_frame 0x000030e0 0x70 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) - .debug_frame 0x00003150 0x30 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) - .debug_frame 0x00003180 0x4c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) - .debug_frame 0x000031cc 0x30 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) - .debug_frame 0x000031fc 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) - .debug_frame 0x00003228 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) - .debug_frame 0x000032b4 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) - .debug_frame 0x000032e0 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) - .debug_frame 0x00003314 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) - .debug_frame 0x00003340 0x3c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) - .debug_frame 0x0000337c 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) - .debug_frame 0x000033a8 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) - .debug_frame 0x000033d4 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) - .debug_frame 0x00003400 0x64 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) + .debug_frame 0x00000074 0x94 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_frame 0x00000108 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_frame 0x000001c0 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_hal_msp.c.obj + .debug_frame 0x000001e8 0x168 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/stm32h7xx_it.c.obj + .debug_frame 0x00000350 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_frame 0x00000378 0x40 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_frame 0x000003b8 0x68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_frame 0x00000420 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_frame 0x00000484 0x360 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_frame 0x000007e4 0x178 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_frame 0x0000095c 0x1fc CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_frame 0x00000b58 0xd0 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_frame 0x00000c28 0x378 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_frame 0x00000fa0 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_frame 0x00001058 0x2f4 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_frame 0x0000134c 0x188 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_frame 0x000014d4 0x284 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_frame 0x00001758 0xb68 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_frame 0x000022c0 0x480 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_frame 0x00002740 0x680 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_frame 0x00002dc0 0x1c8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_frame 0x00002f88 0x4a8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_frame 0x00003430 0x190 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_frame 0x000035c0 0x240 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_frame 0x00003800 0x180 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_frame 0x00003980 0xb8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_frame 0x00003a38 0x28 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj + .debug_frame 0x00003a60 0x88 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_frame 0x00003ae8 0xe0 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_frame 0x00003bc8 0x2e8 CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj + .debug_frame 0x00003eb0 0x4c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_addsubsf3.o) + .debug_frame 0x00003efc 0x38 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_muldivsf3.o) + .debug_frame 0x00003f34 0x24 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_arm_fixunssfsi.o) + .debug_frame 0x00003f58 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00003f84 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7e-m/nofp\libgcc.a(_udivmoddi4.o) + .debug_frame 0x00003fb8 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-errno.o) + .debug_frame 0x00003fd8 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-init.o) + .debug_frame 0x00004004 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-memset.o) + .debug_frame 0x00004030 0x48 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-setvbuf.o) + .debug_frame 0x00004078 0x5c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__call_atexit.o) + .debug_frame 0x000040d4 0x20 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-atexit.o) + .debug_frame 0x000040f4 0x70 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fflush.o) + .debug_frame 0x00004164 0x154 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-findfp.o) + .debug_frame 0x000042b8 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fini.o) + .debug_frame 0x000042ec 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-freer.o) + .debug_frame 0x00004378 0x54 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fwalk.o) + .debug_frame 0x000043cc 0xb0 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lock.o) + .debug_frame 0x0000447c 0x70 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-makebuf.o) + .debug_frame 0x000044ec 0x30 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-malloc.o) + .debug_frame 0x0000451c 0x4c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mallocr.o) + .debug_frame 0x00004568 0x30 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-mlock.o) + .debug_frame 0x00004598 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-sbrkr.o) + .debug_frame 0x000045c4 0x8c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-stdio.o) + .debug_frame 0x00004650 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-writer.o) + .debug_frame 0x0000467c 0x34 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-__atexit.o) + .debug_frame 0x000046b0 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-closer.o) + .debug_frame 0x000046dc 0x3c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fclose.o) + .debug_frame 0x00004718 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-fstatr.o) + .debug_frame 0x00004744 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-lseekr.o) + .debug_frame 0x00004770 0x2c f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-readr.o) + .debug_frame 0x0000479c 0x64 f:/work/arm-none-eabi-gcc/gcc-arm-none-eabi-10.3-2021.10-win32/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp\libg.a(lib_a-reent.o) -.debug_loc 0x00000000 0x138c1 +.debug_loc 0x00000000 0x1b60d .debug_loc 0x00000000 0x25 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/gpio.c.obj - .debug_loc 0x00000025 0x82 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj - .debug_loc 0x000000a7 0x389 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj - .debug_loc 0x00000430 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj - .debug_loc 0x00000494 0x21e CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj - .debug_loc 0x000006b2 0x84 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj - .debug_loc 0x00000736 0x54 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj - .debug_loc 0x0000078a 0x3fa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj - .debug_loc 0x00000b84 0x726 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj - .debug_loc 0x000012aa 0xe96 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj - .debug_loc 0x00002140 0x3c6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj - .debug_loc 0x00002506 0x4df CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj - .debug_loc 0x000029e5 0x996 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj - .debug_loc 0x0000337b 0x1fbe CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj - .debug_loc 0x00005339 0x56f6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj - .debug_loc 0x0000aa2f 0x257f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj - .debug_loc 0x0000cfae 0x5d4e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj - .debug_loc 0x00012cfc 0xbc5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_loc 0x00000025 0xc9 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/main.c.obj + .debug_loc 0x000000ee 0x389 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/retarget.c.obj + .debug_loc 0x00000477 0x64 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/sysmem.c.obj + .debug_loc 0x000004db 0x21e CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/system_stm32h7xx.c.obj + .debug_loc 0x000006f9 0x84 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/tim.c.obj + .debug_loc 0x0000077d 0x54 CMakeFiles/Encoder_Time_Sysn.elf.dir/Core/Src/usart.c.obj + .debug_loc 0x000007d1 0x3fa CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj + .debug_loc 0x00000bcb 0x726 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c.obj + .debug_loc 0x000012f1 0xe96 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c.obj + .debug_loc 0x00002187 0x3c6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c.obj + .debug_loc 0x0000254d 0x1299 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + .debug_loc 0x000037e6 0x236 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + .debug_loc 0x00003a1c 0x4df CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c.obj + .debug_loc 0x00003efb 0x996 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c.obj + .debug_loc 0x00004891 0x1fbe CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c.obj + .debug_loc 0x0000684f 0x56f6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c.obj + .debug_loc 0x0000bf45 0x257f CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c.obj + .debug_loc 0x0000e4c4 0x5d4e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c.obj + .debug_loc 0x00014212 0xbc5 CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.obj + .debug_loc 0x00014dd7 0x242e CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + .debug_loc 0x00017205 0xa5b CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + .debug_loc 0x00017c60 0xdd6 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + .debug_loc 0x00018a36 0x1877 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + .debug_loc 0x0001a2ad 0x2b8 CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + .debug_loc 0x0001a565 0x15c CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj + .debug_loc 0x0001a6c1 0x38f CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj + .debug_loc 0x0001aa50 0xbbd CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj diff --git a/cmake-build-debug/Makefile b/cmake-build-debug/Makefile index 29db150..ce1dbd7 100644 --- a/cmake-build-debug/Makefile +++ b/cmake-build-debug/Makefile @@ -688,6 +688,54 @@ Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.s: $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.s .PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c.s +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.obj: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.obj + +# target to build an object file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.obj + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.i: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.i + +# target to preprocess a source file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.i + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.s: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.s + +# target to generate assembly for a file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c.s + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.obj: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.obj + +# target to build an object file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.obj + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.i: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.i + +# target to preprocess a source file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.i + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.s: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.s + +# target to generate assembly for a file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c.s + Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.obj: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.c.obj .PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.obj @@ -880,6 +928,222 @@ Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.s: $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.s .PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c.s +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.obj: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.obj + +# target to build an object file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.obj + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.i: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.i + +# target to preprocess a source file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.i + +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.s: Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.s + +# target to generate assembly for a file +Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s +.PHONY : Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c.s + +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.obj: Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.obj + +# target to build an object file +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.obj + +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.i: Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.i + +# target to preprocess a source file +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.i + +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.s: Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.s + +# target to generate assembly for a file +Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c.s + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.obj: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.obj + +# target to build an object file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.obj + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.i: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.i + +# target to preprocess a source file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.i + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.s: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.s + +# target to generate assembly for a file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c.s + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.obj: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.obj + +# target to build an object file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.obj + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.i: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.i + +# target to preprocess a source file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.i + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.s: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.s + +# target to generate assembly for a file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c.s + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.obj: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.obj + +# target to build an object file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.obj + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.i: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.i + +# target to preprocess a source file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.i + +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.s: Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.s + +# target to generate assembly for a file +Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s +.PHONY : Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c.s + +USB_DEVICE/App/usb_device.obj: USB_DEVICE/App/usb_device.c.obj +.PHONY : USB_DEVICE/App/usb_device.obj + +# target to build an object file +USB_DEVICE/App/usb_device.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.obj +.PHONY : USB_DEVICE/App/usb_device.c.obj + +USB_DEVICE/App/usb_device.i: USB_DEVICE/App/usb_device.c.i +.PHONY : USB_DEVICE/App/usb_device.i + +# target to preprocess a source file +USB_DEVICE/App/usb_device.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.i +.PHONY : USB_DEVICE/App/usb_device.c.i + +USB_DEVICE/App/usb_device.s: USB_DEVICE/App/usb_device.c.s +.PHONY : USB_DEVICE/App/usb_device.s + +# target to generate assembly for a file +USB_DEVICE/App/usb_device.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usb_device.c.s +.PHONY : USB_DEVICE/App/usb_device.c.s + +USB_DEVICE/App/usbd_cdc_if.obj: USB_DEVICE/App/usbd_cdc_if.c.obj +.PHONY : USB_DEVICE/App/usbd_cdc_if.obj + +# target to build an object file +USB_DEVICE/App/usbd_cdc_if.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.obj +.PHONY : USB_DEVICE/App/usbd_cdc_if.c.obj + +USB_DEVICE/App/usbd_cdc_if.i: USB_DEVICE/App/usbd_cdc_if.c.i +.PHONY : USB_DEVICE/App/usbd_cdc_if.i + +# target to preprocess a source file +USB_DEVICE/App/usbd_cdc_if.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.i +.PHONY : USB_DEVICE/App/usbd_cdc_if.c.i + +USB_DEVICE/App/usbd_cdc_if.s: USB_DEVICE/App/usbd_cdc_if.c.s +.PHONY : USB_DEVICE/App/usbd_cdc_if.s + +# target to generate assembly for a file +USB_DEVICE/App/usbd_cdc_if.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_cdc_if.c.s +.PHONY : USB_DEVICE/App/usbd_cdc_if.c.s + +USB_DEVICE/App/usbd_desc.obj: USB_DEVICE/App/usbd_desc.c.obj +.PHONY : USB_DEVICE/App/usbd_desc.obj + +# target to build an object file +USB_DEVICE/App/usbd_desc.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.obj +.PHONY : USB_DEVICE/App/usbd_desc.c.obj + +USB_DEVICE/App/usbd_desc.i: USB_DEVICE/App/usbd_desc.c.i +.PHONY : USB_DEVICE/App/usbd_desc.i + +# target to preprocess a source file +USB_DEVICE/App/usbd_desc.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.i +.PHONY : USB_DEVICE/App/usbd_desc.c.i + +USB_DEVICE/App/usbd_desc.s: USB_DEVICE/App/usbd_desc.c.s +.PHONY : USB_DEVICE/App/usbd_desc.s + +# target to generate assembly for a file +USB_DEVICE/App/usbd_desc.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/App/usbd_desc.c.s +.PHONY : USB_DEVICE/App/usbd_desc.c.s + +USB_DEVICE/Target/usbd_conf.obj: USB_DEVICE/Target/usbd_conf.c.obj +.PHONY : USB_DEVICE/Target/usbd_conf.obj + +# target to build an object file +USB_DEVICE/Target/usbd_conf.c.obj: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.obj +.PHONY : USB_DEVICE/Target/usbd_conf.c.obj + +USB_DEVICE/Target/usbd_conf.i: USB_DEVICE/Target/usbd_conf.c.i +.PHONY : USB_DEVICE/Target/usbd_conf.i + +# target to preprocess a source file +USB_DEVICE/Target/usbd_conf.c.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.i +.PHONY : USB_DEVICE/Target/usbd_conf.c.i + +USB_DEVICE/Target/usbd_conf.s: USB_DEVICE/Target/usbd_conf.c.s +.PHONY : USB_DEVICE/Target/usbd_conf.s + +# target to generate assembly for a file +USB_DEVICE/Target/usbd_conf.c.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles\Encoder_Time_Sysn.elf.dir\build.make CMakeFiles/Encoder_Time_Sysn.elf.dir/USB_DEVICE/Target/usbd_conf.c.s +.PHONY : USB_DEVICE/Target/usbd_conf.c.s + # Help Target help: @echo The following are some of the valid targets for this Makefile: @@ -959,6 +1223,12 @@ help: @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.obj @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.i @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.s + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.obj + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.i + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.s + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.obj + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.i + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.s @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.obj @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.i @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr.s @@ -983,6 +1253,33 @@ help: @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.obj @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.i @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.s + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.obj + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.i + @echo ... Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.s + @echo ... Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.obj + @echo ... Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.i + @echo ... Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.s + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.obj + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.i + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.s + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.obj + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.i + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.s + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.obj + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.i + @echo ... Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.s + @echo ... USB_DEVICE/App/usb_device.obj + @echo ... USB_DEVICE/App/usb_device.i + @echo ... USB_DEVICE/App/usb_device.s + @echo ... USB_DEVICE/App/usbd_cdc_if.obj + @echo ... USB_DEVICE/App/usbd_cdc_if.i + @echo ... USB_DEVICE/App/usbd_cdc_if.s + @echo ... USB_DEVICE/App/usbd_desc.obj + @echo ... USB_DEVICE/App/usbd_desc.i + @echo ... USB_DEVICE/App/usbd_desc.s + @echo ... USB_DEVICE/Target/usbd_conf.obj + @echo ... USB_DEVICE/Target/usbd_conf.i + @echo ... USB_DEVICE/Target/usbd_conf.s .PHONY : help